From de1bcc3bf18e3b086dac13cb948fa3cf4d0cb9ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BD=97=E7=A8=8B=E5=A4=9A?= Date: Tue, 10 Feb 2026 10:27:20 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=8F=AA=E6=9C=89=E8=B6=85=E7=AE=A1?= =?UTF-8?q?=E8=A7=92=E8=89=B2=E5=8F=AF=E4=BB=A5=E8=AE=BE=E7=BD=AE=E8=B6=85?= =?UTF-8?q?=E7=AE=A1=EF=BC=8C=E5=85=B6=E4=BB=96=E8=A7=92=E8=89=B2=E8=B4=A6?= =?UTF-8?q?=E6=88=B7=E5=9C=A8=E8=AE=BE=E7=BD=AE=E8=A7=92=E8=89=B2=E6=97=B6?= =?UTF-8?q?=E4=B8=8D=E6=98=BE=E7=A4=BA=E8=B6=85=E7=AE=A1=E8=A7=92=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/mlSelectUser/index.vue | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/components/mlSelectUser/index.vue b/src/components/mlSelectUser/index.vue index 6fdac8ce..8387ca36 100644 --- a/src/components/mlSelectUser/index.vue +++ b/src/components/mlSelectUser/index.vue @@ -129,6 +129,7 @@ import { ref, watch, onMounted, inject, nextTick, reactive, computed } from "vue"; import useCommonStore from "@/store/modules/common"; import { storeToRefs } from "pinia"; +import tool from "@/utils/tool"; const { publicSetting } = storeToRefs(useCommonStore()); const api = inject("$API"); const cloneDeep = inject("$CloneDeep"); @@ -209,6 +210,8 @@ let tabData = ref([]); let cutTabCode = ref("User"); // 是否树形模式(用户、部门) const isTreeMode = computed(() => cutTabCode.value === 'User' || cutTabCode.value === 'Department'); +// 判断当前用户是否是管理员 +const isCurrentUserAdmin = ref(false); // 树 props/keys(用户/部门树均为 label/id) const treeLabelKey = computed(() => 'label'); const treeIdKey = computed(() => 'id'); @@ -258,6 +261,17 @@ onMounted(() => { itemName: "jobTitle", }); } + // 检查当前用户是否是管理员 + const userInfo = tool.data.get("USER_INFO"); + if (userInfo && userInfo.roles && Array.isArray(userInfo.roles)) { + // 遍历 roles 数组,检查是否包含管理员角色 + isCurrentUserAdmin.value = userInfo.roles.some(r => { + const roleId = r.id || ''; + const roleName = r.name || ''; + return roleId.includes('00000000000000000000000000000001') || + roleName.includes('管理员角色'); + }); + } initData(); }); @@ -302,7 +316,15 @@ let getData = async () => { const apiName = cutTabCode.value === 'User' ? 'getUserTreeData' : 'getDepartmentTreeData'; res = await api.common[apiName](query); } else { - res = await api.common["get" + cutTabCode.value](param, props.filter[cutTabCode.value]); + // 如果是角色标签,且当前用户不是管理员,自动过滤掉管理员角色 + let filterObj = Object.assign({}, props.filter[cutTabCode.value] || {}); + if (cutTabCode.value === 'Role' && !isCurrentUserAdmin.value) { + // 合并过滤条件,排除管理员角色 + filterObj = Object.assign({}, filterObj, { + filterEasySql: "roleId NOT LIKE '%00000000000000000000000000000001%'" + }); + } + res = await api.common["get" + cutTabCode.value](param, filterObj); } if (res) { if (isTreeMode.value) {