Przeglądaj źródła

reactor:工单受理拓展信息新增类型;

zhangchong 1 rok temu
rodzic
commit
5f15297518

+ 57 - 0
src/api/business/secondVisit.ts

@@ -0,0 +1,57 @@
+/*
+ * @Author: zc
+ * @description 业务管理-二次回访
+ */
+import request from '/@/utils/request';
+/**
+ * @description 二次回访申请基础信息
+ * @param {object} params
+ */
+export const secondVisitBaseData = (params?: object) => {
+    return request({
+        url: `/api/v1/Order/visitapply/basedata`,
+        method: 'get',
+        params
+    });
+};
+/**
+ * @description 二次回访申请列表
+ * @param {object} params
+ */
+export const secondVisitList = (params: object) => {
+    return request({
+        url: `/api/v1/Order/visitapply/list`,
+        method: 'get',
+        params
+    });
+};
+/**
+ * @description 二次回访申请流程开启
+ * @param {object} data
+ */
+export const secondVisitAdd = (data: object) => {
+    return request({
+        url: `/api/v1/Order/visitapply/add`,
+        method: 'post',
+        data
+    });
+}
+/**
+ * @description 二次回访申请流程开启参数
+ */
+export const secondVisitStart = () => {
+    return request({
+        url: `/api/v1/Order/visitapply/startflow`,
+        method: 'get'
+    });
+}
+/**
+ * @description 二次回访详情
+ * @param {object} id
+ */
+export const secondVisitDetail = (id: string) => {
+    return request({
+        url: `/api/v1/Order/visitapply/${id}`,
+        method: 'get'
+    });
+}

+ 5 - 0
src/api/business/teti.ts

@@ -0,0 +1,5 @@
+/*
+ * @Author: zc
+ * @description 业务管理-特提
+ */
+import request from '/@/utils/request';

+ 12 - 1
src/api/query/overdue.ts

@@ -2,4 +2,15 @@
  * @Author: zc
  * @description 业务查询-工单超期查询
  */
-import request from '/@/utils/request';
+import request from '/@/utils/request';
+/**
+ * @description 工单超期列表
+ * @param {object} params
+ */
+export const overdueList = (params:object) => {
+    return request({
+        url: `/api/v1/Order/order/expire/list`,
+        method: 'get',
+        params
+    });
+};

+ 12 - 1
src/api/query/overdueNode.ts

@@ -2,4 +2,15 @@
  * @Author: zc
  * @description 业务查询-节点超期查询
  */
-import request from '/@/utils/request';
+import request from '/@/utils/request';
+/**
+ * @description 节点超期列表
+ * @param {object} params
+ */
+export const overdueNodeList = (params:object) => {
+    return request({
+        url: `/api/v1/Order/order/expire_node/list`,
+        method: 'get',
+        params
+    });
+};

+ 71 - 8
src/components/ProcessAudit/index.vue

@@ -355,6 +355,41 @@
 						</el-col>
 					</el-row>
 				</el-form>
+        <el-form :model="state.secondVisitForm" label-width="110px" ref="secondVisitFormRef" v-if="state.processType === '二次回访申请'">
+          <el-row :gutter="10">
+            <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+              <el-form-item label="工单编码"> {{ state.orderDetail.no }} </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+              <el-form-item label="工单标题"> {{ state.orderDetail.title }} </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+              <el-form-item label="申请人"> {{ userInfos.name }} </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+              <el-form-item label="申请部门"> {{ userInfos.orgName }} </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+              <el-form-item label="申请时间"> {{ dayjs(Date()).format('YYYY-MM-DD HH:mm:ss') }} </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' }]">
+                <common-advice
+                    @chooseAdvice="chooseAdviceSecondVisit"
+                    v-model="state.secondVisitForm.visitReason"
+                    placeholder="请填写二次回访说明"
+                    :loading="state.loading"
+                    :commonEnum="commonEnum.ReturnVisit"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
+              <el-form-item label="附件">
+                <annex-list name="二次回访附件" ref="annexListRef" :businessId="state.orderDetail.id" classify="二次回访上传" />
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
 			</div>
 
 			<el-form :model="state.ruleForm" label-width="110px" ref="ruleFormRef" v-show="activeStep === 1">
@@ -582,6 +617,7 @@ import {
 	KnowledgeUpdateStartFlowParams,
 } from '/@/api/knowledge';
 import dayjs from 'dayjs';
+import {secondVisitAdd, secondVisitStart} from "/@/api/business/secondVisit";
 
 // 引入组件
 const CommonAdvice = defineAsyncComponent(() => import('/@/components/CommonAdvice/index.vue')); // 常用意见
@@ -644,6 +680,10 @@ const state = reactive<any>({
 		content: '', // 文档内容
 		sourceOrg: [], // 来源单位
 	},
+  secondVisitForm: {
+    // 二次回访表单
+    visitReason: '', // 二次回访说明
+  },
 	nextStepOptions: [], // 下一节点
 	handlerOptions: [], // 处理人
 	transform: 'translate(0px, 0px)', // 滚动条位置
@@ -780,6 +820,10 @@ const openDialog = async (val: any) => {
 			const [KnowledgeDeleteResponse] = await Promise.all([KnowledgeDeleteStartFlowParams()]); // 知识库删除参数
 			handleResult(KnowledgeDeleteResponse);
 			break;
+    case '二次回访申请':
+      const [secondVisitStartResponse] = await Promise.all([secondVisitStart()]); // 二次回访申请参数
+      handleResult(secondVisitStartResponse);
+      break;
 		default: // 默认下一流程 工单办理
 			// 获取下一节点和下一节点参数
 			const [nextResponse] = await Promise.all([workflowNextSteps(state.workflowId)]);
@@ -981,6 +1025,9 @@ const chooseAdviceDiscern = (item: any) => {
 const chooseAdviceRedo = (item: any) => {
 	state.redoForm.redoOpinion += item.content;
 };
+const chooseAdviceSecondVisit  = (item:any)=>{
+  state.secondVisitForm.visitReason += item.content;
+}
 const orgRef = ref<RefType>(); //来源单位
 const changeOrg = (type: string) => {
 	const currentNode = orgRef.value.getCheckedNodes();
@@ -1258,14 +1305,30 @@ const onSubmit = (formEl: FormInstance | undefined) => {
 								afterSubmit('orderProcessFailed');
 							});
 						break;
-					default: // 默认工单办理
-						workflowNext(submitObj)
-							.then(() => {
-								afterSubmit('orderProcessSuccess', true);
-							})
-							.catch(() => {
-								afterSubmit('orderProcessFailed');
-							});
+          case '二次回访申请':
+            const secondVisitRequest = {
+              data: {
+                orderId: state.orderDetail.id,
+                visitReason: state.secondVisitForm.visitReason,
+              },
+              workflow: submitObj,
+            };
+            secondVisitAdd(secondVisitRequest)
+                .then(() => {
+                  afterSubmit('orderProcessSuccess', true);
+                })
+                .catch(() => {
+                  afterSubmit('orderProcessFailed');
+                });
+            break;
+          default: // 默认工单办理
+            workflowNext(submitObj)
+                .then(() => {
+                  afterSubmit('orderProcessSuccess', true);
+                })
+                .catch(() => {
+                  afterSubmit('orderProcessFailed');
+                });
 						break;
 				}
 			})

+ 2 - 4
src/components/ProcessTimeLine/index.vue

@@ -38,10 +38,8 @@
 					>
 						{{ item.statusText }}
 					</div>
-          <el-tag round size="large" class="tag">
-            <!--如果有办理部门 展示办理人部门名称 没有办理人 展示接班部门名称-->
-            <span v-if="item.handlerOrgName">{{ item.handlerOrgName }}</span>
-            <span v-else>{{ item.acceptorOrgName }}</span>
+          <el-tag round size="large" class="tag mr10" v-for="hander in  item.handlers" :key="hander.key">
+            <span>{{ hander.value }}</span>
           </el-tag>
           <el-row class="infos mt20">
             <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">

+ 163 - 147
src/views/business/order/accept/Expand-form.vue

@@ -6,10 +6,10 @@
 					<el-form-item label="工单类型">
 						<el-select
 							v-model="state.expandForm.orderTypeObj"
-							clearable
 							filterable
 							value-key="dicDataValue"
 							placeholder="请选择工单类型"
+              class="w100"
 							@change="
 								(val) => {
 									state.expandForm.orderType = val.dicDataName;
@@ -17,46 +17,46 @@
 								}
 							"
 						>
-							<el-option v-for="item in state.licenceTypeOptions" :key="item.dicDataValue" :label="item.dicDataName" :value="item" />
+							<el-option v-for="item in state.orderTypeOptions" :key="item.dicDataValue" :label="item.dicDataName" :value="item" />
 						</el-select>
 					</el-form-item>
 				</el-col>
 				<!-- (1)医疗服务中心受理单 -->
