Browse Source

用户岗位授权优化

master
fengyuan_yang 3 weeks ago
parent
commit
6e7dad0199
  1. 10
      cclqms-java/src/main/java/com/gaotao/modules/base/data/RoleData.java
  2. 24
      cclqms-java/src/main/resources/mapper/base/BaseMapper.xml
  3. 43
      cclqms-vue/src/views/modules/sys/user.vue

10
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;
}

24
cclqms-java/src/main/resources/mapper/base/BaseMapper.xml

@ -2369,13 +2369,13 @@
</select>
<select id="selectRoleList" resultType="java.lang.String">
SELECT a.role_no
SELECT ISNULL(a.site, '') + '|' + ISNULL(a.role_no, '')
FROM access_role a
LEFT JOIN [Role] b
ON a.site = b.site
AND a.role_no = b.role_no
WHERE a.site = #{site}
AND a.username = #{username}
WHERE a.username = #{username}
AND a.site IN (SELECT site FROM AccessSite WHERE UPPER(userID) = UPPER(#{username}))
AND ISNULL(b.active, 'Y') = 'Y'
</select>
@ -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]
<where>
<if test="site != null and site != ''">
AND site = #{site}
</if>
<choose>
<when test="username != null and username != ''">
AND site IN (SELECT site FROM AccessSite WHERE UPPER(userID) = UPPER(#{username}))
</when>
<when test="site != null and site != ''">
AND site = #{site}
</when>
</choose>
<if test="active != null and active != ''">
AND active = #{active}
</if>
@ -2403,13 +2410,12 @@
AND role_desc LIKE '%' + #{roleDesc} + '%'
</if>
</where>
ORDER BY [type], role_no
ORDER BY site, [type], role_no
</select>
<delete id="deleteAccessRoleWithUsername">
DELETE FROM access_role
WHERE site = #{site}
AND username = #{username}
WHERE username = #{username}
</delete>
<insert id="saveAccessRole" parameterType="com.gaotao.modules.base.data.RoleData">

43
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">
<el-transfer class="rq" filterable v-model="selectRoleList" :props="{
key: 'roleNo',
label: 'roleDesc'
key: 'roleKey',
label: 'roleLabel'
}" :data="roleList" :titles="['未授权岗位', '已授权岗位']"></el-transfer>
<span slot="footer" class="dialog-footer">
<div style="margin-top: 5px">
@ -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 {
}
</script>
<style>
.rq .el-transfer-panel {
width: 260px;
}
.el-transfer-panel {
border: 2px solid #17b3a3;
border-radius: 4px;

Loading…
Cancel
Save