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');
|
findMenuTree(buttonSelectData.value, treeData.value, btnCheckedKey, 'button');
|
||||||
}
|
}
|
||||||
btnKeys.value = btnCheckedKey;
|
btnKeys.value = Array.from(new Set([...btnKeys.value, ...btnCheckedKey]));
|
||||||
|
|
||||||
let lostColKey = [];
|
let lostColKey = [];
|
||||||
colKeys.value.forEach((o) => {
|
colKeys.value.forEach((o) => {
|
||||||
@ -205,7 +205,7 @@
|
|||||||
});
|
});
|
||||||
findMenuTree(columnSelectData.value, treeData.value, colCheckedKey, 'column');
|
findMenuTree(columnSelectData.value, treeData.value, colCheckedKey, 'column');
|
||||||
}
|
}
|
||||||
colKeys.value = colCheckedKey;
|
colKeys.value = Array.from(new Set([...colKeys.value, ...colCheckedKey]));
|
||||||
|
|
||||||
let lostFieldKey = [];
|
let lostFieldKey = [];
|
||||||
fieldKeys.value.forEach((o) => {
|
fieldKeys.value.forEach((o) => {
|
||||||
@ -224,7 +224,7 @@
|
|||||||
});
|
});
|
||||||
findMenuTree(fieldSelectData.value, treeData.value, fieldCheckedKey, 'field');
|
findMenuTree(fieldSelectData.value, treeData.value, fieldCheckedKey, 'field');
|
||||||
}
|
}
|
||||||
fieldKeys.value = fieldCheckedKey;
|
fieldKeys.value = Array.from(new Set([...fieldKeys.value, ...fieldCheckedKey]));
|
||||||
|
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
getTree(unref(ButtonRef))?.setCheckedKeys(authList.buttonIds);
|
getTree(unref(ButtonRef))?.setCheckedKeys(authList.buttonIds);
|
||||||
@ -289,6 +289,11 @@
|
|||||||
// colKeys.value = getTree(unref(ColumnRef)).getCheckedKeys();
|
// colKeys.value = getTree(unref(ColumnRef)).getCheckedKeys();
|
||||||
// fieldKeys.value = getTree(unref(FieldRef)).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) => {
|
// btnKeys.value = btnKeys.value.filter((o) => {
|
||||||
// return btnFilterKeys.value.includes(o);
|
// return btnFilterKeys.value.includes(o);
|
||||||
// });
|
// });
|
||||||
@ -299,6 +304,7 @@
|
|||||||
// return fieldFilterKeys.value.includes(o);
|
// return fieldFilterKeys.value.includes(o);
|
||||||
// });
|
// });
|
||||||
|
|
||||||
|
// 提交更新后的权限数据
|
||||||
await RoleSetAuth({
|
await RoleSetAuth({
|
||||||
id: rowId.value,
|
id: rowId.value,
|
||||||
type: typeKey.value == 4?NaN:typeKey.value,
|
type: typeKey.value == 4?NaN:typeKey.value,
|
||||||
@ -307,6 +313,7 @@
|
|||||||
columnIds: colKeys.value,
|
columnIds: colKeys.value,
|
||||||
formIds: fieldKeys.value,
|
formIds: fieldKeys.value,
|
||||||
});
|
});
|
||||||
|
|
||||||
notification.success({
|
notification.success({
|
||||||
message: t('提示'),
|
message: t('提示'),
|
||||||
description: t('功能授权更新成功'),
|
description: t('功能授权更新成功'),
|
||||||
@ -362,14 +369,23 @@
|
|||||||
colFilterKeys.value = [];
|
colFilterKeys.value = [];
|
||||||
fieldFilterKeys.value = [];
|
fieldFilterKeys.value = [];
|
||||||
|
|
||||||
findMenuTree(buttonSelectData.value, treeData.value, addMenuSelect, 'button');
|
// 使用 Set 合并已选中和新增选中的菜单,避免重复
|
||||||
findMenuTree(columnSelectData.value, treeData.value, addMenuSelect, 'column');
|
const allMenuKeys = new Set([...menuKeys.value, ...addMenuSelect]);
|
||||||
findMenuTree(fieldSelectData.value, treeData.value, addMenuSelect, 'field');
|
|
||||||
|
|
||||||
let newBtnSelect = [...new Set([...btnKeys.value, ...addMenuSelect])];
|
// 确保未选中菜单的子节点不会丢失
|
||||||
getTree(unref(ButtonRef))?.setExpandedKeys(newBtnSelect);
|
findMenuTree(buttonSelectData.value, treeData.value, Array.from(allMenuKeys), 'button');
|
||||||
getTree(unref(ColumnRef))?.setExpandedKeys([...new Set([...colKeys.value, ...addMenuSelect])]);
|
findMenuTree(columnSelectData.value, treeData.value, Array.from(allMenuKeys), 'column');
|
||||||
getTree(unref(FieldRef))?.setExpandedKeys([...new Set([...fieldKeys.value, ...addMenuSelect])]);
|
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) {
|
function getParentKeys(checkedKey, arr, keys) {
|
||||||
for (let i = 0; i < arr.length; i++) {
|
for (let i = 0; i < arr.length; i++) {
|
||||||
|
|||||||
Reference in New Issue
Block a user