-				<template v-if="state.expandForm.orderTypeCode === '30'">
+				<template v-if="state.expandForm.orderTypeCode === 'yl'">
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="医院名称" prop="salesEnterprise" :rules="[{ required: false, message: '指投诉医院的医院名称', trigger: 'blur' }]">
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="请填写医院名称" clearable> </el-input>
+						<el-form-item label="医院名称" prop="medName" :rules="[{ required: false, message: '指投诉医院的医院名称', trigger: 'blur' }]">
+							<el-input v-model="state.expandForm.medName" placeholder="请填写医院名称" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="医院地址" prop="salesEnterprise" :rules="[{ required: false, message: '指投诉医院的医院地址', trigger: 'blur' }]">
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="请填写医院地址" clearable> </el-input>
+						<el-form-item label="医院地址" prop="medAddress" :rules="[{ required: false, message: '指投诉医院的医院地址', trigger: 'blur' }]">
+							<el-input v-model="state.expandForm.medAddress" placeholder="请填写医院地址" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="科室" prop="salesEnterprise" :rules="[{ required: false, message: '指投诉医院医疗科室', trigger: 'blur' }]">
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="请填写科室" clearable> </el-input>
+						<el-form-item label="科室" prop="medDepartment" :rules="[{ required: false, message: '指投诉医院医疗科室', trigger: 'blur' }]">
+							<el-input v-model="state.expandForm.medDepartment" placeholder="请填写科室" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="医生" prop="salesEnterprise" :rules="[{ required: false, message: '指投诉医院医生', trigger: 'blur' }]">
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="请填写医院地址" clearable> </el-input>
+						<el-form-item label="医生" prop="medDoctor" :rules="[{ required: false, message: '指投诉医院医生', trigger: 'blur' }]">
+							<el-input v-model="state.expandForm.medDoctor" placeholder="请填写医院地址" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="病人姓名" prop="salesEnterprise" :rules="[{ required: false, message: '患者姓名', trigger: 'blur' }]">
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="请填写病人姓名" clearable> </el-input>
+						<el-form-item label="病人姓名" prop="medPatient" :rules="[{ required: false, message: '患者姓名', trigger: 'blur' }]">
+							<el-input v-model="state.expandForm.medPatient" placeholder="请填写病人姓名" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="就诊卡号" prop="salesEnterprise" :rules="[{ required: false, message: '请填写就诊卡号', trigger: 'blur' }]">
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="请填写就诊卡号" clearable> </el-input>
+						<el-form-item label="就诊卡号" prop="medNo" :rules="[{ required: false, message: '请填写就诊卡号', trigger: 'blur' }]">
+							<el-input v-model="state.expandForm.medNo" placeholder="请填写就诊卡号" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
 						<el-form-item
 							label="身份证号"
-							prop="salesEnterprise"
+							prop="medIdNo"
 							:rules="[
 								{ required: false, message: '请填写身份证号', trigger: 'blur' },
 								{
@@ -66,25 +66,25 @@
 								},
 							]"
 						>
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="请填写身份证号" clearable> </el-input>
+							<el-input v-model="state.expandForm.medIdNo" placeholder="请填写身份证号" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 				</template>
 				<!-- (2)电视购物及商铺购买退换货中心受理单 -->
-				<template v-if="state.expandForm.orderTypeCode === '30'">
+				<template v-if="state.expandForm.orderTypeCode === 'th'">
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
 						<el-form-item
 							label="电视台(商铺)"
-							prop="salesEnterprise"
+							prop="exchTv"
 							:rules="[{ required: false, message: '请填写电视台(商铺) ', trigger: 'blur' }]"
 						>
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="指投诉产品的商铺" clearable> </el-input>
+							<el-input v-model="state.expandForm.exchTv" placeholder="指投诉产品的商铺" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="购买时间" prop="occurrenceTime" :rules="[{ required: false, message: '请选择购买时间', trigger: 'change' }]">
+						<el-form-item label="购买时间" prop="exchTradeTime" :rules="[{ required: false, message: '请选择购买时间', trigger: 'change' }]">
 							<el-date-picker
-								v-model="state.expandForm.occurrenceTime"
+								v-model="state.expandForm.exchTradeTime"
 								type="datetime"
 								placeholder="购买时间"
 								class="w100"
@@ -94,70 +94,70 @@
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="产品名称" prop="salesEnterprise" :rules="[{ required: false, message: '请填写产品名称', trigger: 'blur' }]">
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="指产品的名称 " clearable> </el-input>
+						<el-form-item label="产品名称" prop="exchProduct" :rules="[{ required: false, message: '请填写产品名称', trigger: 'blur' }]">
+							<el-input v-model="state.expandForm.exchProduct" placeholder="指产品的名称 " clearable> </el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="消费金额" prop="salesEnterprise" :rules="[{ required: false, message: '请填写消费金额', trigger: 'blur' }]">
-							<el-input-number v-model="state.expandForm.amount" :min="0" placeholder="产品消费金额" class="w100" />
+						<el-form-item label="消费金额" prop="exchAmount" :rules="[{ required: false, message: '请填写消费金额', trigger: 'blur' }]">
+							<el-input-number v-model="state.expandForm.exchAmount" :min="0" placeholder="产品消费金额" class="w100" />
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="商家名称" prop="salesEnterprise" :rules="[{ required: false, message: '请填写商家名称', trigger: 'blur' }]">
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="商家名称" clearable> </el-input>
+						<el-form-item label="商家名称" prop="exchName" :rules="[{ required: false, message: '请填写商家名称', trigger: 'blur' }]">
+							<el-input v-model="state.expandForm.exchName" placeholder="商家名称" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="商家地址" prop="salesEnterprise" :rules="[{ required: false, message: '请填写商家地址', trigger: 'blur' }]">
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="商家详细地址" clearable> </el-input>
+						<el-form-item label="商家地址" prop="exchAddress" :rules="[{ required: false, message: '请填写商家地址', trigger: 'blur' }]">
+							<el-input v-model="state.expandForm.exchAddress" placeholder="商家详细地址" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="收货人" prop="salesEnterprise" :rules="[{ required: false, message: '请填写收货人', trigger: 'blur' }]">
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="收货人姓名" clearable> </el-input>
+						<el-form-item label="收货人" prop="exchConsignee" :rules="[{ required: false, message: '请填写收货人', trigger: 'blur' }]">
+							<el-input v-model="state.expandForm.exchConsignee" placeholder="收货人姓名" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="收货地址" prop="salesEnterprise" :rules="[{ required: false, message: '请填写收货地址', trigger: 'blur' }]">
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="收货地址" clearable> </el-input>
+						<el-form-item label="收货地址" prop="exchConsigneeAddress" :rules="[{ required: false, message: '请填写收货地址', trigger: 'blur' }]">
+							<el-input v-model="state.expandForm.exchConsigneeAddress" placeholder="收货地址" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 				</template>
 				<!-- (3)电视台虚假广告中心受理单 -->
-				<template v-if="state.expandForm.orderTypeCode === '30'">
+				<template v-if="state.expandForm.orderTypeCode === 'xjgg'">
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="电视台" prop="salesEnterprise" :rules="[{ required: false, message: '请填写电视台', trigger: 'blur' }]">
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="虚假广告电视台名称" clearable> </el-input>
+						<el-form-item label="电视台" prop="adTv" :rules="[{ required: false, message: '请填写电视台', trigger: 'blur' }]">
+							<el-input v-model="state.expandForm.adTv" placeholder="虚假广告电视台名称" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="产品名称" prop="salesEnterprise" :rules="[{ required: false, message: '请填写产品名称', trigger: 'blur' }]">
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="虚假广告产品名称" clearable> </el-input>
+						<el-form-item label="产品名称" prop="adProduct" :rules="[{ required: false, message: '请填写产品名称', trigger: 'blur' }]">
+							<el-input v-model="state.expandForm.adProduct" placeholder="虚假广告产品名称" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="虚假广告内容" prop="salesEnterprise" :rules="[{ required: false, message: '请填写虚假广告内容', trigger: 'blur' }]">
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="虚假广告具体内容" clearable> </el-input>
+						<el-form-item label="虚假广告内容" prop="adContent" :rules="[{ required: false, message: '请填写虚假广告内容', trigger: 'blur' }]">
+							<el-input v-model="state.expandForm.adContent" placeholder="虚假广告具体内容" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 				</template>
 				<!-- (4)高速公路投诉中心受理单 -->
-				<template v-if="state.expandForm.orderTypeCode === '30'">
+				<template v-if="state.expandForm.orderTypeCode === 'gsgl'">
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="高速入口" prop="salesEnterprise" :rules="[{ required: false, message: '请填写高速入', trigger: 'blur' }]">
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="口高速入口" clearable> </el-input>
+						<el-form-item label="高速入口" prop="expwyEntrance" :rules="[{ required: false, message: '请填写高速入', trigger: 'blur' }]">
+							<el-input v-model="state.expandForm.expwyEntrance" placeholder="高速入口" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="高速出口" prop="salesEnterprise" :rules="[{ required: false, message: '请填写高速出口', trigger: 'blur' }]">
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="高速出口" clearable> </el-input>
+						<el-form-item label="高速出口" prop="expwyExit" :rules="[{ required: false, message: '请填写高速出口', trigger: 'blur' }]">
+							<el-input v-model="state.expandForm.expwyExit" placeholder="高速出口" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="发生时间" prop="occurrenceTime" :rules="[{ required: false, message: '请选择投诉发生的时间', trigger: 'change' }]">
+						<el-form-item label="发生时间" prop="expwyTime" :rules="[{ required: false, message: '请选择投诉发生的时间', trigger: 'change' }]">
 							<el-date-picker
-								v-model="state.expandForm.occurrenceTime"
+								v-model="state.expandForm.expwyTime"
 								type="datetime"
 								placeholder="发生时间"
 								class="w100"
@@ -167,87 +167,89 @@
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="车牌号" prop="salesEnterprise" :rules="[{ required: false, message: '请填写车牌号', trigger: 'blur' }]">
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="涉事车辆的车牌号" clearable> </el-input>
+						<el-form-item label="车牌号" prop="expwyNo" :rules="[{ required: false, message: '请填写车牌号', trigger: 'blur' }]">
+							<el-input v-model="state.expandForm.expwyNo" placeholder="涉事车辆的车牌号" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 				</template>
 				<!-- (5)四川政务服务网技术中心受理单 -->
