chore: 文档更新 + 代码去重 + ESLint 修复,准备 0.0.16
- CHANGELOG: 新增 0.0.16 版本条目(模型输入栏重构/统一页面调度/依赖联动) - TODO: 标记账户信息页为已完成,拆分未完成页面项 - ARCHITECTURE: 新增 PageDispatcher 叠加层说明 + OPEN_PAGE 事件 - 代码去重:runFieldChecks(validators) + createImageBeforeUpload(uploadValidation) - ESLint: DependentFormItem 中 Form.useWatch 移到组件顶层(修复 rules-of-hooks) - ESLint: message.success / async handleSubmit 加 void(修复 no-floating-promises) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# 船长 · HeiXiu — 前端架构文档
|
||||
|
||||
> 最后更新:2026-06-08
|
||||
> 最后更新:2026-06-09
|
||||
|
||||
## 目录结构
|
||||
|
||||
@@ -165,18 +165,20 @@ NavBar / 设置页 → AppProvider.logout()
|
||||
|
||||
- 纯发布-订阅,不依赖任何框架
|
||||
- 用于跨模块解耦通信(如 axios 拦截器无法直接用 React Context)
|
||||
- 预定义事件:`AUTH_REQUIRED` / `SHOW_LOGIN` / `LOGIN_SUCCESS` / `LOGOUT` / `TASK_SUBMITTED` / `OPEN_SETTINGS`
|
||||
- 预定义事件:`AUTH_REQUIRED` / `SHOW_LOGIN` / `LOGIN_SUCCESS` / `LOGOUT` / `TASK_SUBMITTED` / `OPEN_SETTINGS` / `OPEN_PAGE`
|
||||
|
||||
### 页面叠加层模式(QT 多窗口模型映射)
|
||||
|
||||
本项目是 Python QT 桌面应用的 Web 重构版。QT 应用以"新开窗口"为常态,原窗口不因新窗口打开而销毁。Web 端对应原则:
|
||||
|
||||
| QT 原版 | Web 对应 | 实现方式 |
|
||||
|---------|---------|---------|
|
||||
| 新开窗口叠加在主窗口之上 | Modal / Drawer | 事件总线驱动,主页面不卸载 |
|
||||
| Tab 切换 / 视图替换 | React Router | 跨页状态放 Provider 或 localStorage |
|
||||
| QT 原版 | Web 对应 | 实现方式 |
|
||||
|---------------|----------------|-------------------------------|
|
||||
| 新开窗口叠加在主窗口之上 | Modal / Drawer | 事件总线驱动,主页面不卸载 |
|
||||
| Tab 切换 / 视图替换 | React Router | 跨页状态放 Provider 或 localStorage |
|
||||
|
||||
**当前叠加层**:
|
||||
|
||||
- `PageDispatcher` — 统一页面调度器,监听 `OPEN_PAGE` 事件,根据 `modalType` 渲染 Modal/Drawer/FloatingPanel,全局互斥(同一时刻最多一个面板)
|
||||
- LoginPage — Modal,事件总线 `SHOW_LOGIN` / `AUTH_REQUIRED` 触发
|
||||
- SettingsPage — Modal,事件总线 `OPEN_SETTINGS` 触发
|
||||
- AnnouncementDrawer — Drawer,NavBar 内部 state 控制
|
||||
|
||||
Reference in New Issue
Block a user