refactor(frontend): 按需加载页面并清理未使用代码
Client Quality Gates / Shared client and Web (push) Has been cancelled
Client Quality Gates / macOS Desktop (push) Has been cancelled

- 将业务页面路由统一改为动态导入,拆分首屏入口与各功能模块构建产物。

- 将网页端和桌面端布局改为异步组件,避免两套平台布局同时进入初始包。

- 新增 Element Plus 按需安装入口,并通过全局配置组件统一注入中文语言包。

- 提取 API 运行时钩子,在应用启动时注入项目清理、令牌续期和认证失效退出能力。

- 将权限监控面板及地图资源改为延迟加载,补充地图加载状态、失败提示和切换竞态保护。

- 删除已被现有工作流替代的项目成员、接口权限、中心绑定、培训表单及旧项目首页等页面。

- 清理废弃的快捷操作、项目选择、用户选择、FAQ 表单、风险占位组件和旧地图辅助模块。

- 移除未使用的 API 方法、类型、字典、状态机、展示工具、样式和项目详情编辑逻辑。

- 开启 TypeScript 未使用变量与参数检查,并同步收紧相关测试和组件暴露类型。

- 移除未使用的 updater、date-fns 和 Sass 前端依赖,更新锁文件并删除旧 CSS 清洗插件。

- 更新路由、Axios、ETMF、通知、权限监控和桌面布局测试以覆盖重构后的边界。
This commit is contained in:
Cheng Zhou
2026-07-16 14:58:47 +08:00
parent 1d26646a96
commit 6b55c18610
65 changed files with 345 additions and 3639 deletions
+28
View File
@@ -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();
};