diff --git a/src/views/bg/xispeak/BPM_NODE_PERMISSIONS.md b/src/views/bg/xispeak/BPM_NODE_PERMISSIONS.md index 6201363..95ad494 100644 --- a/src/views/bg/xispeak/BPM_NODE_PERMISSIONS.md +++ b/src/views/bg/xispeak/BPM_NODE_PERMISSIONS.md @@ -212,7 +212,7 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头) * **jiJianFieldsReadonly** `0` —— 弹窗内纪检字段只读 * **showDeptFeedback** `0` —— 按部门过滤反馈 * **showJiJianFields** `1` —— 纪检字段列 -* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1&showFeedbackInfo=1&showEditFeedback=1&showJiJianFields=1 +* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&showEditFeedback=1&showJiJianFields=1 --- ### 节点: <督办部门经办人确认全部反馈事项> @@ -239,9 +239,9 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头) * **showAddFeedback** `1` —— 新增反馈按钮 * **showEditFeedback** `1` —— 编辑/删除操作列 * **jiJianFieldsReadonly** `1` —— 弹窗内纪检字段只读 - * **showDeptFeedback** `0` —— 按部门过滤反馈 + * **showDeptFeedback** `1` —— 按部门过滤反馈 * **showJiJianFields** `1` —— 纪检字段列 -* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&showAddFeedback=1&showEditFeedback=1&jiJianFieldsReadonly=1&showJiJianFields=1 +* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&showAddFeedback=1&showEditFeedback=1&showDeptFeedback=1&jiJianFieldsReadonly=1&showJiJianFields=1 --- ### 节点: <部门负责人审批> @@ -254,9 +254,9 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头) * **showAddFeedback** `0` —— 新增反馈按钮 * **showEditFeedback** `0` —— 编辑/删除操作列 * **jiJianFieldsReadonly** `0` —— 弹窗内纪检字段只读 - * **showDeptFeedback** `0` —— 按部门过滤反馈 + * **showDeptFeedback** `1` —— 按部门过滤反馈 * **showJiJianFields** `1` —— 纪检字段列 -* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&showJiJianFields=1 +* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&showDeptFeedback=1&showJiJianFields=1 --- ### 节点: <督办经办人核查> diff --git a/src/views/bg/xispeak/BgXiSpeakList.vue b/src/views/bg/xispeak/BgXiSpeakList.vue index 3fb2242..7f75d2c 100644 --- a/src/views/bg/xispeak/BgXiSpeakList.vue +++ b/src/views/bg/xispeak/BgXiSpeakList.vue @@ -637,28 +637,13 @@ return; } - // 查询已有反馈记录,按部门获取处理人姓名 - const deptHandlerMap = new Map(); - try { - const feedbackRes = await bgXiSpeakFeedbackList({ mainId: record.id, pageNo: 1, pageSize: 999 }); - const feedbackRecords = feedbackRes?.records || feedbackRes?.result?.records || []; - for (const fb of feedbackRecords) { - const fbDeptIds = splitDeptValue(fb.responDeptid); - const handlerName = fb.responPersonname || ''; - for (const fbDeptId of fbDeptIds) { - if (fbDeptId && handlerName && !deptHandlerMap.has(fbDeptId)) { - deptHandlerMap.set(fbDeptId, handlerName); - } - } - } - } catch (e) { - // 查询反馈失败则继续,deptHandlerName 留空 - } - let successCount = 0; const total = selectedDeptIds.length; for (const deptId of selectedDeptIds) { + const deptDetail = record.approveInfo?.[deptId]; + const implUserNameList: string[] = deptDetail?.implUserNameList || []; + const deptHandlerName = implUserNameList.join(','); const params = { intervalType: options.intervalType, startCount: options.startCount, @@ -678,8 +663,8 @@ content: record.implStatus, urgencyLevel: record.completionStatus, deptId: deptId, - deptLeaderId: deptId, - deptHandlerName: deptHandlerMap.get(deptId) || '', + deptLeaderId: deptDetail?.approverId || '', + deptHandlerName: deptHandlerName, requireFinishDate: formatDate(record.time, 'YYYY-MM-DD'), deadline: record.deadline || formatDate(record.time, 'YYYY-MM-DD'), }, diff --git a/src/views/bg/xispeak/components/BgXiSpeakBPMFeedbackModal.vue b/src/views/bg/xispeak/components/BgXiSpeakBPMFeedbackModal.vue index 5191285..72d22d5 100644 --- a/src/views/bg/xispeak/components/BgXiSpeakBPMFeedbackModal.vue +++ b/src/views/bg/xispeak/components/BgXiSpeakBPMFeedbackModal.vue @@ -176,11 +176,15 @@ nextTick(() => formRef.value?.clearValidate?.()); } - function open(mainId: string, secretLevel?: string | number, bpmProcessId = '') { + function open(mainId: string, secretLevel?: string | number, bpmProcessId = '', defaultDeptId = '', defaultDeptName = '') { resetForm(mainId, bpmProcessId); isEdit.value = false; uploadSecretLevel.value = normalizeSecretLevel(secretLevel); - void applyCurrentUserFeedbackInfo(); + if (defaultDeptId) { + void applyCurrentUserFeedbackInfo(defaultDeptId, defaultDeptName); + } else { + void applyCurrentUserFeedbackInfo(); + } visible.value = true; } @@ -225,13 +229,18 @@ }; } - async function applyCurrentUserFeedbackInfo() { + async function applyCurrentUserFeedbackInfo(defaultDeptId = '', defaultDeptName = '') { const userInfo = (userStore.getUserInfo || {}) as Record; formData.responPersonid = userInfo.id || userInfo.userId || ''; formData.responPersonname = userInfo.realname || ''; - const departInfo = await getCurrentDepartInfo(); - formData.responDeptid = departInfo.id; - formData.responDeptname = departInfo.departName; + if (defaultDeptId) { + formData.responDeptid = defaultDeptId; + formData.responDeptname = defaultDeptName || ''; + } else { + const departInfo = await getCurrentDepartInfo(); + formData.responDeptid = departInfo.id; + formData.responDeptname = departInfo.departName; + } } function handleDeptChange(value, row) { @@ -252,7 +261,6 @@ } saving.value = true; try { - await applyCurrentUserFeedbackInfo(); if (!formData.id && uploadFileRef.value?.hasPendingFiles?.()) { formData.id = buildUUID(); } @@ -280,6 +288,18 @@