feat: 角色管理 勾选权限组件添加对错误用法的校验提示

This commit is contained in:
dap 2025-03-23 14:31:55 +08:00
parent 877cc06eff
commit 0e7b76d5ed
3 changed files with 51 additions and 2 deletions

View File

@ -9,6 +9,7 @@
**FEATURES**
- 增加`环境变量`打包配置demo -> build:antd:test
- 角色管理 勾选权限组件添加对错误用法的校验提示
**REFACTOR**

View File

@ -5,6 +5,7 @@ import type { MenuOption } from '#/api/system/menu/model';
import { eachTree, treeToList } from '@vben/utils';
import { notification } from 'ant-design-vue';
import { difference, isEmpty, isUndefined } from 'lodash-es';
/**
@ -48,6 +49,7 @@ export function rowAndChildrenChecked(
*/
export function menusWithPermissions(menus: MenuOption[]) {
eachTree(menus, (item: MenuPermissionOption) => {
validateMenuTree(item);
if (item.children && item.children.length > 0) {
/**
*
@ -131,3 +133,50 @@ export function setTableChecked(
tableApi.grid.setCheckboxRow(emptyRows, false);
}
}
/**
* warning提示
*
*
* 比如: 菜单下放目录
* 比如: 按钮下放目录
* @param menu menu
*/
function validateMenuTree(menu: MenuOption) {
/**
* C: { icon: markRaw(MenuIcon), value: '菜单' },
F: { icon: markRaw(OkButtonIcon), value: '按钮' },
M: { icon: markRaw(FolderIcon), value: '目录' },
*/
// 菜单下不能放目录/菜单
if (menu.menuType === 'C') {
menu.children?.forEach?.((item) => {
if (['C', 'M'].includes(item.menuType)) {
const description = `错误用法: [${menu.label} - 菜单]下不能放 目录/菜单 -> [${item.label}]`;
console.warn(description);
notification.warning({
message: '提示',
description,
duration: 0,
});
}
});
}
// 按钮为最末级 不能再放置
if (menu.menuType === 'F') {
/**
* length label
*/
menu.children?.forEach?.((item) => {
if (['C', 'F', 'M'].includes(item.menuType)) {
const description = `错误用法: [${menu.label} - 按钮]下不能放置'目录/菜单/按钮' -> [${item.label}]`;
console.warn(description);
notification.warning({
message: '提示',
description,
duration: 0,
});
}
});
}
}

View File

@ -55,8 +55,7 @@ const props = withDefaults(
/**
* 是否节点关联
*/
const association = defineModel('association', {
type: Boolean,
const association = defineModel<boolean>('association', {
default: true,
});