Browse Source

Merge branch 'release' into dev

zhangchong 3 months ago
parent
commit
b1611c50d1

+ 54 - 0
src/api/snapshot/inviteCode.ts

@@ -35,4 +35,58 @@ export const addInviteCode = (data: object) =>{
 		method: 'post',
 		data
 	});
+}
+/**
+ * @description 获取邀请码列表
+ * @param {string} id
+ */
+export const getInviteCodeDetail = (id: string) =>{
+	return request({
+		url: `/api/v1/InviteCode/${id}`,
+		method: 'get'
+	});
+}
+/**
+ * @description 修改部门邀请码
+ * @param {object} data
+ */
+export const updateInviteCode = (data: object) =>{
+	return request({
+		url: `/api/v1/InviteCode`,
+		method: 'put',
+		data
+	});
+}
+/**
+ * @description 删除部门邀请码
+ * @param {object} data
+ */
+export const deleteInviteCode = (data: object) =>{
+	return request({
+		url: `/api/v1/InviteCode`,
+		method: 'delete',
+		data
+	});
+}
+/**
+ * @description 邀请码统计
+ * @param {object} params
+ */
+export const getInviteCodeStatistics = (params?: object) =>{
+	return request({
+		url: `/api/v1/InviteCode/statistic`,
+		method: 'get',
+		params
+	});
+}
+/**
+ * @description 邀请码统计明细
+ * @param {object} params
+ */
+export const getInviteCodeStatisticsDetail = (params?: object) =>{
+	return request({
+		url: `/api/v1/InviteCode/statistic/detail`,
+		method: 'get',
+		params
+	});
 }

+ 1 - 1
src/views/plan/index/edit.vue

