Browse Source

reactor:某些报表增加导出功能 268 坐席话务统计分析,通话时段分析,派单量统计;

zhangchong 8 months ago
parent
commit
9bae6673c8

+ 4 - 4
src/views/business/publish/component/Order-publish.vue

@@ -1,7 +1,7 @@
 <template>
 	<el-dialog v-model="state.dialogVisible" draggable :title="dialogTitle" ref="dialogRef" width="50%" append-to-body destroy-on-close @close="close">
 		<div class="collapse-container">
-			<el-form label-width="100px" ref="ruleFormRef" :model="state.ruleForm">
+			<el-form label-width="100px" ref="ruleFormRef" :model="state.ruleForm" v-loading="state.loading">
 				<el-row :gutter="10" class="w100">
 					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" v-if="state.orderDetail.isProvince">
 						<el-row :gutter="0">
@@ -153,8 +153,8 @@
 		</div>
 		<template #footer v-if="!disabled">
 			<span class="dialog-footer">
-				<el-button @click="closeDialog" class="default-button">取 消</el-button>
-				<el-button type="primary" @click="redo" title="重办工单" v-auth="'business:publish:redo'"> 重办 </el-button>
+				<el-button @click="closeDialog" class="default-button" :loading="state.loading">取 消</el-button>
+				<el-button type="primary" @click="redo" title="重办工单" v-auth="'business:publish:redo'" :loading="state.loading"> 重办 </el-button>
 				<el-button type="primary" @click="onPublish(ruleFormRef)" v-if="!disabled" :loading="state.loading">发布</el-button>
 			</span>
 		</template>
@@ -252,7 +252,7 @@ const onPublish = (formEl: FormInstance | undefined) => {
 	formEl.validate((valid: boolean) => {
 		if (!valid) return;
 		state.loading = true;
-		let idNames = [];
+		let idNames = <any[]>[];
 		state.ruleForm.netizenEvaluate = netizenEvaluateType.value.find((item) => item.key === state.ruleForm.netizen);
 		if (state.ruleForm.idNames.length > 0) {
 			// 如果选择了部门

+ 41 - 29
src/views/statistics/center/dataList.vue

@@ -10,7 +10,6 @@
 				:total="state.total"
 				v-model:page-index="state.queryParams.PageIndex"
 				v-model:page-size="state.queryParams.PageSize"
-				role-key="orgId"
 				:toolButton="['refresh', 'setting', 'exportCurrent', 'exportAll']"
 				:exportMethod="centerEmergencyListExport"
 				:exportParams="requestParams"
@@ -98,22 +97,35 @@ import { formatDate } from '@/utils/formatTime';
 const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/index.vue')); // 工单详情
 // 表格配置项
 const columns = ref<any[]>([
-	{ prop: 'no', label: '工单编码', minWidth: 140 },
-	{ prop: 'arrangeTitle', label: '工单标题', minWidth: 200 },
-	{ prop: 'hotspotSpliceName', label: '热点全称', minWidth: 200 },
-	{ prop: 'acceptType', label: '受理类型', minWidth: 100 },
-	{ prop: 'sourceChannel', label: '来源渠道', minWidth: 100 },
-	{ prop: 'address', label: '事发地址', minWidth: 150 },
-	{ prop: 'arrangeContent', label: '受理内容', minWidth: 200 },
-	{ prop: 'arrangementOpinion', label: '承办意见', minWidth: 200 },
+	{ prop: 'statusText', label: '工单状态'},
+	{ prop: 'no', label: '是否超期'},
+	{ prop: 'sourceChannel', label: '来源渠道'},
+	{ prop: 'transferPhone', label: '转接来源'},
+	{ prop: 'currentStepName', label: '当前节点'},
+	{ prop: 'reTransactNum', label: '重办次数'},
+	{ prop: 'orderScreenStatusText', label: '甄别状态'},
+	{ prop: 'no', label: '工单编码',minWidth: 140},
+	{ prop: 'provinceNo', label: '省工单编码', minWidth: 230 },
+	{
+		prop: 'startTime',
+		label: '受理时间',
+		minWidth: 160,
+		render: (scope) => {
+			return <span>{formatDate(scope.row?.startTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+		},
+	},
+	{ prop: 'title', label: '工单标题', minWidth: 200 },
 	{
-		prop: 'creationTime',
-		label: '创建时间',
+		prop: 'expiredTime',
+		label: '工单期满时间',
 		minWidth: 160,
 		render: (scope) => {
-			return <span>{formatDate(scope.row?.creationTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+			return <span>{formatDate(scope.row?.expiredTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
 		},
 	},
+	{ prop: 'orgLevelOneName', label: '一级部门'},
+	{ prop: 'no', label: '二级部门'},
+	{ prop: 'currentHandleOrgName', label: '接办部门'},
 	{
 		prop: 'filedTime',
 		label: '办结时间',
@@ -122,13 +134,24 @@ const columns = ref<any[]>([
 			return <span>{formatDate(scope.row?.filedTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
 		},
 	},
-	{ prop: 'pushStateText', label: '推送状态', minWidth: 100 },
+	{ prop: 'acceptType', label: '受理类型', minWidth: 100 },
+	{ prop: 'hotspotName', label: '热点分类', minWidth: 150 },
+	{ prop: 'hotspotSpliceName', label: '热点全称', minWidth: 200 },
+	{ prop: 'no', label: '区域'},
+	{ prop: 'no', label: '区域全称'},
+	{ prop: 'acceptorName', label: '受理人'},
+	{ prop: 'fromName', label: '姓名'},
+	{ prop: 'contact', label: '联系电话'},
+	{ prop: 'fromPhone', label: '来电号码'},
+	{ prop: 'fullAddress', label: '事发地址'},
+	{ prop: 'no', label: '具体对象'},
+	{ prop: 'fromGenderText', label: '性别'},
+	{ prop: 'no', label: '坐席满意度', minWidth: 100},
+	{ prop: 'orgProcessingResultsText', label: '满意度'},
+	{ prop: 'pushType', label: '推送分类'},
+	{ prop: 'content', label: '受理内容', minWidth: 200},
+	{ prop: 'fileOpinion', label: '承办意见', minWidth: 200},
 ]);
-const searchCol = ref(true); // 展开/收起
-// 展开/收起
-const closeSearch = () => {
-	searchCol.value = !searchCol.value;
-};
 // 定义变量内容
 const state = reactive<any>({
 	queryParams: {
@@ -191,14 +214,3 @@ onMounted(() => {
 	queryList();
 });
 </script>
-<style scoped lang="scss">
-.statistics-center-emergency-List-container {
-	.arrow {
-		transition: transform var(--el-transition-duration);
-		cursor: pointer;
-	}
-	.arrow.is-reverse {
-		transform: rotateZ(-180deg);
-	}
-}
-</style>