From 326032c62b0c668afbd457ebe69eb0af7150fa85 Mon Sep 17 00:00:00 2001 From: wsm <2746563060@侵权。> Date: Tue, 26 May 2026 18:43:23 +0800 Subject: [PATCH] =?UTF-8?q?fix(xispeak):=20=E4=BF=AE=E5=A4=8D=E7=BB=8F?= =?UTF-8?q?=E5=8A=9E=E4=BA=BA=E5=8F=8D=E9=A6=88=E6=B5=81=E7=A8=8BdeptHandl?= =?UTF-8?q?erName=E4=B8=BA=E7=A9=BA=E5=8F=8A=E5=8F=8D=E9=A6=88=E5=BC=B9?= =?UTF-8?q?=E7=AA=97=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - handleFlowScheduleConfirm从record.approveInfo直接取implUserNameList和approverId,不再错误查询反馈记录 - 反馈弹窗保存时不再覆盖反馈人和部门(移除handleOk中的applyCurrentUserFeedbackInfo) - 反馈弹窗label样式对齐主表单 - 更新节点权限文档中的URL示例 Co-Authored-By: Claude Opus 4.7 --- src/views/bg/xispeak/BPM_NODE_PERMISSIONS.md | 10 +++--- src/views/bg/xispeak/BgXiSpeakList.vue | 25 +++---------- .../components/BgXiSpeakBPMFeedbackModal.vue | 36 ++++++++++++++----- 3 files changed, 38 insertions(+), 33 deletions(-) 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 @@