From 6e7dad01993a0bcca3bc3a74e32881c678d48c4f Mon Sep 17 00:00:00 2001 From: fengyuan_yang <1976974459@qq.com> Date: Fri, 4 Sep 2026 17:14:59 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=B2=97=E4=BD=8D=E6=8E=88?= =?UTF-8?q?=E6=9D=83=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gaotao/modules/base/data/RoleData.java | 10 +++++ .../main/resources/mapper/base/BaseMapper.xml | 24 +++++++---- cclqms-vue/src/views/modules/sys/user.vue | 43 +++++++++++++++---- 3 files changed, 60 insertions(+), 17 deletions(-) diff --git a/cclqms-java/src/main/java/com/gaotao/modules/base/data/RoleData.java b/cclqms-java/src/main/java/com/gaotao/modules/base/data/RoleData.java index bb1f8c5..948bb94 100644 --- a/cclqms-java/src/main/java/com/gaotao/modules/base/data/RoleData.java +++ b/cclqms-java/src/main/java/com/gaotao/modules/base/data/RoleData.java @@ -12,4 +12,14 @@ public class RoleData extends Role { private String siteID; private String type; + + /** + * 穿梭框唯一键:site|roleNo + */ + private String roleKey; + + /** + * 穿梭框展示:site - roleDesc + */ + private String roleLabel; } diff --git a/cclqms-java/src/main/resources/mapper/base/BaseMapper.xml b/cclqms-java/src/main/resources/mapper/base/BaseMapper.xml index 2385b18..9bf9fab 100644 --- a/cclqms-java/src/main/resources/mapper/base/BaseMapper.xml +++ b/cclqms-java/src/main/resources/mapper/base/BaseMapper.xml @@ -2369,13 +2369,13 @@ @@ -2385,14 +2385,21 @@ site, role_no AS roleNo, role_desc AS roleDesc, + ISNULL(site, '') + '|' + ISNULL(role_no, '') AS roleKey, + ISNULL(site, '') + ' - ' + ISNULL(role_desc, '') AS roleLabel, remark, active, [type] AS type FROM [Role] - - AND site = #{site} - + + + AND site IN (SELECT site FROM AccessSite WHERE UPPER(userID) = UPPER(#{username})) + + + AND site = #{site} + + AND active = #{active} @@ -2403,13 +2410,12 @@ AND role_desc LIKE '%' + #{roleDesc} + '%' - ORDER BY [type], role_no + ORDER BY site, [type], role_no DELETE FROM access_role - WHERE site = #{site} - AND username = #{username} + WHERE username = #{username} diff --git a/cclqms-vue/src/views/modules/sys/user.vue b/cclqms-vue/src/views/modules/sys/user.vue index 31c129b..9e35bab 100644 --- a/cclqms-vue/src/views/modules/sys/user.vue +++ b/cclqms-vue/src/views/modules/sys/user.vue @@ -464,11 +464,11 @@ v-drag :title="'岗位授权'" :visible.sync="roleVisible" - width="518px" + width="680px" :append-to-body="true">
@@ -1127,15 +1127,37 @@ export default { searchRoleList () { searchAccessRoleList({ - site: this.$store.state.user.site, username: this.selectUser.username, active: 'Y' }).then(({data}) => { - this.selectRoleList = data.selectRoleList - this.roleList = data.roleList + this.selectRoleList = data.selectRoleList || [] + this.roleList = (data.roleList || []).map(item => { + const site = String((item && item.site) || '').trim() + const roleNo = String((item && item.roleNo) || '').trim() + const roleDesc = String((item && item.roleDesc) || '').trim() + return Object.assign({}, item, { + roleKey: item.roleKey || (site + '|' + roleNo), + roleLabel: item.roleLabel || (site + ' - ' + roleDesc) + }) + }) }) }, + parseRoleKey (roleKey) { + const rawKey = String(roleKey || '') + const splitIndex = rawKey.indexOf('|') + if (splitIndex < 0) { + return { + site: '', + roleNo: rawKey + } + } + return { + site: rawKey.substring(0, splitIndex), + roleNo: rawKey.substring(splitIndex + 1) + } + }, + saveRoleAssessSite () { if (this.selectRoleList.length === 0) { this.$message.warning('请选择角色') @@ -1143,10 +1165,11 @@ export default { } let inList = [] for (let i = 0; i < this.selectRoleList.length; i++) { + const roleInfo = this.parseRoleKey(this.selectRoleList[i]) let inData = { - site: this.$store.state.user.site, + site: roleInfo.site, username: this.selectUser.username, - roleNo: this.selectRoleList[i] + roleNo: roleInfo.roleNo } inList.push(inData) } @@ -1265,6 +1288,10 @@ export default { }