diff --git a/src/common/libs/umi/layoutConfig.tsx.backup b/src/common/libs/umi/layoutConfig.tsx.backup new file mode 100644 index 0000000..acda85b --- /dev/null +++ b/src/common/libs/umi/layoutConfig.tsx.backup @@ -0,0 +1,79 @@ +// import Logo from '@/assets/bitcoin.webp'; +import { MyIcons, MyIconsType, PermissionsType, useMyState } from '@/common'; +import { Link, RuntimeConfig, history } from '@umijs/max'; +import AvatarProps from '../../components/layout/AvatarProps'; + +const loopMenu = (permissions: PermissionsType[] | undefined) => { + let tree: PermissionsType[] = []; + let map: Record = {}; + permissions?.forEach((permission) => { + map[permission.id] = { + path: permission.type === 'Button' ? 'null' : permission.path, + name: permission.name, + icon: permission.icon && MyIcons[permission.icon as MyIconsType], + children: [], + hideInMenu: permission.type === 'Button', + }; + }); + + permissions?.forEach((permission) => { + let node = map[permission.id]; + if (permission.parent_id !== null) { + map[permission.parent_id].children.push(node); + } else { + tree.push(node); + } + }); + + return tree?.[0]?.children; +}; + +export const LayoutConfig: RuntimeConfig['layout'] = () => { + const { snap } = useMyState(); + + return { + title: snap.session.campus?.name ?? '总后台', + // logo: , + logo: <>, + layout: 'mix', + colorPrimary: '#1890ff', + siderWidth: 220, + pure: history.location.pathname === '/login', + avatarProps: { + render: () => , + }, + //水印设置 + // waterMarkProps: { + // content: snap.session.user?.username, + // }, + collapsedButtonRender: false, + token: { + bgLayout: '#eef0f3', + header: { + colorBgHeader: '#001529', + colorHeaderTitle: '#FFF', + colorTextRightActionsItem: '#FFF', + heightLayoutHeader: 50, + }, + sider: { + colorMenuBackground: '#FFF', + }, + }, + menuItemRender: (item, dom) => {dom}, + menu: { + params: snap.session.permissions, + request: async () => { + let objjs: any = []; + snap.session.permissions?.forEach((res: any) => { + objjs.push(res); + }); + let data = objjs.sort((a: any, b: any) => { + return a._lft - b._lft; + }); + const menus = loopMenu(data); + return Promise.resolve(menus); + }, + }, + unAccessible:
unAccessible
, + }; +};