小组权限管理中心 用户权限相关调整

This commit is contained in:
anhc 2022-07-09 21:12:16 +08:00
parent f5245db8ed
commit 44383ccafe
3 changed files with 85 additions and 10 deletions

View File

@ -135,7 +135,10 @@
<template slot-scope="scope"> <template slot-scope="scope">
<div style="width: 30px;display: inline-block;"> <div style="width: 30px;display: inline-block;">
<div class="operate-icon-display"> <div class="operate-icon-display">
<el-tooltip content="修改角色" placement="bottom" :hide-after=2000> <el-tooltip content="用户权限" placement="bottom" :hide-after=2000>
<i class="iconfont icon-jiaoseguanli" style="cursor: pointer;padding-right: 10px;" @click="updateUser(scope.row.userId)"></i>
</el-tooltip>
<el-tooltip content="修改角色" placement="bottom" :hide-after=2000>
<i class="iconfont icon-jiaoseguanli" style="cursor: pointer;padding-right: 10px;" @click="updateRole(scope.row.userId)"></i> <i class="iconfont icon-jiaoseguanli" style="cursor: pointer;padding-right: 10px;" @click="updateRole(scope.row.userId)"></i>
</el-tooltip> </el-tooltip>
<el-tooltip v-if="scope.row.userId != currTeam.userId" content="删除成员" placement="bottom" :hide-after=2000> <el-tooltip v-if="scope.row.userId != currTeam.userId" content="删除成员" placement="bottom" :hide-after=2000>
@ -177,11 +180,22 @@
v-on:getResult="memberAddDone" v-on:getResult="memberAddDone"
:title="memberAdd.title" :title="memberAdd.title"
/> />
<role-update
ref="roleUpdate"
:visible.sync="roleUpdate.visible"
:teamId="teamId"
:isUser="true"
:roleId="roleUpdate.roleId"
:userid="roleUpdate.userid"
v-on:cancel="roleUpdate.visible = false"
v-on:setUserRole="setUserRole"
v-on:getResult="updateUserDone"/>
</awsui-layout> </awsui-layout>
</template> </template>
<script> <script>
import RoleManage from "../role/RoleManage"; import RoleManage from "../role/RoleManage";
import RoleUpdate from "../role/RoleUpdate";
const header1Height = '80px'; const header1Height = '80px';
const header2Height = '30px'; const header2Height = '30px';
const footerHeight = '45px'; const footerHeight = '45px';
@ -189,7 +203,7 @@
import MemberAdd from "../member/MemberAdd"; import MemberAdd from "../member/MemberAdd";
export default { export default {
name: "ManageList", name: "ManageList",
components: {MemberAdd, RoleManage}, components: {MemberAdd, RoleManage, RoleUpdate},
props: { props: {
teamId: { teamId: {
type: String, type: String,
@ -236,7 +250,12 @@
memberAdd: { memberAdd: {
visible: false, visible: false,
title: '添加小组成员' title: '添加小组成员'
} },
roleUpdate: {
visible: false,
userid:'',
roleId: ''
},
} }
}, },
mounted() { mounted() {
@ -380,6 +399,19 @@
this.roleManage.type = 'roleConfig'; this.roleManage.type = 'roleConfig';
this.roleManage.visible = true; this.roleManage.visible = true;
}, },
updateUser(userId){
this.roleUpdate.userid = userId;
this.roleUpdate.visible = true;
},
updateUserDone(result) {//
this.roleUpdate.visible = false;
if (result == 'ok') {
this.initData();
}
},
setUserRole(roleId){
this.roleUpdate.roleId = roleId;
},
updateRoles() {// updateRoles() {//
if (this.checkedUsers.length == 0) { if (this.checkedUsers.length == 0) {
this.$message({message: '请选择需要修改角色的用户',type: 'warning'}); this.$message({message: '请选择需要修改角色的用户',type: 'warning'});

View File

@ -15,7 +15,7 @@
<div style="border-top:1px solid #F2F2F2;"></div> <div style="border-top:1px solid #F2F2F2;"></div>
<div style="width: 100%;height: 258px;overflow-y: auto;"> <div style="width: 100%;height: 258px;overflow-y: auto;">
<ul> <ul>
<li v-for="item in roleData" class="general-bgcolor-hover" :style="{'background-color': item.roleId == checkdRole ? '#F5F7FA' : ''}"> <li v-for="item in roleData" class="general-bgcolor-hover" :style="{'background-color': item.roleId == checkdRole || item.checked ? '#F5F7FA' : ''}">
<div style="width: 100%;height: 50px;line-height: 50px;vertical-align: middle;"> <div style="width: 100%;height: 50px;line-height: 50px;vertical-align: middle;">
<div style="width: 15%;display: inline-block;text-align: center;"> <div style="width: 15%;display: inline-block;text-align: center;">
<i class="iconfont" v-html="item.icon"></i> <i class="iconfont" v-html="item.icon"></i>
@ -30,7 +30,8 @@
<div style="width: 15%;display: inline-block;text-align: center;"> <div style="width: 15%;display: inline-block;text-align: center;">
<i v-if="type=='roleManage' && item.roleType!=0" class="awsui-iconfont general-bgcolor-text-hover operate-icon-display" style="cursor: pointer;font-size: 14px;" @click="updateRole(item.roleId)">&#xe622;</i> <i v-if="type=='roleManage' && item.roleType!=0" class="awsui-iconfont general-bgcolor-text-hover operate-icon-display" style="cursor: pointer;font-size: 14px;" @click="updateRole(item.roleId)">&#xe622;</i>
<i v-if="type=='roleManage' && item.roleType!=0 && item.roleType!=1 && item.roleType!=2" class="awsui-iconfont general-bgcolor-text-hover operate-icon-display" style="padding-left: 10px;cursor: pointer;font-size: 14px;" @click="removeRole(item.roleId)">&#xe626;</i> <i v-if="type=='roleManage' && item.roleType!=0 && item.roleType!=1 && item.roleType!=2" class="awsui-iconfont general-bgcolor-text-hover operate-icon-display" style="padding-left: 10px;cursor: pointer;font-size: 14px;" @click="removeRole(item.roleId)">&#xe626;</i>
<awsui-radio v-if="type=='roleConfig'" v-else size="small" :label="item.roleId" :showText="false" v-model="checkdRole"></awsui-radio> <awsui-radio v-if="type=='roleConfig' && isOlderVersion" v-else size="small" :label="item.roleId" :showText="false" v-model="checkdRole"></awsui-radio>
<el-checkbox v-if="type=='roleConfig' && !isOlderVersion" v-model="item.checked" :checked="item.checked" @change="$forceUpdate()"></el-checkbox>
</div> </div>
</div> </div>
</li> </li>
@ -103,7 +104,8 @@
roleUpdate: { roleUpdate: {
visible: false, visible: false,
roleId: '', roleId: '',
} },
isOlderVersion:true,
}; };
}, },
created() { created() {
@ -127,9 +129,19 @@
if (ro.result == 'ok') { if (ro.result == 'ok') {
const data = ro.data; const data = ro.data;
that.roleData = data.roleData; that.roleData = data.roleData;
if (data.roleIds && data.roleIds.length > 0) {// that.isOlderVersion= data.isOlderVersion;
if (that.isOlderVersion){
if (data.roleIds && data.roleIds.length > 0) {//
that.checkdRole = data.roleIds[0]; that.checkdRole = data.roleIds[0];
}
}else{
data.roleData.forEach((item)=>{
if (data.roleIds.includes(item.roleId)){
item.checked = true;
}
})
} }
} else { } else {
that.$message.error(ro.msg); that.$message.error(ro.msg);
} }
@ -167,6 +179,15 @@
userIds: that.userIds, userIds: that.userIds,
roleId: that.checkdRole roleId: that.checkdRole
} }
let arr = [];
that.roleData.forEach(item=>{
if (item.checked){
arr.push(item.roleId);
}
})
data.roleId = arr;
console.log("data:",data)
// //
that.loading = true; that.loading = true;
const params = { const params = {

View File

@ -17,7 +17,7 @@
<!-- </div>--> <!-- </div>-->
<!-- </div>--> <!-- </div>-->
<awsui-form-item label="角色名称" prop="roleName"> <awsui-form-item label="角色名称" prop="roleName">
<awsui-input placeholder="请输入内容" v-model="roleForm.roleName"></awsui-input> <awsui-input placeholder="请输入内容" v-model="roleForm.roleName" :disabled="isUser"></awsui-input>
</awsui-form-item> </awsui-form-item>
<div class="awsui-form-item"> <div class="awsui-form-item">
<label class="awsui-form-item__label">角色描述</label> <label class="awsui-form-item__label">角色描述</label>
@ -137,6 +137,14 @@
roleId: {// id roleId: {// id
type: String, type: String,
default: '' default: ''
},
isUser: {
type:Boolean,
default:false
},
userid:{
type: String,
default:""
} }
}, },
data() { data() {
@ -187,10 +195,14 @@
}, },
methods: { methods: {
initParams() { initParams() {
if (this.roleId == '') { if (this.isUser){
this.title = '用户权限';
}else{
if (this.roleId == '') {
this.title = '新增角色'; this.title = '新增角色';
} else { } else {
this.title = '修改角色'; this.title = '修改角色';
}
} }
this.initRoleSidebar(); this.initRoleSidebar();
}, },
@ -205,6 +217,10 @@
roleId: that.roleId roleId: that.roleId
} }
}; };
if (that.isUser){
params.data.cmd = "com.actionsoft.apps.coe.pal.cooperation_hide_role_update_data_query"
params.data.userid = that.userid
}
// //
awsuiAxios.post(params).then(function (ro) { awsuiAxios.post(params).then(function (ro) {
if (ro.result == 'ok') { if (ro.result == 'ok') {
@ -231,6 +247,9 @@
node.loaded = false; node.loaded = false;
node.expand(); node.expand();
}) })
//roleId
that.$emit('setUserRole', data.roleId);
} else { } else {
that.$message.error(ro.msg); that.$message.error(ro.msg);
} }
@ -335,6 +354,9 @@
appPerm: that.roleForm.appPerm, appPerm: that.roleForm.appPerm,
actionPerm: that.roleForm.actionPerm actionPerm: that.roleForm.actionPerm
}; };
if (that.isUser){
data.roleName = that.userid;
}
if (!that.isOlderVersion){ if (!that.isOlderVersion){
let dataPermArr = []; let dataPermArr = [];
Object.keys(that.dataActionPerm).forEach((key) => { Object.keys(that.dataActionPerm).forEach((key) => {