diff --git a/src/components/semri/process/FlowScheduleStartModal.vue b/src/components/semri/process/FlowScheduleStartModal.vue index 6ffc007..9b937bd 100644 --- a/src/components/semri/process/FlowScheduleStartModal.vue +++ b/src/components/semri/process/FlowScheduleStartModal.vue @@ -36,7 +36,27 @@ - + + + + @@ -79,7 +99,9 @@ import JModal from '/src/components/Modal/src/JModal/JModal.vue'; import JDictSelectTag from '/src/components/Form/src/jeecg/components/JDictSelectTag.vue'; import JSwitch from '/src/components/Form/src/jeecg/components/JSwitch.vue'; - import JSelectUser from '/src/components/Form/src/jeecg/components/JSelectUser.vue'; + import SzUserSelectByDeptRoleSecurityModal from '/src/components/semri/userComponent/modal/SzUserSelectByDeptRoleSecurityModal.vue'; + import { SearchOutlined } from '@ant-design/icons-vue'; + import { getUserList } from '/src/api/common/api'; import { useMessage } from '/src/hooks/web/useMessage'; interface ModalPayload { @@ -89,6 +111,7 @@ showSuoleaderFields?: boolean; isNeedAppro?: string | number; supDeptleaderid?: string | string[]; + supDeptleaderName?: string; showDeadlineField?: boolean; deadline?: string | Date; } @@ -107,6 +130,44 @@ const deptOptions = ref([]); const showSuoleaderFields = ref(false); const showDeadlineField = ref(false); + + // 所党委领导选人弹窗 + const sdwLeaderModalOpen = ref(false); + const supDeptleaderName = ref(''); + const sdwLeaderDeptId = ref('2044677562460508161'); + const sdwLeaderRoleId = ref('2044676455280570370'); + const sdwLeaderSecurityValue = ref(5); + + function openSdwLeaderModal() { + if (String(formData.isNeedAppro) !== '1') return; + sdwLeaderModalOpen.value = true; + } + + function handleClearSdwLeader() { + formData.supDeptleaderid = ''; + supDeptleaderName.value = ''; + } + + function handleSdwLeaderConfirm(rows: Array<{ id: string; realname: string }>) { + if (rows && rows.length > 0) { + formData.supDeptleaderid = rows.map((r) => r.username).join(','); + supDeptleaderName.value = rows.map((r) => r.realname).join(','); + } else { + formData.supDeptleaderid = ''; + supDeptleaderName.value = ''; + } + } + + async function resolveSdwLeaderNames(ids: string) { + try { + const res = await getUserList({ username: ids, pageSize: 999 }); + const records = res?.records || res?.result?.records || []; + supDeptleaderName.value = records.map((u: any) => u.realname).join(','); + } catch { + supDeptleaderName.value = ''; + } + } + const formData = reactive({ triggerMode: 'immediate', intervalType: undefined as number | string | undefined, @@ -126,6 +187,7 @@ formData.deptIds = []; formData.isNeedAppro = '0'; formData.supDeptleaderid = ''; + supDeptleaderName.value = ''; formData.deadline = undefined; deptOptions.value = []; showSuoleaderFields.value = false; @@ -169,6 +231,10 @@ showSuoleaderFields.value = !!data.showSuoleaderFields; formData.isNeedAppro = String(data.isNeedAppro ?? '0'); formData.supDeptleaderid = data.supDeptleaderid || ''; + supDeptleaderName.value = data.supDeptleaderName || ''; + if (!supDeptleaderName.value && formData.supDeptleaderid) { + resolveSdwLeaderNames(formData.supDeptleaderid as string); + } showDeadlineField.value = !!data.showDeadlineField; formData.deadline = normalizeDeadlineValue(data.deadline); if (String(formData.isNeedAppro) !== '1') { @@ -228,6 +294,7 @@ (value) => { if (String(value) !== '1') { formData.supDeptleaderid = ''; + supDeptleaderName.value = ''; } } ); diff --git a/src/components/semri/userComponent/modal/SzUserSelectByDeptRoleSecurityModal.vue b/src/components/semri/userComponent/modal/SzUserSelectByDeptRoleSecurityModal.vue index f78a699..44f3810 100644 --- a/src/components/semri/userComponent/modal/SzUserSelectByDeptRoleSecurityModal.vue +++ b/src/components/semri/userComponent/modal/SzUserSelectByDeptRoleSecurityModal.vue @@ -1,6 +1,6 @@