From 5e2501496943a7991eb11b1e9bccbf64631719f6 Mon Sep 17 00:00:00 2001
From: tuqin <tuqin@tuqin.cn>
Date: 星期四, 05 十一月 2026 16:18:37 +0800
Subject: [PATCH] fix(bpm): 流程管理员写入时带上当前操作人,避免换账号后无法再改模型

---
 src/views/bpm/model/form/modules/basic-info.vue |   22 +++++++++++++++++++---
 1 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/src/views/bpm/model/form/modules/basic-info.vue b/src/views/bpm/model/form/modules/basic-info.vue
index 97a23a7..3810aad 100644
--- a/src/views/bpm/model/form/modules/basic-info.vue
+++ b/src/views/bpm/model/form/modules/basic-info.vue
@@ -14,6 +14,7 @@
 import { DICT_TYPE } from '@vben/constants';
 import { getDictOptions } from '@vben/hooks';
 import { IconifyIcon } from '@vben/icons';
+import { useUserStore } from '@vben/stores';
 
 import {
   Avatar,
@@ -56,6 +57,7 @@
 
 const formRef = ref(); // 琛ㄥ崟寮曠敤
 const modelData = defineModel<any>(); // 鍒涘缓鏈湴鏁版嵁鍓湰
+const userStore = useUserStore(); // 褰撳墠鐧诲綍鐢ㄦ埛锛堝啓鍏ユ祦绋嬬鐞嗗憳锛岄伩鍏嶆崲璐﹀彿鍚庢棤娉曞啀淇敼妯″瀷锛�
 
 const selectedStartUsers = ref<SystemUserApi.User[]>([]); // 閫変腑鐨勫彂璧蜂汉
 const selectedStartDepts = ref<SystemDeptApi.Dept[]>([]); // 閫変腑鐨勫彂璧烽儴闂�
@@ -113,13 +115,27 @@
           newVal.managerUserIds.includes(user.id),
         ) as SystemUserApi.User[])
       : [];
-    // 娴佺▼绠$悊鍛樺浐瀹氫负瓒呯骇绠$悊鍛橈細杩涘叆椤甸潰鍗冲己鍒跺洖鍐欙紝淇敼鍦烘櫙鍚屾牱鐢熸晥
+    // 娴佺▼绠$悊鍛樺浐瀹氫负瓒呯骇绠$悊鍛橈細杩涘叆椤甸潰鍗冲己鍒跺洖鍐欙紝淇敼鍦烘櫙鍚屾牱鐢熸晥銆�
+    // 娉ㄦ剰锛氬悓鏃舵妸銆屽綋鍓嶆搷浣滀汉銆嶄竴骞跺啓鍏ャ�傚洜涓哄悗绔� updateModel 鏄�屽厛鏍¢獙绠$悊鍛樸�佸悗鍐欏叆銆嶏紝
+    // 涓�鏃︽ā鍨嬭淇濆瓨鎴愬彧鍖呭惈瓒呯锛岀敤鍏朵粬璐﹀彿鍐嶆淇敼灏变細鎶�
+    // 銆屾搷浣滄祦绋嬪け璐ワ紝鍘熷洜锛氫綘涓嶆槸璇ユ祦绋�(xxx)鐨勭鐞嗗憳銆嶏紝涓旀棤娉曡嚜鎰堛��
     const admin = props.userList.find(
       (user: SystemUserApi.User) => user.username === 'admin',
     );
+    const currentUserId = userStore.userInfo?.id;
+    const managerIds: number[] = [];
     if (admin) {
-      newVal.managerUserIds = [admin.id];
-      selectedManagerUsers.value = [admin as SystemUserApi.User];
+      managerIds.push(admin.id);
+    }
+    if (currentUserId && !managerIds.includes(currentUserId)) {
+      managerIds.push(currentUserId);
+    }
+    if (managerIds.length > 0) {
+      newVal.managerUserIds = managerIds;
+      // 鐣岄潰涓婁粛鐒跺彧灞曠ず銆岃秴绾х鐞嗗憳銆�
+      const displayUser =
+        admin ?? props.userList.find((user) => user.id === managerIds[0]);
+      selectedManagerUsers.value = displayUser ? [displayUser] : [];
     }
   },
   {

--
Gitblit v1.9.3