From adffcb4ac80fdf736bde01eb56711c161bf602ba Mon Sep 17 00:00:00 2001
From: tuqin <tuqin@tuqin.cn>
Date: 星期五, 06 十一月 2026 09:12:23 +0800
Subject: [PATCH] fix(bpm): 属性面板补上「审批人」配置,解决流程无法发布

---
 src/views/bpm/model/form/modules/basic-info.vue |   58 ++++++++++++++++++++++++++++------------------------------
 1 files changed, 28 insertions(+), 30 deletions(-)

diff --git a/src/views/bpm/model/form/modules/basic-info.vue b/src/views/bpm/model/form/modules/basic-info.vue
index a297e25..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,6 +115,28 @@
           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) {
+      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] : [];
+    }
   },
   {
     immediate: true,
@@ -398,36 +422,10 @@
         </div>
       </Form.Item>
       <Form.Item label="娴佺▼绠$悊鍛�" name="managerUserIds">
-        <div class="flex flex-wrap gap-1">
-          <div
-            v-for="user in selectedManagerUsers"
-            :key="user.id"
-            class="relative flex h-9 items-center rounded-full bg-gray-100 pr-2 hover:bg-gray-200 dark:border dark:border-gray-500 dark:bg-gray-700 dark:hover:bg-gray-600"
-          >
-            <Avatar class="m-1 size-7" v-if="user.avatar" :src="user.avatar" />
-            <Avatar class="m-1 size-7" v-else>
-              {{ user.nickname?.substring(0, 1) }}
-            </Avatar>
-            <span class="text-gray-700 dark:text-gray-200">
-              {{ user.nickname }}
-            </span>
-            <IconifyIcon
-              icon="lucide:x"
-              class="ml-2 size-4 cursor-pointer text-gray-400 hover:text-red-500"
-              @click="handleRemoveManagerUser(user)"
-            />
-          </div>
-          <Button
-            type="link"
-            @click="openManagerUserSelect"
-            class="flex items-center"
-          >
-            <template #icon>
-              <IconifyIcon icon="lucide:user-plus" class="size-4" />
-            </template>
-            閫夋嫨浜哄憳
-          </Button>
-        </div>
+        <!-- 娴佺▼绠$悊鍛樺浐瀹氫负瓒呯骇绠$悊鍛橈紝涓嶅厑璁搁�夋嫨 -->
+        <span class="text-gray-700 dark:text-gray-200">
+          {{ selectedManagerUsers[0]?.nickname || '瓒呯骇绠$悊鍛�' }}
+        </span>
       </Form.Item>
     </Form>
 

--
Gitblit v1.9.3