123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- import { SettingDrawer } from '@ant-design/pro-layout';
- import { PageLoading } from '@ant-design/pro-layout';
- import { history, Link } from 'umi';
- import RightContent from '@/components/RightContent';
- import Footer from '@/components/Footer';
- import { currentUser as queryCurrentUser } from './services/ant-design-pro/api';
- import defaultSettings from '../config/defaultSettings';
- const isDev = process.env.NODE_ENV === 'development';
- const loginPath = '/user/login';
- /** 获取用户信息比较慢的时候会展示一个 loading */
-
- export const initialStateConfig = {
- loading: <PageLoading />,
- };
- /**
- * @see https://umijs.org/zh-CN/plugins/plugin-initial-state
- * */
-
- export async function getInitialState() {
- const fetchUserInfo = async () => {
- try {
- const msg = await queryCurrentUser();
- return msg.data;
- } catch (error) {
- history.push(loginPath);
- }
-
- return undefined;
- }; // 如果是登录页面,不执行
-
- if (history.location.pathname !== loginPath) {
- const currentUser = await fetchUserInfo();
- return {
- fetchUserInfo,
- currentUser,
- settings: defaultSettings,
- };
- }
-
- return {
- fetchUserInfo,
- settings: defaultSettings,
- };
- } // ProLayout 支持的api https://procomponents.ant.design/components/layout
-
- export const layout = ({ initialState, setInitialState }) => {
- return {
- rightContentRender: () => <RightContent />,
- disableContentMargin: false,
- footerRender: () => <Footer />,
- onPageChange: () => {
- const { location } = history; // 如果没有登录,重定向到 login
-
- if (!initialState?.currentUser && location.pathname !== loginPath) {
- history.push(loginPath);
- }
- },
- menuHeaderRender: undefined,
- // 自定义 403 页面
- // unAccessible: <div>unAccessible</div>,
- // 增加一个 loading 的状态
- childrenRender: (children, props) => {
- // if (initialState?.loading) return <PageLoading />;
- return (
- <>
- {children}
- {!props.location?.pathname?.includes('/login') && (
- <SettingDrawer
- enableDarkTheme
- settings={initialState?.settings}
- onSettingChange={(settings) => {
- setInitialState((preInitialState) => ({ ...preInitialState, settings }));
- }}
- />
- )}
- </>
- );
- },
- ...initialState?.settings,
- };
- };
|