diff --git a/src/transformRoute/transformRoute.ts b/src/transformRoute/transformRoute.ts index 0729d8f..ac1448a 100644 --- a/src/transformRoute/transformRoute.ts +++ b/src/transformRoute/transformRoute.ts @@ -166,8 +166,7 @@ function formatter( if (!item) return false; if (notNullArray(item[childrenPropsName])) return true; if (notNullArray(item.children)) return true; - if (item.path === '*') return false; - if (item.path === '/*') return false; + if (item.path) return true; if (item.layout) return true; // 重定向 @@ -194,6 +193,12 @@ function formatter( // eslint-disable-next-line no-param-reassign delete item.name; } + if (item.path === '*') { + item.path = '.'; + } + if (item.path === '/*') { + item.path = '.'; + } return item; }) diff --git a/test/__snapshots__/getFlatMenus.test.ts.snap b/test/__snapshots__/getFlatMenus.test.ts.snap index 89fe248..6dcd5f2 100644 --- a/test/__snapshots__/getFlatMenus.test.ts.snap +++ b/test/__snapshots__/getFlatMenus.test.ts.snap @@ -18,6 +18,17 @@ Object { "routes": undefined, "unaccessible": false, }, + Object { + "access": "canAdmin", + "key": "/admin/.", + "locale": "menu.admin.404", + "name": "menu.admin.404", + "path": "/admin/.", + "pro_layout_parentKeys": Array [ + "/admin", + ], + "routes": undefined, + }, ], "key": "/admin", "locale": "menu.admin", @@ -38,7 +49,29 @@ Object { "routes": undefined, "unaccessible": false, }, + Object { + "access": "canAdmin", + "key": "/admin/.", + "locale": "menu.admin.404", + "name": "menu.admin.404", + "path": "/admin/.", + "pro_layout_parentKeys": Array [ + "/admin", + ], + "routes": undefined, + }, + ], + }, + "/admin/.": Object { + "access": "canAdmin", + "key": "/admin/.", + "locale": "menu.admin.404", + "name": "menu.admin.404", + "path": "/admin/.", + "pro_layout_parentKeys": Array [ + "/admin", ], + "routes": undefined, }, "/admin/sub-page": Object { "access": "canAdmin", diff --git a/test/__snapshots__/transformRoute.test.ts.snap b/test/__snapshots__/transformRoute.test.ts.snap index f6b805e..58b2090 100644 --- a/test/__snapshots__/transformRoute.test.ts.snap +++ b/test/__snapshots__/transformRoute.test.ts.snap @@ -142,6 +142,13 @@ Array [ "path": "/", "pro_layout_parentKeys": Array [], }, + Object { + "component": "./404", + "key": "/.", + "locale": false, + "path": "/.", + "pro_layout_parentKeys": Array [], + }, ] `; @@ -312,6 +319,13 @@ Map { "path": "/", "pro_layout_parentKeys": Array [], }, + "/." => Object { + "component": "./404", + "key": "/.", + "locale": false, + "path": "/.", + "pro_layout_parentKeys": Array [], + }, } `; @@ -3193,6 +3207,16 @@ Map { }, ], }, + "/." => Object { + "exact": false, + "key": "/.", + "locale": false, + "path": "/.", + "pro_layout_parentKeys": Array [ + "qixian", + ], + "redirect": "./Exception/404", + }, } `; @@ -3462,6 +3486,13 @@ Map { "path": "/", "pro_layout_parentKeys": Array [], }, + "/." => Object { + "component": "./404", + "key": "/.", + "locale": false, + "path": "/.", + "pro_layout_parentKeys": Array [], + }, } `; @@ -3743,6 +3774,13 @@ Map { "path": "/", "pro_layout_parentKeys": Array [], }, + "/." => Object { + "component": "./404", + "key": "/.", + "locale": false, + "path": "/.", + "pro_layout_parentKeys": Array [], + }, } `; @@ -3888,6 +3926,13 @@ Array [ "path": "/", "pro_layout_parentKeys": Array [], }, + Object { + "component": "./404", + "key": "/.", + "locale": false, + "path": "/.", + "pro_layout_parentKeys": Array [], + }, ] `; @@ -4058,5 +4103,12 @@ Map { "path": "/", "pro_layout_parentKeys": Array [], }, + "/." => Object { + "component": "./404", + "key": "/.", + "locale": false, + "path": "/.", + "pro_layout_parentKeys": Array [], + }, } `; diff --git a/test/getFlatMenus.test.ts b/test/getFlatMenus.test.ts index 51b1990..7262bff 100644 --- a/test/getFlatMenus.test.ts +++ b/test/getFlatMenus.test.ts @@ -49,7 +49,7 @@ const { menuData } = transformRoute(routes, true, ({ id }) => { describe('getFlatMenus', () => { it('normal', () => { const flatMenus = getFlatMenus(menuData); - expect(Object.keys(flatMenus).length).toEqual(5); + expect(Object.keys(flatMenus).length).toEqual(6); expect(flatMenus['/list'].name).toEqual('查询表格'); expect(flatMenus).toMatchSnapshot(); });