-				<template v-if="state.expandForm.orderTypeCode === '30'">
+				<template v-if="state.expandForm.orderTypeCode === 'zwfw'">
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="服务网账号" prop="salesEnterprise" :rules="[{ required: false, message: '请填写服务网账号', trigger: 'blur' }]">
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="四川政务服务网账号" clearable> </el-input>
+						<el-form-item label="服务网账号" prop="zwfwwAccount" :rules="[{ required: false, message: '请填写服务网账号', trigger: 'blur' }]">
+							<el-input v-model="state.expandForm.zwfwwAccount" placeholder="四川政务服务网账号" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="联系方式" prop="salesEnterprise" :rules="[{ required: false, message: '请填写联系方式', trigger: 'blur' }]">
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="群众联系电话(QQ:)" clearable> </el-input>
+						<el-form-item label="联系方式" prop="zwfwwContact" :rules="[{ required: false, message: '请填写联系方式', trigger: 'blur' }]">
+							<el-input v-model="state.expandForm.zwfwwContact" placeholder="群众联系电话(QQ:)" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 				</template>
 				<!-- (6)四川省12366热线诉求交办单 -->
-				<template v-if="state.expandForm.orderTypeCode === '30'">
+				<template v-if="state.expandForm.orderTypeCode === 'swfwsq'">
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="主管税务机关" prop="salesEnterprise" :rules="[{ required: false, message: '请填写主管税务机关', trigger: 'blur' }]">
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="主管税务机关(问题归属地)" clearable> </el-input>
+						<el-form-item label="主管税务机关" prop="location12366Sq" :rules="[{ required: false, message: '请填写主管税务机关', trigger: 'blur' }]">
+							<el-input v-model="state.expandForm.location12366Sq" placeholder="主管税务机关(问题归属地)" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
 						<el-form-item
 							label="被投诉单位或个人信息"
-							prop="salesEnterprise"
+							prop="info12366Sq"
+              label-width="160"
 							:rules="[{ required: false, message: '请填写被投诉单位或个人信息', trigger: 'blur' }]"
 						>
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="被投诉单位或个人信息" clearable> </el-input>
+							<el-input v-model="state.expandForm.info12366Sq" placeholder="被投诉单位或个人信息" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="投诉类型" prop="salesEnterprise" :rules="[{ required: false, message: '请填写投诉类型', trigger: 'blur' }]">
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="12366的投诉类型" clearable> </el-input>
+						<el-form-item label="投诉类型" prop="type12366Sq" :rules="[{ required: false, message: '请填写投诉类型', trigger: 'blur' }]">
+							<el-input v-model="state.expandForm.type12366Sq" placeholder="12366的投诉类型" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 				</template>
 				<!-- (7)四川省12366热线咨询交办单 -->
-				<template v-if="state.expandForm.orderTypeCode === '30'">
+				<template v-if="state.expandForm.orderTypeCode === 'swfwzx'">
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="主管税务机关" prop="salesEnterprise" :rules="[{ required: false, message: '请填写主管税务机关', trigger: 'blur' }]">
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="主管税务机关(问题归属地)" clearable> </el-input>
+						<el-form-item label="主管税务机关" prop="location12366Zx" :rules="[{ required: false, message: '请填写主管税务机关', trigger: 'blur' }]">
+							<el-input v-model="state.expandForm.location12366Zx" placeholder="主管税务机关(问题归属地)" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
 						<el-form-item
 							label="被投诉单位或个人信息"
-							prop="salesEnterprise"
+							prop="info12366Zx"
+              label-width="160"
 							:rules="[{ required: false, message: '请填写被投诉单位或个人信息', trigger: 'blur' }]"
 						>
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="被投诉单位或个人信息" clearable> </el-input>
+							<el-input v-model="state.expandForm.info12366Zx" placeholder="被投诉单位或个人信息" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 				</template>
 				<!--(8)12328服务监督中心受理单 -->
-				<template v-if="state.expandForm.orderTypeCode === '30'">
+				<template v-if="state.expandForm.orderTypeCode === 'jtfwjd'">
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="受理方式" prop="salesEnterprise" :rules="[{ required: false, message: '请填写受理方式', trigger: 'blur' }]">
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="受理方式" clearable> </el-input>
+						<el-form-item label="受理方式" prop="acceptType12328" :rules="[{ required: false, message: '请填写受理方式', trigger: 'blur' }]">
+							<el-input v-model="state.expandForm.acceptType12328" placeholder="受理方式" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="客户" prop="salesEnterprise" :rules="[{ required: false, message: '请填写客户', trigger: 'blur' }]">
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="客户" clearable> </el-input>
+						<el-form-item label="客户" prop="client12328" :rules="[{ required: false, message: '请填写客户', trigger: 'blur' }]">
+							<el-input v-model="state.expandForm.client12328" placeholder="客户" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 				</template>
 				<!-- (9)邮政业消费者申诉受理单 -->
-				<template v-if="state.expandForm.orderTypeCode === '30'">
+				<template v-if="state.expandForm.orderTypeCode === 'yzxf'">
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="申诉人姓名" prop="salesEnterprise" :rules="[{ required: false, message: '请填写申诉人姓名', trigger: 'blur' }]">
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="申诉人姓名" clearable> </el-input>
+						<el-form-item label="申诉人姓名" prop="mailClaimantName" :rules="[{ required: false, message: '请填写申诉人姓名', trigger: 'blur' }]">
+							<el-input v-model="state.expandForm.mailClaimantName" placeholder="申诉人姓名" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
 						<el-form-item
 							label="申诉人电话"
-							prop="salesEnterprise"
+							prop="mailClaimantPhone"
 							:rules="[
 								{ required: false, message: '请填写申诉人电话', trigger: 'blur' },
 								{
@@ -257,23 +259,23 @@
 								},
 							]"
 						>
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="申诉人电话" clearable> </el-input>
+							<el-input v-model="state.expandForm.mailClaimantPhone" placeholder="申诉人电话" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="申诉企业" prop="salesEnterprise" :rules="[{ required: false, message: '请填写申诉企业', trigger: 'blur' }]">
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="申诉企业" clearable> </el-input>
+						<el-form-item label="申诉企业" prop="mailClaimantEnterprise" :rules="[{ required: false, message: '请填写申诉企业', trigger: 'blur' }]">
+							<el-input v-model="state.expandForm.mailClaimantEnterprise" placeholder="申诉企业" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="寄件人姓名" prop="salesEnterprise" :rules="[{ required: false, message: '请填写寄件人姓名', trigger: 'blur' }]">
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="寄件人姓名" clearable> </el-input>
+						<el-form-item label="寄件人姓名" prop="mailSenderName" :rules="[{ required: false, message: '请填写寄件人姓名', trigger: 'blur' }]">
+							<el-input v-model="state.expandForm.mailSenderName" placeholder="寄件人姓名" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
 						<el-form-item
 							label="寄件人电话"
-							prop="salesEnterprise"
+							prop="mailSenderPhone"
 							:rules="[
 								{ required: false, message: '请填写寄件人电话', trigger: 'blur' },
 								{
@@ -283,23 +285,23 @@
 								},
 							]"
 						>
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="寄件人电话" clearable> </el-input>
+							<el-input v-model="state.expandForm.mailSenderPhone" placeholder="寄件人电话" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="寄件人地址" prop="salesEnterprise" :rules="[{ required: false, message: '请填写寄件人地址', trigger: 'blur' }]">
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="寄件人地址" clearable> </el-input>
+						<el-form-item label="寄件人地址" prop="mailSenderAddress" :rules="[{ required: false, message: '请填写寄件人地址', trigger: 'blur' }]">
+							<el-input v-model="state.expandForm.mailSenderAddress" placeholder="寄件人地址" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="收件人姓名" prop="salesEnterprise" :rules="[{ required: false, message: '请填写收件人姓名', trigger: 'blur' }]">
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="收件人姓名" clearable> </el-input>
+						<el-form-item label="收件人姓名" prop="mailReceiverName" :rules="[{ required: false, message: '请填写收件人姓名', trigger: 'blur' }]">
+							<el-input v-model="state.expandForm.mailReceiverName" placeholder="收件人姓名" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
 						<el-form-item
 							label="收件人电话"
-							prop="salesEnterprise"
+							prop="mailReceiverPhone"
 							:rules="[
 								{ required: false, message: '请填写收件人电话', trigger: 'blur' },
 								{
@@ -309,43 +311,44 @@
 								},
 							]"
 						>
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="收件人电话" clearable> </el-input>
+							<el-input v-model="state.expandForm.mailReceiverPhone" placeholder="收件人电话" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="收件人地址" prop="salesEnterprise" :rules="[{ required: false, message: '请填写收件人地址', trigger: 'blur' }]">
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="收件人地址" clearable> </el-input>
+						<el-form-item label="收件人地址" prop="mailReceiverAddress" :rules="[{ required: false, message: '请填写收件人地址', trigger: 'blur' }]">
+							<el-input v-model="state.expandForm.mailReceiverAddress" placeholder="收件人地址" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="涉及金额" prop="salesEnterprise" :rules="[{ required: false, message: '请填写涉及金额', trigger: 'blur' }]">
-							<el-input-number v-model="state.expandForm.amount" :min="0" placeholder="涉及金额" class="w100" />
+						<el-form-item label="涉及金额" prop="mailAmount" :rules="[{ required: false, message: '请填写涉及金额', trigger: 'blur' }]">
+							<el-input-number v-model="state.expandForm.mailAmount" :min="0" placeholder="涉及金额" class="w100" />
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
 						<el-form-item
 							label="是否联系快递公司投诉"