@@ -191,7 +191,7 @@ const validatePassTitle = (rule: any, value: any, callback: any) => {
 	}
 };
 const validatePassContent = (rule: any, value: any, callback: any) => {
-	if (value === '' || value === null) {
+	if (value === '' || value === null || value === '<p style="line-height: 2;"><br></p>') {
 		callback(new Error('请填写案例内容'));
 	} else if (Repeat.value) {
 		callback(new Error('有相似内容,请检查!'));

+ 2 - 2
src/views/plan/index/index.vue

@@ -261,7 +261,6 @@ import { ElMessageBox, ElMessage } from 'element-plus';
 import { useRouter } from 'vue-router';
 import type { FormInstance } from 'element-plus';
 import { formatDate } from '@/utils/formatTime';
-import { treeList } from '@/api/knowledge/type';
 import { Splitpanes, Pane } from 'splitpanes';
 import 'splitpanes/dist/splitpanes.css';
 import Other from '@/utils/other';
@@ -270,6 +269,7 @@ import { VxeUI } from 'vxe-pc-ui';
 import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
 import { getPlanBaseData, getPlanExport, getPlanList, planDetailExport, planOffShelf, planOnShelf } from '@/api/plan';
 import { VTreeSearch } from '@wsfe/vue-tree';
+import { planTreeList } from '@/api/plan/type';
 
 // 引入组件
 const ProcessAudit = defineAsyncComponent(() => import('@/components/ProcessAudit/index.vue')); // 流程审批
@@ -327,7 +327,7 @@ const handleQuery = () => {
 const getPlanType = async () => {
 	state.typeLoading = true;
 	try {
-		const { result } = await treeList({ IsEnable: true, Attribution: state.queryParams.Attribution });
+		const { result } = await planTreeList({ IsEnable: true });
 		state.typeOptions = result ?? [];
 		state.typeLoading = false;
 	} catch (error) {

+ 45 - 46
src/views/snapshot/inviteCode/list/components/Code-edit.vue

@@ -2,38 +2,38 @@
 	<el-dialog v-model="state.dialogVisible" width="50%" draggable title="编辑人员" destroy-on-close append-to-body @close="close">
 		<el-form :model="state.ruleForm" label-width="100px" ref="ruleFormRef" :disabled="loading">
 			<el-row :gutter="10">
-			<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-				<el-form-item label="上级名称" prop="parentOrgId" :rules="[{ required: false, message: '请选择上级名称', trigger: 'change' }]">
-					<el-select v-model="state.ruleForm.parentOrgId" placeholder="请选择上级名称" class="w100" clearable filterable>
-						<el-option v-for="item in orgNameOptions" :key="item.key" :label="item.value" :value="item.key" />
-					</el-select>
-				</el-form-item>
-			</el-col>
-			<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-				<el-form-item label="部门名称" prop="orgName" :rules="[{ required: true, message: '请填写部门名称', trigger: 'blur' }]">
-					<el-input v-model="state.ruleForm.orgName" placeholder="请填写部门名称" clearable></el-input>
-				</el-form-item>
-			</el-col>
-			<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-				<el-form-item label="邀请码" prop="beginCode" :rules="[{ required: true, message: '请填写邀请码', trigger: 'blur' }]">
-					<el-input
-						type="number"
-						v-model.number="state.ruleForm.beginCode"
-						placeholder="请填写邀请码"
-						oninput="if(value.length > 5) value = value.slice(0, 5)"
-					></el-input>
-				</el-form-item>
-			</el-col>
-			<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-				<el-form-item label="邀请码2" prop="endCode" :rules="[{ required: true, message: '请填写邀请码2', trigger: 'blur' }]">
-					<el-input
-						type="number"
-						v-model.number="state.ruleForm.endCode"
-						placeholder="请填写邀请码2"
-						oninput="if(value.length > 5) value = value.slice(0, 5)"
-					></el-input>
-				</el-form-item>
-			</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="上级名称" prop="parentOrgId" :rules="[{ required: false, message: '请选择上级名称', trigger: 'change' }]">
+						<el-select v-model="state.ruleForm.parentOrgId" placeholder="请选择上级名称" class="w100" clearable filterable>
+							<el-option v-for="item in orgNameOptions" :key="item.key" :label="item.value" :value="item.key" />
+						</el-select>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="部门名称" prop="orgName" :rules="[{ required: true, message: '请填写部门名称', trigger: 'blur' }]">
+						<el-input v-model="state.ruleForm.orgName" placeholder="请填写部门名称" clearable></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="邀请码" prop="beginCode" :rules="[{ required: true, message: '请填写邀请码', trigger: 'blur' }]">
+						<el-input
+							type="number"
+							v-model.number="state.ruleForm.beginCode"
+							placeholder="请填写邀请码"
+							oninput="if(value.length > 5) value = value.slice(0, 5)"
+						></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="邀请码2" prop="endCode" :rules="[{ required: true, message: '请填写邀请码2', trigger: 'blur' }]">
+						<el-input
+							type="number"
+							v-model.number="state.ruleForm.endCode"
+							placeholder="请填写邀请码2"
+							oninput="if(value.length > 5) value = value.slice(0, 5)"
+						></el-input>
+					</el-form-item>
+				</el-col>
 			</el-row>
 		</el-form>
 		<template #footer>
@@ -47,12 +47,10 @@
 </template>
 
 <script setup lang="ts" name="parameterEdit">
-import { computed, onMounted, reactive, ref } from 'vue';
+import { reactive, ref } from 'vue';
 import { ElMessage, FormInstance } from 'element-plus';
 import { throttle } from '@/utils/tools';
-import { modifySettings, setitngsDetail } from '@/api/system/parameter';
-import { baseClue, editClue, getClueDetail } from '@/api/snapshot/config';
-import { getInviteCodeBaseData } from '@/api/snapshot/inviteCode';
+import { getInviteCodeBaseData, getInviteCodeDetail, updateInviteCode } from '@/api/snapshot/inviteCode';
 // 定义子组件向父组件传值/事件
 const emit = defineEmits(['updateList']);
 
@@ -60,23 +58,26 @@ const emit = defineEmits(['updateList']);
 const state = reactive<any>({
 	dialogVisible: false,
 	ruleForm: {
-		beginCode:0, // 邀请码
-		endCode:0, // 邀请码2
-		parentOrgId:null, // 上级名称
-		orgName:null, // 部门名称
+		beginCode: 0, // 邀请码
+		endCode: 0, // 邀请码2
+		parentOrgId: null, // 上级名称
+		orgName: null, // 部门名称
 	},
 });
 let loading = ref<boolean>(false); // 加载状态
 // 打开弹窗
 const ruleFormRef = ref<RefType>();
 const openDialog = async (id: string) => {
+	state.dialogVisible = true;
+	loading.value = true;
 	await getBaseData();
 	try {
-		const res: any = await getClueDetail(id);
+		const res: any = await getInviteCodeDetail(id);
 		state.ruleForm = res.result ?? <EmptyObjectType>{};
-		state.dialogVisible = true;
+		loading.value = false;
 	} catch (error) {
 		console.log(error);
+		loading.value = false;
 	}
 };
 // 关闭弹窗
@@ -93,7 +94,7 @@ const onSubmit = throttle(async (formEl: FormInstance | undefined) => {
 	await formEl.validate((valid: boolean) => {
 		if (!valid) return;
 		loading.value = true;
-		editClue(state.ruleForm)
+		updateInviteCode(state.ruleForm)
 			.then(() => {
 				ElMessage({
 					message: '操作成功',
@@ -120,9 +121,7 @@ const getBaseData = async () => {
 	}
 };
 // 生成二维码
-const onQrcode =()=>{
-
-}
+const onQrcode = () => {};
 // 暴露变量
 defineExpose({
 	openDialog,

+ 65 - 18
src/views/snapshot/inviteCode/list/index.vue

@@ -1,13 +1,13 @@
 <template>
 	<div class="snapshot-invite-code-list-container layout-padding">
 		<div class="layout-padding-auto layout-padding-view pd20">
-			<vxe-grid v-bind="gridOptions" ref="gridRef"  @checkbox-all="selectAllChangeEvent" @checkbox-change="selectChangeEvent">
+			<vxe-grid v-bind="gridOptions" ref="gridRef" @checkbox-all="selectAllChangeEvent" @checkbox-change="selectChangeEvent">
 				<template #toolbar_buttons>
 					<el-button type="primary" @click="onAdd" v-auth="'snapshot:inviteCode:list:add'">
 						<SvgIcon name="ele-Plus" class="mr5" />新增邀请码
 					</el-button>
-					<el-button type="danger" @click="onDelete" v-auth="'snapshot:inviteCode:list:delete'" :disabled="isChecked" :loading="state.loading"
-					>	<SvgIcon name="ele-Delete" class="mr5" />删除<span v-if="checkTable.length">({{ checkTable.length }})</span>
+					<el-button type="danger" @click="onDelete" v-auth="'snapshot:inviteCode:list:delete'" :disabled="isChecked" :loading="state.loading">
+						<SvgIcon name="ele-Delete" class="mr5" />删除<span v-if="checkTable.length">({{ checkTable.length }})</span>
 					</el-button>
 					<el-button type="primary" @click="onExport" v-auth="'snapshot:inviteCode:list:export'">
 						<SvgIcon name="iconfont icon-daochu" class="mr5" />导出邀请码
@@ -16,6 +16,9 @@
 						<SvgIcon name="iconfont icon-daochu" class="mr5" />批量生成
 					</el-button>
 				</template>
+				<template #qrCodeUrl="{ row }">
+					<el-image style="width: 50px" :src="prefix + row.qrCodeUrl" :preview-src-list="[prefix + row.qrCodeUrl]" fit="cover" />
+				</template>
 				<template #action="{ row }">
 					<el-button link type="primary" @click="onEdit(row)" v-auth="'snapshot:inviteCode:list:edit'" title="编辑"> 编辑 </el-button>
 					<el-button link type="primary" @click="download(row)" v-auth="'snapshot:inviteCode:list:download'" title="编辑人员"> 下载 </el-button>
@@ -42,9 +45,9 @@
 
 <script lang="tsx" setup name="snapshotInviteCodeList">
 import { computed, defineAsyncComponent, onMounted, reactive, ref } from 'vue';
-import { getClueList } from '@/api/snapshot/config';
 import { ElMessage, ElMessageBox } from 'element-plus';
-import { getInviteCodeList } from '@/api/snapshot/inviteCode';
+import { deleteInviteCode, getInviteCodeList } from '@/api/snapshot/inviteCode';
+import { fileDownloadByUrl } from '@/api/public/file';
 
 // 引入组件
 const pagination = defineAsyncComponent(() => import('@/components/ProTable/components/Pagination.vue')); // 分页
@@ -92,14 +95,14 @@ const gridOptions = reactive<any>({
 		storage: true,
 	},
 	id: 'snapshotInviteCodeList',
-	rowConfig: { isHover: true, height: 30, isCurrent: true, useKey: true },
+	rowConfig: { isHover: true, height: 50, isCurrent: true, useKey: true },
 	height: 'auto',
 	columns: [
 		{ type: 'checkbox', width: 50, align: 'center' },
 		{
 			field: 'orgName',
 			title: '部门名称',
-			minWidth: 200
+			minWidth: 200,
 		},
 		{
 			field: 'beginCode',
@@ -112,11 +115,14 @@ const gridOptions = reactive<any>({
 		{
 			field: 'qrCodeUrl',
 			title: '邀请码地址',
+			slots: { default: 'qrCodeUrl' },
 		},
 		{ title: '操作', width: 120, fixed: 'right', align: 'center', slots: { default: 'action' } },
 	],
 	data: [],
 });
+// 文件前缀
+const prefix = import.meta.env.VITE_API_UPLOAD_URL;
 /** 搜索按钮操作 节流操作 */
 const handleQuery = () => {
 	state.queryParams.PageIndex = 1;
@@ -149,9 +155,33 @@ const onEdit = (row: any) => {
 	codeEditRef.value.openDialog(row.id);
 };
 // 下载
-const download = (row:any)=>{
-
-}
+const download = (row: any) => {
+	ElMessageBox.confirm(`您确定要下载邀请码,是否继续?`, '提示', {
+		confirmButtonText: '确认',
+		cancelButtonText: '取消',
+		type: 'warning',
+		draggable: true,
+		cancelButtonClass: 'default-button',
+		autofocus: false,
+	})
+		.then(() => {
+			fileDownloadByUrl({
+				Source: 'hotline',
+				Id: row.additions,
+			}).then((res: any) => {
+				let blob: Blob = new Blob([res.data], { type: res.data.type }); // 创建blob 设置blob文件类型 data 设置为后端返回的文件(例如mp3,jpeg) type:这里设置后端返回的类型 为 mp3
+				let down: HTMLAnchorElement = document.createElement('a'); // 创建A标签
+				let href: string = window.URL.createObjectURL(blob); // 创建下载的链接
+				down.href = href; // 下载地址
+				down.download = row.creatorOrgName + '_' + row.beginCode; // 下载文件名
+				document.body.appendChild(down);
+				down.click(); // 模拟点击A标签
+				document.body.removeChild(down); // 下载完成移除元素
+				window.URL.revokeObjectURL(href); // 释放blob对象
+			});
+		})
+		.catch(() => {});
+};
 const checkTable = ref<EmptyArrayType>([]);
 const gridRef = ref<RefType>();
 const selectAllChangeEvent = ({ checked }) => {
@@ -173,16 +203,33 @@ const isChecked = computed(() => {
 	return !Boolean(checkTable.value.length);
 });
 // 删除
-const onDelete = ()=>{
-
-}
+const onDelete = () => {
+	const ids = checkTable.value.map((item) => item.id);
+	ElMessageBox.confirm(`您确定要批量生成邀请码,是否继续?`, '提示', {
+		confirmButtonText: '确认',
+		cancelButtonText: '取消',
+		type: 'warning',
+		draggable: true,
+		cancelButtonClass: 'default-button',
+		autofocus: false,
+	})
+		.then(() => {
+			deleteInviteCode(ids)
+				.then(() => {
+					handleQuery();
+					ElMessage.success('删除成功');
+				})
+				.catch(() => {});
+		})
+		.catch(() => {});
+};
 // 导出邀请码
 const exportCodeRef = ref<RefType>();
-const onExport = ()=>{
+const onExport = () => {
 	exportCodeRef.value.openDialog();
-}
+};
 // 批量生成
-const onCreate = ()=>{
+const onCreate = () => {
 	ElMessageBox.confirm(`您确定要批量生成邀请码,是否继续?`, '提示', {
 		confirmButtonText: '确认',
 		cancelButtonText: '取消',
@@ -192,10 +239,10 @@ const onCreate = ()=>{
 		autofocus: false,
 	})
 		.then(() => {
-				queryList();
+			queryList();
 		})
 		.catch(() => {});
-}
+};
 // 页面加载时
 onMounted(() => {
 	queryList();

+ 42 - 23
src/views/snapshot/inviteCode/statistics/components/detail.vue

@@ -4,17 +4,28 @@
 			<vxe-grid v-bind="gridOptions" ref="gridRef">
 				<template #form>
 					<el-form :model="state.queryParams" ref="ruleFormRef" inline @submit.native.prevent :disabled="gridOptions.loading">
-						<el-form-item prop="crTime">
-							<statistical-time v-model="state.queryParams.crTime" @change="handleQuery" ref="statisticalTimeRef" :disabled="state.loading" />
+						<el-form-item label="查询时间段" prop="crTime">
+							<el-date-picker
+								v-model="state.queryParams.crTime"
+								type="datetimerange"
+								unlink-panels
+								range-separator="至"
+								start-placeholder="开始时间"
+								end-placeholder="结束时间"
+								:shortcuts="shortcuts"
+								@change="handleQuery"
+								value-format="YYYY-MM-DD[T]HH:mm:ss"
+								:default-time="defaultTimeStartEnd"
+								:clearable="false"
+							/>
+						<el-form-item label="姓名" prop="Name">
+							<el-input v-model="state.queryParams.Name" placeholder="请填写姓名" clearable @keyup.enter="handleQuery" class="keyword-input" />
 						</el-form-item>
-						<el-form-item label="姓名" prop="CaseName">
-							<el-input v-model="state.queryParams.CaseName" placeholder="请填写姓名" clearable @keyup.enter="handleQuery" class="keyword-input" />
+						<el-form-item label="电话" prop="PhoneNumber">
+							<el-input v-model="state.queryParams.PhoneNumber" placeholder="请填写电话" clearable @keyup.enter="handleQuery" class="keyword-input" />
 						</el-form-item>
-						<el-form-item label="电话" prop="CaseName">
-							<el-input v-model="state.queryParams.CaseName" placeholder="请填写电话" clearable @keyup.enter="handleQuery" class="keyword-input" />
-						</el-form-item>
-						<el-form-item label="邀请码" prop="CaseName">
-							<el-input v-model="state.queryParams.CaseName" placeholder="请填写邀请码" clearable @keyup.enter="handleQuery" class="keyword-input" />
+						<el-form-item label="邀请码" prop="InviteCode">
+							<el-input v-model="state.queryParams.InviteCode" placeholder="请填写邀请码" clearable @keyup.enter="handleQuery" class="keyword-input" />
 						</el-form-item>
 						<el-form-item>
 							<el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
@@ -41,17 +52,17 @@
 </template>
 
 <script lang="tsx" setup name="snapshotInviteCodeStatisticsDetail">
-import { computed, defineAsyncComponent, onMounted, reactive, ref } from 'vue';
+import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
-import { getClueList } from '@/api/snapshot/config';
-import { defaultDate } from '@/utils/constants';
+import {  defaultTimeStartEnd, shortcuts } from '@/utils/constants';
 import Other from '@/utils/other';
+import { getInviteCodeStatisticsDetail } from '@/api/snapshot/inviteCode';
+import { useRoute } from 'vue-router';
 
 // 引入组件
 const pagination = defineAsyncComponent(() => import('@/components/ProTable/components/Pagination.vue')); // 分页
 const UserAdd = defineAsyncComponent(() => import('@/views/snapshot/config/areaUser/components/User-add.vue')); // 新增用户
 const UserEdit = defineAsyncComponent(() => import('@/views/snapshot/config/areaUser/components/User-edit.vue')); // 编辑用户
-const StatisticalTime = defineAsyncComponent(() => import('@/components/StatisticalTime/index.vue')); // 日期类型选择组件
 
 // 定义变量内容
 const state = reactive<any>({
@@ -60,9 +71,12 @@ const state = reactive<any>({
 		// 查询参数
 		PageIndex: 1,
 		PageSize: 20,
-		crTime: defaultDate, //
+		crTime: [], //
 		StartTime: null,
 		EndTime: null,
+		Name:null,
+		PhoneNumber:null,
+		InviteCode:null
 	},
 	total: 0, // 总条数
 });
@@ -99,23 +113,25 @@ const gridOptions = reactive<any>({
 			title: '姓名',
 		},
 		{
-			field: 'name',
+			field: 'phoneNumber',
 			title: '电话',
 		},
 		{
-			field: 'name',
+			field: 'openId',
 			title: '微信openID',
 		},
 		{
-			field: 'name',
+			field: 'creationTime',
 			title: '邀请时间',
+			width: 160,
+			formatter: 'formatDate',
 		},
 		{
-			field: 'name',
+			field: 'inviteCode',
 			title: '邀请码',
 		},
 		{
-			field: 'name',
+			field: 'orgName',
 			title: '部门',
 		},
 	],
@@ -127,16 +143,19 @@ const handleQuery = () => {
 	state.queryParams.PageIndex = 1;
 	queryList();
 };
+const route = useRoute();
+const routeQueryParams = route.query;
 // 获取参数列表
 const requestParams = ref<EmptyObjectType>({});
 const queryList = () => {
 	state.loading = true;
 	gridOptions.loading = true;
 	requestParams.value = Other.deepClone(state.queryParams);
+	requestParams.value.OrgId  = routeQueryParams.OrgId;
 	requestParams.value.StartTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[0];
 	requestParams.value.EndTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[1];
 	Reflect.deleteProperty(requestParams.value, 'crTime');
-	getClueList(requestParams.value)
+	getInviteCodeStatisticsDetail(requestParams.value)
 		.then((res) => {
 			state.loading = false;
 			gridOptions.data = res.result.items ?? [];
@@ -154,12 +173,12 @@ const resetQuery = (formEl: FormInstance | undefined) => {
 	formEl.resetFields();
 	queryList();
 };
-// 查看详情
-const linkDetail = (row:any)=>{
 
-}
 // 页面加载时
 onMounted(() => {
 	queryList();
+	if(routeQueryParams.StartTime && routeQueryParams.EndTime){
+		state.queryParams.crTime = [routeQueryParams.StartTime, routeQueryParams.EndTime];
+	}
 });
 </script>

+ 10 - 8
src/views/snapshot/inviteCode/statistics/index.vue

@@ -38,6 +38,7 @@ import { getClueList } from '@/api/snapshot/config';
 import { defaultDate } from '@/utils/constants';
 import Other from '@/utils/other';
 import { useRouter } from 'vue-router';
+import { getInviteCodeStatistics } from '@/api/snapshot/inviteCode';
 
 // 引入组件
 const pagination = defineAsyncComponent(() => import('@/components/ProTable/components/Pagination.vue')); // 分页
@@ -87,17 +88,17 @@ const gridOptions = reactive<any>({
 	height: 'auto',
 	columns: [
 		{
-			field: 'name',
+			field: 'orgName',
 			title: '部门名称',
 		},
 		{
-			field: 'industryName',
+			field: 'count',
 			title: '邀请总量',
 			slots:{
 				default (scope:any) {
 					return (
 						<el-button type="primary" onClick={() => linkDetail(scope)} link>
-							{scope.row.industryName}
+							{scope.row.count}
 						</el-button>
 					)
 				}
@@ -121,7 +122,7 @@ const queryList = () => {
 	requestParams.value.StartTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[0];
 	requestParams.value.EndTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[1];
 	Reflect.deleteProperty(requestParams.value, 'crTime');
-	getClueList(requestParams.value)
+	getInviteCodeStatistics(requestParams.value)
 		.then((res) => {
 			state.loading = false;
 			gridOptions.data = res.result.items ?? [];
@@ -144,10 +145,11 @@ const router = useRouter();
 const linkDetail = (row:any)=>{
 	router.push({
 		path:'/snapshot/inviteCode/detailStatistics',
-		// query:{
-		// 	name:row.name,
-		// 	industryName:row.industryName
-		// }
+		query:{
+			OrgId :row.id,
+			StartTime: state.queryParams.crTime[0],
+			EndTime: state.queryParams.crTime[1],
+		}
 	})
 }
 // 页面加载时

+ 9 - 9
src/views/snapshot/statistics/allOrder/index.vue

@@ -39,13 +39,13 @@
 					<el-button type="primary" @click="onObserve" v-auth="'snapshot:allOrder:follow'" :disabled="isChecked" :loading="state.loading"
 						>添加关注<span v-if="checkTable.length">({{ checkTable.length }})</span>
 					</el-button>
-					<el-button type="primary" @click="onKeynote" v-auth="'snapshot:allOrder:keynote'" :disabled="isChecked" :loading="state.loading"
+<!--					<el-button type="primary" @click="onKeynote" v-auth="'snapshot:allOrder:keynote'" :disabled="isChecked" :loading="state.loading"
 						>设置重点<span v-if="checkTable.length">({{ checkTable.length }})</span>
-					</el-button>
+					</el-button>-->
 				</template>
-				<template #statusText="{ row }">
-					<el-text type="danger" tag="b" v-if="[1, 2, 3, 9, 101, 102, 103, 104, 105, 200].includes(row.status)">{{ row.statusText }}</el-text>
-					<span v-else>{{ row.statusText }}</span>
+				<template #statusTxt="{ row }">
+					<el-text type="danger" tag="b" v-if="[1, 2, 3, 9, 101, 102, 103, 104, 105, 200].includes(row.status)">{{ row.statusTxt }}</el-text>
+					<span v-else>{{ row.statusTxt }}</span>
 				</template>
 				<template #order_detail="{ row }">
 					<order-detail :order="row" @updateList="queryList">{{ row.title }}</order-detail>
@@ -314,11 +314,11 @@ const gridOptions = reactive<any>({
 		},
 		{ field: 'no', title: '工单编码', width: 140 },
 		{
-			field: 'statusText',
+			field: 'statusTxt',
 			title: '工单状态',
 			width: 110,
 			slots: {
-				default: 'statusText',
+				default: 'statusTxt',
 			},
 		},
 		{ field: 'sourceChannel', title: '来源渠道', width: 110 },
@@ -348,8 +348,8 @@ const gridOptions = reactive<any>({
 			slots: { default: 'order_detail' },
 		},
 		{ field: 'industryName', title: '行业', width: 100 },
-		{ field: 'industryName', title: '重点', width: 100 },
-		{ field: 'industryName', title: '办理时长(天)', width: 120 },
+/*		{ field: 'industryName', title: '重点', width: 100 },
+		{ field: 'industryName', title: '办理时长(天)', width: 120 },*/
 		{ field: 'county', title: '区域', width: 150 },
 		{ field: 'contact', title: '电话', width: 140 },