Commit 7279c0a7b592774071d6d561efad251cd04cc5b5

Authored by vben
1 parent ff2b12b4

refactor(menu): added 'SimpleMenu' component. Solve the menu stuck problem #199 #190 #191

CHANGELOG.zh_CN.md
... ... @@ -8,6 +8,7 @@
8 8  
9 9 - 修复 `TableAction`图标问题
10 10 - 修复菜单折叠按钮丢失问题
  11 +- 修复菜单相关问题
11 12  
12 13 ## 2.0.0-rc.16 (2020-01-12)
13 14  
... ...
src/components/SimpleMenu/src/SimpleSubMenu.vue
... ... @@ -76,7 +76,7 @@
76 76 const { prefixCls } = useDesign('simple-menu');
77 77  
78 78 const getShowMenu = computed(() => {
79   - return !props.item.meta?.hideMenu;
  79 + return !props.item?.hideMenu;
80 80 });
81 81  
82 82 const getIcon = computed(() => props.item?.icon);
... ...
src/router/helper/menuHelper.ts
... ... @@ -45,6 +45,13 @@ export function transformMenuModule(menuModule: MenuModule): Menu {
45 45 export function transformRouteToMenu(routeModList: AppRouteModule[]) {
46 46 const cloneRouteModList = cloneDeep(routeModList);
47 47 const routeList: AppRouteRecordRaw[] = [];
  48 +
  49 + // cloneRouteModList = filter(cloneRouteModList, (node) => {
  50 + // if (Reflect.has(node?.meta ?? {}, 'hideMenu')) {
  51 + // return !node?.meta.hideMenu;
  52 + // }
  53 + // return true;
  54 + // });
48 55 cloneRouteModList.forEach((item) => {
49 56 if (item.meta?.single) {
50 57 const realItem = item?.children?.[0];
... ... @@ -55,13 +62,14 @@ export function transformRouteToMenu(routeModList: AppRouteModule[]) {
55 62 });
56 63 return treeMap(routeList, {
57 64 conversion: (node: AppRouteRecordRaw) => {
58   - const { meta: { title, icon } = {} } = node;
  65 + const { meta: { title, icon, hideMenu = false } = {} } = node;
59 66  
60 67 !isUrl(node.path) && joinParentPath(routeList, node);
61 68 return {
62 69 name: title,
63 70 icon,
64 71 path: node.path,
  72 + hideMenu,
65 73 };
66 74 },
67 75 });
... ...
src/router/types.ts
... ... @@ -75,6 +75,8 @@ export interface Menu {
75 75 meta?: Partial<RouteMeta>;
76 76  
77 77 tag?: MenuTag;
  78 +
  79 + hideMenu?: boolean;
78 80 }
79 81  
80 82 export interface MenuModule {
... ...