yxk-20260509-党委会发起流程

发起流程的时候,还应该显示是否抄送所办领导,抄送所办领导字段,并且支持修改,修改后发起流程时需要带入到jsonData中
并且仅当前组件需要选择
This commit is contained in:
ye1023
2026-05-11 16:01:09 +08:00
parent 4a068c737e
commit 3048c7a63f
3 changed files with 67 additions and 5 deletions
@@ -27,6 +27,20 @@
/>
</a-form-item>
<template v-if="showSuoleaderFields">
<a-form-item label="是否抄送所办领导">
<j-switch v-model:value="formData.isNeedAppro" />
</a-form-item>
<a-form-item label="抄送所办领导">
<j-select-user
v-model:value="formData.supDeptleaderid"
:disabled="String(formData.isNeedAppro) !== '1'"
allow-clear
/>
</a-form-item>
</template>
<template v-if="formData.triggerMode === 'recurring'">
<a-form-item label="重复周期">
<JDictSelectTag
@@ -68,15 +82,20 @@
</template>
<script lang="ts" setup>
import { reactive, ref } from 'vue';
import { reactive, ref, watch } from 'vue';
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 { useMessage } from '/src/hooks/web/useMessage';
interface ModalPayload {
title?: string;
payload?: Record<string, any>;
deptOptions?: DeptOption[];
showSuoleaderFields?: boolean;
isNeedAppro?: string | number;
supDeptleaderid?: string | string[];
}
interface DeptOption {
@@ -91,12 +110,15 @@
const visible = ref(false);
const contextData = ref<Record<string, any>>({});
const deptOptions = ref<DeptOption[]>([]);
const showSuoleaderFields = ref(false);
const formData = reactive({
triggerMode: 'immediate',
intervalType: undefined as number | string | undefined,
startCount: undefined as number | undefined,
intervalStartTime: undefined as string | undefined,
deptIds: [] as string[],
isNeedAppro: '0',
supDeptleaderid: '' as string | string[],
});
function resetForm() {
@@ -105,7 +127,10 @@
formData.startCount = undefined;
formData.intervalStartTime = undefined;
formData.deptIds = [];
formData.isNeedAppro = '0';
formData.supDeptleaderid = '';
deptOptions.value = [];
showSuoleaderFields.value = false;
}
function normalizeDeptOptions(options: DeptOption[] = []) {
@@ -129,6 +154,12 @@
contextData.value = data.payload || {};
deptOptions.value = normalizeDeptOptions(data.deptOptions || []);
formData.deptIds = deptOptions.value.map((item) => item.value);
showSuoleaderFields.value = !!data.showSuoleaderFields;
formData.isNeedAppro = String(data.isNeedAppro ?? '0');
formData.supDeptleaderid = data.supDeptleaderid || '';
if (String(formData.isNeedAppro) !== '1') {
formData.supDeptleaderid = '';
}
visible.value = true;
}
@@ -165,11 +196,22 @@
intervalStartTime: formData.triggerMode === 'recurring' ? formData.intervalStartTime : undefined,
deptId: formData.deptIds.join(','),
deptIds: [...formData.deptIds],
isNeedAppro: showSuoleaderFields.value ? formData.isNeedAppro : undefined,
supDeptleaderid: showSuoleaderFields.value ? (String(formData.isNeedAppro) === '1' ? formData.supDeptleaderid : '') : undefined,
},
});
handleCancel();
}
watch(
() => formData.isNeedAppro,
(value) => {
if (String(value) !== '1') {
formData.supDeptleaderid = '';
}
}
);
defineExpose({
open,
});