浏览代码

feat:对接工单甄别(未完成);

zhangchong 1 年之前
父节点
当前提交
b6001907bf

+ 1 - 1
src/api/business/delay.ts

@@ -18,7 +18,7 @@ export const candelayList = (params: object) => {
  * @description 申请延期
  * @param data
  */
-export const delayOrder = (data: object) => {
+export const delayApply = (data: object) => {
     return request({
         url: `/api/v1/Order/delay`,
         method: 'post',

+ 13 - 2
src/api/business/discern.ts

@@ -3,6 +3,17 @@
  * @description 工单甄别
  */
 import request from '/@/utils/request';
+/**
+ * @description 工单待申请甄别列表
+ * @param {object} params
+ */
+export const screenApplyList = (params: object) => {
+    return request({
+        url: `/api/v1/Order/mayscreen`,
+        method: 'get',
+        params
+    });
+};
 /**
  * @description 工单甄别列表
  * @param {object} params
@@ -15,7 +26,7 @@ export const screenList = (params: object) => {
     });
 };
 /**
- * @description 甄别列表基础数据
+ * @description 甄别列表基础数据
  */
 export const screenBaseData = () => {
     return request({
@@ -27,7 +38,7 @@ export const screenBaseData = () => {
  * @description 甄别详情
  * @param {string} id
  */
-export const delayList = (id: string) => {
+export const screenDetail = (id: string) => {
     return request({
         url: `/api/v1/Order/screen/${id}`,
         method: 'get',

+ 1 - 1
src/components/CommonAdvice/index.vue

@@ -324,7 +324,7 @@ defineExpose({
     position: relative;
     :deep(.el-input__count) {
       font-size: 16px;
-      bottom: 20px;
+      bottom: 18px;
       right: 250px;
     }
   }

+ 24 - 9
src/components/ProcessApproval/index.vue

@@ -108,12 +108,12 @@
 						<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
 							<el-form-item label="申请类型" prop="type" :rules="[{ required: true, message: '请选择申请类型', trigger: 'change' }]">
 								<el-select v-model="state.discernForm.type" placeholder="请选择申请类型" class="w100" value-key="dicDataValue">
-									<el-option v-for="item in screenTypeOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item" />
+									<el-option v-for="item in screenTypeOptions" :value="item" :key="item.dicDataValue" :label="item.dicDataName" />
 								</el-select>
 							</el-form-item>
 						</el-col>
 						<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-							<el-form-item label="申请理由" prop="content" :rules="[{ required: true, message: '请填写延期申请理由', trigger: 'blur' }]">
+							<el-form-item label="申请理由" prop="content" :rules="[{ required: true, message: '请填写甄别申请理由', trigger: 'blur' }]">
 								<common-advice
 									@chooseAdvice="chooseAdviceDiscern"
 									v-model="state.discernForm.content"
@@ -367,7 +367,7 @@ import {
 	workflowRedoParams,
 } from '/@/api/system/workflow';
 import { redoBaseData,redoApply } from '/@/api/business/redo';
-import {delayCalcEndTime, workflowDelayParams} from '/@/api/business/delay';
+import {delayCalcEndTime, workflowDelayParams,delayApply} from '/@/api/business/delay';
 import {discernApply,screenBaseData,workflowDiscernParams} from '/@/api/business/discern';
 import {debounce} from '/@/utils/tools';
 
@@ -683,7 +683,7 @@ const onSubmit = (formEl: FormInstance | undefined) => {
 				Reflect.deleteProperty(submitObj, 'timeLimitUnit');
 
 				switch (state.processType) {
-					case '工单发起': //开始流程
+					case '工单发起':
             const request = {
               data: { ...state.orderDetail },
               workflow: submitObj,
@@ -696,7 +696,7 @@ const onSubmit = (formEl: FormInstance | undefined) => {
 								afterSubmit('orderProcessFailed');
 							});
 						break;
-					case '工单撤回': // 撤回流程
+					case '工单撤回':
 						workflowRecall(submitObj)
 							.then(() => {
 								afterSubmit('orderProcessSuccess', true);
@@ -705,9 +705,24 @@ const onSubmit = (formEl: FormInstance | undefined) => {
 								afterSubmit('orderProcessFailed');
 							});
 						break;
-					case '工单延期': // 撤回流程
+					case '延期申请':
+            const requestDelay = {
+              data: {
+                orderId:state.orderDetail.id,
+                delayNum:state.delayForm.timeLimitCount,
+                delayUnit:state.delayForm.timeLimitUnit,
+                delayReason:state.delayForm.content
+              },
+              workflow: submitObj,
+            };
+            delayApply(requestDelay).then(() => {
+              afterSubmit('orderProcessSuccess', true);
+            })
+                .catch(() => {
+                  afterSubmit('orderProcessFailed');
+                });
 						break;
-					case '工单甄别': // 撤回流程
+					case '甄别申请':
             const requestDiscern = {
               data: {
                 no:state.orderDetail.no,
@@ -726,7 +741,7 @@ const onSubmit = (formEl: FormInstance | undefined) => {
                   afterSubmit('orderProcessFailed');
                 });
 						break;
-					case '工单重办': // 撤回流程
+					case '工单重办':
             const requestRedo = {
               data: {
                 orderId:state.orderDetail.id,
@@ -742,7 +757,7 @@ const onSubmit = (formEl: FormInstance | undefined) => {
                   afterSubmit('orderProcessFailed');
                 });
 						break;
-					case '工单退回': // 退回流程
+					case '工单退回':
 						workflowPrevious(submitObj)
 							.then(() => {
 								afterSubmit('orderProcessSuccess', true);

+ 87 - 80
src/views/business/discern/apply/index.vue

@@ -9,21 +9,6 @@
 							<el-input v-model="state.queryParams.Keyword" placeholder="工单编码/标题" clearable @keyup.enter="queryList" />
 						</el-form-item>
 					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
-						<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="timeStartChangeCr"
-								value-format="YYYY-MM-DD[T]HH:mm:ss"
-							/>
-						</el-form-item>
-					</el-col>
 					<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
 						<el-form-item label=" ">
 							<el-button type="primary" @click="queryList" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
@@ -45,49 +30,71 @@
 			<!-- 表格 -->
 			<el-table :data="state.tableData" v-loading="state.loading" row-key="id" ref="multipleTableRef" @selection-change="handleSelectionChange">
 				<el-table-column type="selection" width="55" />
-				<el-table-column prop="no" label="工单编码" show-overflow-tooltip width="150"></el-table-column>
-				<el-table-column prop="sourceChannel" label="来源方式" show-overflow-tooltip></el-table-column>
+				<el-table-column prop="order.no" label="工单编码" show-overflow-tooltip width="150"></el-table-column>
         <el-table-column width="100" label="省/市工单" prop="isProvince" >
           <template #default="{ row }">
-            <span>{{ row.isProvince ? '省工单' : '市工单' }}</span>
+            <span>{{ row.order?.isProvince ? '省工单' : '市工单' }}</span>
           </template>
         </el-table-column>
-				<el-table-column prop="acceptTypeText" label="中心会签" show-overflow-tooltip></el-table-column>
-				<el-table-column label="标题" show-overflow-tooltip width="300">
-					<template #default="{ row }">
-						<span class="color-primary">{{ row.title }}</span>
-					</template>
-				</el-table-column>
-				<el-table-column prop="acceptType" label="受理类型" show-overflow-tooltip width="150"></el-table-column>
-				<el-table-column prop="hotspotName" label="热点分类" show-overflow-tooltip width="150"></el-table-column>
-				<el-table-column prop="acceptorName" label="受理人" show-overflow-tooltip width="170">
-					<template #default="{ row }">
-						<span>{{ row.acceptorName + '[' + row.acceptorStaffNo + ']' }}</span>
-					</template>
-				</el-table-column>
-				<el-table-column prop="orgLevelOneName" label="一级部门" show-overflow-tooltip width="170"></el-table-column>
-				<el-table-column prop="actualHandleOrgName" label="接办部门" show-overflow-tooltip width="170"></el-table-column>
-				<el-table-column prop="startTime" label="受理时间" show-overflow-tooltip width="170">
-					<template #default="{ row }">
-						<span>{{ formatDate(row.startTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
-					</template>
-				</el-table-column>
-<!--				<el-table-column prop="expiredTime" label="办结时间" show-overflow-tooltip width="170">
-					<template #default="{ row }">
-						<span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
-					</template>
-				</el-table-column>-->
-				<el-table-column prop="expiredTime" label="回访时间" show-overflow-tooltip width="170">
-					<template #default="{ row }">
-						<span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
-					</template>
-				</el-table-column>
-				<el-table-column prop="acceptTypeText" label="被回访部门" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="acceptTypeText" label="部门办件结果" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="acceptTypeText" label="不满意原因" show-overflow-tooltip></el-table-column>
-				<el-table-column label="操作" width="150" fixed="right" align="center">
+        <el-table-column label="工单标题" show-overflow-tooltip width="300">
+          <template #default="{ row }">
+            <span class="color-primary">{{ row.order?.title }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="order.sourceChannel" label="来源方式" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="acceptTypeText" label="中心会签" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="expiredTime" label="受理人" show-overflow-tooltip width="170">
+          <template #default="{ row }">
+            <span>{{ row.order?.acceptorName}} <span v-if="row.order?.acceptorStaffNo">[{{row.order?.acceptorStaffNo}}]</span> </span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="order.orgLevelOneName" label="一级部门" show-overflow-tooltip width="150"></el-table-column>
+        <el-table-column prop="order.actualHandleOrgName" label="接办部门" show-overflow-tooltip width="150"></el-table-column>
+        <el-table-column prop="actualHandleTime" label="接办时间" show-overflow-tooltip width="170">
+          <template #default="{ row }">
+            <span>{{ formatDate(row.order?.actualHandleTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="expiredTime" label="办结时间" show-overflow-tooltip width="170">
+          <template #default="{ row }">
+            <span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="order.startTime" label="受理时间" show-overflow-tooltip width="170">
+          <template #default="{ row }">
+            <span>{{ formatDate(row.order?.startTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="visitTime" label="回访时间" show-overflow-tooltip width="170">
+          <template #default="{ row }">
+            <span>{{ formatDate(row.visitTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="no" label="被回访部门" show-overflow-tooltip width="150">
+          <template #default="{ row }">
+            <span v-if="row.visitTarget===20">{{row.visitOrgName}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="no" label="部门办件结果" show-overflow-tooltip width="150">
+          <template #default="{ row }">
+            <span v-if="row.visitTarget===20">{{row.orgProcessingResults?.name}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="no" label="部门办件态度" show-overflow-tooltip width="150">
+          <template #default="{ row }">
+            <span v-if="row.visitTarget===20">{{row.orgHandledAttitude?.name}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="no" label="不满意原因" show-overflow-tooltip width="150">
+          <template #default="{ row }">
+            <span v-if="row.visitTarget===20">
+              {{row.orgNoSatisfiedReason?.map(item => item.name).join(',')}}
+            </span>
+          </template>
+        </el-table-column>
+				<el-table-column label="操作" width="100" fixed="right" align="center">
 					<template #default="{ row }">
-						<el-button link type="primary" @click="submitDiscern(row)" title="提交甄别申请" v-auth="'business:discern:apply:submit'">
+						<el-button link type="primary" @click="submitDiscern(row)" title="发起甄别申请" v-auth="'business:discern:apply:submit'">
 							发起甄别
 						</el-button>
 					</template>
@@ -104,18 +111,20 @@
 				@pagination="queryList"
 			/>
 		</el-card>
+    <!-- 流程审批 -->
+    <process-approval ref="processApprovalRef" @orderProcessSuccess="queryList" />
 	</div>
 </template>
 <script setup lang="ts" name="orderDiscernApply">
-import { onMounted, reactive, ref } from 'vue';
+import { onMounted, reactive, ref,defineAsyncComponent } from 'vue';
 import { ElButton, ElMessage, FormInstance } from 'element-plus';
 import { auth } from '/@/utils/authFunction';
 import { throttle } from '/@/utils/tools';
-import { shortcuts } from '/@/utils/constants';
 import { formatDate } from '/@/utils/formatTime';
-import { screenList, screenBaseData } from '/@/api/business/discern';
-import other from '/@/utils/other';
-
+import { screenApplyList, screenBaseData } from '/@/api/business/discern';
+import {commonEnum} from "/@/utils/constants";
+// 引入组件
+const ProcessApproval = defineAsyncComponent(() => import('/@/components/ProcessApproval/index.vue')); // 流程审批
 // 定义变量内容
 const ruleFormRef = ref<RefType>(); // 表单ref
 const state = reactive(<any>{
@@ -124,10 +133,6 @@ const state = reactive(<any>{
 		PageIndex: 1,
 		PageSize: 10,
 		Keyword: '', // 关键字
-		CreationTimeStart: '', // 创建时间 开始
-		CreationTimeEnd: '', // 创建时间 结束
-		exTime: [], // 办理期限
-		Status: '0', // 甄别状态
 	},
 	tableData: [], //表单
 	loading: false, // 加载
@@ -135,19 +140,6 @@ const state = reactive(<any>{
 	screenStatus: [], // 甄别状态
 	screenType: [], // 甄别类型
 });
-const handleTimeChange = (val: string[], startKey: string, endKey: string) => {
-	if (val) {
-		state.queryParams[startKey] = val[0];
-		state.queryParams[endKey] = val[1];
-	} else {
-		state.queryParams[startKey] = '';
-		state.queryParams[endKey] = '';
-	}
-};
-// 受理时间
-const timeStartChangeCr = (val: string[]) => {
-	handleTimeChange(val, 'CreationTimeStart', 'CreationTimeEnd');
-};
 // 获取查询条件基础信息
 const getBaseData = async () => {
 	const res: any = await screenBaseData();
@@ -156,12 +148,10 @@ const getBaseData = async () => {
 };
 /** 获取列表 */
 const queryList = throttle(() => {
-	if (!auth('business:discern:backlog:query')) ElMessage.error('抱歉,您没有权限查看甄别待!');
+	if (!auth('business:discern:backlog:query')) ElMessage.error('抱歉,您没有权限查看甄别待申请列表!');
 	else {
-		let request = other.deepClone(state.queryParams);
-		Reflect.deleteProperty(request, 'exTime'); // 删除无用的参数
 		state.loading = true;
-		screenList(request)
+    screenApplyList(state.queryParams)
 			.then((response: any) => {
 				state.tableData = response?.result.items ?? [];
 				state.total = response?.result.total;
@@ -195,8 +185,25 @@ const onExport = () => {
 	console.log('导出');
 };
 // 甄别审批
+const processApprovalRef = ref<RefType>(); // 流程审批ref
 const submitDiscern = (row: any) => {
-	console.log('甄别');
+  const orderDetail = {
+    visitId:row.id,
+    ...row.order
+  }
+  const params = {
+    id: row.id,
+    commonEnum:commonEnum.Discriminate,
+    processType: '甄别申请',
+    orderDetail,
+    extra: {
+      dialogTitle: '甄别申请',
+      inputPlaceholder: '请输入甄别意见',
+      annexName:'甄别附件',
+    },
+  };
+  processApprovalRef.value.openDialog(params);
+
 };
 onMounted(async () => {
 	await getBaseData();

+ 42 - 32
src/views/business/discern/backlog/index.vue

@@ -41,57 +41,51 @@
 			<!-- 表格 -->
 			<el-table :data="state.tableData" v-loading="state.loading" row-key="id" ref="multipleTableRef" @selection-change="handleSelectionChange">
         <el-table-column type="selection" width="55" />
-        <el-table-column prop="no" label="工单编码" show-overflow-tooltip width="150"></el-table-column>
+        <el-table-column prop="order.no" label="工单编码" show-overflow-tooltip width="150"></el-table-column>
         <el-table-column width="100" label="省/市工单" prop="isProvince" >
           <template #default="{ row }">
-            <span>{{ row.isProvince ? '省工单' : '市工单' }}</span>
+            <span>{{ row.order?.isProvince ? '省工单' : '市工单' }}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="currentStepName" label="当前节点" show-overflow-tooltip  width="150"></el-table-column>
-        <el-table-column prop="acceptorName" label="受理人" show-overflow-tooltip width="120">
+        <el-table-column label="工单标题" show-overflow-tooltip width="300">
           <template #default="{ row }">
-            <span>{{ row.acceptorName + '[' + row.acceptorStaffNo + ']' }}</span>
+            <span class="color-primary">{{ row.order?.title }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="标题" show-overflow-tooltip width="300">
+        <el-table-column prop="order.sourceChannel" label="来源方式" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="order.acceptType" label="受理类型" show-overflow-tooltip width="120"></el-table-column>
+        <el-table-column prop="expiredTime" label="受理人" show-overflow-tooltip width="170">
           <template #default="{ row }">
-            <span class="color-primary">{{ row.title }}</span>
+            <span>{{ row.order?.acceptorName}} <span v-if="row.order?.acceptorStaffNo">[{{row.order?.acceptorStaffNo}}]</span> </span>
           </template>
         </el-table-column>
-        <el-table-column prop="sourceChannel" label="来源方式" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="acceptType" label="受理类型" show-overflow-tooltip width="150"></el-table-column>
-        <el-table-column prop="employeeName" label="受理人" show-overflow-tooltip width="170">
-          <template #default="{ row }">
-            <span>{{ row.acceptorName + '[' + row.acceptorStaffNo + ']' }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="orgLevelOneName" label="一级部门" show-overflow-tooltip width="170"></el-table-column>
-        <el-table-column prop="actualHandleOrgName" label="接办部门" show-overflow-tooltip width="170"></el-table-column>
+        <el-table-column prop="order.orgLevelOneName" label="一级部门" show-overflow-tooltip width="150"></el-table-column>
+        <el-table-column prop="order.actualHandleOrgName" label="接办部门" show-overflow-tooltip width="150"></el-table-column>
         <el-table-column prop="actualHandleTime" label="接办时间" show-overflow-tooltip width="170">
           <template #default="{ row }">
-            <span>{{ formatDate(row.actualHandleTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
+            <span>{{ formatDate(row.order?.actualHandleTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="startTime" label="受理时间" show-overflow-tooltip width="170">
+        <el-table-column prop="order.startTime" label="受理时间" show-overflow-tooltip width="170">
           <template #default="{ row }">
-            <span>{{ formatDate(row.startTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
+            <span>{{ formatDate(row.order?.startTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="expiredTime" label="回访时间" show-overflow-tooltip width="170">
+        <el-table-column prop="visit.visitTime" label="回访时间" show-overflow-tooltip width="170">
           <template #default="{ row }">
-            <span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
+            <span>{{ formatDate(row.visit?.visitTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="expiredTime" label="甄别申请时间" show-overflow-tooltip width="170">
+        <el-table-column prop="creationTime" label="甄别申请时间" show-overflow-tooltip width="170">
           <template #default="{ row }">
-            <span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
+            <span>{{ formatDate(row.creationTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="acceptTypeText" label="甄别申请人" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="acceptTypeText" label="甄别申请部门" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="acceptTypeText" label="甄别申请类型" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="acceptTypeText" label="甄别申请原因" show-overflow-tooltip></el-table-column>
-				<el-table-column label="操作" width="150" fixed="right" align="center">
+        <el-table-column prop="creatorName" label="甄别申请人" show-overflow-tooltip width="170"></el-table-column>
+        <el-table-column prop="creatorOrgName" label="甄别申请部门" show-overflow-tooltip  width="200"></el-table-column>
+        <el-table-column prop="typeDicName" label="甄别申请类型" show-overflow-tooltip  width="170"></el-table-column>
+        <el-table-column prop="content" label="甄别申请原因" show-overflow-tooltip width="200"></el-table-column>
+				<el-table-column label="操作" width="100" fixed="right" align="center">
 					<template #default="{ row }">
 						<el-button link type="primary" @click="approve(row)" title="甄别审批" v-auth="'business:discern:backlog:approve'"> 甄别审批 </el-button>
 					</template>
@@ -108,18 +102,22 @@
 				@pagination="queryList"
 			/>
 		</el-card>
+    <!-- 流程审批 -->
+    <process-approval ref="processApprovalRef" @orderProcessSuccess="queryList" />
 	</div>
 </template>
 <script setup lang="ts" name="orderDiscernBacklog">
-import { onMounted, reactive, ref } from 'vue';
+import { onMounted, reactive, ref,defineAsyncComponent } from 'vue';
 import { ElButton, ElMessage, FormInstance } from 'element-plus';
 import { auth } from '/@/utils/authFunction';
 import { throttle } from '/@/utils/tools';
-import { shortcuts } from '/@/utils/constants';
+import {commonEnum, shortcuts} from '/@/utils/constants';
 import { formatDate } from '/@/utils/formatTime';
 import {screenList,screenBaseData} from '/@/api/business/discern';
 import other from "/@/utils/other";
 
+// 引入组件
+const ProcessApproval = defineAsyncComponent(() => import('/@/components/ProcessApproval/index.vue')); // 流程审批
 // 定义变量内容
 const ruleFormRef = ref<RefType>(); // 表单ref
 const state = reactive(<any>{
@@ -131,7 +129,7 @@ const state = reactive(<any>{
 		CreationTimeStart: '', // 创建时间 开始
 		CreationTimeEnd: '', // 创建时间 结束
 		exTime: [], // 办理期限
-    Status: '1'
+    Status: '0'
 	},
 	tableData: [], //表单
 	loading: false, // 加载
@@ -199,8 +197,20 @@ const onExport = () => {
 	console.log('导出');
 };
 // 甄别审批
+const processApprovalRef = ref<RefType>(); // 流程审批ref
 const approve = (row: any) => {
-	console.log('甄别审批');
+  const params = {
+    id: row.order.workflowId,
+    commonEnum:commonEnum.Discriminate,
+    processType: '甄别审批',
+    orderDetail: row.order,
+    extra: {
+      dialogTitle: '甄别审批',
+      inputPlaceholder: '办理意见',
+      annexName:'甄别附件',
+    },
+  };
+  processApprovalRef.value.openDialog(params);
 };
 onMounted(async () => {
 	await getBaseData();

+ 43 - 39
src/views/business/discern/index.vue

@@ -57,60 +57,64 @@
 			<!-- 表格 -->
 			<el-table :data="state.tableData" v-loading="state.loading" row-key="id" ref="multipleTableRef" @selection-change="handleSelectionChange">
 				<el-table-column type="selection" width="55" />
-				<el-table-column prop="no" label="工单编码" show-overflow-tooltip width="150"></el-table-column>
+				<el-table-column prop="order.no" label="工单编码" show-overflow-tooltip width="150"></el-table-column>
+        <el-table-column prop="statusText" label="甄别状态" show-overflow-tooltip width="100"></el-table-column>
         <el-table-column width="100" label="省/市工单" prop="isProvince" >
           <template #default="{ row }">
-            <span>{{ row.isProvince ? '省工单' : '市工单' }}</span>
+            <span>{{ row.order?.isProvince ? '省工单' : '市工单' }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="工单标题" show-overflow-tooltip width="300">
+          <template #default="{ row }">
+            <span class="color-primary">{{ row.order?.title }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="order.sourceChannel" label="来源方式" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="order.acceptType" label="受理类型" show-overflow-tooltip width="120"></el-table-column>
+        <el-table-column prop="order.hotspotName" label="热点分类" show-overflow-tooltip width="200"></el-table-column>
+        <el-table-column prop="expiredTime" label="受理人" show-overflow-tooltip width="170">
+          <template #default="{ row }">
+            <span>{{ row.order?.acceptorName}} <span v-if="row.order?.acceptorStaffNo">[{{row.order?.acceptorStaffNo}}]</span> </span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="order.orgLevelOneName" label="一级部门" show-overflow-tooltip width="150"></el-table-column>
+        <el-table-column prop="order.actualHandleOrgName" label="接办部门" show-overflow-tooltip width="150"></el-table-column>
+        <el-table-column prop="order.startTime" label="受理时间" show-overflow-tooltip width="170">
+          <template #default="{ row }">
+            <span>{{ formatDate(row.order?.startTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
           </template>
         </el-table-column>
-				<el-table-column label="标题" show-overflow-tooltip width="300">
-					<template #default="{ row }">
-            <span class="color-primary">{{ row.title }}</span>
-					</template>
-				</el-table-column>
-				<el-table-column prop="sourceChannel" label="来源方式" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="acceptType" label="受理类型" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="hotspotName" label="热点分类" show-overflow-tooltip width="200"></el-table-column>
-				<el-table-column prop="employeeName" label="受理人" show-overflow-tooltip width="170">
-					<template #default="{ row }">
-						<span>{{ row.acceptorName + '[' + row.acceptorStaffNo + ']' }}</span>
-					</template>
-				</el-table-column>
-				<el-table-column prop="orgLevelOneName" label="一级部门" show-overflow-tooltip width="170"></el-table-column>
-				<el-table-column prop="actualHandleOrgName" label="接办部门" show-overflow-tooltip width="170"></el-table-column>
-				<el-table-column prop="startTime" label="受理时间" show-overflow-tooltip width="170">
-					<template #default="{ row }">
-						<span>{{ formatDate(row.startTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
-					</template>
-				</el-table-column>
 <!--				<el-table-column prop="expiredTime" label="办结时间" show-overflow-tooltip width="170">
 					<template #default="{ row }">
 						<span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
 					</template>
 				</el-table-column>-->
-				<el-table-column prop="expiredTime" label="发布时间" show-overflow-tooltip width="170">
-					<template #default="{ row }">
-						<span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
-					</template>
-				</el-table-column>
-				<el-table-column prop="expiredTime" label="回访时间" show-overflow-tooltip width="170">
+				<el-table-column prop="visit.publishTime" label="发布时间" show-overflow-tooltip width="170">
 					<template #default="{ row }">
-						<span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
+						<span>{{ formatDate(row.visit?.publishTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
 					</template>
 				</el-table-column>
-				<el-table-column prop="acceptTypeText" label="回访人" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="acceptTypeText" label="中心会签" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="acceptTypeText" label="被回访部门" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="expiredTime" label="甄别申请时间" show-overflow-tooltip width="170">
+        <el-table-column prop="visit.visitTime" label="回访时间" show-overflow-tooltip width="170">
+          <template #default="{ row }">
+            <span>{{ formatDate(row.visit?.visitTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
+          </template>
+        </el-table-column>
+				<el-table-column prop="visit.employee" label="回访人" show-overflow-tooltip></el-table-column>
+        <el-table-column  label="被回访部门" show-overflow-tooltip width="150">
+          <template #default="{ row }">
+            <span v-if="row.visit.visitTarget===20">{{row.visit.visitOrgName}}</span>
+          </template>
+        </el-table-column>
+				<el-table-column prop="creationTime" label="甄别申请时间" show-overflow-tooltip width="170">
 					<template #default="{ row }">
-						<span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
+						<span>{{ formatDate(row.creationTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
 					</template>
 				</el-table-column>
-				<el-table-column prop="acceptTypeText" label="甄别申请人" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="acceptTypeText" label="甄别申请部门" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="acceptTypeText" label="甄别申请类型" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="acceptTypeText" label="甄别申请原因" show-overflow-tooltip></el-table-column>
-				<el-table-column label="操作" width="150" fixed="right" align="center">
+				<el-table-column prop="creatorName" label="甄别申请人" show-overflow-tooltip width="170"></el-table-column>
+				<el-table-column prop="creatorOrgName" label="甄别申请部门" show-overflow-tooltip  width="200"></el-table-column>
+				<el-table-column prop="typeDicName" label="甄别申请类型" show-overflow-tooltip  width="170"></el-table-column>
+				<el-table-column prop="content" label="甄别申请原因" show-overflow-tooltip width="200"></el-table-column>
+				<el-table-column label="操作" width="100" fixed="right" align="center">
 					<template #default="{ row }">
 						<el-button link type="primary" @click="onDetail(row)" title="查看甄别详情" v-auth="'business:discern:detail'"> 甄别详情 </el-button>
 					</template>

+ 1 - 1
src/views/business/followUp/followedUp/index.vue

@@ -98,7 +98,7 @@
             <span v-if="row.visitTarget===10">{{row.seatEvaluate}}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="no" label="被回访部门" show-overflow-tooltip width="150">
+        <el-table-column label="被回访部门" show-overflow-tooltip width="150">
           <template #default="{ row }">
             <span v-if="row.visitTarget===20">{{row.visitOrgName}}</span>
           </template>

+ 4 - 2
src/views/business/order/accept/index.vue

@@ -560,7 +560,7 @@ const state = reactive<any>({
 		callAddress: '', // 来电归属地
 	},
 	formLoading: false, // 表单加载状态
-
+  hotspotExternal:[], // 热点分类外部数据
 	acceptTypeOptions: [], // 受理类型
 	channelOptions: [], // 来源频道
 	emergencyLevelOptions: [], // 紧急程度
@@ -802,6 +802,7 @@ const submit = throttle((formEl: FormInstance | undefined) => {
 	if (!formEl) return;
 	formEl.validate((valid: boolean) => {
 		if (!valid) return;
+    console.log(state.hotspotExternal)
 		let orderDetail = {
 			...state.ruleForm,
 			hotspotExternal: state.hotspotExternal.join(','),
@@ -971,7 +972,8 @@ onBeforeMount(async () => {
 			} else {
 				state.ruleForm.isRepeat = 'false';
 			}
-			if (response.result.hotspotExternal) {
+      console.log(state.ruleForm.hotspotExternal)
+			if (state.ruleForm.hotspotExternal) {
 				//热点分类默认展开
 				state.hotspotExternal = state.ruleForm.hotspotExternal.split(',');
 			}

+ 16 - 4
src/views/business/order/backlog/index.vue

@@ -32,26 +32,38 @@
       <el-table :data="state.tableData" v-loading="state.loading" row-key="id" ref="multipleTableRef" @selection-change="handleSelectionChange">
         <el-table-column type="selection" width="40" />
         <el-table-column prop="expiredText" label="工单超期间隔" show-overflow-tooltip width="120"></el-table-column>
+        <el-table-column prop="no" label="工单编码" show-overflow-tooltip width="150"></el-table-column>
         <el-table-column width="100" label="省/市工单" prop="isProvince" >
           <template #default="{ row }">
             <span>{{ row.isProvince ? '省工单' : '市工单' }}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="no" label="工单编码" show-overflow-tooltip width="150"></el-table-column>
+        <el-table-column prop="currentStepName" label="当前办理节点" show-overflow-tooltip width="150"></el-table-column>
+        <el-table-column prop="creationTime" label="节点签收时间" show-overflow-tooltip width="170">
+          <template #default="{ row }">
+            <span>{{ formatDate(row.creationTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="工单状态" show-overflow-tooltip width="100" prop="statusText"></el-table-column>
         <el-table-column label="标题" show-overflow-tooltip width="300">
           <template #default="{ row }">
             <span class="color-primary">{{ row.title }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="工单状态" show-overflow-tooltip width="100" prop="statusText"></el-table-column>
-        <el-table-column prop="currentStepName" label="当前办理节点" show-overflow-tooltip width="150"></el-table-column>
-        <el-table-column prop="acceptType" label="受理类型" show-overflow-tooltip></el-table-column>
         <el-table-column prop="creationTime" label="生成时间" show-overflow-tooltip width="170">
           <template #default="{ row }">
             <span>{{ formatDate(row.creationTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
           </template>
         </el-table-column>
+        <el-table-column prop="acceptType" label="受理类型" show-overflow-tooltip></el-table-column>
+        <el-table-column label="紧急程度" show-overflow-tooltip prop="emergencyLevelText" width="100"></el-table-column>
         <el-table-column prop="sourceChannel" label="来源方式" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="hotspotName" label="热点分类" show-overflow-tooltip width="200"></el-table-column>
+        <el-table-column prop="employeeName" label="受理人" show-overflow-tooltip width="150">
+          <template #default="{ row }">
+            <span>{{ row.acceptorName}} <span v-if="row.acceptorStaffNo">[{{row.acceptorStaffNo}}]</span> </span>
+          </template>
+        </el-table-column>
         <el-table-column label="操作" width="100" fixed="right" align="center">
           <template #default="{ row }">
             <el-button link type="primary" @click="onOrderDetail(row)" title="查看工单详情" v-auth="'business:order:backlog:detail'"> 详情 </el-button>

+ 28 - 40
src/views/business/order/index.vue

@@ -188,55 +188,43 @@
 				@selection-change="handleSelectionChange"
 			>
 				<el-table-column type="selection" width="55" />
+        <el-table-column prop="no" label="工单编码" show-overflow-tooltip width="150"></el-table-column>
         <el-table-column width="100" label="省/市工单" prop="isProvince" >
           <template #default="{ row }">
             <span>{{ row.isProvince ? '省工单' : '市工单' }}</span>
           </template>
         </el-table-column>
-				<el-table-column label="工单编码" prop="no" show-overflow-tooltip width="150">
-					<template #default="{ row }">
-						<span>{{ row.no }}</span>
-					</template>
-				</el-table-column>
+        <el-table-column prop="currentStepName" label="当前办理节点" show-overflow-tooltip width="150"></el-table-column>
+        <el-table-column label="工单状态" show-overflow-tooltip width="100" prop="statusText"></el-table-column>
 				<el-table-column label="标题" show-overflow-tooltip width="300">
 					<template #default="{ row }">
 						<span class="color-primary">{{ row.title }}</span>
 					</template>
 				</el-table-column>
-        <el-table-column label="工单状态" show-overflow-tooltip width="100" prop="statusText"></el-table-column>
-				<el-table-column prop="currentStepName" label="当前办理节点" show-overflow-tooltip width="150"></el-table-column>
-				<el-table-column prop="actualHandlerName" label="接办人" show-overflow-tooltip width="150"></el-table-column>
+        <el-table-column prop="startTime" label="受理时间" show-overflow-tooltip width="170">
+          <template #default="{ row }">
+            <span>{{ formatDate(row.startTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="actualHandlerName" label="延期申请" show-overflow-tooltip width="150"></el-table-column>
+				<el-table-column prop="actualHandlerName" label="重办" show-overflow-tooltip width="150"></el-table-column>
+        <el-table-column prop="actualHandlerName" label="甄别状态" show-overflow-tooltip width="150"></el-table-column>
+        <el-table-column prop="expiredTime" label="工单期满时间" show-overflow-tooltip width="170">
+          <template #default="{ row }">
+            <span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="creationTime" label="办结时间" show-overflow-tooltip width="170">
+          <template #default="{ row }">
+            <span>{{ formatDate(row.creationTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="orgLevelOneName" label="一级部门" show-overflow-tooltip width="170"></el-table-column>
+        <el-table-column prop="actualHandleOrgName" label="接办部门" show-overflow-tooltip width="170"></el-table-column>
 				<el-table-column prop="acceptType" label="受理类型" show-overflow-tooltip width="150"></el-table-column>
-				<el-table-column prop="creationTime" label="生成时间" show-overflow-tooltip width="170">
-					<template #default="{ row }">
-						<span>{{ formatDate(row.creationTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
-					</template>
-				</el-table-column>
-				<el-table-column prop="startTime" label="受理时间" show-overflow-tooltip width="170">
-					<template #default="{ row }">
-						<span>{{ formatDate(row.startTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
-					</template>
-				</el-table-column>
-				<el-table-column prop="expiredTime" label="期满时间" show-overflow-tooltip width="170">
-					<template #default="{ row }">
-						<span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
-					</template>
-				</el-table-column>
-				<el-table-column prop="hotspotName" label="热点分类" show-overflow-tooltip width="200"></el-table-column>
-				<el-table-column label="紧急程度" show-overflow-tooltip prop="emergencyLevelText" width="100"></el-table-column>
-				<el-table-column prop="orgLevelOneName" label="一级部门" show-overflow-tooltip width="170"></el-table-column>
-				<el-table-column prop="sourceChannel" label="来源方式" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="actualHandleOrgName" label="接办部门" show-overflow-tooltip width="170"></el-table-column>
-				<el-table-column prop="actualHandleTime" label="接办时间" show-overflow-tooltip width="170">
-					<template #default="{ row }">
-						<span>{{ formatDate(row.actualHandleTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
-					</template>
-				</el-table-column>
-<!--				<el-table-column prop="expiredTime" label="办结时间" show-overflow-tooltip width="170">-->
-<!--					<template #default="{ row }">-->
-<!--						<span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>-->
-<!--					</template>-->
-<!--				</el-table-column>-->
+        <el-table-column prop="acceptType" label="中心会签" show-overflow-tooltip width="150"></el-table-column>
+        <el-table-column prop="hotspotName" label="热点分类" show-overflow-tooltip width="200"></el-table-column>
+        <el-table-column prop="hotspotName" label="工单标签" show-overflow-tooltip width="200"></el-table-column>
 				<el-table-column prop="employeeName" label="受理人" show-overflow-tooltip width="120">
 					<template #default="{ row }">
             <span>{{ row.acceptorName}} <span v-if="row.acceptorStaffNo">[{{row.acceptorStaffNo}}]</span> </span>
@@ -267,8 +255,8 @@
 	</div>
 </template>
 <script setup lang="ts" name="order">
-import { defineAsyncComponent, ref, reactive, onMounted, onActivated } from 'vue';
-import { ElMessageBox, ElMessage, ElButton } from 'element-plus';
+import { defineAsyncComponent, ref, reactive, onMounted } from 'vue';
+import { ElMessage, ElButton } from 'element-plus';
 import type { FormInstance } from 'element-plus';
 import { throttle } from '/@/utils/tools';
 import { shortcuts } from '/@/utils/constants';

+ 4 - 5
src/views/system/config/dict/index.vue

@@ -99,7 +99,6 @@ import { ElMessage } from 'element-plus';
 import { formatDate } from '/@/utils/formatTime';
 import { auth } from '/@/utils/authFunction';
 import other from '/@/utils/other';
-import { throttle } from '/@/utils/tools';
 import { dicTypeList, getDataByTypeId } from '/@/api/system/dict';
 
 // 引入组件
@@ -178,7 +177,7 @@ const state = reactive<any>({
 });
 const ruleFormRef = ref<RefType>(); // 表单组件
 /** 搜索按钮操作 节流操作 */
-const handleQuery = throttle(() => {
+const handleQuery = () => {
 	if (state.queryParams.keyword) {
 		state.tableLoading = true;
 		state.expandedRowKeys = [];
@@ -189,7 +188,7 @@ const handleQuery = throttle(() => {
 	} else {
 		getList();
 	}
-}, 1000);
+}
 const expand = () => {
 	state.isExpand = !state.isExpand;
 };
@@ -290,13 +289,13 @@ const onOpenEditUser = (row: any) => {
 	dickEditRef.value.openDialog(row.rowData, state.tableData);
 };
 /** 重置按钮操作 */
-const resetQuery = throttle((formEl: FormInstance | undefined) => {
+const resetQuery = (formEl: FormInstance | undefined) => {
 	if (!formEl) return;
 	formEl.resetFields();
 	getList();
 	state.expandedRowKeys = [];
 	emptyArr = [];
-}, 500);
+};
 
 // 删除字典
 // const onRowDel = (row: any) => {

+ 3 - 0
src/views/system/config/workflow/index.vue

@@ -272,6 +272,9 @@ const resetQuery = throttle((formEl: FormInstance | undefined) => {
 }, 500);
 // 切换tab 查询列表
 const handleClick = () => {
+  state.queryParams.Keyword = '';
+  state.queryParams.Status = '';
+  state.queryParams.ModuleCode = '';
 	queryList();
 };
 // 新增模板