mirror of
https://github.com/jumpserver/lina.git
synced 2025-09-02 07:25:33 +00:00
perf: 自动勾选 perm view node (#1388)
Co-authored-by: ibuler <ibuler@qq.com>
This commit is contained in:
@@ -61,11 +61,10 @@ export default {
|
|||||||
},
|
},
|
||||||
callback: {
|
callback: {
|
||||||
onCheck(event, treeId, treeNode) {
|
onCheck(event, treeId, treeNode) {
|
||||||
const checked = treeNode.checked
|
// 选择后,更新按钮可用
|
||||||
vm.$nextTick(() => {
|
vm.$nextTick(() => {
|
||||||
vm.isDisabled = false
|
vm.isDisabled = false
|
||||||
})
|
})
|
||||||
console.log('on check click: ', checked)
|
|
||||||
},
|
},
|
||||||
onSelected() {
|
onSelected() {
|
||||||
}
|
}
|
||||||
@@ -114,21 +113,42 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
updatePermissions() {
|
checkViewNodeIfNeed() {
|
||||||
const ztree = this.$refs.tree.zTree
|
const ztree = this.$refs.tree.zTree
|
||||||
const checkedNodes = ztree.getCheckedNodes()
|
const viewPermMapper = [
|
||||||
const permNodes = checkedNodes.filter(node => !node.isParent)
|
['view_console', 'rbac.view_adminview'],
|
||||||
const permIds = permNodes.map(node => node.id)
|
['view_audit', 'rbac.view_auditview'],
|
||||||
|
['view_workspace', 'rbac.view_userview']
|
||||||
const roleDetailUrl = `/api/v1/rbac/${this.object.scope}-roles/${this.object.id}/`
|
]
|
||||||
const data = {
|
for (const [viewId, permId] of viewPermMapper) {
|
||||||
permissions: permIds
|
const viewNode = ztree.getNodeByParam('id', viewId)
|
||||||
|
const permNode = ztree.getNodeByParam('title', permId)
|
||||||
|
if (!viewNode || !permNode) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
const nodeStatus = viewNode.getCheckStatus()
|
||||||
|
const viewStatus = nodeStatus.checked || nodeStatus.half
|
||||||
|
ztree.checkNode(permNode, viewStatus)
|
||||||
}
|
}
|
||||||
this.$axios.patch(roleDetailUrl, data).then(() => {
|
return Promise.resolve(true)
|
||||||
this.$message.success(this.$t('common.updateSuccessMsg'))
|
},
|
||||||
}).catch(error => {
|
updatePermissions() {
|
||||||
this.$message.error(this.$t('common.updateErrorMsg') + error)
|
this.checkViewNodeIfNeed().then(() => {
|
||||||
this.$log.error(error)
|
const ztree = this.$refs.tree.zTree
|
||||||
|
const checkedNodes = ztree.getCheckedNodes()
|
||||||
|
const permNodes = checkedNodes.filter(node => !node.isParent)
|
||||||
|
const permIds = permNodes.map(node => node.id)
|
||||||
|
|
||||||
|
const roleDetailUrl = `/api/v1/rbac/${this.object.scope}-roles/${this.object.id}/`
|
||||||
|
const data = {
|
||||||
|
permissions: permIds
|
||||||
|
}
|
||||||
|
this.$axios.patch(roleDetailUrl, data).then(() => {
|
||||||
|
this.$message.success(this.$t('common.updateSuccessMsg'))
|
||||||
|
}).catch(error => {
|
||||||
|
this.$message.error(this.$t('common.updateErrorMsg') + error)
|
||||||
|
this.$log.error(error)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user