-							prop="salesEnterprise"
+							prop="mailIsContacted"
+              label-width="160"
 							:rules="[{ required: false, message: '请选择是否联系快递公司投诉', trigger: 'change' }]"
 						>
-							<el-radio-group v-model="state.expandForm.salesEnterprise">
-								<el-radio label="1">是</el-radio>
-								<el-radio label="0">否</el-radio>
+							<el-radio-group v-model="state.expandForm.mailIsContacted">
+								<el-radio :label="true">是</el-radio>
+								<el-radio :label="false">否</el-radio>
 							</el-radio-group>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-						<el-form-item label="处理结果" prop="salesEnterprise" :rules="[{ required: false, message: '请填写处理结果', trigger: 'blur' }]">
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="处理结果" clearable> </el-input>
+						<el-form-item label="处理结果" prop="mailResult" :rules="[{ required: false, message: '请填写处理结果', trigger: 'blur' }]">
+							<el-input v-model="state.expandForm.mailResult" placeholder="处理结果" clearable> </el-input>
 						</el-form-item>
 					</el-col>
 				</template>
 				<!-- (10)环保举报业务受理单 -->
-				<template v-if="state.expandForm.orderTypeCode === '30'">
+				<template v-if="state.expandForm.orderTypeCode === 'hbjb'">
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
 						<el-form-item
 							label="邮箱"
-							prop="salesEnterprise"
+							prop="epEmail"
 							:rules="[
 								{ required: false, message: '请填写邮箱', trigger: 'blur' },
 								{
@@ -355,42 +358,43 @@
 								},
 							]"
 						>
-							<el-input v-model="state.expandForm.salesEnterprise" placeholder="举报人邮箱" clearable> </el-input>
-						</el-form-item>
-						<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-							<el-form-item label="通讯地址" prop="salesEnterprise" :rules="[{ required: false, message: '请填写通讯地址', trigger: 'blur' }]">
-								<el-input v-model="state.expandForm.salesEnterprise" placeholder="举报人通讯地址" clearable> </el-input>
-							</el-form-item>
-						</el-col>
-						<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-							<el-form-item label="举报对象" prop="salesEnterprise" :rules="[{ required: false, message: '请填写举报对象', trigger: 'blur' }]">
-								<el-input v-model="state.expandForm.salesEnterprise" placeholder="被举报对象名称" clearable> </el-input>
-							</el-form-item>
-						</el-col>
-						<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-							<el-form-item label="详细地址" prop="salesEnterprise" :rules="[{ required: false, message: '请填写详细地址', trigger: 'blur' }]">
-								<el-input v-model="state.expandForm.salesEnterprise" placeholder="被举报对象详细" clearable> </el-input>
-							</el-form-item>
-						</el-col>
-						<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-							<el-form-item label="行业类型" prop="salesEnterprise" :rules="[{ required: false, message: '请填写行业类型', trigger: 'blur' }]">
-								<el-input v-model="state.expandForm.salesEnterprise" placeholder="对应行业类型" clearable> </el-input>
-							</el-form-item>
-						</el-col>
-						<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
-							<el-form-item label="重点要素" prop="salesEnterprise" :rules="[{ required: false, message: '请填写重点要素', trigger: 'blur' }]">
-								<el-input v-model="state.expandForm.salesEnterprise" placeholder="重点要素" clearable> </el-input>
-							</el-form-item>
-						</el-col>
-					</el-col>
+							<el-input v-model="state.expandForm.epEmail" placeholder="举报人邮箱" clearable> </el-input>
+						</el-form-item>
+					</el-col>
+          <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
+            <el-form-item label="通讯地址" prop="epAddress" :rules="[{ required: false, message: '请填写通讯地址', trigger: 'blur' }]">
+              <el-input v-model="state.expandForm.epAddress" placeholder="举报人通讯地址" clearable> </el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
+            <el-form-item label="举报对象" prop="epObject" :rules="[{ required: false, message: '请填写举报对象', trigger: 'blur' }]">
+              <el-input v-model="state.expandForm.epObject" placeholder="被举报对象名称" clearable> </el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
+            <el-form-item label="详细地址" prop="epObjectAddress" :rules="[{ required: false, message: '请填写详细地址', trigger: 'blur' }]">
+              <el-input v-model="state.expandForm.epObjectAddress" placeholder="被举报对象详细地址" clearable> </el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
+            <el-form-item label="行业类型" prop="epIndustryType" :rules="[{ required: false, message: '请填写行业类型', trigger: 'blur' }]">
+              <el-input v-model="state.expandForm.epIndustryType" placeholder="对应行业类型" clearable> </el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
+            <el-form-item label="重点要素" prop="epKeyPoint" :rules="[{ required: false, message: '请填写重点要素', trigger: 'blur' }]">
+              <el-input v-model="state.expandForm.epKeyPoint" placeholder="重点要素" clearable> </el-input>
+            </el-form-item>
+          </el-col>
 				</template>
 				<!-- (11)12315 市场监管局受理单【投诉】 (12)12315 市场监管局受理单【举报】-->
-				<template v-if="state.expandForm.orderTypeCode === '30' || state.expandForm.orderTypeCode === '35'">
+				<template v-if="['scjgjts','scjgjjb'].includes(state.expandForm.orderTypeCode)">
 					<el-divider content-position="left">
 						<b class="formTitle">{{
-							state.expandForm.orderTypeCode === '30' ? '举报人信息' : state.expandForm.orderTypeCode === '35' ? '投诉人信息' : null
+							state.expandForm.orderTypeCode === 'scjgjjb' ? '举报人信息' : state.expandForm.orderTypeCode === 'scjgjts' ? '投诉人信息' : null
 						}}</b>
 					</el-divider>
+          <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
 					<el-form-item label="证件类型" prop="licenceObj" :rules="[{ required: false, message: '请选择证件类型', trigger: 'change' }]">
 						<el-select
 							v-model="state.expandForm.licenceObj"
@@ -409,6 +413,7 @@
 							<el-option v-for="item in state.licenceTypeOptions" :key="item.dicDataValue" :label="item.dicDataName" :value="item" />
 						</el-select>
 					</el-form-item>
+          </el-col>
 					<!-- 选择了证件类型必填 -->
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
 						<el-form-item
@@ -545,7 +550,7 @@
 					</el-col>
 					<el-divider content-position="left">
 						<b class="formTitle">{{
-							state.expandForm.orderTypeCode === '30' ? '举报对象信息' : state.expandForm.orderTypeCode === '35' ? '投诉对象信息' : ''
+							state.expandForm.orderTypeCode === 'scjgjjb' ? '举报对象信息' : state.expandForm.orderTypeCode === 'scjgjts' ? '投诉对象信息' : ''
 						}}</b>
 					</el-divider>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
@@ -627,7 +632,7 @@
 						</el-form-item>
 					</el-col>
 					<el-divider content-position="left">
-						<b class="formTitle">{{ state.expandForm.orderType === '30' ? '举报详情' : state.expandForm.orderType === '35' ? '投诉详情' : null }}</b>
+						<b class="formTitle">{{ state.expandForm.orderTypeCode === 'scjgjjb' ? '举报详情' : state.expandForm.orderTypeCode === 'scjgjts' ? '投诉详情' : null }}</b>
 					</el-divider>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
 						<el-form-item label="商品分类/品牌" prop="brandCode" :rules="[{ required: true, message: '请选择商品分类/品牌', trigger: 'change' }]">
@@ -666,7 +671,7 @@
 						</el-form-item>
 					</el-col>
 					<!-- 举报展示 -->
-					<template v-if="state.expandForm.orderTypeCode === '30'">
+					<template v-if="state.expandForm.orderTypeCode === 'scjgjjb'">
 						<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
 							<el-form-item
 								label="举报问题类别"
@@ -688,7 +693,7 @@
 						</el-col>
 					</template>
 					<!-- 投诉展示 -->
-					<template v-if="state.expandForm.orderTypeCode === '35'">
+					<template v-if="state.expandForm.orderTypeCode === 'scjgjts'">
 						<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
 							<el-form-item
 								label="投诉问题类别"
@@ -709,7 +714,7 @@
 							</el-form-item>
 						</el-col>
 					</template>
-					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" v-if="state.expandForm.orderTypeCode === '35'">
+					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" v-if="state.expandForm.orderTypeCode === 'scjgjts'">
 						<el-form-item label="争议发生时间" prop="occurrenceTime" :rules="[{ required: true, message: '请选择争议发生时间', trigger: 'change' }]">
 							<el-date-picker
 								v-model="state.expandForm.occurrenceTime"
@@ -719,7 +724,6 @@
 								clearable
 								value-format="YYYY-MM-DD[T]HH:mm:ss"
 							/>
-							<!-- value-format="YYYY-MM-DD HH:mm:ss" -->
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
@@ -738,7 +742,7 @@
 						</el-form-item>
 					</el-col>
 					<!-- 售方式为“网购”时展示该字段且必填 -->
-					<template v-if="state.expandForm.orderTypeCode === '30' && state.expandForm.salesModeCode === '114'">
+					<template v-if="state.expandForm.orderTypeCode === 'scjgjjb' && state.expandForm.salesModeCode === '114'">
 						<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
 							<el-form-item label="举报目标" prop="reportTargetObj" :rules="[{ required: true, message: '请选择举报目标', trigger: 'blur' }]">
 								<el-select
@@ -756,7 +760,7 @@
 						</el-col>
 					</template>
 					<!-- 销售方式为“网购”时展示该字段且必填 -->
