import { AvatarDropdown, AvatarName, Footer, Question, SelectLang, Notice } from '@/components'; import { LinkOutlined } from '@ant-design/icons'; import type { Settings as LayoutSettings } from '@ant-design/pro-components'; import { SettingDrawer } from '@ant-design/pro-components'; import { Link, RunTimeLayoutConfig, getLocale, history, useIntl } from '@umijs/max'; import { RequestConfig } from 'umi'; import defaultSettings from '../config/defaultSettings'; import { errorConfig } from './requestErrorConfig'; const isDev = process.env.NODE_ENV === 'development'; const loginPath = '/user/login'; // @ts-ignore import { SelectRole } from '@/components/RightContent'; import zhCN from '@/locales/zh-CN'; import { postMenuGetMenu } from '@/services/system/Menu'; import { getUserGetUserInfo } from '@/services/system/User'; import fixMenuItemIcon from '@/utils/FixMenuItemIcon'; import { getAllRouteNameTile } from '@/utils/common'; import { addLocale } from '@@/plugin-locale'; import { MenuDataItem } from '@ant-design/pro-layout'; import cookie from 'react-cookies'; /** * @see https://umijs.org/zh-CN/plugins/plugin-initial-state * */ // 自定义路由路径集合 const isCustomPageTitlePaths : string[]= ['/resource/algorithm-model-detail'] export async function getInitialState(): Promise<{ settings?: Partial; currentUser?: API.UserView; loading?: boolean; fetchUserInfo?: any; menuData?: MenuDataItem[]; }> { const fetchUserInfo = async () => { try { const msg = await getUserGetUserInfo(); return msg.data.userInfo; } catch (error) { history.push(loginPath); } return undefined; }; // 如果不是登录页面,执行 const { location } = history; if (location.pathname !== loginPath && localStorage.getItem('access')) { const currentUser = await fetchUserInfo(); // const menus = await postMenuGetMenu(); const menus = { code: 0, success: true, data: { routes: [ { "path": "/welcome", "key": "", "name": "welcome", "icon": "HomeOutlined", "access": "", "component": "Welcome", "title": "首页", "routes": [] }, { "path": "/alarm/alarm-list", "key": "", "name": "alarm-list", "icon": "WarningOutlined", "access": "", "component": "Hidden", "title": "告警列表", "routes": [] }, { "path": "alarm_rules", "key": "", "name": "alarm_rules", "icon": "OrderedListOutlined", "access": "", "component": "Hidden", "title": "告警规则", "routes": [] }, { "path": "interfaceManage", "key": "", "name": "interfaceManage", "icon": "BranchesOutlined", "access": "", "component": "Hidden", "title": "接口管理", "routes": [] } ] }, msg: "获取成功" } if (getLocale() === 'zh-CN') { let localData = getAllRouteNameTile(menus.data.routes, ''); let localRes: any = {}; localData.forEach((v) => { // console.log(v.title,'localData_v') localRes[`menu${v.name}`] = v.title; }); console.log(localRes, 'getAllRouteNameTile'); addLocale('zh-CN', localRes, { momentLocale: 'zh-CN', antd: zhCN, }); } return { fetchUserInfo, currentUser, settings: defaultSettings as Partial, menuData: menus.data.routes, }; } return { fetchUserInfo, settings: defaultSettings as Partial, }; } // ProLayout 支持的api https://procomponents.ant.design/components/layout export const layout: RunTimeLayoutConfig = ({ initialState, setInitialState }) => { return { actionsRender: () => [ // , // , // , // ], avatarProps: { src: SERVER_HOST + initialState?.currentUser?.avatarUrl, title: , render: (_, avatarChildren) => { console.log(avatarChildren,'111111111') return {avatarChildren}; }, }, pageTitleRender: () => { console.log(history, 'pageTitleRender'); // TODO 目前使用路由path全匹配,后续改成从接口字段读取 let isCustom: boolean = false for(let i=0; i { console.log(initialState?.menuData,'initialState_menuData') return initialState?.menuData || []; }, }, footerRender: () =>