diff --git a/src/views/bg/xispeak/components/BgXiSpeakBPMForm.vue b/src/views/bg/xispeak/components/BgXiSpeakBPMForm.vue index 2b0d450..445caf1 100644 --- a/src/views/bg/xispeak/components/BgXiSpeakBPMForm.vue +++ b/src/views/bg/xispeak/components/BgXiSpeakBPMForm.vue @@ -497,7 +497,16 @@ initFormData(); }); - watch([() => props.formData?.dataId, () => processInfo.value.processInstanceId], () => initFormData()); + watch( + () => props.formData?.dataId, + () => initFormData() + ); + watch( + () => processInfo.value.processInstanceId, + (newVal) => { + if (newVal) loadFeedbackList(); + } + ); watch(showDeptFeedback, () => { loadFeedbackList(); diff --git a/src/views/bg/xispeak/components/BgXiSpeakForm.vue b/src/views/bg/xispeak/components/BgXiSpeakForm.vue index bae6636..d2b21cd 100644 --- a/src/views/bg/xispeak/components/BgXiSpeakForm.vue +++ b/src/views/bg/xispeak/components/BgXiSpeakForm.vue @@ -161,35 +161,39 @@ const emit = defineEmits(['register', 'ok']); let model: Nullable = null; - const formData = reactive>({ - id: '', - pid: '', - speakStatus: '', - time: '', - elmComment: '经单位主要负责同时签批同意,由xx部做好贯彻落实', - status: 'x月x日召开xxxx年第x次党委会议', - secretLevel: '', - responsiblePerson: '', - needSdwApproval: 0, - sdwLeaderList: '', - implPlan: '', - implMeasures: '', - numberOfResolutions: undefined, - implStatus: '', - implCount: undefined, - closedCount: undefined, - reportFeedbackStatus: '', - isCompletionRisk: undefined, - delayRiskMitigation: '', - completionStatus: undefined, - deadline: '', - implDept: '', - treeDepth: undefined, - sortOrder: undefined, - delFlag: undefined, - bpmStatus: undefined, - supervisionCount: undefined, - }); + function getDefaultFormData(): Record { + return { + id: '', + pid: '', + speakStatus: '', + time: '', + elmComment: '经单位主要负责同时签批同意,由xx部做好贯彻落实', + status: 'x月x日召开xxxx年第x次党委会议', + secretLevel: '', + responsiblePerson: '', + needSdwApproval: 0, + sdwLeaderList: '', + implPlan: '', + implMeasures: '', + numberOfResolutions: undefined, + implStatus: '', + implCount: undefined, + closedCount: undefined, + reportFeedbackStatus: '', + isCompletionRisk: undefined, + delayRiskMitigation: '', + completionStatus: undefined, + deadline: '', + implDept: '', + treeDepth: undefined, + sortOrder: undefined, + delFlag: undefined, + bpmStatus: undefined, + supervisionCount: undefined, + }; + } + + const formData = reactive>(getDefaultFormData()); const { createMessage } = useMessage(); const labelCol = ref({ xs: { span: 24 }, sm: { span: 6 } }); @@ -289,13 +293,24 @@ } function edit(record) { + // 新增:同步重置,不带入任何旧数据 + if (!record.id) { + const defaults = getDefaultFormData(); + for (const key of Object.keys(formData)) { + formData[key] = defaults[key]; + } + sdwLeaderNames.value = ''; + model = {}; + return; + } + + // 编辑/详情 nextTick(async () => { resetFields(); expandedRowKeys.value = []; - // 非BPM模式且有ID时,从API查询完整数据,避免列表行数据不完整导致字段不显示 let data = record; - if (record.id && !props.formBpm) { + if (!props.formBpm) { try { const res = await defHttp.get({ url: queryByIdUrl, params: { id: record.id } }); data = res || record; diff --git a/src/views/bg/xispeak/components/BgXiSpeakModal.vue b/src/views/bg/xispeak/components/BgXiSpeakModal.vue index e0e9b39..1e98cc5 100644 --- a/src/views/bg/xispeak/components/BgXiSpeakModal.vue +++ b/src/views/bg/xispeak/components/BgXiSpeakModal.vue @@ -1,6 +1,6 @@