Merge branch 'dev-zhaoDN/user-role-fixbug' into 'dev'
fixbug:权限修改的bug,全量提交没点击时候丢失子节点的按钮 See merge request itc-framework/ma/2024/front!62
This commit is contained in:
@ -186,7 +186,7 @@
|
||||
});
|
||||
findMenuTree(buttonSelectData.value, treeData.value, btnCheckedKey, 'button');
|
||||
}
|
||||
btnKeys.value = btnCheckedKey;
|
||||
btnKeys.value = Array.from(new Set([...btnKeys.value, ...btnCheckedKey]));
|
||||
|
||||
let lostColKey = [];
|
||||
colKeys.value.forEach((o) => {
|
||||
@ -205,7 +205,7 @@
|
||||
});
|
||||
findMenuTree(columnSelectData.value, treeData.value, colCheckedKey, 'column');
|
||||
}
|
||||
colKeys.value = colCheckedKey;
|
||||
colKeys.value = Array.from(new Set([...colKeys.value, ...colCheckedKey]));
|
||||
|
||||
let lostFieldKey = [];
|
||||
fieldKeys.value.forEach((o) => {
|
||||
@ -224,7 +224,7 @@
|
||||
});
|
||||
findMenuTree(fieldSelectData.value, treeData.value, fieldCheckedKey, 'field');
|
||||
}
|
||||
fieldKeys.value = fieldCheckedKey;
|
||||
fieldKeys.value = Array.from(new Set([...fieldKeys.value, ...fieldCheckedKey]));
|
||||
|
||||
nextTick(() => {
|
||||
getTree(unref(ButtonRef))?.setCheckedKeys(authList.buttonIds);
|
||||
@ -289,6 +289,11 @@
|
||||
// colKeys.value = getTree(unref(ColumnRef)).getCheckedKeys();
|
||||
// fieldKeys.value = getTree(unref(FieldRef)).getCheckedKeys();
|
||||
|
||||
// 过滤无效的权限 ID
|
||||
btnKeys.value = btnKeys.value.filter((o) => btnFilterKeys.value.includes(o));
|
||||
colKeys.value = colKeys.value.filter((o) => colFilterKeys.value.includes(o));
|
||||
fieldKeys.value = fieldKeys.value.filter((o) => fieldFilterKeys.value.includes(o));
|
||||
|
||||
// btnKeys.value = btnKeys.value.filter((o) => {
|
||||
// return btnFilterKeys.value.includes(o);
|
||||
// });
|
||||
@ -299,6 +304,7 @@
|
||||
// return fieldFilterKeys.value.includes(o);
|
||||
// });
|
||||
|
||||
// 提交更新后的权限数据
|
||||
await RoleSetAuth({
|
||||
id: rowId.value,
|
||||
type: typeKey.value == 4?NaN:typeKey.value,
|
||||
@ -307,6 +313,7 @@
|
||||
columnIds: colKeys.value,
|
||||
formIds: fieldKeys.value,
|
||||
});
|
||||
|
||||
notification.success({
|
||||
message: t('提示'),
|
||||
description: t('功能授权更新成功'),
|
||||
@ -362,14 +369,23 @@
|
||||
colFilterKeys.value = [];
|
||||
fieldFilterKeys.value = [];
|
||||
|
||||
findMenuTree(buttonSelectData.value, treeData.value, addMenuSelect, 'button');
|
||||
findMenuTree(columnSelectData.value, treeData.value, addMenuSelect, 'column');
|
||||
findMenuTree(fieldSelectData.value, treeData.value, addMenuSelect, 'field');
|
||||
// 使用 Set 合并已选中和新增选中的菜单,避免重复
|
||||
const allMenuKeys = new Set([...menuKeys.value, ...addMenuSelect]);
|
||||
|
||||
let newBtnSelect = [...new Set([...btnKeys.value, ...addMenuSelect])];
|
||||
getTree(unref(ButtonRef))?.setExpandedKeys(newBtnSelect);
|
||||
getTree(unref(ColumnRef))?.setExpandedKeys([...new Set([...colKeys.value, ...addMenuSelect])]);
|
||||
getTree(unref(FieldRef))?.setExpandedKeys([...new Set([...fieldKeys.value, ...addMenuSelect])]);
|
||||
// 确保未选中菜单的子节点不会丢失
|
||||
findMenuTree(buttonSelectData.value, treeData.value, Array.from(allMenuKeys), 'button');
|
||||
findMenuTree(columnSelectData.value, treeData.value, Array.from(allMenuKeys), 'column');
|
||||
findMenuTree(fieldSelectData.value, treeData.value, Array.from(allMenuKeys), 'field');
|
||||
|
||||
// 更新按钮、字段、表单的选中状态
|
||||
btnKeys.value = Array.from(new Set([...btnKeys.value, ...addMenuSelect]));
|
||||
colKeys.value = Array.from(new Set([...colKeys.value, ...addMenuSelect]));
|
||||
fieldKeys.value = Array.from(new Set([...fieldKeys.value, ...addMenuSelect]));
|
||||
|
||||
// 扩展树的展开状态
|
||||
getTree(unref(ButtonRef))?.setExpandedKeys(Array.from(allMenuKeys));
|
||||
getTree(unref(ColumnRef))?.setExpandedKeys(Array.from(allMenuKeys));
|
||||
getTree(unref(FieldRef))?.setExpandedKeys(Array.from(allMenuKeys));
|
||||
}
|
||||
function getParentKeys(checkedKey, arr, keys) {
|
||||
for (let i = 0; i < arr.length; i++) {
|
||||
|
||||
Reference in New Issue
Block a user