## 根因
设置页 `navigate('/settings')` 导致 React Router `/*` 的 index
路由不匹配,HomePage 被卸载重挂载,所有 useState 回到默认值。
## 修复(6 文件)
- event-bus.ts: 新增 OPEN_SETTINGS 事件
- nav-config.ts: 设置按钮 action: 'navigate' → 'button',去路由化
- NavBar.tsx: button case 中 emit(OPEN_SETTINGS)
- SettingsPage.tsx: 去路由化,改为 Modal 居中叠加 + open/onClose props,
使用 antd 6.x 正确 API destroyOnHidden(非废弃的 destroyOnClose),
mask={{ closable: false }} + keyboard={false} 仅允许 X 按钮关闭
- router/index.tsx: 移除 SettingsPage 渲染
- App.tsx: 添加 SettingsPage Modal,事件驱动(与 LoginPage 模式一致)
## UX 优化(2 文件)
- HomeContent.tsx: 右侧分隔条移除多余 marginLeft,左右视觉对称
- BannerCarousel.tsx: 新增关闭按钮,session 级别 useState 隐藏,
不做 localStorage 持久化,确保每次启动重新展示
## 架构原则
确立 QT 多窗口模型 → Web 映射:叠加层走 Modal/Drawer + 事件总线,
主页面不卸载;真正的视图切换才用 React Router。
## 文档同步
- TODO.md: 移除已完成项详细记录,精简为未完成待办
- WORKLOG.md: 追加 2026-06-07 完整工作日志
- PROJECT.md: 更新路由/叠加层架构说明
- CHANGELOG.md: 追加 v0.0.13 条目
- ARCHITECTURE.md: 更新日期 + 新增叠加层模式章节
1.4 KiB
1.4 KiB
更新日志
每次发版前修改此文件,
npm run build:win打包后会自动读取生成 update-info.json。
0.0.13(2026-06-07)
- 修复主题切换后首页状态重置问题:设置页去路由化,改为事件总线驱动的 Modal 叠加
- 首页三栏分隔条视觉对齐:移除右侧多余 margin,左右完全对称
- 轮播图新增关闭按钮:session 级别隐藏,每次启动重新展示
- 确立 QT 多窗口模型 → Web 架构映射原则:叠加层走 Modal/Drawer + 事件总线,不走路由
0.0.12(2026-06-04)
- 重构更新检查流程:无更新不再抛异常,PreCheck → 直接 IPC 通知
- 新增用户决定下载流程:检查到新版本后展示更新内容,用户确认后再下载
- 设置页新增"查看详情"弹窗,Markdown 格式化展示更新日志
- 新增"下载更新"按钮,与"安装更新"分离为两个独立操作
- 修复测试服务器版本排序(字符串序 → 语义版本序,0.0.10 正确排在 0.0.9 之后)
- electron-updater Provider 增加 TTL 缓存,避免重复 API 请求
- 修复 Windows cmd
set命令空格导致的 Invalid URL 问题 - 修复 electron-updater 'error' 事件拦截,无更新不再爆红
格式说明
每个版本以 ## x.y.z(日期) 开头,内容为无序列表。打包脚本会提取最新版本的日志填入 update-info.json。