-					<template v-if="state.expandForm.orderTypeCode === '35' && state.expandForm.salesModeCode === '114'">
+					<template v-if="state.expandForm.orderTypeCode === 'scjgjts' && state.expandForm.salesModeCode === '114'">
 						<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6">
 							<el-form-item label="投诉目标" prop="complainTargetObj" :rules="[{ required: true, message: '请选择投诉目标', trigger: 'blur' }]">
 								<el-select
@@ -800,7 +804,7 @@
 					</template>
 
 					<!-- 销售方式为“现场”时必填,先选择经营地址所属行政区划,后填写详细地址,行政区划展示本市所有区县名称即可 投诉并且销售方式为现场才会有经营地址 -->
-					<template v-if="state.expandForm.salesModeCode === '2' && state.expandForm.orderTypeCode === '35'">
+					<template v-if="state.expandForm.salesModeCode === '2' && state.expandForm.orderTypeCode === 'scjgjts'">
 						<el-col :xs="24" :sm="24" :md="8" :lg="8" :xl="6">
 							<el-form-item label="经营地址" prop="businessArea" :rules="[{ required: true, message: '请选择经营地址', trigger: 'change' }]">
 								<el-cascader
@@ -921,7 +925,7 @@
 						</el-form-item>
 					</el-col>
 					<!-- 投诉展示 -->
-					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" v-if="state.expandForm.orderTypeCode === '35'">
+					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" v-if="state.expandForm.orderTypeCode === 'scjgjts'">
 						<el-form-item label="诉求" prop="complainTypes" :rules="[{ required: false, message: '请选择诉求', trigger: 'change' }]">
 							<el-checkbox-group v-model="state.expandForm.complainTypes">
 								<el-checkbox v-for="item in state.complainTypeOptions" :key="item.key" :label="item">{{ item.value }}</el-checkbox>
@@ -941,7 +945,7 @@
 </template>
 
 <script setup lang="ts" name="oderExpandForm">
-import { reactive, ref, computed, watch } from 'vue';
+import {reactive, ref, computed, watch, onMounted} from 'vue';
 import { useRoute } from 'vue-router';
 import other from '/@/utils/other';
 import { ElMessage, FormInstance } from 'element-plus';
