import React, { useState, useEffect } from "react"; import { autoFixContext } from "react-activation"; import jsxDevRuntime from "react/jsx-dev-runtime"; import jsxRuntime from "react/jsx-runtime"; import { AliveScope } from "react-activation"; import { history } from "umi"; import { message } from "antd"; import { queryCurrentUser, getMenu } from "./services/login"; import defaultSettings from "../config/defaultSettings"; let loginpath = '/user/login'; export function rootContainer(container) { return React.createElement(AliveScope, null, container); } autoFixContext( [jsxRuntime, "jsx", "jsxs", "jsxDEV"], [jsxDevRuntime, "jsx", "jsxs", "jsxDEV"] ); export async function getInitialState() { let token = localStorage.getItem("TAIANTOKEN"); const fetchUserInfo = async () => { try { const res = await queryCurrentUser(); return res?.data ?? {}; } catch (error) { history.push(loginpath); } return undefined; }; // 如果是登录页面,不执行 const getmenuData = async () => { try { const res = await getMenu(); return res?.data ?? {}; } catch (error) { message.error('接口失败'); } return undefined; }; // 如果是登录页面,不执行 if (history.location.pathname !== loginpath && token) { const currentUserData = await fetchUserInfo(); let menuData; if (currentUserData?.data?.userName) { menuData = await getmenuData(); } return { fetchUserInfo, currentUser: currentUserData?.data, routesMenu: menuData?.userHavePermList, buttonPerm:menuData?.buttonPerm, getmenuData, routes: {}, }; } return { fetchUserInfo, getmenuData }; }