From 6703104e8559423aa982819f79c5ceb8bb98d193 Mon Sep 17 00:00:00 2001 From: wsm <2746563060@侵权。> Date: Tue, 26 May 2026 16:08:02 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix(xispeak):=20=E9=87=8D=E6=9E=84=E6=9D=83?= =?UTF-8?q?=E9=99=90=E6=96=87=E6=A1=A3=E6=8E=A7=E5=88=B6=E5=B1=82=E7=BA=A7?= =?UTF-8?q?=E5=B9=B6=E4=BF=AE=E5=A4=8D=E9=83=A8=E9=97=A8=E8=BF=87=E6=BB=A4?= =?UTF-8?q?=E4=B8=8D=E7=94=9F=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - BPM_NODE_PERMISSIONS.md: showBaseInfo/baseInfoReadonly 改为 edit;jiJianFieldsReadonly 移至 showEditFeedback 下 - BgXiSpeakBPMForm.vue: 添加 watch(showDeptFeedback) 和客户端部门过滤逻辑 - "措施内容" 统一改为 "具体措施" Co-Authored-By: Claude Opus 4.7 --- src/views/bg/xispeak/BPM_NODE_PERMISSIONS.md | 124 ++++++++---------- .../xispeak/components/BgXiSpeakBPMForm.vue | 31 ++++- .../components/BgXiSpeakFeedbackForm.vue | 2 +- 3 files changed, 83 insertions(+), 74 deletions(-) diff --git a/src/views/bg/xispeak/BPM_NODE_PERMISSIONS.md b/src/views/bg/xispeak/BPM_NODE_PERMISSIONS.md index cf3907d..6201363 100644 --- a/src/views/bg/xispeak/BPM_NODE_PERMISSIONS.md +++ b/src/views/bg/xispeak/BPM_NODE_PERMISSIONS.md @@ -2,15 +2,15 @@ ## 控制模型 -- `showBaseInfo` 默认开启(向后兼容),其余默认全关,逐级显式通过 `extendUrlParams` 传 `=1` 开启 +- 基础信息区域始终可见,通过 `edit` 控制是否可编辑 +- 流程办理和反馈信息区域默认全关,逐级显式通过 `extendUrlParams` 传 `=1` 开启 - 上级未开启时,下级传参不生效 - 每个 UI 元素只受一个属性控制 ## 控制树 ``` -showBaseInfo → 基础信息区域(表单 + 字段) - └── baseInfoReadonly → 基础信息字段是否只读(showBaseInfo=1 时生效) +edit → 基础信息是否可编辑(1=可编辑, 缺省=只读) showProcessHandle → 流程办理区域 └── showSubApproveUser → 是否办结 + 部门经办人选人 @@ -18,9 +18,9 @@ showProcessHandle → 流程办理区域 showFeedbackInfo → 反馈信息区域(表格 + 表头) ├── showAddFeedback → 新增反馈按钮 ├── showEditFeedback → 编辑/删除操作列 + │ └── jiJianFieldsReadonly → 弹窗内纪检字段只读(需 showEditFeedback=1 或 showAddFeedback=1) ├── showDeptFeedback → 按部门过滤反馈数据 └── showJiJianFields → 纪检字段列(检查情况/监督意见/措施数量) - └── jiJianFieldsReadonly → 纪检字段可见但不可编辑 ``` ## 节点权限配置 @@ -33,8 +33,7 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头) ### 节点: <督办部门经办人发起流程> * taskDefKey: `` - * **showBaseInfo** `1` —— 基础信息区域 - * **baseInfoReadonly** `0` —— 基础信息只读 + * **edit** `0` —— 基础信息可编辑 * **showProcessHandle** `1` —— 流程办理区域 * **showSubApproveUser** `0` —— 是否办结 + 部门经办人 * **showFeedbackInfo** `0` —— 反馈信息区域 @@ -42,15 +41,14 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头) * **showEditFeedback** `0` —— 编辑/删除操作列 * **showDeptFeedback** `0` —— 按部门过滤反馈 * **showJiJianFields** `0` —— 纪检字段列 -* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1 +* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1 --- ### 节点: <督办部门负责人审批> * taskDefKey: `` - * **showBaseInfo** `1` —— 基础信息区域 - * **baseInfoReadonly** `0` —— 基础信息只读 + * **edit** `0` —— 基础信息可编辑 * **showProcessHandle** `1` —— 流程办理区域 * **showSubApproveUser** `0` —— 是否办结 + 部门经办人 * **showFeedbackInfo** `0` —— 反馈信息区域 @@ -58,14 +56,13 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头) * **showEditFeedback** `0` —— 编辑/删除操作列 * **showDeptFeedback** `0` —— 按部门过滤反馈 * **showJiJianFields** `0` —— 纪检字段列 -* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1 +* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1 --- ### 节点: <所党委审批> * taskDefKey: `` - * **showBaseInfo** `1` —— 基础信息区域 - * **baseInfoReadonly** `1` —— 基础信息只读 + * **edit** `0` —— 基础信息可编辑 * **showProcessHandle** `1` —— 流程办理区域 * **showSubApproveUser** `0` —— 是否办结 + 部门经办人 * **showFeedbackInfo** `0` —— 反馈信息区域 @@ -73,14 +70,13 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头) * **showEditFeedback** `0` —— 编辑/删除操作列 * **showDeptFeedback** `0` —— 按部门过滤反馈 * **showJiJianFields** `0` —— 纪检字段列 -* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1 +* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1 --- ### 节点: <收集流程部门负责人接受任务并分配> * taskDefKey: `` - * **showBaseInfo** `1` —— 基础信息区域 - * **baseInfoReadonly** `1` —— 基础信息只读 + * **edit** `0` —— 基础信息可编辑 * **showProcessHandle** `1` —— 流程办理区域 * **showSubApproveUser** `1` —— 是否办结 + 部门经办人 * **showFeedbackInfo** `0` —— 反馈信息区域 @@ -88,14 +84,13 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头) * **showEditFeedback** `0` —— 编辑/删除操作列 * **showDeptFeedback** `0` —— 按部门过滤反馈 * **showJiJianFields** `0` —— 纪检字段列 -* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1&showSubApproveUser=1 +* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showSubApproveUser=1 --- -### 节点: <收集流程门经办人填写> +### 节点: <收集流程部门经办人填写> * taskDefKey: `` - * **showBaseInfo** `1` —— 基础信息区域 - * **baseInfoReadonly** `1` —— 基础信息只读 + * **edit** `0` —— 基础信息可编辑 * **showProcessHandle** `1` —— 流程办理区域 * **showSubApproveUser** `0` —— 是否办结 + 部门经办人 * **showFeedbackInfo** `1` —— 反馈信息区域 @@ -103,14 +98,13 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头) * **showEditFeedback** `1` —— 编辑/删除操作列 * **showDeptFeedback** `1` —— 按部门过滤反馈 * **showJiJianFields** `0` —— 纪检字段列 -* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1&showFeedbackInfo=1&showAddFeedback=1&showEditFeedback=1&showDeptFeedback=1 +* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&showAddFeedback=1&showEditFeedback=1&showDeptFeedback=1 --- ### 节点: <收集流程部门负责人审批> * taskDefKey: `` - * **showBaseInfo** `1` —— 基础信息区域 - * **baseInfoReadonly** `1` —— 基础信息只读 + * **edit** `0` —— 基础信息可编辑 * **showProcessHandle** `1` —— 流程办理区域 * **showSubApproveUser** `0` —— 是否办结 + 部门经办人 * **showFeedbackInfo** `1` —— 反馈信息区域 @@ -118,14 +112,13 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头) * **showEditFeedback** `0` —— 编辑/删除操作列 * **showDeptFeedback** `1` —— 按部门过滤反馈 * **showJiJianFields** `0` —— 纪检字段列 -* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1&showFeedbackInfo=1&showDeptFeedback=1 +* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&showDeptFeedback=1 --- ### 节点: <收集流程督办发起人确认部门经办人填写内容> * taskDefKey: `` - * **showBaseInfo** `1` —— 基础信息区域 - * **baseInfoReadonly** `1` —— 基础信息只读 + * **edit** `0` —— 基础信息只读 * **showProcessHandle** `1` —— 流程办理区域 * **showSubApproveUser** `0` —— 是否办结 + 部门经办人 * **showFeedbackInfo** `1` —— 反馈信息区域 @@ -133,15 +126,13 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头) * **showEditFeedback** `0` —— 编辑/删除操作列 * **showDeptFeedback** `0` —— 按部门过滤反馈 * **showJiJianFields** `0` —— 纪检字段列 -* bg/xispeak/components/BgXiSpeakBPMForm?edit=0&showProcessHandle=1&showFeedbackInfo=1 +* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1 --- ### 节点: <反馈流程部门经办人填写反馈情况> * taskDefKey: `` - - * **showBaseInfo** `1` —— 基础信息区域 - * **baseInfoReadonly** `1` —— 基础信息只读 + * **edit** `0` —— 基础信息可编辑 * **showProcessHandle** `1` —— 流程办理区域 * **showSubApproveUser** `0` —— 是否办结 + 部门经办人 * **showFeedbackInfo** `1` —— 反馈信息区域 @@ -149,14 +140,13 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头) * **showEditFeedback** `1` —— 编辑/删除操作列 * **showDeptFeedback** `1` —— 按部门过滤反馈 * **showJiJianFields** `0` —— 纪检字段列 -* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1&showFeedbackInfo=1&showAddFeedback=1&showEditFeedback=1&showDeptFeedback=1 +* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&showAddFeedback=1&showEditFeedback=1&showDeptFeedback=1 --- ### 节点: <反馈流程部门负责人审批> * taskDefKey: `` - * **showBaseInfo** `1` —— 基础信息区域 - * **baseInfoReadonly** `1` —— 基础信息只读 + * **edit** `0` —— 基础信息可编辑 * **showProcessHandle** `1` —— 流程办理区域 * **showSubApproveUser** `0` —— 是否办结 + 部门经办人 * **showFeedbackInfo** `1` —— 反馈信息区域 @@ -164,14 +154,12 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头) * **showEditFeedback** `0` —— 编辑/删除操作列 * **showDeptFeedback** `1` —— 按部门过滤反馈 * **showJiJianFields** `0` —— 纪检字段列 -* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1&showFeedbackInfo=1&showDeptFeedback=1 +* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&showDeptFeedback=1 --- ### 节点: <反馈流程督办经办人核查> * taskDefKey: `` - - * **showBaseInfo** `1` —— 基础信息区域 - * **baseInfoReadonly** `1` —— 基础信息只读 + * **edit** `0` —— 基础信息可编辑 * **showProcessHandle** `1` —— 流程办理区域 * **showSubApproveUser** `0` —— 是否办结 + 部门经办人 * **showFeedbackInfo** `1` —— 反馈信息区域 @@ -179,15 +167,14 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头) * **showEditFeedback** `0` —— 编辑/删除操作列 * **showDeptFeedback** `0` —— 按部门过滤反馈 * **showJiJianFields** `0` —— 纪检字段列 -* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1&showFeedbackInfo=1 +* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1 --- ### 节点: <反馈流程督办部门负责人审批> * taskDefKey: `` - * **showBaseInfo** `1` —— 基础信息区域 - * **baseInfoReadonly** `1` —— 基础信息只读 + * **edit** `0` —— 基础信息只读 * **showProcessHandle** `1` —— 流程办理区域 * **showSubApproveUser** `0` —— 是否办结 + 部门经办人 * **showFeedbackInfo** `1` —— 反馈信息区域 @@ -201,38 +188,37 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头) ### 节点: <反馈流程纪检经办人监察> * taskDefKey: `` - * **showBaseInfo** `1` —— 基础信息区域 - * **baseInfoReadonly** `1` —— 基础信息只读 + * **edit** `0` —— 基础信息可编辑 * **showProcessHandle** `1` —— 流程办理区域 * **showSubApproveUser** `0` —— 是否办结 + 部门经办人 * **showFeedbackInfo** `1` —— 反馈信息区域 * **showAddFeedback** `0` —— 新增反馈按钮 * **showEditFeedback** `1` —— 编辑/删除操作列 + * **jiJianFieldsReadonly** `0` —— 弹窗内纪检字段只读 * **showDeptFeedback** `0` —— 按部门过滤反馈 * **showJiJianFields** `1` —— 纪检字段列 -* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1&showFeedbackInfo=1&showEditFeedback=1&showJiJianFields=1&jiJianFieldsReadonly=1 +* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&showEditFeedback=1&showJiJianFields=1 --- ### 节点: <反馈流程纪检负责人审批> * taskDefKey: `` - * **showBaseInfo** `1` —— 基础信息区域 - * **baseInfoReadonly** `1` —— 基础信息只读 + * **edit** `0` —— 基础信息可编辑 * **showProcessHandle** `1` —— 流程办理区域 * **showSubApproveUser** `0` —— 是否办结 + 部门经办人 * **showFeedbackInfo** `1` —— 反馈信息区域 * **showAddFeedback** `0` —— 新增反馈按钮 * **showEditFeedback** `0` —— 编辑/删除操作列 + * **jiJianFieldsReadonly** `0` —— 弹窗内纪检字段只读 * **showDeptFeedback** `0` —— 按部门过滤反馈 * **showJiJianFields** `1` —— 纪检字段列 -* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1&showFeedbackInfo=1&showEditFeedback=1&showJiJianFields=1&jiJianFieldsReadonly=1 +* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1&showFeedbackInfo=1&showEditFeedback=1&showJiJianFields=1 --- ### 节点: <督办部门经办人确认全部反馈事项> * taskDefKey: `` - * **showBaseInfo** `1` —— 基础信息区域 - * **baseInfoReadonly** `1` —— 基础信息只读 + * **edit** `0` —— 基础信息只读 * **showProcessHandle** `1` —— 流程办理区域 * **showSubApproveUser** `0` —— 是否办结 + 部门经办人 * **showFeedbackInfo** `1` —— 反馈信息区域 @@ -240,100 +226,96 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头) * **showEditFeedback** `0` —— 编辑/删除操作列 * **showDeptFeedback** `0` —— 按部门过滤反馈 * **showJiJianFields** `1` —— 纪检字段列 -* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&showJiJianFields=1&jiJianFieldsReadonly=1 +* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&showJiJianFields=1 --- + ## 习讲话经办人反馈流程 ### 节点: <部门经办人反馈完成情况> * taskDefKey: `` - - * **showBaseInfo** `1` —— 基础信息区域 - * **baseInfoReadonly** `1` —— 基础信息只读 + * **edit** `0` —— 基础信息可编辑 * **showProcessHandle** `1` —— 流程办理区域 * **showSubApproveUser** `0` —— 是否办结 + 部门经办人 * **showFeedbackInfo** `1` —— 反馈信息区域 * **showAddFeedback** `1` —— 新增反馈按钮 * **showEditFeedback** `1` —— 编辑/删除操作列 + * **jiJianFieldsReadonly** `1` —— 弹窗内纪检字段只读 * **showDeptFeedback** `0` —— 按部门过滤反馈 * **showJiJianFields** `1` —— 纪检字段列 - * **jiJianFieldsReadonly** `1` —— 纪检字段可见但不可编辑 -* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1&showFeedbackInfo=1&showAddFeedback=1&showEditFeedback=1&showJiJianFields=1&jiJianFieldsReadonly=1 +* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&showAddFeedback=1&showEditFeedback=1&jiJianFieldsReadonly=1&showJiJianFields=1 --- ### 节点: <部门负责人审批> * taskDefKey: `` - * **showBaseInfo** `1` —— 基础信息区域 - * **baseInfoReadonly** `1` —— 基础信息只读 + * **edit** `0` —— 基础信息可编辑 * **showProcessHandle** `1` —— 流程办理区域 * **showSubApproveUser** `0` —— 是否办结 + 部门经办人 * **showFeedbackInfo** `1` —— 反馈信息区域 * **showAddFeedback** `0` —— 新增反馈按钮 * **showEditFeedback** `0` —— 编辑/删除操作列 + * **jiJianFieldsReadonly** `0` —— 弹窗内纪检字段只读 * **showDeptFeedback** `0` —— 按部门过滤反馈 * **showJiJianFields** `1` —— 纪检字段列 - * **jiJianFieldsReadonly** `1` —— 纪检字段可见但不可编辑 -* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1&showFeedbackInfo=1&showJiJianFields=1&jiJianFieldsReadonly=1 +* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&showJiJianFields=1 --- ### 节点: <督办经办人核查> * taskDefKey: `` - * **showBaseInfo** `1` —— 基础信息区域 - * **baseInfoReadonly** `0` —— 基础信息只读 + * **edit** `0` —— 基础信息可编辑 * **showProcessHandle** `1` —— 流程办理区域 * **showSubApproveUser** `0` —— 是否办结 + 部门经办人 * **showFeedbackInfo** `1` —— 反馈信息区域 * **showAddFeedback** `0` —— 新增反馈按钮 * **showEditFeedback** `0` —— 编辑/删除操作列 + * **jiJianFieldsReadonly** `0` —— 弹窗内纪检字段只读 * **showDeptFeedback** `0` —— 按部门过滤反馈 * **showJiJianFields** `1` —— 纪检字段列 - * **jiJianFieldsReadonly** `1` —— 纪检字段可见但不可编辑 -* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1&showFeedbackInfo=1&showJiJianFields=1&jiJianFieldsReadonly=1 +* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&showJiJianFields=1 --- ### 节点: <督办部门负责人审批> * taskDefKey: `` - * **showBaseInfo** `1` —— 基础信息区域 - * **baseInfoReadonly** `0` —— 基础信息只读 + * **edit** `0` —— 基础信息可编辑 * **showProcessHandle** `1` —— 流程办理区域 * **showSubApproveUser** `0` —— 是否办结 + 部门经办人 * **showFeedbackInfo** `1` —— 反馈信息区域 * **showAddFeedback** `0` —— 新增反馈按钮 * **showEditFeedback** `0` —— 编辑/删除操作列 + * **jiJianFieldsReadonly** `0` —— 弹窗内纪检字段只读 * **showDeptFeedback** `0` —— 按部门过滤反馈 * **showJiJianFields** `1` —— 纪检字段列 - * **jiJianFieldsReadonly** `1` —— 纪检字段可见但不可编辑 -* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1&showFeedbackInfo=1&showJiJianFields=1&jiJianFieldsReadonly=1 +* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&showJiJianFields=1 --- ### 节点: <纪检经办人监察> * taskDefKey: `` - * **showBaseInfo** `1` —— 基础信息区域 - * **baseInfoReadonly** `1` —— 基础信息只读 + * **edit** `0` —— 基础信息可编辑 * **showProcessHandle** `1` —— 流程办理区域 * **showSubApproveUser** `0` —— 是否办结 + 部门经办人 * **showFeedbackInfo** `1` —— 反馈信息区域 * **showAddFeedback** `0` —— 新增反馈按钮 * **showEditFeedback** `1` —— 编辑/删除操作列 + * **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 --- ### 节点: <纪检负责人审批> * taskDefKey: `` - * **showBaseInfo** `1` —— 基础信息区域 - * **baseInfoReadonly** `0` —— 基础信息只读 + * **edit** `0` —— 基础信息可编辑 * **showProcessHandle** `1` —— 流程办理区域 * **showSubApproveUser** `0` —— 是否办结 + 部门经办人 * **showFeedbackInfo** `1` —— 反馈信息区域 * **showAddFeedback** `0` —— 新增反馈按钮 * **showEditFeedback** `0` —— 编辑/删除操作列 + * **jiJianFieldsReadonly** `0` —— 弹窗内纪检字段只读 * **showDeptFeedback** `0` —— 按部门过滤反馈 * **showJiJianFields** `1` —— 纪检字段列 -* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1&showFeedbackInfo=1&showJiJianFields=1 +* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&showJiJianFields=1 --- diff --git a/src/views/bg/xispeak/components/BgXiSpeakBPMForm.vue b/src/views/bg/xispeak/components/BgXiSpeakBPMForm.vue index 9a4b6bc..97a7a0a 100644 --- a/src/views/bg/xispeak/components/BgXiSpeakBPMForm.vue +++ b/src/views/bg/xispeak/components/BgXiSpeakBPMForm.vue @@ -267,6 +267,7 @@ import { computed, onMounted, reactive, ref, watch } from 'vue'; import { defHttp } from '/@/utils/http/axios'; import { useMessage } from '/@/hooks/web/useMessage'; + import { useUserStore } from '/@/store/modules/user'; import JSelectDept from '/@/components/Form/src/jeecg/components/JSelectDept.vue'; import JSelectUser from '/@/components/Form/src/jeecg/components/JSelectUser.vue'; import JTreeSelect from '/@/components/Form/src/jeecg/components/JTreeSelect.vue'; @@ -286,6 +287,7 @@ import SUploadFile from '/@/components/semri/fileComponent/SUploadFile.vue'; const { isDisabledAuth, hasPermission, initBpmFormData } = usePermission(); + const userStore = useUserStore(); const props = defineProps({ formDisabled: { type: Boolean, default: false }, @@ -353,7 +355,7 @@ { title: '序号', key: 'seq', align: 'center', width: 60 }, { title: '反馈部门名称', dataIndex: 'responDeptname', align: 'center', width: 140 }, { title: '反馈人姓名', dataIndex: 'responPersonname', align: 'center', width: 120 }, - { title: '措施内容', dataIndex: 'method', align: 'left', width: 200 }, + { title: '具体措施', dataIndex: 'method', align: 'left', width: 200 }, { title: '完成状态', dataIndex: 'completionStatus_dictText', align: 'center', width: 100 }, { title: '是否有报送上级报告', dataIndex: 'isReportedToHigher_dictText', align: 'center', width: 140 }, { title: '进展情况', dataIndex: 'progress', align: 'left', width: 200 }, @@ -435,6 +437,10 @@ watch([() => props.formData?.dataId, () => processInfo.value.processInstanceId], () => initFormData()); + watch(showDeptFeedback, () => { + loadFeedbackList(); + }); + watch( () => props.formData?.vars?.isEnd, (value) => { @@ -465,6 +471,17 @@ }); } + function getCurrentUserDeptId() { + const userInfo = (userStore.getUserInfo || {}) as Record; + const loginInfo = (userStore.getLoginInfo || {}) as Record; + const departs = Array.isArray(loginInfo.departs) ? loginInfo.departs : []; + if (userInfo.orgCode) { + const dept = departs.find((item: any) => item.orgCode === userInfo.orgCode); + return dept?.id || ''; + } + return departs.length === 1 ? departs[0]?.id || '' : ''; + } + async function loadFeedbackList() { const bpmProcessId = processInfo.value.processInstanceId; if (!mainForm.id || !bpmProcessId) { @@ -473,7 +490,17 @@ } const apiFn = showDeptFeedback.value ? bgXiSpeakFeedbackListWithDept : bgXiSpeakFeedbackList; const res = await apiFn({ mainId: mainForm.id, bpmProcessId, pageNo: 1, pageSize: 999 }); - feedbackList.value = res?.records || res?.result?.records || []; + let list = res?.records || res?.result?.records || []; + if (list.length && showDeptFeedback.value) { + const deptId = getCurrentUserDeptId(); + if (deptId) { + list = list.filter((item: any) => { + const deptIds = String(item.responDeptid || '').split(',').map((s: string) => s.trim()); + return deptIds.includes(String(deptId)); + }); + } + } + feedbackList.value = list; } async function submitForm() { diff --git a/src/views/bg/xispeak/components/BgXiSpeakFeedbackForm.vue b/src/views/bg/xispeak/components/BgXiSpeakFeedbackForm.vue index 5675296..fed03ad 100644 --- a/src/views/bg/xispeak/components/BgXiSpeakFeedbackForm.vue +++ b/src/views/bg/xispeak/components/BgXiSpeakFeedbackForm.vue @@ -38,7 +38,7 @@ 措施信息 - + From 326032c62b0c668afbd457ebe69eb0af7150fa85 Mon Sep 17 00:00:00 2001 From: wsm <2746563060@侵权。> Date: Tue, 26 May 2026 18:43:23 +0800 Subject: [PATCH 2/2] =?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 @@