update 快捷操作已勾选但没有权限的处理回显

This commit is contained in:
danshihao
2024-01-18 11:02:38 +08:00
parent 91a40b1c65
commit f92324b5cd
2 changed files with 21 additions and 4 deletions
@@ -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)
}
}
}