import { queryCurrentUser, queryPermData } from './services/user'
import { history } from 'umi'
import RightContent from '@/components/RightContent'
import { message, notification } from 'antd'
import logo from '../public/logo.svg'
import { getToken } from '@/utils/auth'
import { tryChangeWorkStatus } from './components/RightContent/Book'
import { getAuthCache, setAuthCache } from './utils/auth'
import { LAYOUT_COLLAPSED_KEY } from './utils/cache/cacheEnum'
import consts from './consts'
import ModalStore from './components/Modal1'
const loginPath = '/user/login'
// 重新构建MenuData,解决重定向没有权限的路由
// const generateMenu = (menuData, permission) => menuData.map(menu => {
// })
export async function getInitialState() {
// 如果是登录页面,不执行
const fetchUserInfo = async () => {
try {
const res = await queryCurrentUser()
return res.data
} catch (error) {
history.push(loginPath)
}
return undefined
}
const fetchPermData = async () => {
try {
const res = await queryPermData()
return res.data
} catch (error) {
message.error('获取数据权限失败,请联系管理员')
}
return {}
}
// 如果是登录页面,不执行
if (history.location.pathname !== loginPath) {
const userInfo = (await fetchUserInfo()) || {}
const permData = (await fetchPermData()) || {}
// if (userInfo?.currentUser?.staffId) {
// const { username, staffId: id, wsToken: token } = userInfo?.currentUser
// ws.init(`ws://cld2qa.com/summon/v1/chat/link?username=${username}&id=${id}&token=${token}`, {
// onMessage
// })
// }
const collapsed = getAuthCache(LAYOUT_COLLAPSED_KEY) || false
return {
fetchUserInfo,
fetchPermData,
permData,
...userInfo,
settings: { collapsed, defaultCollapsed: collapsed }
}
}
return {
fetchUserInfo,
fetchPermData,
settings: {}
}
}
export const layout = ({ initialState, setInitialState }) => {
const onCollapse = collapsed => {
setInitialState({ ...initialState, settings: { ...initialState.settings, collapsed } })
setAuthCache(LAYOUT_COLLAPSED_KEY, collapsed)
}
return {
logo,
// menu: {
// params: {
// userId: initialState?.currentUser?.staffId
// },
// request: (_, defaultMenuData) => {
// console.log('defaultMenuData', defaultMenuData)
// return defaultMenuData
// }
// },
rightContentRender: () =>