Commit 9b854f48 by Jings

fix: 修复权限树回显问题

parent 428c1423
......@@ -4,7 +4,7 @@
* @Author: Drama
* @Date: 2022-09-14 11:09:43
* @LastEditors: Drama
* @LastEditTime: 2022-09-23 13:51:20
* @LastEditTime: 2022-10-08 13:54:45
* @FilePath: /haoban-3/src/views/enterprise/guide-setting-new.vue
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
......@@ -63,6 +63,9 @@ export default {
withoutParents_0: [],
withoutParents_1: [],
withoutParents_2: [],
saveWithoutParents_0: [], // 用于保存
saveWithoutParents_1: [],
saveWithoutParents_2: [],
curMenuCode_0: [], // 拷贝当前节点了的按钮
curMenuCode_1: [],
curMenuCode_2: [],
......@@ -89,9 +92,14 @@ export default {
this.titleList.forEach(item => {
item.isEmpty = false;
});
let isChooseList = this.$refs.tree.getCheckedKeys().concat(this.$refs.tree.getHalfCheckedKeys());
// let isChooseList = this.$refs.tree.getCheckedKeys().concat(this.$refs.tree.getHalfCheckedKeys());
let isChooseList = this.$refs.tree.getCheckedKeys(); // 不包含半选
let isChooseList_ = this.$refs.tree.getCheckedKeys().concat(this.$refs.tree.getHalfCheckedKeys()); // 包含半选
// 切换tab时 缓存上个tag选择的节点
this['withoutParents_' + this.activeNum] = [...isChooseList];
// 缓存保存加上半选的数据
this['saveWithoutParents_' + this.activeNum] = [...isChooseList_];
this.activeNum = index;
// this.treeData = deepClone(this.copyMenu);
this.withoutParents = this['withoutParents_' + this.activeNum];
......@@ -105,11 +113,25 @@ export default {
if (res.data.code == 0) {
if (res.data.result) {
this['roleId_' + clerkType] = res.data.result.roleId;
let filterCodes = []; // 筛选出不含父节点menuCode的数据
let flagCodes = [];
// TODO: 删除半选
let menuCodes = deepClone(res.data.result.menuCodes);
let menuList = deepClone(res.data.result.menuList);
menuList.forEach(item => {
if (menuCodes.includes(item.parentCode)) {
flagCodes.push(item.parentCode);
}
});
flagCodes = Array.from(new Set(flagCodes));
filterCodes = menuCodes.filter(v => flagCodes.every(val => val != v));
this['curMenuCode_' + clerkType] = [...res.data.result.menuCodes]; // 保存当前类别选中状态,保存的时候用用于记录操作的区别
this['withoutParents_' + clerkType] = [...res.data.result.menuCodes];
// this['withoutParents_' + clerkType] = [...res.data.result.menuCodes];
this['withoutParents_' + clerkType] = [...filterCodes];
if (clerkType == 0) {
// 当前导购选中
this.withoutParents = [...res.data.result.menuCodes];
// this.withoutParents = [...res.data.result.menuCodes];
this.withoutParents = [...filterCodes];
}
} else {
this['withoutParents_' + clerkType] = [];
......@@ -163,13 +185,18 @@ export default {
// 保存
submit: _debounce(function() {
let currentChooseList = this.$refs.tree.getCheckedKeys().concat(this.$refs.tree.getHalfCheckedKeys());
this['withoutParents_' + this.activeNum] = [...currentChooseList];
// this['withoutParents_' + this.activeNum] = [...currentChooseList];
this['saveWithoutParents_' + this.activeNum] = [...currentChooseList];
let errFlag_0 = this.withoutParents_0.length ? true : false;
let errFlag_1 = this.withoutParents_1.length ? true : false;
let errFlag_2 = this.withoutParents_2.length ? true : false;
let delMenu_0 = getArrDifference(this.curMenuCode_0, this.withoutParents_0);
let delMenu_1 = getArrDifference(this.curMenuCode_1, this.withoutParents_1);
let delMenu_2 = getArrDifference(this.curMenuCode_2, this.withoutParents_2);
// let delMenu_0 = getArrDifference(this.curMenuCode_0, this.withoutParents_0);
// let delMenu_1 = getArrDifference(this.curMenuCode_1, this.withoutParents_1);
// let delMenu_2 = getArrDifference(this.curMenuCode_2, this.withoutParents_2);
let delMenu_0 = getArrDifference(this.curMenuCode_0, this.saveWithoutParents_0);
let delMenu_1 = getArrDifference(this.curMenuCode_1, this.saveWithoutParents_1);
let delMenu_2 = getArrDifference(this.curMenuCode_2, this.saveWithoutParents_2);
if (!errFlag_0 || !errFlag_1 || !errFlag_2) {
this.$set(this.titleList[0], 'isEmpty', !errFlag_0);
this.$set(this.titleList[1], 'isEmpty', !errFlag_1);
......@@ -181,19 +208,22 @@ export default {
clerkMenus: {
roleId: this.roleId_0,
clerkType: 0, // 导购
menuCodes: [...this.withoutParents_0], // 权限id
// menuCodes: [...this.withoutParents_0], // 权限id
menuCodes: [...this.saveWithoutParents_0], // 权限id
delMenuCodes: delMenu_0 // 删除的code
},
manegeClerkMenus: {
roleId: this.roleId_1,
clerkType: 1, // 店长
menuCodes: [...this.withoutParents_1],
// menuCodes: [...this.withoutParents_1],
menuCodes: [...this.saveWithoutParents_1],
delMenuCodes: delMenu_1
},
managerMenus: {
roleId: this.roleId_2,
clerkType: 2, // 区经
menuCodes: [...this.withoutParents_2],
// menuCodes: [...this.withoutParents_2],
menuCodes: [...this.saveWithoutParents_2],
delMenuCodes: delMenu_2
}
};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment