From e0e1e4aa65f018af0bde79ff789afe7a022cb105 Mon Sep 17 00:00:00 2001 From: Casper <2529670555@qq.com> Date: Fri, 6 Aug 2021 00:42:24 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E7=BB=84=E4=BB=B6=E6=B7=BB=E5=8A=A0key=20?= =?UTF-8?q?=E8=A7=A3=E5=86=B3=E6=8E=A7=E5=88=B6=E5=8F=B0=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/dashboard/components/ShortCut.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/views/dashboard/components/ShortCut.tsx b/src/views/dashboard/components/ShortCut.tsx index d69400b..0a0d3e9 100644 --- a/src/views/dashboard/components/ShortCut.tsx +++ b/src/views/dashboard/components/ShortCut.tsx @@ -49,9 +49,9 @@ const ShortCut: FC = () => { return ( - {shortcutData.map(({ icon, title }) => { + {shortcutData.map(({ icon, title }, index) => { return ( - +
{title}
-- Gitee From 01a408dda5ca70d88d15664273bfdb916207e4ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9F=A9=E7=A3=8A?= Date: Fri, 6 Aug 2021 17:50:51 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=90=8E=E5=8F=B0=E8=B7=AF=E7=94=B1?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/layouts/Sider/Menu/index.tsx | 15 +++++++-------- src/router/addRoutes.ts | 32 ++++++++++++++++++++++++++++++++ src/router/asyncRoutes.ts | 7 +++++++ 3 files changed, 46 insertions(+), 8 deletions(-) create mode 100644 src/router/addRoutes.ts create mode 100644 src/router/asyncRoutes.ts diff --git a/src/layouts/Sider/Menu/index.tsx b/src/layouts/Sider/Menu/index.tsx index 5f6e340..f653707 100644 --- a/src/layouts/Sider/Menu/index.tsx +++ b/src/layouts/Sider/Menu/index.tsx @@ -3,17 +3,16 @@ import { Menu } from 'antd' import SubMenu from 'antd/lib/menu/SubMenu' import { Link, useLocation } from 'react-router-dom' import { IRoute, MenuInfo } from '@/interface/router' -import router from '@/router' import Icon from '@/components/Icon' import { useStore } from '@/store' import { observer } from 'mobx-react' -// import useRouters from '@/hooks/user' +import { addRoutes } from '@/router/addRoutes' +import useUserInfo from '@/hooks/user' const SiderMenu: FC = () => { const { appStore } = useStore() - // const { menus } = useRouters() - console.log(appStore) - // console.log(menus) + const { userData } = useUserInfo() + const { menu } = userData let openMenu: Array = [] let openKey: Array = [] @@ -39,13 +38,13 @@ const SiderMenu: FC = () => { return pre }, []) } - - const menuTree = getMenuTree(router) + const asyncRoutes = addRoutes(menu) + const menuTree = getMenuTree(asyncRoutes) const selectBreadcrumb = (currentKey: string, pathname: string) => { const currentMenu: any = [] - router.forEach((item) => { + asyncRoutes.forEach((item) => { if (item.path === currentKey) { currentMenu.push({ title: item.title, path: pathname }) } diff --git a/src/router/addRoutes.ts b/src/router/addRoutes.ts new file mode 100644 index 0000000..1a9f4b6 --- /dev/null +++ b/src/router/addRoutes.ts @@ -0,0 +1,32 @@ +import { IRoute } from '@/interface/router' +import asyncRoutes from './asyncRoutes' + +function formatRoutes(menus: any): Array { + const ret: IRoute[] = [] + if (!menus?.length) { + return [] + } + + menus.forEach((menu) => { + const { name, code, path, iconClass } = menu + const temp: IRoute = { + title: name, + path, + name: code, + icon: iconClass, + key: code, + component: asyncRoutes[code], + } + if (menu?.children?.length) { + temp.children = [] + temp.children.push(...formatRoutes(menu.children)) + } + ret.push(temp) + }) + return ret +} + +export function addRoutes(menus: any[]) { + const routes = formatRoutes(menus) + return routes +} diff --git a/src/router/asyncRoutes.ts b/src/router/asyncRoutes.ts new file mode 100644 index 0000000..0218fca --- /dev/null +++ b/src/router/asyncRoutes.ts @@ -0,0 +1,7 @@ +import { lazy } from 'react' + +export default { + // 根据后端返回数据code字段映射组件 + overview: lazy(() => import('@/views/dashboard')), + orderProfile: lazy(() => import('@/views/shop/decoration')), +} -- Gitee