update _web/src/views/system/role/roleMenuForm.vue.
This commit is contained in:
parent
45542a878f
commit
f830480d7d
@ -19,15 +19,13 @@
|
|||||||
v-model="checkedKeys"
|
v-model="checkedKeys"
|
||||||
multiple
|
multiple
|
||||||
checkable
|
checkable
|
||||||
checkStrictly
|
|
||||||
:auto-expand-parent="autoExpandParent"
|
:auto-expand-parent="autoExpandParent"
|
||||||
:expanded-keys="expandedKeys"
|
:expanded-keys="expandedKeys"
|
||||||
:tree-data="menuTreeData"
|
:tree-data="menuTreeData"
|
||||||
:selected-keys="selectedKeys"
|
:selected-keys="selectedKeys"
|
||||||
:replaceFields="replaceFields"
|
:replaceFields="replaceFields"
|
||||||
@expand="onExpand"
|
@expand="onExpand"
|
||||||
@select="onSelect"
|
@check="onCheck"
|
||||||
@check="treeCheck"
|
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
@ -66,10 +64,11 @@
|
|||||||
replaceFields: {
|
replaceFields: {
|
||||||
key: 'id'
|
key: 'id'
|
||||||
},
|
},
|
||||||
form: this.$form.createForm(this)
|
form: this.$form.createForm(this),
|
||||||
|
commitKeys: [],
|
||||||
|
leastChilds: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
// 初始化方法
|
// 初始化方法
|
||||||
roleMenu(record) {
|
roleMenu(record) {
|
||||||
@ -77,68 +76,99 @@
|
|||||||
this.roleEntity = record
|
this.roleEntity = record
|
||||||
this.visible = true
|
this.visible = true
|
||||||
this.getMenuTree()
|
this.getMenuTree()
|
||||||
this.expandedMenuKeys(record)
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取菜单列表
|
* 获取菜单列表
|
||||||
*/
|
*/
|
||||||
getMenuTree() {
|
getMenuTree() {
|
||||||
|
const _this = this
|
||||||
SysMenuTreeForGrant().then((res) => {
|
SysMenuTreeForGrant().then((res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.menuTreeData = res.data
|
_this.menuTreeData = res.data
|
||||||
|
_this.getLeastChilds(res.data)
|
||||||
// 默认展开目录级
|
// 默认展开目录级
|
||||||
this.menuTreeData.forEach(item => {
|
_this.menuTreeData.forEach(item => {
|
||||||
this.expandedKeys.push(item.id)
|
_this.expandedKeys.push(item.id)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
_this.expandedMenuKeys(_this.roleEntity)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
getLeastChilds(data){
|
||||||
|
for (let i = 0; i < data.length; i++) {
|
||||||
|
this.pushLeastChilds(data[i])
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
pushLeastChilds(e) {
|
||||||
|
if (e.children.length > 0) {
|
||||||
|
this.getLeastChilds(e.children)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.leastChilds.push(e.id)
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 此角色已有菜单权限
|
* 此角色已有菜单权限
|
||||||
*/
|
*/
|
||||||
expandedMenuKeys(record) {
|
expandedMenuKeys(record) {
|
||||||
|
const _this = this
|
||||||
sysRoleOwnMenu({id: record.id}).then((res) => {
|
sysRoleOwnMenu({id: record.id}).then((res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.checkedKeys = res.data
|
_this.pickCheckedKeys(res.data)
|
||||||
|
_this.commitKeys = res.data
|
||||||
}
|
}
|
||||||
this.formLoading = false
|
_this.formLoading = false
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
treeCheck (checkKeys) {
|
pickCheckedKeys(data){
|
||||||
|
for (let i = 0; i < data.length; i++) {
|
||||||
|
if (this.leastChilds.includes(data[i])) {
|
||||||
|
this.checkedKeys.push(data[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
onExpand(expandedKeys) {
|
onExpand(expandedKeys) {
|
||||||
this.expandedKeys = expandedKeys
|
this.expandedKeys = expandedKeys
|
||||||
this.autoExpandParent = false
|
this.autoExpandParent = false
|
||||||
},
|
},
|
||||||
onCheck (checkedKeys) {
|
|
||||||
|
onCheck(checkedKeys, info) {
|
||||||
this.checkedKeys = checkedKeys
|
this.checkedKeys = checkedKeys
|
||||||
|
this.commitKeys = checkedKeys.concat(info.halfCheckedKeys);
|
||||||
},
|
},
|
||||||
|
|
||||||
onSelect(selectedKeys, info) {
|
onSelect(selectedKeys, info) {
|
||||||
|
console.log(selectedKeys)
|
||||||
|
console.log(info)
|
||||||
this.selectedKeys = selectedKeys
|
this.selectedKeys = selectedKeys
|
||||||
},
|
},
|
||||||
|
|
||||||
handleSubmit() {
|
handleSubmit() {
|
||||||
|
const _this = this;
|
||||||
const {form: {validateFields}} = this
|
const {form: {validateFields}} = this
|
||||||
this.confirmLoading = true
|
this.confirmLoading = true
|
||||||
validateFields((errors, values) => {
|
validateFields((errors, values) => {
|
||||||
if (!errors) {
|
if (!errors) {
|
||||||
sysRoleGrantMenu({ id: this.roleEntity.id, grantMenuIdList: this.checkedKeys.checked }).then((res) => {
|
sysRoleGrantMenu({id: _this.roleEntity.id, grantMenuIdList: _this.commitKeys}).then((res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.$message.success('授权成功')
|
_this.$message.success('授权成功')
|
||||||
this.confirmLoading = false
|
_this.confirmLoading = false
|
||||||
this.$emit('ok', values)
|
_this.$emit('ok', values)
|
||||||
this.handleCancel()
|
_this.handleCancel()
|
||||||
} else {
|
} else {
|
||||||
this.$message.error('授权失败:' + res.message)
|
_this.$message.error('授权失败:' + res.message)
|
||||||
}
|
}
|
||||||
}).finally((res) => {
|
}).finally((res) => {
|
||||||
this.confirmLoading = false
|
_this.confirmLoading = false
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
this.confirmLoading = false
|
_this.confirmLoading = false
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user