update 快捷操作已勾选但没有权限的处理回显
This commit is contained in:
@@ -47,6 +47,8 @@ export default {
|
||||
dataSource: [],
|
||||
// 已选数据id
|
||||
targetKeys: [],
|
||||
// 已勾选的菜单
|
||||
selectedMenu: [],
|
||||
// 打开弹框传入的ids
|
||||
ids: [],
|
||||
// 多语言
|
||||
@@ -63,10 +65,12 @@ export default {
|
||||
* 打开弹框
|
||||
* @param ids - 已经选择的ids
|
||||
*/
|
||||
show (ids) {
|
||||
show (ids, selectedMenu) {
|
||||
this.visible = true
|
||||
// 清空之前的数据,然后重新请求
|
||||
this.dataSource = []
|
||||
// 存储已经勾选的菜单
|
||||
this.selectedMenu = selectedMenu
|
||||
this.targetKeys = ids || []
|
||||
this.ids = ids
|
||||
this.getMenuList()
|
||||
@@ -76,8 +80,14 @@ export default {
|
||||
this.loading = true
|
||||
getQuickEntryList().then(res => {
|
||||
if (res.success) {
|
||||
// 穿梭框需要这个格式否则会报错
|
||||
this.dataSource = res.result || []
|
||||
// 处理之前有权限,后来没有权限
|
||||
// 没有权限的菜单接口不会返回,但是已经勾选的菜单需要显示出来
|
||||
const data = res.result || []
|
||||
// 所有有权限的菜单id
|
||||
const hasPermissionIds = data.map(item => item.id)
|
||||
// 获取已选择但没有权限的列表
|
||||
const notPermissionMenu = this.selectedMenu.filter(item => !hasPermissionIds.includes(item.id))
|
||||
this.dataSource = data.concat(notPermissionMenu)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
|
||||
@@ -118,7 +118,14 @@ export default {
|
||||
// 菜单管理
|
||||
menuManage () {
|
||||
const ids = this.dataSource.map(item => item.id)
|
||||
this.$refs.menuManageModal.show(ids)
|
||||
// 已经选中的菜单(之前有权限,后来没有了,这时接口不会返回没权限的菜单导致取消不了,需要前端处理)
|
||||
const selectedMenu = this.dataSource.map(item => {
|
||||
return {
|
||||
id: item.id,
|
||||
name: item.name
|
||||
}
|
||||
})
|
||||
this.$refs.menuManageModal.show(ids, selectedMenu)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user