小组管理中心新建角色权限相关内容阶段提交

This commit is contained in:
anhc 2022-07-08 18:09:17 +08:00
parent b14a45e11c
commit 87f2d3dad3

View File

@ -35,7 +35,38 @@
</el-tooltip>
<awsui-checkbox size="small" v-model="roleForm.isAllDataPerm">全部</awsui-checkbox>
<div class="awsui-form-item__content">
<awsui-input class="role_data_perm_textarea" type="textarea" v-model="roleForm.isAllDataPerm ? '全部' : roleForm.dataPermText" readonly placeholder="请选择" @click.native="openDataPermTreeDlg"></awsui-input>
<awsui-input v-if="isOlderVersion" class="role_data_perm_textarea" type="textarea" v-model="roleForm.isAllDataPerm ? '全部' : roleForm.dataPermText" readonly placeholder="请选择" @click.native="openDataPermTreeDlg"></awsui-input>
<div v-else style="height: 300px;overflow: auto;border: 1px solid #f2f2f2;">
<div v-if="roleForm.isAllDataPerm"> 全部</div>
<div v-else class="tree">
<el-tree
ref="tree"
:props="treeProps"
:default-checked-keys="roleForm.dataPerm"
:expand-on-click-node=false
:highlight-current=true
empty-text=""
@node-click="openNode"
@node-expand="expandNode"
@node-collapse="closeNode"
@check-change="checkedNode"
check-strictly
:show-checkbox=multiple
node-key="id"
lazy
:load="loadNode">
<span slot-scope="{node, data}" style="display: flex;width: 100%">
<i class="awsui-iconfont tree-content-icon tree-content-icon-padding" :style="{'color': node.data.icon.color}" v-html="node.data.icon.icon"></i>
<span>{{node.label}}</span>
<span v-if="node.level > 1" class="action-checkBox" style="flex: 1;text-align: right" @click="handleCheckedActionChange(node)">
<el-checkbox-group v-model="node.data.dataActionPerm">
<el-checkbox v-for="dataAction in dataActionPermOpts" :label="dataAction.label" :key="dataAction.label" :disabled="!node.checked" >{{dataAction.value}}</el-checkbox>
</el-checkbox-group>
</span>
</span>
</el-tree>
</div>
</div>
</div>
</div>
<awsui-form-item label="操作权限">
@ -137,7 +168,18 @@
roleName: [
{required: true,message: '必填',trigger: 'blur'}
]
}
},
isOlderVersion:true,
treeProps: {
label: 'name',
isLeaf: 'leaf'
},
treeChecked: [],
multiple:true,
categorys:'',
pid: '',
dataActionPerm: {},
dataActionPermOpts:[],
}
},
mounted() {
@ -167,6 +209,7 @@
if (ro.result == 'ok') {
const data = ro.data;
that.wsId = data.wsId;
that.isOlderVersion = data.isOlderVersion;
that.roleForm.roleName = data.roleName;
that.roleForm.roleDesc = data.roleDesc;
that.roleForm.roleType = data.roleType;
@ -175,6 +218,9 @@
that.roleForm.isAllDataPerm = data.isAllDataPerm;
that.roleForm.isAllAppPerm = data.isAllAppPerm;
that.roleForm.dataPerm = data.dataPerm;
that.dataActionPermOpts = data.dataActionPermOpts;
that.dataActionPerm = data.dataActionPerm;
// that.treeChecked = data.dataPerm;
that.roleForm.appPerm = data.appPerm;
that.roleForm.actionPerm = data.actionPerm;
that.roleForm.dataPermText = data.dataPermText;
@ -275,6 +321,17 @@
appPerm: that.roleForm.appPerm,
actionPerm: that.roleForm.actionPerm
};
if (!that.isOlderVersion){
let dataPermArr = [];
Object.keys(that.dataActionPerm).forEach((key) => {
let obj = {
id:key,
actionPerm: that.dataActionPerm[key].join(",")
}
dataPermArr.push(obj);
})
data.dataPerm = dataPermArr;
}
//
that.loading = true;
that.buttonDisabled = true;
@ -285,6 +342,9 @@
data: JSON.stringify(data)
}
};
// console.log("submit:",data)
// console.log("data:",that.roleForm.dataPerm)
awsuiAxios.post(params).then(function (ro) {
that.loading = false;
if (ro.result == 'ok') {
@ -318,6 +378,138 @@
initRoleSidebar() {
this.drawerBodyHeight = (document.documentElement.clientHeight) - 53 - 1 - 32 - parseInt(this.footerHeight) + 'px';
},
openNode(obj, node, tree) {//
},
expandNode(obj, node, tree) {//
},
closeNode(obj, node, tree) {//
node.childNodes = [];
node.loaded = false;
},
checkedNode(data, checked, subChecked) {//
//
const that = this;
const params = {
url:'jd',
data:{
cmd: 'com.actionsoft.apps.coe.pal.cooperation_repository_all_childern_data_query',
wsId: that.wsId,
teamId: that.teamId,
pid: data.id
}
};
awsuiAxios.post(params).then(function (ro) {
// debugger;
const childVerIds = ro.data;
const currVerId = data.versionId;
if (checked) {//
const checkedVerIds = that.roleForm.dataPerm;
if (checkedVerIds.indexOf(currVerId) == -1) {
checkedVerIds.push(currVerId);
Object.assign(that.dataActionPerm,{[currVerId]:[]})
}
for (let i = 0; i < childVerIds.length; i++) {
if (checkedVerIds.indexOf(childVerIds[i]) == -1) {
checkedVerIds.push(childVerIds[i]);
Object.assign(that.dataActionPerm,{[childVerIds[i]]:[]})
}
}
that.$refs.tree.setCheckedKeys(checkedVerIds);
} else {//
const checkedVerIds = that.roleForm.dataPerm;
const checkedActions = that.dataActionPerm;
const tempArr = [];
const tempActions = {};
for (let i = 0; i < checkedVerIds.length; i++) {
if (checkedVerIds[i] != currVerId && childVerIds.indexOf(checkedVerIds[i]) == -1) {
tempArr.push(checkedVerIds[i]);
}
}
Object.keys(checkedActions).forEach((key) => {
if (key != currVerId && childVerIds.indexOf(key) == -1) {
Object.assign(tempActions,{[key]:checkedActions[key]})
}
})
that.roleForm.dataPerm = tempArr;
that.dataActionPerm = tempActions;
that.$refs.tree.setCheckedKeys([]);
}
}).catch(error=>{
console.log(error);
})
data.dataActionPerm = []
},
loadNode(node, resolve) {
const that = this;
that.loading = true;
const data = {
url:'jd',
data:{
cmd: 'com.actionsoft.apps.coe.pal.cooperation_repository_tree_component_subjson',
wsId: that.wsId,
teamId: that.teamId,
categorys: that.categorys,
pid: ''
}
};
if (node.level === 0) {
//
data.data.pid = that.pid;
} else {
//
data.data.pid = node.data.id;
}
//
awsuiAxios.post(data).then(function (ro) {
let data = ro.data;
for (let i = 0; i < data.length; i++) {
let item = data[i];
// console.log("@@",that.dataActionPerm)
// console.log("@@",item.versionId)
// console.log("@@",that.dataActionPerm[item.versionId])
if (that.dataActionPerm[item.versionId] != undefined){
// console.log("join")
Object.assign(item,{dataActionPerm:that.dataActionPerm[item.versionId]})
}else {
Object.assign(item,{dataActionPerm:[]})
}
}
// console.log("data",data)
resolve(data);
that.loading = false;
if (node.level == 0 && ro.data.length > 0) {
const tree = that.$refs.tree;
tree.getNode(ro.data[0].id).expand();
setTimeout(function(){
const childNode = tree.getNode(ro.data[0].id).childNodes[0];
if (childNode != null) {
childNode.expand();
}
}, 500);
}
}).catch(error=>{
console.log(error);
})
},
handleCheckedActionChange(node){
// console.log("changeChecked",node);
const that = this;
setTimeout(()=>{
if (that.dataActionPerm[node.data.versionId] != undefined){
that.dataActionPerm[node.data.versionId] = node.data.dataActionPerm;
}
},100)
},
test(node){
console.log("test",node);
}
},
watch: {