import bg1Layout from '@/assets/images/lay-bg1.webp'; import bg2Layout from '@/assets/images/lay-bg2.webp'; import bg3Layout from '@/assets/images/lay-bg3.webp'; import { AvatarDropdown, AvatarName, Footer, Icon, SelectLang } from '@/components'; import { secureLocalStorage as ls } from '@/utils/localUtils'; import { Settings as LayoutSettings } from '@ant-design/pro-components'; import mcLogoSvg from '@svgs/multi-color/mc-logo.svg'; import type { RequestConfig, RuntimeConfig, RunTimeLayoutConfig } from '@umijs/max'; import { history } from '@umijs/max'; import { App } from 'antd'; import dayjs from 'dayjs'; import utc from 'dayjs/plugin/utc'; import React from 'react'; import defaultSettings from '../config/defaultSettings'; import VersionChecker from './components/VersionChecker'; import { requestConfig } from './requestConfig'; import { AntdAppInstanceCapture } from './utils/antdAppInstance'; import { userKey } from './utils/authUtils'; import { loginPath, toLoginPage } from './utils/routerUtils'; dayjs.extend(utc); const isDev = process.env.NODE_ENV === 'development'; const appEnv = process.env.REACT_APP_ENV; const VersionCheckComponent: React.FC = () => { if (appEnv !== 'prod' && appEnv !== 'test' && appEnv !== 'dev') { return null; } const currentBuildTime = process.env.REACT_APP_BUILD_TIME; if (!currentBuildTime) { return null; } return ( ); }; let title = `${process.env.REACT_APP_NAME}`; let waterMarkContent = ''; if (isDev) { waterMarkContent = `${process.env.REACT_APP_NAME} - 本地环境`; } else if (appEnv === 'dev') { waterMarkContent = `${process.env.REACT_APP_NAME} - 开发环境`; } else if (appEnv === 'test') { waterMarkContent = `${process.env.REACT_APP_NAME} - 测试环境`; } if (waterMarkContent !== '') { title = waterMarkContent; } const defSettings = { ...defaultSettings, title, logo: , }; export async function getInitialState(): Promise<{ settings?: Partial; currentUser?: API.UserInfo | null; fetchUserInfo?: () => Promise; }> { const fetchUserInfo = () => { return new Promise((resolve) => { const userInfo = ls.getLocal(userKey); resolve(userInfo); }); }; const { location } = history; if (location.pathname !== loginPath) { const currentUser = await fetchUserInfo(); return { fetchUserInfo, currentUser, settings: defSettings as Partial, }; } return { fetchUserInfo, settings: defSettings as Partial, }; } export const layout: RunTimeLayoutConfig = ({ initialState }) => { return { stylish: { sider: (token) => ({ backgroundColor: token.colorBgLayout, }), }, pageTitleRender: false, menu: { defaultOpenAll: true, ignoreFlatMenu: true, autoClose: false, }, menuProps: { mode: 'inline', inlineIndent: 24, }, actionsRender: () => [], avatarProps: { size: 24, src: initialState?.currentUser?.avatar, title: , render: (_, avatarChildren) => { return {avatarChildren}; }, }, waterMarkProps: { content: waterMarkContent, }, footerRender: () =>