Files
ele-HeiXiu/TODO.md
YoungestSongMo 337d6c1205 feat: 构建系统重构 + VCHSM 架构迁移 + 右键菜单修复 + 尺寸参数统一
## 构建、打包与分发系统重构 (build/)

- 构建系统收敛至 build/ 目录:build.mjs + electron-builder.js + 6 个脚本

- electron-builder 配置从 package.json 提取为 build/electron-builder.js

- 新增 --edition (personal/enterprise) 和 --channel (stable/beta/alpha) 参数

- OSS 路径按渠道隔离

- 新增 pre-build-check.mjs:Git/CHANGELOG/版本/环境变量校验

- 新增 bump-version.mjs:版本号管理 + CHANGELOG 自动生成

- updater.ts 发送 channel/edition/deviceFingerprint

- 新增 src/shared/utils/rollout.ts 灰度测试工具

- 新增 10 条 NPM 脚本

## VCHSM 五层架构迁移

- 7 个业务模块 + ~500 处导入路径同步

## 修复

- MediaCardContextMenu 改用共享 ContextMenu 组件

- ComboBox 尺寸参数显示统一 (size-format.ts)

## 文档

- UpdateA.md / build/README.md / README.md / .env.example 更新

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-29 18:41:07 +08:00

118 lines
6.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# TODO — 船长·HeiXiu 待办与优化清单
> 最后更新2026-06-29
---
## ✅ 近期完成
- **VCHSM 五层模块化架构重构**`pages/` + `services/modules/` 分散模式 → `modules/` 统一7 个模块,每个独立 views/controllers/hooks/settings/model
- **公告 Badge 角标 + 轮询缓存**antd Badge + useAnnouncements Hook15 分钟轮询 + localStorage 已读缓存)
- **日志全量审计**~60+ 处 try/catch 补充 logger.warn3 个 IPC handler try/catch 包裹
- **存储路径可配置**`setLogDirResolver()` / `setDataDirResolver()` 函数注入
- **构建时 EDITION 变量已移除**:版控全部收敛到后端 `account_type` 运行时判断,不再区分个人版/企业版构建产物
- **窗口标题动态版控**:登录后通过 IPC 追加 `·个人版`/`·企业版` 后缀
- **退出登录不再自动清空本地缓存**`user_id` 隔离 + 手动清理按钮
- **无限画布(企业版项目管理)**:独立 BrowserWindow 画布窗口,项目/集数/镜头导航、阶段切换、网格/单行布局、滚轮缩放、拖拽平移、全屏灯箱预览、原生文件拖拽
- **无限画布 UI 重构**AntD Layout 双栏布局Sider+Content、CanvasSidebar 导航、CategoryTabs 双模式分类、Ctrl/Cmd+拖拽平移
- **预览键盘控制**Space 暂停/播放、← → 快退快进 ±0.5s、↑ ↓ 音量透传原生 controls
- **local-media:// Range 请求支持**:协议头转发修复音视频 seek 失败问题
---
## 🟡 功能待完善(优先级中)
### 设置页面
- [ ] 设置数据通过 IPC 同步到主进程(当前仅渲染进程 localStorage
- [ ] 存储路径有效性校验(检查路径是否存在)
- [ ] "恢复默认设置"按钮
### 路由与页面
- [x] 账户信息页面(`/account``AccountInfo.tsx`AuthAPI.getUserInfo() 驱动
- [x] 充值页面(`/recharge``RechargePage.tsx`,创建订单 → 支付状态跟踪
- [x] 订单明细页面(`/orders``OrdersPage.tsx`,状态筛选 + 分页 + 继续支付 + 轮询
- [ ] 合规素材库页面(`/compliance-assets`
- [x] 项目管理页面(企业版,独立画布窗口 `#/canvas`
- [ ] 会员页面(`/vip`
- [ ] 消费记录页面
- [x] 本地数据管理(加载历史/保存到磁盘/清理缓存) — `DataManageSetting` + sql.js 存储
### 媒体与文件
- [ ] 媒体文件本地下载+缓存(主进程 HTTP 无 CORS 限制,替代渲染进程 axios
- [ ] CDN 签名过期检测(主进程发 HEAD 请求读 `SignatureExpired` 响应体)
- [ ] 列表页"下一页"懒加载集成TaskHistory / OrdersPage 调用 `fetchAndSync*`
- [ ] 参数回填 UI选择模型时显示历史参数下拉
- [ ] 右键"在文件夹中查看"功能(媒体预览右键菜单)
### 导航栏
- [ ] 导航配置中的 `action: 'external'` 统一管理(白名单校验)
- [ ] 未登录点击需登录项 → 登录成功后自动跳转到目标页
### 公告
- [x] 公告数据获取与展示AnnouncementDrawer + fetchAnnouncements API
- [x] 公告已读/未读状态localStorage 缓存已读 ID Set
- [x] 公告 Badge 角标提醒antd Badge + NavItem badgeCount prop
- [x] 公告缓存 + 轮询useAnnouncements Hook15 分钟 setInterval 对比)
### 任务
- [x] 任务状态轮询(批量轮询 + Context 桥接 + 自适应间隔)
- [ ] 任务列表导出 CSV 功能完善
- [ ] 任务重试/重新提交
---
## 🟢 工程优化(优先级低)
### 构建与开发
- [ ] CI/CD 流水线GitHub Actions / 自建)
- [ ] 代码签名自动化Windows Authenticode / macOS notarization
- [ ] E2E 测试用例编写Playwright
- [ ] 单元测试覆盖Vitest
- [ ] Bundle 体积分析优化rollup-plugin-visualizer 已有,定期检查)
### 代码质量
- [ ] 移除未使用的 `shared/` 类型和常量
- [ ] 统一 IPC 通道注册/注销模式(避免重复监听)
- [ ] React 组件 lazy loadingReact.lazy + Suspense
- [ ] 错误边界组件ErrorBoundary
- [ ] 审计其余 useEffect 缺少清理函数的位置StrictMode 双重挂载可能导致重复请求,参考 AppProvider 的 aborted 模式)
### 文档
- [x] 文件夹 README 文档37 个文件夹全部覆盖,不进 Git
- [ ] API 接口文档Swagger / 手动维护)
- [ ] 组件文档Storybook
- [ ] 用户操作手册
---
## ⚠️ 已知技术债务
| 问题 | 说明 | 影响 |
|-----------------|---------------------------------------|----------------|
| localStorage 依赖 | 所有持久化数据依赖 localStorage | 清理浏览器数据会丢失所有配置 |
| IPC 监听器 | useUpdater 已改为单例,其他 IPC hook 可能也有类似问题 | 长期运行可能内存泄漏 |
| `test.py` | 仓库根目录残留测试文件 | 无实际作用,应清理 |
| `null` 文件 | 仓库根目录名为 null 的文件 | 构建产物或误操作残留 |
---
## 📋 下次开发计划
1. **任务列表导出 CSV**`task.ts` 已定义 `exportTaskCSV` API前端未对接下载按钮
2. **文件上传端点确认**`/api/v1/upload` 待后端确认,当前 useFileUpload 已完成前端集成)
3. **各页面 nav 导航补齐**(后续页面优先使用叠加模式,遵循 QT 多窗口模型 → 见 WORKLOG 2026-06-07
4. **leftWidth / rightWidth / taskPage 加 localStorage 持久化**UX 优化:刷新页面后保持用户偏好;已通过路由去路由化解决组件卸载问题,但
localStorage 持久层仍未实现)
5. **轮播图关闭按钮 localStorage 持久化**关闭按钮已实现待做localStorage 记录关闭时间戳,超过 N 天再显示)
6. **短信发送接入人机验证**(后期优化,需后端配合:`sendSms` 接口增加 `captcha_token` 参数 + 前端滑块/图形验证组件。当前仅靠
60s 冷却按钮 + 后端限流,桌面端 ASAR 可解包 + DevTools 网络面板 + 代理抓包均能直接暴露 API纯前端限制对脚本攻击无效