From de96c3d81d78bc010684534de87f93b6dea3cc12 Mon Sep 17 00:00:00 2001 From: jialin Date: Mon, 24 Jun 2024 09:35:11 +0800 Subject: [PATCH] chore: remove patch client routes --- config/config.ts | 2 +- src/app.tsx | 33 +++++++++---------- src/assets/styles/common.less | 4 +++ src/layouts/index.tsx | 15 +++++---- src/layouts/rightRender.tsx | 60 +++++++++++++++++++---------------- src/pages/login/index.tsx | 10 ++++-- 6 files changed, 71 insertions(+), 53 deletions(-) diff --git a/config/config.ts b/config/config.ts index b928d979..2f794d2e 100644 --- a/config/config.ts +++ b/config/config.ts @@ -103,7 +103,7 @@ export default defineConfig({ antd: true, baseNavigator: true, baseSeparator: '-', - default: 'zh-CN', + default: 'en-US', title: false, useLocalStorage: true }, diff --git a/src/app.tsx b/src/app.tsx index 0864d80b..50642c5f 100644 --- a/src/app.tsx +++ b/src/app.tsx @@ -1,4 +1,4 @@ -import { Navigate, RequestConfig, history } from '@umijs/max'; +import { RequestConfig, history } from '@umijs/max'; import { requestConfig } from './request-config'; import { queryCurrentUserState } from './services/profile/apis'; @@ -40,21 +40,22 @@ export async function getInitialState() { }; } -export const patchClientRoutes = async (params: { routes: any[] }) => { - const { routes } = params; - const data = await queryCurrentUserState({ - skipErrorHandler: true - }); - - routes.unshift({ - path: '/', - element: data?.is_admin ? ( - - ) : ( - - ) - }); -}; +// export const patchClientRoutes = async (params: { routes: any[] }) => { +// const { routes } = params; +// console.log('routes============999', routes); +// const data = await queryCurrentUserState({ +// skipErrorHandler: true +// }); + +// routes.unshift({ +// path: '/', +// element: data?.is_admin ? ( +// +// ) : ( +// +// ) +// }); +// }; export const request: RequestConfig = { baseURL: ' /v1', diff --git a/src/assets/styles/common.less b/src/assets/styles/common.less index daf1724f..e9eae4e2 100644 --- a/src/assets/styles/common.less +++ b/src/assets/styles/common.less @@ -10,6 +10,10 @@ margin-left: 5px; } +.m-l-8 { + margin-left: 8px; +} + .flex { display: flex; } diff --git a/src/layouts/index.tsx b/src/layouts/index.tsx index bf9582e9..2c1eca1a 100644 --- a/src/layouts/index.tsx +++ b/src/layouts/index.tsx @@ -52,23 +52,23 @@ const filterRoutes = ( }; // 格式化路由 处理因 wrapper 导致的 菜单 path 不一致 -const mapRoutes = (routes: IRoute[]) => { +const mapRoutes = (routes: IRoute[], role: string) => { if (routes.length === 0) { return []; } return routes.map((route) => { // 需要 copy 一份, 否则会污染原始数据 - const newRoute = { ...route }; + const newRoute = { ...route, role }; if (route.originPath) { newRoute.path = route.originPath; } if (Array.isArray(route.routes)) { - newRoute.routes = mapRoutes(route.routes); + newRoute.routes = mapRoutes(route.routes, role); } if (Array.isArray(route.children)) { - newRoute.children = mapRoutes(route.children); + newRoute.children = mapRoutes(route.children, role); } return newRoute; @@ -117,8 +117,9 @@ export default (props: any) => { } ); - console.log('clientRoutes===========', clientRoutes, newRoutes); - const [route] = useAccessMarkedRoutes(mapRoutes(newRoutes)); + const role = initialState?.currentUser?.is_admin ? 'admin' : 'user'; + const [route] = useAccessMarkedRoutes(mapRoutes(newRoutes, role)); + console.log('clientRoutes===========', route, clientRoutes, newRoutes); patchRoutes({ routes: route.children, @@ -150,7 +151,7 @@ export default (props: any) => { // 如果没有登录,重定向到 login if (!initialState?.currentUser && location.pathname !== loginPath) { history.push(loginPath); - } else if (location.path === '/') { + } else if (location.pathname === '/') { const pathname = initialState?.currentUser?.is_admin ? '/dashboard' : '/playground'; diff --git a/src/layouts/rightRender.tsx b/src/layouts/rightRender.tsx index 434c98c3..14651462 100644 --- a/src/layouts/rightRender.tsx +++ b/src/layouts/rightRender.tsx @@ -6,7 +6,7 @@ import { LogoutOutlined, SettingOutlined } from '@ant-design/icons'; -import { history } from '@umijs/max'; +import { SelectLang, history } from '@umijs/max'; import { Avatar, Dropdown, Menu, Spin, version } from 'antd'; export function getRightRenderContent(opts: { @@ -56,6 +56,21 @@ export function getRightRenderContent(opts: { ); } + const renderExtraActions = () => { + return ( + + + 语言 + + } + > + ); + }; + // 如果没有打开Locale,并且头像为空就取消掉这个返回的内容 if (!avatar) return null; @@ -87,18 +102,6 @@ export function getRightRenderContent(opts: { // console.log('theme'); // } // }, - { - key: 'lang', - label: ( - <> - - 语言 - - ), - onClick: () => { - console.log('lang'); - } - }, { key: 'logout', label: ( @@ -136,20 +139,23 @@ export function getRightRenderContent(opts: { } return ( -
- {opts.runtimeConfig.logout ? ( - <> - - {avatar} - - - - ) : ( - avatar - )} +
+ {renderExtraActions()} +
+ {opts.runtimeConfig.logout ? ( + <> + + {avatar} + + + + ) : ( + avatar + )} +
); } diff --git a/src/pages/login/index.tsx b/src/pages/login/index.tsx index c3af7e02..f93880c9 100644 --- a/src/pages/login/index.tsx +++ b/src/pages/login/index.tsx @@ -27,6 +27,10 @@ const Login = () => { const [form] = Form.useForm(); + const gotoDefaultPage = (userInfo: any) => { + const pathname = userInfo?.is_admin ? '/dashboard' : '/playground'; + history.push(pathname); + }; const fetchUserInfo = async () => { const userInfo = await initialState?.fetchUserInfo?.(); @@ -38,6 +42,7 @@ const Login = () => { })); }); } + return userInfo; }; const handleLogin = async (values: any) => { @@ -47,8 +52,9 @@ const Login = () => { username: values.username, password: values.password }); - await fetchUserInfo(); - history.push('/'); + const userInfo = await fetchUserInfo(); + + gotoDefaultPage(userInfo); } catch (error) { console.log('error====', error); }