| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- import type { Settings as LayoutSettings } from '@ant-design/pro-layout';
- import { PageLoading } from '@ant-design/pro-layout';
- import { history } from 'umi';
- import { currentUser as queryCurrentUser } from './services/ant-design-pro/api';
- import defaultSettings from '../config/defaultSettings';
- const loginPath = '/user/login';
- /** 获取用户信息比较慢的时候会展示一个 loading */
- export const initialStateConfig = {
- loading: <PageLoading />,
- };
- /**
- * @see https://umijs.org/zh-CN/plugins/plugin-initial-state
- * */
- export async function getInitialState(): Promise<{
- settings?: Partial<LayoutSettings>;
- currentUser?: API.CurrentUser;
- loading?: boolean;
- fetchUserInfo?: () => Promise<API.CurrentUser | undefined>;
- }> {
- 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: RunTimeLayoutConfig = ({ initialState, setInitialState }) => {
- // return {
- // rightContentRender: () => <RightContent />,
- // disableContentMargin: false,
- // waterMarkProps: {
- // content: initialState?.currentUser?.name,
- // },
- // footerRender: () => <Footer />,
- // onPageChange: () => {
- // const { location } = history;
- // // 如果没有登录,重定向到 login
- // if (!initialState?.currentUser && location.pathname !== loginPath) {
- // history.push(loginPath);
- // }
- // },
- // links: isDev
- // ? [
- // <Link to="/umi/plugin/openapi" target="_blank">
- // <LinkOutlined />
- // <span>OpenAPI 文档</span>
- // </Link>,
- // <Link to="/~docs">
- // <BookOutlined />
- // <span>业务组件文档</span>
- // </Link>,
- // ]
- // : [],
- // 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,
- // };
- // };
|