Browse Source

fix--问题退回后重新下发不能选择新的部门涉及人问题

master
parent
commit
0300d7d8ce
  1. 62
      src/components/negative/distribute.vue

62
src/components/negative/distribute.vue

@ -22,6 +22,8 @@
</div>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="办理单位" prop="departId">
<el-tree-select
@ -38,6 +40,35 @@
</div>
</el-form-item>
</el-col>
<template v-if="negative.flowKey === FlowNodeEnum.FIRST_DISTRIBUTE">
<el-col :span="12">
<el-form-item
label="问题涉及单位"
prop="involveDepartId"
:rules="{
required: true,
message: '请选择问题涉及单位',
trigger: ['blur'],
}"
>
<depart-tree-select
v-model="form.involveDepartId"
:check-strictly="true"
@node-click="
(row) =>
(form.involveDepartName =
row.shortName)
"
/>
<el-button
type="primary"
@click="handleLinkDepart"
text
>关联问题办理单位</el-button
>
</el-form-item>
</el-col>
</template>
</el-row>
<template v-if="negative.flowKey === FlowNodeEnum.FIRST_DISTRIBUTE">
<el-form-item label="办理时限" prop="timeLimit">
@ -67,6 +98,7 @@ import useCatchStore from "@/stores/modules/catch";
import { secondList, listChildren, departTree, listByFirstHost } from "@/api/system/depart";
import { FlowNodeEnum } from "@/enums/flowEnums";
import { HostLevel } from "@/enums/dictEnums";
import feedback from "@/utils/feedback";
const dict = useCatchStore().getDicts([
"hostLevel",
@ -152,9 +184,22 @@ const rules = {
};
function handleSelectDepart(val: string) {
form.value.departName = departs.value.filter(
(item) => item.id === val
)[0].shortName;
// form.value.departName = departs.value.filter(
// (item) => item.id === val
// )[0].shortName;
const node = findDepartById(departs.value, val)
form.value.departName = node?.shortName ?? ''
}
function findDepartById(list: any[], id: string): any | null {
for (const item of list) {
if (String(item.id) === String(id)) return item
if (item.children?.length) {
const found = findDepartById(item.children, id)
if (found) return found
}
}
return null
}
async function validate() {
@ -164,6 +209,17 @@ async function validate() {
}
}
function handleLinkDepart() {
if (!form.value.departId) {
feedback.msgWarning(
"请先选择办理单位!"
);
return;
}
form.value.involveDepartId = form.value.departId;
form.value.involveDepartName = form.value.departName;
}
defineExpose({
validate,
});

Loading…
Cancel
Save