|
|
@@ -21,13 +21,32 @@
|
|
|
<a-form-model-item label="描述" prop="description">
|
|
|
<a-textarea :rows="5" v-model="model.description" placeholder="请输入角色描述"/>
|
|
|
</a-form-model-item>
|
|
|
+ <a-form-item label='授权'>
|
|
|
+ <a-card style="max-height: 400px;overflow: scroll;">
|
|
|
+ <a-tree
|
|
|
+ checkable
|
|
|
+ @check="onCheck"
|
|
|
+ :checkedKeys="checkedKeys"
|
|
|
+ :treeData="treeData"
|
|
|
+ @expand="onExpand"
|
|
|
+ @select="onTreeNodeSelect"
|
|
|
+ :selectedKeys="selectedKeys"
|
|
|
+ :expandedKeys="expandedKeysss"
|
|
|
+ :checkStrictly="checkStrictly">
|
|
|
+ <span slot="hasDatarule" slot-scope="{slotTitle,ruleFlag}">
|
|
|
+ {{ slotTitle }}<a-icon v-if="ruleFlag" type="align-left" style="margin-left:5px;color: red;"></a-icon>
|
|
|
+ </span>
|
|
|
+ </a-tree>
|
|
|
+ </a-card>
|
|
|
+ </a-form-item>
|
|
|
</a-form-model>
|
|
|
</a-spin>
|
|
|
</a-modal>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
- import {addRole,editRole,duplicateCheck } from '@/api/api'
|
|
|
+ import {addRole,editRole,duplicateCheck,queryTreeListForRole,queryRolePermission,
|
|
|
+ saveRolePermission,saveRoleAndPermission,editRoleAndPermission } from '@/api/api'
|
|
|
export default {
|
|
|
name: "RoleModal",
|
|
|
data () {
|
|
|
@@ -55,6 +74,13 @@
|
|
|
{ min: 0, max: 126, message: '长度不超过 126 个字符', trigger: 'blur' }
|
|
|
]
|
|
|
},
|
|
|
+ treeData: [],
|
|
|
+ checkedKeys:[],
|
|
|
+ expandedKeysss:[],
|
|
|
+ selectedKeys:[],
|
|
|
+ defaultCheckedKeys:[],
|
|
|
+ allTreeKeys:[],
|
|
|
+ checkStrictly: true,
|
|
|
}
|
|
|
},
|
|
|
created () {
|
|
|
@@ -74,6 +100,7 @@
|
|
|
}else{
|
|
|
this.roleDisabled = false;
|
|
|
}
|
|
|
+ this.loadData();
|
|
|
},
|
|
|
close () {
|
|
|
this.$refs.form.clearValidate();
|
|
|
@@ -87,10 +114,19 @@
|
|
|
if (valid) {
|
|
|
that.confirmLoading = true;
|
|
|
let obj;
|
|
|
+ var param = {
|
|
|
+ role: this.model,
|
|
|
+ permissionJson: {
|
|
|
+ permissionIds: that.checkedKeys.join(","),
|
|
|
+ lastpermissionIds: that.defaultCheckedKeys.join(","),
|
|
|
+ }
|
|
|
+ }
|
|
|
if(!this.model.id){
|
|
|
- obj=addRole(this.model);
|
|
|
- }else{
|
|
|
- obj=editRole(this.model);
|
|
|
+ // obj=addRole(this.model);
|
|
|
+ obj=saveRoleAndPermission(param);
|
|
|
+ }else {
|
|
|
+ // obj=editRole(this.model);
|
|
|
+ obj = editRoleAndPermission(param);
|
|
|
}
|
|
|
obj.then((res)=>{
|
|
|
if(res.success){
|
|
|
@@ -129,11 +165,45 @@
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
- }
|
|
|
+ },
|
|
|
+ loadData(){
|
|
|
+ var _this = this;
|
|
|
+ var _roleId = "";
|
|
|
+ if (_this.model.id !== null &&_this.model.id !== undefined){
|
|
|
+ _roleId = _this.model.id;
|
|
|
+ }
|
|
|
+ queryTreeListForRole().then((res) => {
|
|
|
+ this.treeData = res.result.treeList
|
|
|
+ this.allTreeKeys = res.result.ids
|
|
|
+ queryRolePermission({roleId:_roleId}).then((res)=>{
|
|
|
+ this.checkedKeys = [...res.result];
|
|
|
+ this.defaultCheckedKeys = [...res.result];
|
|
|
+ this.expandedKeysss = this.allTreeKeys;
|
|
|
+ console.log(this.defaultCheckedKeys)
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ onCheck (o) {
|
|
|
+ if(this.checkStrictly){
|
|
|
+ this.checkedKeys = o.checked;
|
|
|
+ }else{
|
|
|
+ this.checkedKeys = o
|
|
|
+ }
|
|
|
+ },
|
|
|
+ onExpand(expandedKeys){
|
|
|
+ this.expandedKeysss = expandedKeys;
|
|
|
+ this.autoExpandParent = false
|
|
|
+ },
|
|
|
+ onTreeNodeSelect(id){
|
|
|
+ if(id && id.length>0){
|
|
|
+ this.selectedKeys = id
|
|
|
+ }
|
|
|
+ this.$refs.datarule.show(this.selectedKeys[0],this.roleId)
|
|
|
+ },
|
|
|
}
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
<style scoped>
|
|
|
|
|
|
-</style>
|
|
|
+</style>
|