|
@@ -120,12 +120,12 @@
|
|
|
<el-radio-group v-model="state.ruleForm.orderAssignMode" @change="selectDispatchType">
|
|
|
<el-radio :value="0">逐级派单</el-radio>
|
|
|
<el-radio :value="1">跨级派单</el-radio>
|
|
|
- <el-radio :value="2">主协办</el-radio>
|
|
|
+<!-- <el-radio :value="2">主协办</el-radio>-->
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="24" v-if="state.ruleForm.orderAssignMode === 0">
|
|
|
- <el-row class="w100" :key="Math.random()">
|
|
|
+ <el-row class="w100">
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="接办部门" prop="nextHandlers" :rules="[{ required: true, message: '请选择接办部门', trigger: 'change' }]">
|
|
|
<!-- <el-select v-model="state.ruleForm.paidanObj" placeholder="请选择接办部门" class="w100" filterable multiple>
|
|
@@ -166,31 +166,45 @@
|
|
|
</el-row>
|
|
|
</el-col>
|
|
|
<el-col :span="24" v-if="state.ruleForm.orderAssignMode === 1">
|
|
|
- <el-form-item label="接办部门" prop="nextHandlers" :rules="[{ required: true, message: '请选择接办部门', trigger: 'change' }]" :key="Math.random()">
|
|
|
- <el-row class="w100" :gutter="10">
|
|
|
- <el-col :span="12">
|
|
|
+ <el-row class="w100" :gutter="10">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="接办部门" prop="nextHandler" :rules="[{ required: true, message: '请选择接办部门', trigger: 'change' }]">
|
|
|
<el-select-v2
|
|
|
- v-model="state.ruleForm.nextHandlers"
|
|
|
+ v-model="state.ruleForm.nextHandler"
|
|
|
:options="state.handlerOptions"
|
|
|
placeholder="请选择接办部门"
|
|
|
class="w100"
|
|
|
- multiple
|
|
|
clearable
|
|
|
- collapse-tags
|
|
|
- collapse-tags-tooltip
|
|
|
filterable
|
|
|
value-key="key"
|
|
|
@change="selectHandlers"
|
|
|
- :multiple-limit="1"
|
|
|
/>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-select v-model="state.ruleForm.paidanObj" placeholder="下级部门" class="w100" filterable multiple>
|
|
|
- <el-option v-for="item in state.paidanObjOptions" :key="item.key" :label="item.value" :value="item.key" />
|
|
|
- </el-select>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </el-form-item>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label-width="0" prop="secondaryHandlers" :rules="[{ required: true, message: '请选择下级部门', trigger: 'change' }]">
|
|
|
+ <el-cascader
|
|
|
+ :options="secondaryHandlers"
|
|
|
+ :props="{
|
|
|
+ multiple: true,
|
|
|
+ label: 'name',
|
|
|
+ value: 'id',
|
|
|
+ children: 'children',
|
|
|
+ checkStrictly: true,
|
|
|
+ }"
|
|
|
+ collapse-tags
|
|
|
+ collapse-tags-tooltip
|
|
|
+ :max-collapse-tags="1"
|
|
|
+ clearable
|
|
|
+ placeholder="请选择下级部门"
|
|
|
+ v-model="state.ruleForm.secondaryHandlers"
|
|
|
+ class="w100"
|
|
|
+ @change="secondaryHandlersChange"
|
|
|
+ ref="cascaderRef"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
</el-col>
|
|
|
<el-col :span="24" v-if="state.ruleForm.orderAssignMode === 2">
|
|
|
<el-form-item label="主办部门" prop="paidanObj" :rules="[{ required: true, message: '请选择主办部门', trigger: 'change' }]">
|
|
@@ -428,7 +442,7 @@ import { ElMessage, FormInstance } from 'element-plus';
|
|
|
import other from '@/utils/other';
|
|
|
import { storeToRefs } from 'pinia';
|
|
|
import { commonEnum } from '@/utils/constants';
|
|
|
-import { orderFlowParams, orderHandle, orderProcessTempSave, orderStartFlow, orderTimeConfig } from '@/api/business/order';
|
|
|
+import { getDepartmentList, orderFlowParams, orderHandle, orderProcessTempSave, orderStartFlow, orderTimeConfig } from '@/api/business/order';
|
|
|
import { orderPrevious, workflowNextSteps, workflowNextStepsByOrder, workflowNextStepsByOrderInstead } from '@/api/system/workflow';
|
|
|
import { useAppConfig } from '@/stores/appConfig';
|
|
|
|
|
@@ -448,6 +462,7 @@ const state = reactive<any>({
|
|
|
nextStepName: '', // 下一节点名称
|
|
|
backToCountersignEnd: false, // 是否回到会签结束节点
|
|
|
nextHandlers: [], // 下一节点办理对象
|
|
|
+ nextHandler: null, // 单选对象
|
|
|
isSms: false, // 是否短信通知
|
|
|
isStartCountersign: false, // 是否发起会签
|
|
|
stepId: null, // 步骤id
|
|
@@ -469,8 +484,8 @@ const state = reactive<any>({
|
|
|
transpondCityId: null, // 市州转办信息id
|
|
|
transpondCityValue: null, // 市州转办信息
|
|
|
orderAssignMode: 0, // 派单类型默认逐级派单
|
|
|
- secondaryHandlers:[], // 跨级转派得下级办理对象/主协办得协办对象
|
|
|
- copyToHandlers:[], // 抄送对象
|
|
|
+ secondaryHandlers: [], // 跨级转派得下级办理对象/主协办得协办对象
|
|
|
+ copyToHandlers: [], // 抄送对象
|
|
|
},
|
|
|
nextStepOptions: [], // 下一节点
|
|
|
handlerOptions: [], // 办理对象
|
|
@@ -648,6 +663,7 @@ const isNotShowNextHandlers = ref(false);
|
|
|
const selectNext = ref<EmptyObjectType>({}); // 选择的下一个节点
|
|
|
const selectNextStep = (val: any) => {
|
|
|
ruleFormRef.value?.resetFields('nextHandlers');
|
|
|
+ ruleFormRef.value?.resetFields('nextHandler');
|
|
|
const next = state.nextStepOptions.find((item: any) => item.key === val);
|
|
|
selectNext.value = next;
|
|
|
const items = next.items; //获取下一节点
|
|
@@ -692,7 +708,7 @@ const multipleLimit = computed(() => {
|
|
|
watch(
|
|
|
() => state.ruleForm.nextHandlers, // 监听办理对象 多个办理对象自动发起会签
|
|
|
(val) => {
|
|
|
- if(val){
|
|
|
+ if (val) {
|
|
|
state.ruleForm.isStartCountersign = val.length > 1;
|
|
|
}
|
|
|
}
|
|
@@ -712,8 +728,11 @@ const changeStartCountersign = (val: boolean) => {
|
|
|
// 选择派单类型 需要清空选择的内容
|
|
|
const selectDispatchType = (val: any) => {
|
|
|
ruleFormRef.value.resetFields('nextHandlers');
|
|
|
+ ruleFormRef.value.resetFields('nextHandler');
|
|
|
state.ruleForm.nextHandlers = [];
|
|
|
+ state.ruleForm.nextHandler = null;
|
|
|
state.ruleForm.isStartCountersign = false;
|
|
|
+ state.ruleForm.secondaryHandlers = [];
|
|
|
};
|
|
|
|
|
|
// 是否展示办理对象 (办理对象下拉框隐藏:AppConfigInfo.value.isAverageSendOrder= true 表示开启了平均派单 )
|
|
@@ -755,7 +774,29 @@ watch(
|
|
|
}
|
|
|
}
|
|
|
);
|
|
|
+// 查询一级部门的下级部门 不传默认查所有
|
|
|
+const secondaryHandlers = ref<EmptyArrayType>([]);
|
|
|
+const getNextOrgList = async (orgCode?: string | any) => {
|
|
|
+ try {
|
|
|
+ const { result } = await getDepartmentList(orgCode);
|
|
|
+ secondaryHandlers.value = result;
|
|
|
+ } catch (e) {
|
|
|
+ console.log(e);
|
|
|
+ }
|
|
|
+};
|
|
|
+// 选择下级部门
|
|
|
+const cascaderRef = ref<RefType>(null);
|
|
|
+const secondaryHandlersChange = (val: any) => {
|
|
|
+ const arr = cascaderRef.value.getCheckedNodes();
|
|
|
|
|
|
+ console.log(val, state.ruleForm.secondaryHandlers,arr);
|
|
|
+/* state.ruleForm.secondaryHandlers = arr.map((item:any)=>{
|
|
|
+ return {
|
|
|
+ orgId:item.value,
|
|
|
+ orgName:item.label
|
|
|
+ }
|
|
|
+ })*/
|
|
|
+};
|
|
|
// 选择办理对象
|
|
|
const selectHandlers = () => {
|
|
|
if (state.ruleForm.nextHandlers.length > 1) {
|
|
@@ -774,8 +815,18 @@ const selectHandlers = () => {
|
|
|
// 如果只有一个办理对象就不需要发起会签
|
|
|
state.ruleForm.isStartCountersign = false;
|
|
|
}
|
|
|
- if((seatToOrgOne.value || paidanToOrgOne.value) && state.ruleForm.orderAssignMode === 1){ // 话务部到一级部门 派单组到一级部门 并且是跨级派单 需要查询下一级部门
|
|
|
- console.log('11212',state.ruleForm.nextHandlers)
|
|
|
+ if ((seatToOrgOne.value || paidanToOrgOne.value) && state.ruleForm.orderAssignMode === 1) {
|
|
|
+ // 话务部到一级部门 派单组到一级部门 并且是跨级派单 需要查询下一级部门
|
|
|
+ console.log(state.ruleForm.nextHandler, '1111');
|
|
|
+ if (state.ruleForm.nextHandlers) state.ruleForm.nextHandlers = [state.ruleForm.nextHandler]; // 因为传上去需要数组所以处理一次
|
|
|
+ else state.ruleForm.nextHandlers = [];
|
|
|
+ if (state.ruleForm.nextHandlers.length) {
|
|
|
+ getNextOrgList(state.ruleForm.nextHandler.key);
|
|
|
+ state.ruleForm.secondaryHandlers = [];
|
|
|
+ } else {
|
|
|
+ secondaryHandlers.value = [];
|
|
|
+ state.ruleForm.secondaryHandlers = [];
|
|
|
+ }
|
|
|
}
|
|
|
};
|
|
|
// 办理对象是否必填
|