update 快捷操作已勾选但没有权限的处理回显
This commit is contained in:
@@ -47,6 +47,8 @@ export default {
|
|||||||
dataSource: [],
|
dataSource: [],
|
||||||
// 已选数据id
|
// 已选数据id
|
||||||
targetKeys: [],
|
targetKeys: [],
|
||||||
|
// 已勾选的菜单
|
||||||
|
selectedMenu: [],
|
||||||
// 打开弹框传入的ids
|
// 打开弹框传入的ids
|
||||||
ids: [],
|
ids: [],
|
||||||
// 多语言
|
// 多语言
|
||||||
@@ -63,10 +65,12 @@ export default {
|
|||||||
* 打开弹框
|
* 打开弹框
|
||||||
* @param ids - 已经选择的ids
|
* @param ids - 已经选择的ids
|
||||||
*/
|
*/
|
||||||
show (ids) {
|
show (ids, selectedMenu) {
|
||||||
this.visible = true
|
this.visible = true
|
||||||
// 清空之前的数据,然后重新请求
|
// 清空之前的数据,然后重新请求
|
||||||
this.dataSource = []
|
this.dataSource = []
|
||||||
|
// 存储已经勾选的菜单
|
||||||
|
this.selectedMenu = selectedMenu
|
||||||
this.targetKeys = ids || []
|
this.targetKeys = ids || []
|
||||||
this.ids = ids
|
this.ids = ids
|
||||||
this.getMenuList()
|
this.getMenuList()
|
||||||
@@ -76,8 +80,14 @@ export default {
|
|||||||
this.loading = true
|
this.loading = true
|
||||||
getQuickEntryList().then(res => {
|
getQuickEntryList().then(res => {
|
||||||
if (res.success) {
|
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 {
|
} else {
|
||||||
this.$message.warning(res.message)
|
this.$message.warning(res.message)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -118,7 +118,14 @@ export default {
|
|||||||
// 菜单管理
|
// 菜单管理
|
||||||
menuManage () {
|
menuManage () {
|
||||||
const ids = this.dataSource.map(item => item.id)
|
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