问题:切换视口大小或拖拽分隔条时,右侧预览面板甚至中右两栏被挤出视口。 根因:flex 布局左/右列 flexShrink:0,拖拽无上限约束,视口缩小时不自动收窄, 总宽度超出容器后 overflow:hidden 裁剪。 修复(HomeContent.tsx): - 拖拽时计算 maxLeft / maxRight 动态上限,确保中列≥300px、三栏均在视口内 - ResizeObserver 监听容器缩小,优先收右侧面板→不够再收左侧,拖拽中自动跳过 - leftWidthRef / rightWidthRef / draggingRef 避免闭包读到过期值 变更:CHANGELOG.md / TODO.md / WORKLOG.md 同步更新 影响文件:3 个(+60 -3) - src/pages/home/HomeContent.tsx - CHANGELOG.md - TODO.md
81 lines
3.4 KiB
Markdown
81 lines
3.4 KiB
Markdown
# TODO — 船长·HeiXiu 待办与优化清单
|
||
|
||
> 最后更新:2026-06-07
|
||
|
||
---
|
||
|
||
## 🟡 功能待完善(优先级中)
|
||
|
||
### 设置页面
|
||
|
||
- [ ] 设置数据通过 IPC 同步到主进程(当前仅渲染进程 localStorage)
|
||
- [ ] 存储路径有效性校验(检查路径是否存在)
|
||
- [ ] "恢复默认设置"按钮
|
||
|
||
### 路由与页面
|
||
|
||
- [ ] 合规素材库页面(`/compliance-assets`)
|
||
- [ ] 项目管理页面(`/projects`,企业版)
|
||
- [ ] 账户/会员/充值/消费记录/订单明细页面
|
||
- [ ] 忘记密码流程
|
||
- [ ] 各页面暗色主题适配
|
||
|
||
### 导航栏
|
||
|
||
- [ ] 移除调试用的 `console.log`
|
||
- [ ] 导航配置中的 `action: 'external'` 统一管理(白名单校验)
|
||
- [ ] 未登录点击需登录项 → 登录成功后自动跳转到目标页
|
||
|
||
### 公告
|
||
|
||
- [ ] 公告已读/未读状态
|
||
- [ ] 公告红点/角标提醒(有新公告时导航栏图标变化)
|
||
- [ ] 公告缓存(减少重复请求)
|
||
|
||
---
|
||
|
||
## 🟢 工程优化(优先级低)
|
||
|
||
### 构建与开发
|
||
|
||
- [ ] CI/CD 流水线(GitHub Actions / 自建)
|
||
- [ ] 代码签名自动化(Windows Authenticode / macOS notarization)
|
||
- [ ] E2E 测试用例编写(Playwright)
|
||
- [ ] 单元测试覆盖(Vitest)
|
||
- [ ] Bundle 体积分析优化(rollup-plugin-visualizer 已有,定期检查)
|
||
|
||
### 代码质量
|
||
|
||
- [ ] 移除未使用的 `shared/` 类型和常量
|
||
- [ ] 统一 IPC 通道注册/注销模式(避免重复监听)
|
||
- [ ] React 组件 lazy loading(React.lazy + Suspense)
|
||
- [ ] 错误边界组件(ErrorBoundary)
|
||
|
||
### 文档
|
||
|
||
- [ ] API 接口文档(Swagger / 手动维护)
|
||
- [ ] 组件文档(Storybook)
|
||
- [ ] 用户操作手册
|
||
|
||
---
|
||
|
||
## ⚠️ 已知技术债务
|
||
|
||
| 问题 | 说明 | 影响 |
|
||
|-----------------|---------------------------------------|------------------|
|
||
| localStorage 依赖 | 所有持久化数据依赖 localStorage | 清理浏览器数据会丢失所有配置 |
|
||
| IPC 监听器 | useUpdater 已改为单例,其他 IPC hook 可能也有类似问题 | 长期运行可能内存泄漏 |
|
||
| ~~主题切换状态重置~~ | ✅ 已修复 — 根因:设置页 `navigate('/settings')` 导致路由 `/*` 仅匹配 index,HomePage 被卸载重挂载。修复:SettingsPage 改为事件总线驱动的 Modal 居中叠加,不走路由 | ~~用户体验差~~ |
|
||
| ~~三栏布局拖拽溢出~~ | ✅ 已修复 — 拖拽分隔条增加最大宽度约束(`maxLeft = containerWidth - 36 - 300 - rightWidth`)+ 视口缩小 ResizeObserver 自动收窄 | ~~布局可用性~~ |
|
||
| `test.py` | 仓库根目录残留测试文件 | 无实际作用,应清理 |
|
||
| `null` 文件 | 仓库根目录名为 null 的文件 | 构建产物或误操作残留 |
|
||
|
||
---
|
||
|
||
## 📋 下次开发计划
|
||
|
||
1. **合规素材库页面**(功能待完善 — 按 QT 原版设计,以 Modal/Drawer 叠加而非路由跳转实现)
|
||
2. **各页面 nav 导航补齐**(后续页面优先使用叠加模式,遵循 QT 多窗口模型 → 见 WORKLOG 2026-06-07)
|
||
3. **leftWidth / rightWidth / taskPage 加 localStorage 持久化**(UX 优化:刷新页面后保持用户偏好)
|
||
4. **轮播图关闭按钮状态优化**(当前为 session 级别 useState,可考虑加 localStorage 记录关闭时间戳,超过 N 天再显示)
|