refactor(frontend): 按需加载页面并清理未使用代码
- 将业务页面路由统一改为动态导入,拆分首屏入口与各功能模块构建产物。 - 将网页端和桌面端布局改为异步组件,避免两套平台布局同时进入初始包。 - 新增 Element Plus 按需安装入口,并通过全局配置组件统一注入中文语言包。 - 提取 API 运行时钩子,在应用启动时注入项目清理、令牌续期和认证失效退出能力。 - 将权限监控面板及地图资源改为延迟加载,补充地图加载状态、失败提示和切换竞态保护。 - 删除已被现有工作流替代的项目成员、接口权限、中心绑定、培训表单及旧项目首页等页面。 - 清理废弃的快捷操作、项目选择、用户选择、FAQ 表单、风险占位组件和旧地图辅助模块。 - 移除未使用的 API 方法、类型、字典、状态机、展示工具、样式和项目详情编辑逻辑。 - 开启 TypeScript 未使用变量与参数检查,并同步收紧相关测试和组件暴露类型。 - 移除未使用的 updater、date-fns 和 Sass 前端依赖,更新锁文件并删除旧 CSS 清洗插件。 - 更新路由、Axios、ETMF、通知、权限监控和桌面布局测试以覆盖重构后的边界。
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
export type AccessTokenExtensionResult = {
|
||||
token: string | null;
|
||||
authFailed: boolean;
|
||||
};
|
||||
|
||||
export interface ApiRuntimeHooks {
|
||||
clearInvalidStudyAndNavigate: () => void | Promise<unknown>;
|
||||
extendAccessToken: (reason: "response-401") => Promise<AccessTokenExtensionResult>;
|
||||
forceAuthExpiredLogout: () => void | Promise<unknown>;
|
||||
}
|
||||
|
||||
let runtimeHooks: ApiRuntimeHooks | null = null;
|
||||
|
||||
export const configureApiRuntimeHooks = (hooks: ApiRuntimeHooks): void => {
|
||||
runtimeHooks = hooks;
|
||||
};
|
||||
|
||||
export const clearInvalidStudyAndNavigate = async (): Promise<void> => {
|
||||
await runtimeHooks?.clearInvalidStudyAndNavigate();
|
||||
};
|
||||
|
||||
export const extendAccessTokenAfterUnauthorized = (): Promise<AccessTokenExtensionResult> =>
|
||||
runtimeHooks?.extendAccessToken("response-401")
|
||||
?? Promise.resolve({ token: null, authFailed: false });
|
||||
|
||||
export const forceAuthExpiredLogout = async (): Promise<void> => {
|
||||
await runtimeHooks?.forceAuthExpiredLogout();
|
||||
};
|
||||
Reference in New Issue
Block a user