@@ -966,6 +970,9 @@ const state = reactive<any>({
 	expandForm: {
 		orderType: null, // 工单类型
 		orderTypeCode: null, // 工单类型code
+    mailAmount: 0, // 涉及金额
+    exchAmount: 0, // 交易金额
+    mailIsContacted: false, // 是否联系快递公司投诉
 		licenceType: null, //证件类型
 		licenceTypeCode: null, //证件类型code
 		licenceNo: null, //证件号码
@@ -1094,11 +1101,11 @@ const closed = (formEl: FormInstance | undefined) => {
 const problemCascadeRef = ref<RefType>();
 const changeProblems = () => {
 	let currentNode = problemCascadeRef.value.getCheckedNodes();
-	if (state.expandForm.orderTypeCode == '30') {
+	if (state.expandForm.orderTypeCode == 'scjgjjb') {
 		//举报
 		state.expandForm.reportClassify = currentNode[0].label;
 		state.isPatent = currentNode[0].parent?.value === '26';
-	} else if (state.expandForm.orderTypeCode == '35') {
+	} else if (state.expandForm.orderTypeCode == 'scjgjts') {
 		// 投诉
 		state.expandForm.complainClassify = currentNode[0].label;
 		state.isPatent = currentNode[0].parent?.value === '2000';
@@ -1162,6 +1169,7 @@ const saveExpandForm = (formEl: FormInstance | undefined) => {
 		Reflect.deleteProperty(submitObj, 'complainTargetObj'); // 删除无用的参数
 		Reflect.deleteProperty(submitObj, 'reportTargetObj'); // 删除无用的参数
 		Reflect.deleteProperty(submitObj, 'salesChannelObj'); // 删除无用的参数
+		Reflect.deleteProperty(submitObj, 'orderTypeObj'); // 删除无用的参数
 		console.log(submitObj, '提交的参数');
 		emit('saveExpandForm', submitObj);
 		closeDialog();
@@ -1169,7 +1177,7 @@ const saveExpandForm = (formEl: FormInstance | undefined) => {
 };
 watch(
 	() => props.extra,
-	(newVal, oldValue) => {
+	(newVal) => {
 		state.licenceTypeOptions = newVal.ext.licenceTypeOptions ?? []; // 证件类型
 		state.identityTypeOptions = newVal.ext.identityTypeOptions ?? []; // 提供方类型
 		state.identityOptions = newVal.ext.identityOptions ?? []; // 提供方身份
@@ -1187,13 +1195,21 @@ watch(
 		state.reportClassifyOptions = newVal.ext.reportClassifyOptions ?? []; // 举报问题类别
 		state.complainTypeOptions = newVal.ext.complainTypeOptions ?? []; // 诉求列表
 		state.patentTypeOptions = newVal.ext.patentTypeOptions ?? []; // 专利类型
-		state.areaOptions = newVal.area ?? []; //省市区数据
+		state.areaOptions = newVal.ext?.area ?? []; //省市区数据
+    state.orderTypeOptions = newVal.ext.orderTypeOptions ?? []; // 工单类型
 	}
 );
 watch(
 	() => props.orderDetail,
-	(newVal, oldValue) => {
+	(newVal) => {
 		state.expandForm = newVal.orderExtension ?? {};
+    state.expandForm.complainTypes = newVal.orderExtension?.complainTypes ?? [];
+    state.expandForm.orderTypeObj = {
+      //工单类型
+      dicDataValue: state.expandForm.orderTypeCode,
+      dicDataName: state.expandForm.orderType,
+    };
+
 		if (state.expandForm.businessPosition && state.expandForm.businessPosition.areaCode) {
 			// 经营地址
 			state.expandForm.businessArea = state.expandForm.businessPosition.areaCode;

+ 138 - 99
src/views/business/order/accept/index.vue

@@ -253,7 +253,9 @@
 								</el-col>
 								<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
 									<el-form-item label="拓展信息">
-										<el-button @click="showExpandForm"> <SvgIcon name="ele-CirclePlus" class="mr3" size="16px" /> 拓展信息 </el-button>
+										<el-button @click="showExpandForm" :loading="extraLoading">
+											<SvgIcon name="ele-CirclePlus" class="mr3" size="16px" /> 拓展信息
+										</el-button>
 									</el-form-item>
 								</el-col>
 								<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
@@ -341,7 +343,12 @@
 								<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
 									<el-row :gutter="0">
 										<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
-											<el-form-item label="事发地址" prop="areaCode" :rules="[{ required: true, message: '请选择事发地址', trigger: 'change' }]">
+											<el-form-item
+												label="事发地址"
+												prop="areaCode"
+												:rules="[{ required: true, message: '请选择事发地址', trigger: 'change' }]"
+												v-loading="addressLoading"
+											>
 												<el-cascader
 													:options="state.areaOptions"
 													filterable
@@ -490,7 +497,7 @@
 </template>
 
 <script setup lang="ts" name="orderAccept">
-import { computed, defineAsyncComponent, onBeforeMount, onMounted, reactive, ref, watch } from 'vue';
+import { computed, defineAsyncComponent, nextTick, onBeforeMount, onMounted, reactive, ref, watch } from 'vue';
 import type { FormInstance } from 'element-plus';
 import { ElMessage, ElMessageBox } from 'element-plus';
 import { storeToRefs } from 'pinia';
@@ -554,12 +561,12 @@ const state = reactive<any>({
 		isRepeat: 'false', // 是否重复工单 默认否
 		pushType: null, // 推送类型
 		pushTypeCode: null, // 推送类型code
-		content: null, // 工单内容
+		content: '', // 工单内容
 		duplicateIds: [], //重复工单id
 		duplicateTitle: null, // 重复工单标题
 		callAddress: null, // 来电归属地
 		repeatableEventDetails: [], //重复性事件
-    orderExtension: null, // 拓展信息
+		orderExtension: null, // 拓展信息
 	},
 	formLoading: false, // 表单加载状态
 	hotspotExternal: [], // 热点分类外部数据
@@ -570,7 +577,6 @@ const state = reactive<any>({
 	identityTypeOptions: [], //来电人身份
 	licenceTypeOptions: [], // 证件类型
 	ageRangeOptions: [], // 年龄段
-	orderTypeOptions: [], // 工单类型
 	pushTypeOptions: [], //推送分类
 	areaOptions: [], //省市区
 	repeatOptions: [
@@ -796,7 +802,7 @@ const showExpandForm = () => {
 };
 // 拓展表单保存
 const saveExpandForm = (val: any) => {
-  state.ruleForm.orderExtension = val;
+	state.ruleForm.orderExtension = val;
 };
 // 删除不必要的属性
 const deleteUnnecessaryProperties = (obj: any) => {
@@ -805,7 +811,8 @@ const deleteUnnecessaryProperties = (obj: any) => {
 	if (state.orderId) Reflect.deleteProperty(obj, 'files');
 };
 // 是否打开拓展表单
-const shouldOpenDialog = (obj: any) => !ExpandFormRef.value.state.validated;
+const shouldOpenDialog = (obj: any) =>
+	!ExpandFormRef.value.state.validated && obj.orderExtension && obj.orderExtension.orderTypeCode && ['scjgjts,scjgjjb'].includes(obj.orderExtension.orderTypeCode);
 const annexListRef = ref<RefType>(); // 附件列表
 // 保存
 const save = throttle((formEl: FormInstance | undefined) => {
@@ -830,12 +837,11 @@ const save = throttle((formEl: FormInstance | undefined) => {
 				});
 			});
 		};
-    addOrderAndNavigate();
-		// if (shouldOpenDialog(orderDetail)) {
-		// 	ExpandFormRef.value.openDialog(true);
-		// } else {
-		// 	addOrderAndNavigate();
-		// }
+		if (shouldOpenDialog(orderDetail)) {
+			ExpandFormRef.value.openDialog(true);
+		} else {
+			addOrderAndNavigate();
+		}
 	});
 }, 300);
 // 选择来点人身份如果是企业 推送分类自动选择助企纾困
@@ -900,90 +906,9 @@ const orderProcessSuccess = () => {
 	});
 };
 
-// 拓展信息
-const extra = ref<any>({
-	ext: {},
-	area: {},
-});
-onBeforeMount(async () => {
-	state.formLoading = true;
-	try {
-		const [area, res] = await Promise.all([treeArea(), orderBaseDataAdd()]);
-		state.acceptTypeOptions = res.result?.acceptTypeOptions ?? [];
-		state.channelOptions = res.result?.channelOptions ?? [];
-		state.emergencyLevelOptions = res.result?.emergencyLevelOptions ?? [];
-		state.genderOptions = res.result?.genderOptions ?? [];
-		state.identityTypeOptions = res.result?.identityTypeOptions ?? [];
-		state.orderTypeOptions = res.result?.orderTypeOptions ?? [];
-		state.pushTypeOptions = res.result?.pushTypeOptions ?? [];
-		state.licenceTypeOptions = res.result?.licenceTypeOptions ?? [];
-		state.ageRangeOptions = res.result?.ageRangeOptions ?? [];
-		state.ruleForm.seats = `${userInfos.value.name} [${userInfos.value.staffNo}]`;
-		state.areaOptions = area.result ?? []; //省市区数据
-
-		console.log(historyParams, route.params);
-
-		if (route.params.id) {
-			// 如果 有id
-			state.orderId = route.params.id;
-			const response = await orderDetail(route.params.id);
-			// 如果获取到id 调用查询详情
-			state.ruleForm = response.result;
-			if (response.result.duplicateIds && response.result.duplicateIds.length) {
-				// 是否重复
-				state.ruleForm.isRepeat = 'true';
-				state.ruleForm.duplicateTitle = '已选择';
-			} else {
-				state.ruleForm.isRepeat = 'false';
-			}
-
-			state.ruleForm.channel = {
-				// 来源渠道
-				dicDataValue: state.ruleForm.sourceChannelCode,
-				dicDataName: state.ruleForm.sourceChannel,
-			};
-
-			if (state.ruleForm.duplicateIds && state.ruleForm.duplicateIds.length) {
-				// 是否重复
-				state.ruleForm.isRepeat = 'true';
-			} else {
-				state.ruleForm.isRepeat = 'false';
-			}
-			if (state.ruleForm.hotspotExternal) {
-				//热点分类默认展开
-				state.hotspotExternal = state.ruleForm.hotspotExternal.split(',');
-			}
-			state.ruleForm.ageRangeObj = {
-				// 年龄段
-				dicDataValue: state.ruleForm.ageRangeCode,
-				dicDataName: state.ruleForm.ageRange,
-			};
-			state.ruleForm.licenceTypeObj = {
-				// 证件类型
-				dicDataValue: state.ruleForm.licenceTypeCode,
-				dicDataName: state.ruleForm.licenceType,
-			};
-			state.ruleForm.acceptTypeObj = {
-				// 受理类型
-				dicDataValue: state.ruleForm.acceptTypeCode,
-				dicDataName: state.ruleForm.acceptType,
-			};
-			state.ruleForm.pushTypeObj = {
-				// 推送分类
-				dicDataValue: state.ruleForm.pushTypeCode,
-				dicDataName: state.ruleForm.pushType,
-			};
-			searchHistory(state.ruleForm.contact);
-		}
-		state.formLoading = false;
-	} catch (error) {
-		state.formLoading = false;
-	} finally {
-		state.formLoading = false;
-	}
-});
+// 如果是修改加载表单内容
 const historyParams = history.state;
-onMounted(async () => {
+const loadForm = async () => {
 	//  historyParams.createBy  createBy 代表来源  tel:来电弹单  letter:互联网来信 默认表示手动创建
 	if (historyParams.createBy) {
 		state.createBy = historyParams.createBy;
@@ -1002,7 +927,121 @@ onMounted(async () => {
 			};
 		}
 	}
-	const ext = await orderBaseExt(); // 扩展信息
-	extra.value = { ext: ext.result, area: state.areaOptions }; //补充信息
+	if (route.params.id) {
+		// 如果 有id
+		state.orderId = route.params.id;
+		const response = await orderDetail(route.params.id);
+		// 如果获取到id 调用查询详情
+		state.ruleForm = response.result;
+		if (response.result.duplicateIds && response.result.duplicateIds.length) {
+			// 是否重复
+			state.ruleForm.isRepeat = 'true';
+			state.ruleForm.duplicateTitle = '已选择';
+		} else {
+			state.ruleForm.isRepeat = 'false';
+		}
+
+		state.ruleForm.channel = {
+			// 来源渠道
+			dicDataValue: state.ruleForm.sourceChannelCode,
+			dicDataName: state.ruleForm.sourceChannel,
+		};
+
+		if (state.ruleForm.duplicateIds && state.ruleForm.duplicateIds.length) {
+			// 是否重复
+			state.ruleForm.isRepeat = 'true';
+		} else {
+			state.ruleForm.isRepeat = 'false';
+		}
+		if (state.ruleForm.hotspotExternal) {
+			//热点分类默认展开
+			state.hotspotExternal = state.ruleForm.hotspotExternal.split(',');
+		}
+		state.ruleForm.ageRangeObj = {
+			// 年龄段
+			dicDataValue: state.ruleForm.ageRangeCode,
+			dicDataName: state.ruleForm.ageRange,
+		};
+		state.ruleForm.licenceTypeObj = {
+			// 证件类型
+			dicDataValue: state.ruleForm.licenceTypeCode,
+			dicDataName: state.ruleForm.licenceType,
+		};
+		state.ruleForm.acceptTypeObj = {
+			// 受理类型
+			dicDataValue: state.ruleForm.acceptTypeCode,
+			dicDataName: state.ruleForm.acceptType,
+		};
+		state.ruleForm.pushTypeObj = {
+			// 推送分类
+			dicDataValue: state.ruleForm.pushTypeCode,
+			dicDataName: state.ruleForm.pushType,
+		};
+		await nextTick(() => {
+			searchHistory(state.ruleForm.contact);
+		});
+	}
+};
+// 加载基础数据
+const loadBaseData = async () => {
+	state.formLoading = true;
+	try {
+		const res = await orderBaseDataAdd();
+		state.acceptTypeOptions = res.result?.acceptTypeOptions ?? [];
+		state.channelOptions = res.result?.channelOptions ?? [];
+		state.emergencyLevelOptions = res.result?.emergencyLevelOptions ?? [];
+		state.genderOptions = res.result?.genderOptions ?? [];
+		state.identityTypeOptions = res.result?.identityTypeOptions ?? [];
+		orderTypeOptions.value = res.result?.orderTypeOptions ?? [];
+		state.pushTypeOptions = res.result?.pushTypeOptions ?? [];
+		state.licenceTypeOptions = res.result?.licenceTypeOptions ?? [];
+		state.ageRangeOptions = res.result?.ageRangeOptions ?? [];
+		state.ruleForm.seats = `${userInfos.value.name} [${userInfos.value.staffNo}]`;
+		state.formLoading = false;
+		await loadForm();
+	} catch (error) {
+		state.formLoading = false;
+	} finally {
+		state.formLoading = false;
+	}
+};
+// 加载省市区
+const addressLoading = ref<boolean>(false);
+const loadAddress = async () => {
+	addressLoading.value = true;
+	try {
+		const area = await treeArea();
+		state.areaOptions = area.result ?? []; //省市区数据
+		addressLoading.value = false;
+	} catch (error) {
+		console.log(error);
+	} finally {
+		addressLoading.value = false;
+	}
+};
+// 加载扩展信息
+const orderTypeOptions = ref<EmptyObjectType>([]); // 工单类型
+// 拓展信息
+const extra = ref<any>({
+	ext: {},
+	area: {},
+	orderTypeOptions: [],
+});
+const extraLoading = ref<boolean>(false);
+const loadExtra = async () => {
+	extraLoading.value = true;
+	try {
+		const ext = await orderBaseExt(); // 扩展信息
+		extra.value = { ext: { ...ext.result, orderTypeOptions: orderTypeOptions.value, area: state.areaOptions } }; //补充信息
+	} catch (error) {
+		console.log(error);
+	} finally {
+		extraLoading.value = false;
+	}
+};
+onMounted(() => {
+	loadBaseData();
+	loadAddress();
+	loadExtra();
 });
 </script>

+ 12 - 15
src/views/business/order/components/Order-detail.vue

@@ -322,7 +322,7 @@
 		</el-collapse>
 		<!-- 历史工单 -->
 		<div v-show="state.activeName === '1'">
-			<history-order :formData="state.ruleForm" :orderId="state.orderId" ref="historyOrderRef" readonly :maxHeight="500"/>
+			<history-order :formData="state.ruleForm" :orderId="state.orderId" ref="historyOrderRef" readonly :maxHeight="500" />
 		</div>
 		<!-- 回访记录 -->
 		<div v-show="state.activeName === '2'">
@@ -462,15 +462,12 @@
 		<template #footer>
 			<span class="dialog-footer">
 				<el-button type="primary" @click="onRecord" :loading="state.loading" v-auth="'system:workflow:record'">流程明细</el-button>
-        <el-button
-            type="primary"
-            @click="onSubmit('工单撤回')"
-            :loading="state.loading"
-            v-if="[0].includes(state.ruleForm.workflow?.status)"
-        >撤 回(特提)</el-button>
-        <el-button type="primary" @click="onSupervise" :loading="state.loading" v-auth="'business:order:urge:apply'">督 办</el-button>
-        <el-button type="primary" @click="onUrge" :loading="state.loading" v-auth="'business:order:supervise:apply'"> 催 办</el-button>
-        <el-button type="primary" @click="onSubmit('延期申请', '延期附件')" v-auth="'business:order:delay'" :loading="state.loading">延 期</el-button>
+				<el-button type="primary" @click="onSubmit('工单撤回')" :loading="state.loading" v-if="[0].includes(state.ruleForm.workflow?.status)"
+					>撤 回(特提)</el-button
+				>
+				<el-button type="primary" @click="onSupervise" :loading="state.loading" v-auth="'business:order:urge:apply'">督 办</el-button>
+				<el-button type="primary" @click="onUrge" :loading="state.loading" v-auth="'business:order:supervise:apply'"> 催 办</el-button>
+				<el-button type="primary" @click="onSubmit('延期申请', '延期附件')" v-auth="'business:order:delay'" :loading="state.loading">延 期</el-button>
 				<!-- 工单未归档和可以办理展示办理按钮 -->
 				<el-button
 					type="primary"
@@ -481,12 +478,12 @@
 					>办 理</el-button
 				>
 				<!-- 流程结束之后不展示补充按钮 -->
-<!--				<el-button type="primary" @click="onSupply" :loading="state.loading" v-if="[0].includes(state.workflow.status)" v-auth="'workflow:supply'"
+				<!--				<el-button type="primary" @click="onSupply" :loading="state.loading" v-if="[0].includes(state.workflow.status)" v-auth="'workflow:supply'"
 					>补 充</el-button
 				>-->
-<!--				<el-button type="primary" @click="onRevoke" :loading="state.loading" v-auth="'business:order:revoke'">撤 销</el-button>-->
+				<!--				<el-button type="primary" @click="onRevoke" :loading="state.loading" v-auth="'business:order:revoke'">撤 销</el-button>-->
 				<!-- 工单未归档都可以撤回 -->
-<!--				<el-button
+				<!--				<el-button
 					type="primary"
 					@click="onSubmit('工单撤回')"
 					:loading="state.loading"
@@ -495,7 +492,7 @@
 					>撤 回(特提)</el-button
 				>-->
 				<!-- 工单未归档和可以办理展示退回按钮 -->
-<!--				<el-button
+				<!--				<el-button
 					type="primary"
 					@click="onSubmit('工单退回')"
 					:loading="state.loading"
@@ -822,4 +819,4 @@ defineExpose({
 <style lang="scss">
 .order-detail-dialog {
 }
-</style>
+</style>

+ 47 - 8
src/views/business/secondVisit/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="business-countersign-container layout-pd">
+  <div class="business-secondVisit-container layout-pd">
     <!-- 搜索  -->
     <el-card shadow="never">
       <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent class="mt15" label-width="100px">
@@ -9,6 +9,13 @@
               <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="VisitApplyState">
+              <el-select v-model="state.queryParams.VisitApplyState" placeholder="请选择审批状态" clearable class="w100">
+                <el-option v-for="item in visitApplyState" :value="item.key" :key="item.key" :label="item.value" />
+              </el-select>
+            </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>
@@ -113,6 +120,8 @@
     </el-card>
     <!-- 二次回访 -->
     <second-visit ref="secondVisitRef" />
+    <!-- 流程审批 -->
+    <process-audit ref="processAuditRef" @orderProcessSuccess="queryList" />
   </div>
 </template>
 <script setup lang="ts" name="secondVisit">
@@ -122,8 +131,10 @@ import {auth} from '/@/utils/authFunction';
 import {throttle,} from '/@/utils/tools';
 import {formatDate} from '/@/utils/formatTime';
 import {useRouter} from "vue-router";
+import {secondVisitBaseData,secondVisitList} from '/@/api/business/secondVisit';
 // 引入组件
 const SecondVisit = defineAsyncComponent(() => import('/@/views/business/secondVisit/components/Visit.vue'));
+const ProcessAudit = defineAsyncComponent(() => import('/@/components/ProcessAudit/index.vue')); // 流程审批
 // 定义变量内容
 const ruleFormRef = ref<RefType>(); // 表单ref
 const router = useRouter(); // 路由
@@ -133,15 +144,34 @@ const state = reactive(<any>{
     PageIndex: 1,
     PageSize: 10,
     Keyword: null, // 关键字
+    VisitApplyState: null, // 回访状态
   },
   tableData: [{}], //表单
   loading: false, // 加载
   total: 0, // 总数
 });
+// 基础信息
+const visitApplyState = ref<EmptyArrayType>([]); // 回访状态
+const getBaseData = async()=>{
+  try {
+    const res = await secondVisitBaseData();
+    visitApplyState.value = res.result?.visitApplyState ?? [];
+  } catch (error) {
+    console.log(error);
+  }
+}
 /** 获取列表 */
 const queryList = throttle(() => {
   if (!auth('business:secondVisit:query')) ElMessage.error('抱歉,您没有权限查看二次回访申请!');
   else {
+    secondVisitList(state.queryParams)
+      .then((res) => {
+        // state.tableData = res.result?.items ?? [];
+        // state.total = res.result?.total ?? 0;
+      })
+      .catch((err) => {
+        console.log(err);
+      });
   }
 }, 300);
 
@@ -163,16 +193,25 @@ const onExport = () => {
 };
 // 二次回访
 const secondVisitRef = ref<RefType>(); // 二次回访
+const processAuditRef = ref<RefType>(); // 流程审批
 const onSecondVisit = (row:any)=>{
-  secondVisitRef.value.openDialog(row)
+  console.log(row,'2121')
+  // secondVisitRef.value.openDialog(row)
+
+  const params = {
+    id: '',
+    processType: '二次回访申请',
+    orderDetail: row.order,
+    extra: {
+      dialogTitle: '二次回访申请',
+      inputPlaceholder: '办理意见',
+      annexName:'二次回访申请附件',
+    },
+  };
+  processAuditRef.value.openDialog(params);
 }
 onMounted( () => {
+  getBaseData();
   queryList();
 });
 </script>
-
-<style scoped lang="scss">
-.business-countersign-container {
-
-}
-</style>

+ 12 - 7
src/views/business/secondVisitAudit/index.vue

@@ -1,5 +1,5 @@
 <template>
-	<div class="business-countersign-container layout-pd">
+	<div class="business-secondVisitAudit-container layout-pd">
 		<!-- 搜索  -->
 		<el-card shadow="never">
 			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent class="mt15" label-width="100px">
@@ -119,6 +119,7 @@ import { auth } from '/@/utils/authFunction';
 import { throttle } from '/@/utils/tools';
 import { formatDate } from '/@/utils/formatTime';
 import { useRouter } from 'vue-router';
+import {secondVisitList} from "/@/api/business/secondVisit";
 // 引入组件
 const CountersignDetail = defineAsyncComponent(() => import('/@/views/query/countersign/detail/index.vue'));
 // 定义变量内容
@@ -130,6 +131,7 @@ const state = reactive(<any>{
 		PageIndex: 1,
 		PageSize: 10,
 		Keyword: null, // 关键字
+    VisitApplyState:'0', // 审批中
 	},
 	tableData: [{}], //表单
 	loading: false, // 加载
@@ -139,6 +141,14 @@ const state = reactive(<any>{
 const queryList = throttle(() => {
 	if (!auth('business:secondVisitAudit:query')) ElMessage.error('抱歉,您没有权限查看二次回访审批!');
 	else {
+    secondVisitList(state.queryParams)
+        .then((res) => {
+          state.tableData = res.result?.items ?? [];
+          state.total = res.result?.total ?? 0;
+        })
+        .catch((err) => {
+          console.log(err);
+        });
 	}
 }, 300);
 
@@ -166,9 +176,4 @@ const onAudit = (row: any) => {
 onMounted(() => {
 	queryList();
 });
-</script>
-
-<style scoped lang="scss">
-.business-countersign-container {
-}
-</style>
+</script>

+ 1 - 1
src/views/knowledge/index/index.vue

@@ -190,7 +190,7 @@
 										type="primary"
 										@click="onAudit(row)"
 										title="审批"
-										v-if="[1, 2].includes(row.status)"
+										v-if="[1, 2].includes(row.status) && row.isCanHandle"
 										v-auth="'business:order:handle'"
 									>
 										审批

+ 37 - 13
src/views/query/overdue/index.vue

@@ -28,13 +28,17 @@
       <!-- 表格 -->
       <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></el-table-column>
-        <el-table-column prop="acceptTypeText" label="省/市工单" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="no" label="当前节点" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="acceptTypeText" label="工单状态" show-overflow-tooltip></el-table-column>
-        <el-table-column label="工单标题" show-overflow-tooltip width="400">
+        <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 }">
-            <el-button link type="primary">{{ row.title }}</el-button>
+            <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 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="170">
@@ -52,14 +56,21 @@
             <span>{{ formatDate(row.filedTime, '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 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="acceptTypeText" label="中心会签" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="acceptTypeText" label="来源方式" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="hotspotName" label="热点分类" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="hotspotName" label="受理人" show-overflow-tooltip></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="100"></el-table-column>
+        <el-table-column label="受理人" show-overflow-tooltip width="170">
+          <template #default="{ row }">
+						<span
+            >{{ row.acceptorName }} <span v-if="row.acceptorStaffNo">[{{ row.acceptorStaffNo }}]</span>
+						</span>
+          </template>
+        </el-table-column>
         <el-table-column label="操作" width="160" fixed="right" align="center">
           <template #default="{ row }">
             <el-button link type="primary" @click="onDetail(row)" title="查看工单详情" v-auth="'business:order:overdue:detail'"> 工单详情 </el-button>
@@ -88,6 +99,8 @@ import {auth} from '/@/utils/authFunction';
 import {throttle,} from '/@/utils/tools';
 import {formatDate} from '/@/utils/formatTime';
 import {useRouter} from "vue-router";
+import {overdueList} from "/@/api/query/overdue";
+
 // 引入组件
 const OrderDetail = defineAsyncComponent(() => import('/@/views/business/order/components/Order-detail.vue'));
 
@@ -110,6 +123,17 @@ const state = reactive(<any>{
 const queryList = throttle(() => {
   if (!auth('query:order:overdue:query')) ElMessage.error('抱歉,您没有权限查看工单超期列表!');
   else {
+    state.loading = true;
+    overdueList(state.queryParams)
+        .then((res) => {
+          state.tableData = res.result?.items ?? [];
+          state.total = res.result?.total ?? 0;
+          state.loading = false;
+        })
+        .catch((err) => {
+          console.log(err);
+          state.loading = false;
+        });
   }
 }, 300);
 

+ 127 - 113
src/views/query/overdue/node/index.vue

@@ -1,97 +1,100 @@
 <template>
-  <div class="query-nodeOverdue-container layout-pd">
-    <!-- 搜索  -->
-    <el-card shadow="never">
-      <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent class="mt15" label-width="100px">
-        <el-row :gutter="10">
-          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
-            <el-form-item label="工单标题" prop="Keyword">
-              <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=" ">
-                <el-button type="primary" @click="queryList" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
-                <el-button @click="resetQuery(ruleFormRef)" v-waves class="default-button" :loading="state.loading"> <SvgIcon name="ele-Refresh" class="mr5" />重置 </el-button>
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-    </el-card>
-    <el-card shadow="never">
-      <!-- 功能按钮 -->
-      <div class="mb20">
-          <el-button type="primary" @click="onExport" v-auth="'business:node:overdue:export'" :disabled="!multipleSelection.length">
-            <SvgIcon name="iconfont icon-daochu" class="mr5" />导出
-          </el-button>
-      </div>
-      <!-- 表格 -->
-      <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></el-table-column>
-        <el-table-column prop="acceptTypeText" label="省/市工单" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="no" label="当前节点" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="acceptTypeText" label="工单状态" show-overflow-tooltip></el-table-column>
-        <el-table-column label="工单标题" show-overflow-tooltip width="400">
-          <template #default="{ row }">
-            <el-button link type="primary">{{ row.title }}</el-button>
-          </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">
-          <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 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="160" fixed="right" align="center">
-          <template #default="{ row }">
-            <el-button link type="primary" @click="onDetail(row)" title="查看工单详情" v-auth="'business:node:overdue:detail'"> 工单详情 </el-button>
-          </template>
-        </el-table-column>
-        <template #empty>
-          <Empty />
-        </template>
-      </el-table>
-      <!-- 分页 -->
-      <pagination
-          :total="state.total"
-          v-model:page="state.queryParams.PageIndex"
-          v-model:limit="state.queryParams.PageSize"
-          @pagination="queryList"
-      />
-    </el-card>
-    <!-- 工单详情 -->
-    <order-detail ref="OrderDetailRef" @updateList="queryList" />
-  </div>
+	<div class="query-nodeOverdue-container layout-pd">
+		<!-- 搜索  -->
+		<el-card shadow="never">
+			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent class="mt15" label-width="100px">
+				<el-row :gutter="10">
+					<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
+						<el-form-item label="工单标题" prop="Keyword">
+							<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=" ">
+							<el-button type="primary" @click="queryList" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
+							<el-button @click="resetQuery(ruleFormRef)" v-waves class="default-button" :loading="state.loading">
+								<SvgIcon name="ele-Refresh" class="mr5" />重置
+							</el-button>
+						</el-form-item>
+					</el-col>
+				</el-row>
+			</el-form>
+		</el-card>
+		<el-card shadow="never">
+			<!-- 功能按钮 -->
+			<div class="mb20">
+				<el-button type="primary" @click="onExport" v-auth="'business:node:overdue:export'" :disabled="!multipleSelection.length">
+					<SvgIcon name="iconfont icon-daochu" class="mr5" />导出
+				</el-button>
+			</div>
+			<!-- 表格 -->
+			<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></el-table-column>
+				<el-table-column prop="acceptTypeText" label="省/市工单" show-overflow-tooltip></el-table-column>
+				<el-table-column prop="no" label="当前节点" show-overflow-tooltip></el-table-column>
+				<el-table-column prop="acceptTypeText" label="工单状态" show-overflow-tooltip></el-table-column>
+				<el-table-column label="工单标题" show-overflow-tooltip width="400">
+					<template #default="{ row }">
+						<el-button link type="primary">{{ row.title }}</el-button>
+					</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">
+					<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 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="160" fixed="right" align="center">
+					<template #default="{ row }">
+						<el-button link type="primary" @click="onDetail(row)" title="查看工单详情" v-auth="'business:node:overdue:detail'"> 工单详情 </el-button>
+					</template>
+				</el-table-column>
+				<template #empty>
+					<Empty />
+				</template>
+			</el-table>
+			<!-- 分页 -->
+			<pagination
+				:total="state.total"
+				v-model:page="state.queryParams.PageIndex"
+				v-model:limit="state.queryParams.PageSize"
+				@pagination="queryList"
+			/>
+		</el-card>
+		<!-- 工单详情 -->
+		<order-detail ref="OrderDetailRef" @updateList="queryList" />
+	</div>
 </template>
 <script setup lang="ts" name="nodeOverdue">
-import {defineAsyncComponent, onMounted, reactive, ref} from 'vue';
-import {ElButton, ElMessage, FormInstance} from 'element-plus';
-import {auth} from '/@/utils/authFunction';
-import {throttle,} from '/@/utils/tools';
-import {formatDate} from '/@/utils/formatTime';
-import {useRouter} from "vue-router";
+import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
+import { ElButton, ElMessage, FormInstance } from 'element-plus';
+import { auth } from '/@/utils/authFunction';
+import { throttle } from '/@/utils/tools';
+import { formatDate } from '/@/utils/formatTime';
+import { useRouter } from 'vue-router';
+import { overdueNodeList } from '/@/api/query/overdueNode';
 // 引入组件
 const OrderDetail = defineAsyncComponent(() => import('/@/views/business/order/components/Order-detail.vue'));
 
@@ -100,45 +103,56 @@ const ruleFormRef = ref<RefType>(); // 表单ref
 const searchCol = ref(true); // 是否显示搜索栏
 const router = useRouter(); // 路由
 const state = reactive(<any>{
-  queryParams: {
-    // 查询条件
-    PageIndex: 1,
-    PageSize: 10,
-    Keyword: null, // 关键字
-  },
-  tableData: [{}], //表单
-  loading: false, // 加载
-  total: 0, // 总数
+	queryParams: {
+		// 查询条件
+		PageIndex: 1,
+		PageSize: 10,
+		Keyword: null, // 关键字
+	},
+	tableData: [{}], //表单
+	loading: false, // 加载
+	total: 0, // 总数
 });
 /** 获取列表 */
 const queryList = throttle(() => {
-  if (!auth('query:node:overdue:query')) ElMessage.error('抱歉,您没有权限查看节点超期列表!');
-  else {
-  }
+	if (!auth('query:node:overdue:query')) ElMessage.error('抱歉,您没有权限查看节点超期列表!');
+	else {
+		state.loading = true;
+    overdueNodeList(state.queryParams)
+			.then((res) => {
+				state.tableData = res.result?.items ?? [];
+				state.total = res.result?.total ?? 0;
+        state.loading = false;
+			})
+			.catch((err) => {
+				console.log(err);
+        state.loading = false;
+			});
+	}
 }, 300);
 
 /** 重置按钮操作 */
 const resetQuery = throttle((formEl: FormInstance | undefined) => {
-  if (!formEl) return;
-  formEl.resetFields();
-  queryList();
+	if (!formEl) return;
+	formEl.resetFields();
+	queryList();
 }, 300);
 // 表格多选
-const multipleTableRef = ref<RefType>()
-const multipleSelection = ref<any>([])
+const multipleTableRef = ref<RefType>();
+const multipleSelection = ref<any>([]);
 const handleSelectionChange = (val: any[]) => {
-  multipleSelection.value = val
-}
+	multipleSelection.value = val;
+};
 // 导出
 const onExport = () => {
-  console.log('导出');
+	console.log('导出');
 };
 // 查看工单详情
 const OrderDetailRef = ref<RefType>(); // 工单详情ref
 const onDetail = (row: any) => {
-  OrderDetailRef.value.openDialog()
+	OrderDetailRef.value.openDialog();
 };
 onMounted(async () => {
-  queryList();
+	queryList();
 });
 </script>

+ 1 - 0
src/views/system/config/dict/component/Dict-add.vue

@@ -80,6 +80,7 @@ const openDialog = async (typeId:string) => {
 		const res: any = await dicTypeList();
 		state.dicTypeList = res.result ?? [];
     state.ruleForm.dicTypeId = typeId;
+    changeDicType(typeId);
 		state.dialogVisible = true;
 	} catch (error) {
 		console.log(error);