From 24739d5efce387d4f5bd88230ebbd3d34b5f2c4d Mon Sep 17 00:00:00 2001
From: new_new_new <8454518+new-twice@user.noreply.gitee.com>
Date: Mon, 1 Jun 2026 08:45:34 +0000
Subject: [PATCH] =?UTF-8?q?!15=20feat(xispeak):=20=E7=9D=A3=E5=8A=9E?=
=?UTF-8?q?=E9=A2=86=E5=AF=BC=E5=88=97=E8=A1=A8=E7=BB=9F=E4=B8=80=E6=94=B9?=
=?UTF-8?q?=E7=94=A8SzUserSelectByDeptRoleSecurityModal=E5=BC=B9=E7=AA=97?=
=?UTF-8?q?=E9=80=89=E4=BA=BA=EF=BC=8C=E5=AD=98=E5=82=A8use=E2=80=A6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* feat(xispeak): 督办领导列表统一改用SzUserSelectByDeptRoleSecurityModal弹窗选人,存储use…
* feat(xispeak): 督办领导列表改用SzUserSelectByDeptRoleSecurityModal弹窗选人
* chore(xispeak): 更新 BPM_NODE_PERMISSIONS 节点权限配置
* feat(xispeak): 新增 showSelnextUser 权限控制,默认隐藏指定下一步操作人
* fix(xispeak): 修复是否报送上级报告字段显示0/1而非字典标签
* feat(xispeak): 新增 nonJiJianFieldsReadonly 权限控制,支持除纪检字段外全部只读
* fix(xispeak): 修复反馈表单标签对齐和网格布局问题
* fix(xispeak): 指定落实措施条数、措施已闭环数量、督办次数设为不可编辑
---
.../semri/process/FlowScheduleStartModal.vue | 71 ++++++++++++++-
.../SzUserSelectByDeptRoleSecurityModal.vue | 39 +++++---
src/views/bg/xispeak/BPM_NODE_PERMISSIONS.md | 12 ++-
src/views/bg/xispeak/BgXiSpeakList.vue | 2 +
.../components/BgXiSpeakBPMFeedbackModal.vue | 15 ++--
.../xispeak/components/BgXiSpeakBPMForm.vue | 89 ++++++++++++++++---
.../components/BgXiSpeakFeedbackForm.vue | 17 +++-
.../bg/xispeak/components/BgXiSpeakForm.vue | 72 +++++++++++++--
.../content/TaskHandleInnerContent.vue | 6 +-
9 files changed, 276 insertions(+), 47 deletions(-)
diff --git a/src/components/semri/process/FlowScheduleStartModal.vue b/src/components/semri/process/FlowScheduleStartModal.vue
index 6ffc007..9b937bd 100644
--- a/src/components/semri/process/FlowScheduleStartModal.vue
+++ b/src/components/semri/process/FlowScheduleStartModal.vue
@@ -36,7 +36,27 @@
-
+
+
+
+
+
+
@@ -79,7 +99,9 @@
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 SzUserSelectByDeptRoleSecurityModal from '/src/components/semri/userComponent/modal/SzUserSelectByDeptRoleSecurityModal.vue';
+ import { SearchOutlined } from '@ant-design/icons-vue';
+ import { getUserList } from '/src/api/common/api';
import { useMessage } from '/src/hooks/web/useMessage';
interface ModalPayload {
@@ -89,6 +111,7 @@
showSuoleaderFields?: boolean;
isNeedAppro?: string | number;
supDeptleaderid?: string | string[];
+ supDeptleaderName?: string;
showDeadlineField?: boolean;
deadline?: string | Date;
}
@@ -107,6 +130,44 @@
const deptOptions = ref([]);
const showSuoleaderFields = ref(false);
const showDeadlineField = ref(false);
+
+ // 所党委领导选人弹窗
+ const sdwLeaderModalOpen = ref(false);
+ const supDeptleaderName = ref('');
+ const sdwLeaderDeptId = ref('2044677562460508161');
+ const sdwLeaderRoleId = ref('2044676455280570370');
+ const sdwLeaderSecurityValue = ref(5);
+
+ function openSdwLeaderModal() {
+ if (String(formData.isNeedAppro) !== '1') return;
+ sdwLeaderModalOpen.value = true;
+ }
+
+ function handleClearSdwLeader() {
+ formData.supDeptleaderid = '';
+ supDeptleaderName.value = '';
+ }
+
+ function handleSdwLeaderConfirm(rows: Array<{ id: string; realname: string }>) {
+ if (rows && rows.length > 0) {
+ formData.supDeptleaderid = rows.map((r) => r.username).join(',');
+ supDeptleaderName.value = rows.map((r) => r.realname).join(',');
+ } else {
+ formData.supDeptleaderid = '';
+ supDeptleaderName.value = '';
+ }
+ }
+
+ async function resolveSdwLeaderNames(ids: string) {
+ try {
+ const res = await getUserList({ username: ids, pageSize: 999 });
+ const records = res?.records || res?.result?.records || [];
+ supDeptleaderName.value = records.map((u: any) => u.realname).join(',');
+ } catch {
+ supDeptleaderName.value = '';
+ }
+ }
+
const formData = reactive({
triggerMode: 'immediate',
intervalType: undefined as number | string | undefined,
@@ -126,6 +187,7 @@
formData.deptIds = [];
formData.isNeedAppro = '0';
formData.supDeptleaderid = '';
+ supDeptleaderName.value = '';
formData.deadline = undefined;
deptOptions.value = [];
showSuoleaderFields.value = false;
@@ -169,6 +231,10 @@
showSuoleaderFields.value = !!data.showSuoleaderFields;
formData.isNeedAppro = String(data.isNeedAppro ?? '0');
formData.supDeptleaderid = data.supDeptleaderid || '';
+ supDeptleaderName.value = data.supDeptleaderName || '';
+ if (!supDeptleaderName.value && formData.supDeptleaderid) {
+ resolveSdwLeaderNames(formData.supDeptleaderid as string);
+ }
showDeadlineField.value = !!data.showDeadlineField;
formData.deadline = normalizeDeadlineValue(data.deadline);
if (String(formData.isNeedAppro) !== '1') {
@@ -228,6 +294,7 @@
(value) => {
if (String(value) !== '1') {
formData.supDeptleaderid = '';
+ supDeptleaderName.value = '';
}
}
);
diff --git a/src/components/semri/userComponent/modal/SzUserSelectByDeptRoleSecurityModal.vue b/src/components/semri/userComponent/modal/SzUserSelectByDeptRoleSecurityModal.vue
index f78a699..44f3810 100644
--- a/src/components/semri/userComponent/modal/SzUserSelectByDeptRoleSecurityModal.vue
+++ b/src/components/semri/userComponent/modal/SzUserSelectByDeptRoleSecurityModal.vue
@@ -1,6 +1,6 @@
-
-
+
+