/** * 平台级 Mock Router * * 拦截登录、菜单、用户信息、权限等平台级 API, * 使应用在无后端的情况下完成初始化并进入主界面。 */ import { mockMenus, mockUserInfo, mockPwdInfo, mockSystemSetting, mockButtonAuth } from './seed' const ok = (data: any) => ({ code: 800, msg: '操作成功', data }) export function platformRouter(url: string, method: string, _data?: any): any | null { const u = url.replace(/^\//, '') // ---- autoLogin:返回 token + 菜单树 ---- if (u.includes('base-user/going-system') && method === 'post') { return ok({ token: 'mock-token-prototype', refreshToken: 'mock-refresh-token', menus: JSON.parse(JSON.stringify(mockMenus)), defaultMenuUrl: '/home', portalType: 'normal', }) } // ---- 获取当前登录用户信息 ---- if (u.includes('base-user/get-login-user') && method === 'get') { return ok({ ...mockUserInfo }) } // ---- 密码策略检查 ---- if (u.includes('base-user/check-pwd-login') && method === 'get') { return ok({ needChangePwd: false, pwdTip: '' }) } // ---- 租户系统配置 ---- if (u.includes('base-tenant-system/find-tenant-defined') && method === 'get') { return ok({ ...mockSystemSetting }) } // ---- 表格配置缓存 ---- if (u.includes('prsn-data/find-list') && method === 'post') { return ok([]) } // ---- 按钮权限 ---- if (u.includes('resource/find-resource') && method === 'get') { return ok([...mockButtonAuth]) } // ---- 收藏状态 ---- if (u.includes('portal-favourite/find-user-menu') && method === 'post') { return ok({ isCollect: false }) } // ---- 菜单角标数量 ---- if (u.includes('message-subscript/find-menu-num') && method === 'post') { return ok({}) } // ---- 未读消息总数 ---- if (u.includes('unread-message-total') && method === 'post') { return ok(0) } // ---- AI 权限 ---- if (u.includes('aigc/enable') && method === 'post') { return ok(false) } // ---- 灰度规则 ---- if (u.includes('grayscale/rule/myid') && method === 'get') { return ok({ greyRules: [] }) } // ---- 系统配置 key-value ---- if (u.includes('server-config/get-value-by-key') && method === 'get') { return ok('') } // ---- 快捷入口菜单 ---- if (u.includes('base-menu-fetch/find-list') && method === 'post') { return ok([]) } // ---- 获取菜单树(单独请求) ---- if (u.includes('base-menu/find-menutree') && method === 'get') { return ok(JSON.parse(JSON.stringify(mockMenus))) } // ---- 获取导入模板 ---- if (u.includes('base-template/find-system-function') && method === 'post') { return ok([]) } // ---- SSO/登录相关(返回空配置,不走 SSO) ---- if (u.includes('base-sso-oauth-config/get-login-type') && method === 'get') { return ok({ loginType: 'normal' }) } // ---- 登出 ---- if (u.includes('base-user/logout') && method === 'get') { return ok(null) } // ---- 系统配置 Mock ---- if (u.includes('system/config/get') && method === 'get') { return ok({ leadTimeDays: 30, forceConvertDays: 5, lastModified: '2026-06-01 10:00:00', }) } if (u.includes('system/config/save') && method === 'post') { return ok({ success: true }) } return null }