|
@@ -18,7 +18,7 @@
|
|
|
<el-form :model="state.ruleForm" label-width="110px" ref="ruleFormRef" v-loading="state.loading">
|
|
|
<slot name="header"></slot>
|
|
|
<el-row :gutter="10">
|
|
|
-<!-- <el-col>
|
|
|
+ <!-- <el-col>
|
|
|
<el-form-item label="当前选择的流程">
|
|
|
{{ seatTopaidan ? '话务部到派单组' : '' }}
|
|
|
{{ seatToOrgOne ? '话务部到一级部门' : '' }}
|
|
@@ -337,29 +337,29 @@
|
|
|
</template>
|
|
|
<!-- 派单组流转到归档 派单组到一级部门 -->
|
|
|
<template v-if="paidanToOrgOne || paidanToEnd">
|
|
|
- <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
|
|
|
- <el-form-item label="市州转办" prop="transpond" :rules="[{ required: false, message: '请选择市州转办', trigger: 'change' }]">
|
|
|
- <el-select v-model="state.ruleForm.transpond" placeholder="请选择市州转办" class="w100" @change="changeTransPond">
|
|
|
- <el-option :key="true" label="是" :value="true" />
|
|
|
- <el-option :key="false" label="否" :value="false" />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <!-- 必填,若“是否市州互转”为“是”,则展示选择市州选择框 -->
|
|
|
- <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12" v-if="state.ruleForm.transpond">
|
|
|
- <el-form-item prop="transpondCityObj" label-width="10px" :rules="[{ required: true, message: '请选择转办市州', trigger: 'change' }]">
|
|
|
- <el-select
|
|
|
- v-model="state.ruleForm.transpondCityObj"
|
|
|
- placeholder="请选择转办市州"
|
|
|
- class="w100"
|
|
|
- value-key="dicDataValue"
|
|
|
- @change="changeTranspondCity"
|
|
|
- clearable
|
|
|
- >
|
|
|
- <el-option v-for="item in transpondCity" :key="item.dicDataValue" :label="item.dicDataName" :value="item" />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
+ <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
|
|
|
+ <el-form-item label="市州转办" prop="transpond" :rules="[{ required: false, message: '请选择市州转办', trigger: 'change' }]">
|
|
|
+ <el-select v-model="state.ruleForm.transpond" placeholder="请选择市州转办" class="w100" @change="changeTransPond">
|
|
|
+ <el-option :key="true" label="是" :value="true" />
|
|
|
+ <el-option :key="false" label="否" :value="false" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <!-- 必填,若“是否市州互转”为“是”,则展示选择市州选择框 -->
|
|
|
+ <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12" v-if="state.ruleForm.transpond">
|
|
|
+ <el-form-item prop="transpondCityObj" label-width="10px" :rules="[{ required: true, message: '请选择转办市州', trigger: 'change' }]">
|
|
|
+ <el-select
|
|
|
+ v-model="state.ruleForm.transpondCityObj"
|
|
|
+ placeholder="请选择转办市州"
|
|
|
+ class="w100"
|
|
|
+ value-key="dicDataValue"
|
|
|
+ @change="changeTranspondCity"
|
|
|
+ clearable
|
|
|
+ >
|
|
|
+ <el-option v-for="item in transpondCity" :key="item.dicDataValue" :label="item.dicDataName" :value="item" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
</template>
|
|
|
<!-- 派单组到一级部门 -->
|
|
|
<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12" v-if="paidanToOrgOne">
|
|
@@ -370,7 +370,7 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<!-- 一级部门流转到归档 或者 部门流转至部门汇总 并且不能是会签-->
|
|
|
- <template v-if="(orgOneToEnd || orgToOrgSummary) && !isCountersign">
|
|
|
+ <template v-if="(orgOneToEnd || orgToOrgSummary) && !isCountersign && ['ZiGong'].includes(themeConfig.appScope)">
|
|
|
<el-col :span="24">
|
|
|
<el-form-item prop="checkedCities" :rules="[{ required: true, message: '至少选择一项', trigger: 'change' }]">
|
|
|
<el-checkbox-group v-model="state.ruleForm.checkedCities" @change="changeCheckBox">
|
|
@@ -465,9 +465,7 @@
|
|
|
</el-form>
|
|
|
<template #footer>
|
|
|
<span class="dialog-footer">
|
|
|
- <el-text type="danger" class="mr15" tag="b" v-if="showTempSave"
|
|
|
- >温馨提示:临时保存只保存{{ state.inputPlaceholder }}</el-text
|
|
|
- >
|
|
|
+ <el-text type="danger" class="mr15" tag="b" v-if="showTempSave">温馨提示:临时保存只保存{{ state.inputPlaceholder }}</el-text>
|
|
|
<el-button @click="closeDialog" class="default-button">取消</el-button>
|
|
|
<el-button type="primary" @click="handleTempSave" :loading="state.loading" v-if="showTempSave">临时保存</el-button>
|
|
|
<template v-if="seatTopaidan || seatToOrgOne">
|
|
@@ -514,6 +512,7 @@ import {
|
|
|
} from '@/api/business/order';
|
|
|
import { orderPrevious, workflowNextSteps, workflowNextStepsByOrder, workflowNextStepsByOrderInstead } from '@/api/system/workflow';
|
|
|
import { useAppConfig } from '@/stores/appConfig';
|
|
|
+import { useThemeConfig } from '@/stores/themeConfig';
|
|
|
|
|
|
// 引入组件
|
|
|
const CommonAdvice = defineAsyncComponent(() => import('@/components/CommonAdvice/index.vue')); // 常用意见
|
|
@@ -566,13 +565,16 @@ const state = reactive<any>({
|
|
|
orderDetail: {}, // 工单详情
|
|
|
});
|
|
|
const ruleFormRef = ref<RefType>(); //表单组件
|
|
|
-const handelArr = ['工单办理','工单代办','工单受理']; // 处于办理状态的流程
|
|
|
+const handelArr = ['工单办理', '工单代办', '工单受理']; // 处于办理状态的流程
|
|
|
const returnArr = ['工单退回']; // 退回流程 (退回流程不需要展示其他 只需要填写意见和附件即可)
|
|
|
const appConfigStore = useAppConfig();
|
|
|
const { AppConfigInfo } = storeToRefs(appConfigStore); // 系统配置信息
|
|
|
-const showTempSave = computed(()=>{ // 是否显示临时办理
|
|
|
- return ['工单办理','工单代办','工单受理'].includes(state.processType)
|
|
|
-})
|
|
|
+const showTempSave = computed(() => {
|
|
|
+ // 是否显示临时办理
|
|
|
+ return ['工单办理', '工单代办', '工单受理'].includes(state.processType);
|
|
|
+});
|
|
|
+const storesThemeConfig = useThemeConfig();
|
|
|
+const { themeConfig } = storeToRefs(storesThemeConfig);
|
|
|
// 打开弹窗
|
|
|
const openDialog = async (val: any) => {
|
|
|
console.log(val);
|
|
@@ -592,7 +594,7 @@ const openDialog = async (val: any) => {
|
|
|
state.orderDetail = orderDetail ?? {}; // 工单详情
|
|
|
state.ruleForm.isStepUrgent = orderDetail.isStepUrgent; // 是否紧急
|
|
|
state.ruleForm.isEvasive = orderDetail.isEvasive; // 是否推诿
|
|
|
- state.ruleForm.isInactively = orderDetail.isInactively;// 是否不积极
|
|
|
+ state.ruleForm.isInactively = orderDetail.isInactively; // 是否不积极
|
|
|
const { dialogTitle, inputPlaceholder, annexName, classify } = extra ?? {};
|
|
|
state.dialogTitle = dialogTitle ?? '提交流程'; // 流程标题
|
|
|
state.annexName = annexName ?? '办理附件'; // 附件标题
|
|
@@ -687,7 +689,8 @@ const handleResult = (res: any) => {
|
|
|
state.ruleForm.nextStepCode = '';
|
|
|
state.ruleForm.nextStepName = '';
|
|
|
}
|
|
|
- if (res.result.opinion) {// 如果有汇总意见没有临时保存 取汇总意见 临时保存会覆盖汇总意见
|
|
|
+ if (res.result.opinion) {
|
|
|
+ // 如果有汇总意见没有临时保存 取汇总意见 临时保存会覆盖汇总意见
|
|
|
setTimeout(() => {
|
|
|
state.ruleForm.opinion = res.result.opinion;
|
|
|
}, 100);
|
|
@@ -721,7 +724,12 @@ const paidanToEnd = computed(() => {
|
|
|
});
|
|
|
// 一级部门到归档
|
|
|
const orgOneToEnd = computed(() => {
|
|
|
- return currentParams.value.currentStepBusinessType === 2 && currentParams.value.currentStepType !== 3 && currentParams.value.currentOrgLevel === 1 && selectNext.value.key === 'end';
|
|
|
+ return (
|
|
|
+ currentParams.value.currentStepBusinessType === 2 &&
|
|
|
+ currentParams.value.currentStepType !== 3 &&
|
|
|
+ currentParams.value.currentOrgLevel === 1 &&
|
|
|
+ selectNext.value.key === 'end'
|
|
|
+ );
|
|
|
});
|
|
|
// 部门流转到部门
|
|
|
const orgToOrg = computed(() => {
|
|
@@ -729,7 +737,12 @@ const orgToOrg = computed(() => {
|
|
|
});
|
|
|
// 部门到部门汇总
|
|
|
const orgToOrgSummary = computed(() => {
|
|
|
- return currentParams.value.currentStepBusinessType === 2 && currentParams.value.currentStepType !== 3 && selectNext.value.businessType === 2 && selectNext.value.stepType === 3;
|
|
|
+ return (
|
|
|
+ currentParams.value.currentStepBusinessType === 2 &&
|
|
|
+ currentParams.value.currentStepType !== 3 &&
|
|
|
+ selectNext.value.businessType === 2 &&
|
|
|
+ selectNext.value.stepType === 3
|
|
|
+ );
|
|
|
});
|
|
|
// 部门流转到部门领导
|
|
|
const orgToOrgLeader = computed(() => {
|
|
@@ -741,11 +754,21 @@ const orgReturnOrg = computed(() => {
|
|
|
});
|
|
|
// 部门汇总到部门汇总
|
|
|
const orgSummaryToOrgSummary = computed(() => {
|
|
|
- return currentParams.value.currentStepBusinessType === 2 && currentParams.value.currentStepType === 3 && selectNext.value.businessType === 2 && selectNext.value.stepType === 3;
|
|
|
+ return (
|
|
|
+ currentParams.value.currentStepBusinessType === 2 &&
|
|
|
+ currentParams.value.currentStepType === 3 &&
|
|
|
+ selectNext.value.businessType === 2 &&
|
|
|
+ selectNext.value.stepType === 3
|
|
|
+ );
|
|
|
});
|
|
|
// 部门汇总到归档
|
|
|
const orgSummaryToEnd = computed(() => {
|
|
|
- return currentParams.value.currentStepBusinessType === 2 && currentParams.value.currentStepType === 3 && currentParams.value.currentOrgLevel === 1 && selectNext.value.key === 'end';
|
|
|
+ return (
|
|
|
+ currentParams.value.currentStepBusinessType === 2 &&
|
|
|
+ currentParams.value.currentStepType === 3 &&
|
|
|
+ currentParams.value.currentOrgLevel === 1 &&
|
|
|
+ selectNext.value.key === 'end'
|
|
|
+ );
|
|
|
});
|
|
|
// 判断当前节点是否在会签中 0中心会签 1部门会签
|
|
|
const isCountersign = computed(() => {
|
|
@@ -763,7 +786,7 @@ const isNotShowNextHandlers = ref(false);
|
|
|
const restFormData = () => {
|
|
|
state.ruleForm.nextHandlers = [];
|
|
|
state.ruleForm.nextHandler = {};
|
|
|
-/* state.ruleForm.isStepUrgent = null;
|
|
|
+ /* state.ruleForm.isStepUrgent = null;
|
|
|
state.ruleForm.isEvasive = null;
|
|
|
state.ruleForm.isInactively = null;*/
|
|
|
state.ruleForm.leaderSMSKey = null;
|
|
@@ -791,6 +814,8 @@ const restFormData = () => {
|
|
|
levelThreeStepOptions.value = [];
|
|
|
levelThreeHandleOptions.value = [];
|
|
|
};
|
|
|
+// 办理对象是否必填
|
|
|
+const nextHandlersRequired = ref<Boolean>(false);
|
|
|
// 流程选择下一环节
|
|
|
const selectNext = ref<EmptyObjectType>({}); // 选择的下一个节点
|
|
|
const selectNextStep = (val: any) => {
|
|
@@ -819,6 +844,8 @@ const selectNextStep = (val: any) => {
|
|
|
// 如果办理对象只有一个默认选中
|
|
|
state.ruleForm.nextHandlers = [items[0]];
|
|
|
}
|
|
|
+ // 如果是泸州话务部到派单组需要必填办理对象
|
|
|
+ nextHandlersRequired.value = ['LuZhou'].includes(themeConfig.value.appScope) && seatTopaidan.value;
|
|
|
|
|
|
// 以下是默认需要吧短信勾上的场景 话务到部门、派单到一级部门、部门到部门、部门到汇总、部门到部门领导 部门退回到部门
|
|
|
state.ruleForm.isSms =
|
|
@@ -828,7 +855,13 @@ const selectNextStep = (val: any) => {
|
|
|
seatToOrgOne.value || paidanToOrgOne.value || orgToOrg.value || orgToOrgSummary.value || orgToOrgLeader.value || orgReturnOrg.value;
|
|
|
// 是否不展示办理对象 (话务部到一级部门 派单组到一级部门 派单到归档 一级部门到归档 部门到部门 部门到汇总)
|
|
|
isNotShowNextHandlers.value =
|
|
|
- seatToOrgOne.value || paidanToOrgOne.value || paidanToEnd.value || orgOneToEnd.value || orgToOrg.value || orgToOrgSummary.value || orgSummaryToEnd.value;
|
|
|
+ seatToOrgOne.value ||
|
|
|
+ paidanToOrgOne.value ||
|
|
|
+ paidanToEnd.value ||
|
|
|
+ orgOneToEnd.value ||
|
|
|
+ orgToOrg.value ||
|
|
|
+ orgToOrgSummary.value ||
|
|
|
+ orgSummaryToEnd.value;
|
|
|
};
|
|
|
|
|
|
// 会签是否可用 (多个办理对象,并且配置可以会签)
|
|
@@ -1100,8 +1133,7 @@ const selectOrgLevelThree = (val: any) => {
|
|
|
}
|
|
|
};
|
|
|
const selectOrgLevelThreeHandler = () => {};
|
|
|
-// 办理对象是否必填
|
|
|
-const nextHandlersRequired = ref<Boolean>(false);
|
|
|
+
|
|
|
/*watch(
|
|
|
() => state.ruleForm.nextStepCode,
|
|
|
(val) => {
|
|
@@ -1114,12 +1146,14 @@ const nextHandlersRequired = ref<Boolean>(false);
|
|
|
/* <el-checkbox v-model="state.ruleForm.realIsContacted" label="已与市民电话联系,确认办理结果" />
|
|
|
<el-checkbox v-model="state.ruleForm.realContactLocale" label="已赴现场处置,将处理结果告知市民" />
|
|
|
<el-checkbox v-model="state.ruleForm.isOther" label="其他" />*/
|
|
|
-const changeCheckBox = (val:any)=>{
|
|
|
+const changeCheckBox = (val: any) => {
|
|
|
state.ruleForm.realIsContacted = val.includes('0');
|
|
|
state.ruleForm.realContactLocale = val.includes('1');
|
|
|
state.ruleForm.isOther = val.includes('2');
|
|
|
- console.log(`是否已与市民电话联系,确认办理结果:${val.includes('0')},是否已赴现场处置,将处理结果告知市民${val.includes('1')},是否其他${val.includes('2')}`)
|
|
|
-}
|
|
|
+ console.log(
|
|
|
+ `是否已与市民电话联系,确认办理结果:${val.includes('0')},是否已赴现场处置,将处理结果告知市民${val.includes('1')},是否其他${val.includes('2')}`
|
|
|
+ );
|
|
|
+};
|
|
|
// 设置抽屉
|
|
|
const dialogRef = ref<RefType>();
|
|
|
const mouseup = () => {
|
|
@@ -1263,7 +1297,7 @@ const onSubmit = (formEl: FormInstance | undefined) => {
|
|
|
});
|
|
|
break;
|
|
|
case '工单退回':
|
|
|
- const requestReturn = { ...submitObj, files: handleFiles.value }
|
|
|
+ const requestReturn = { ...submitObj, files: handleFiles.value };
|
|
|
orderPrevious(requestReturn)
|
|
|
.then(() => {
|
|
|
afterSubmit('orderProcessSuccess', true, '退回申请成功');
|