diff --git a/todo.md b/todo.md index 057f0b0..640db0b 100644 --- a/todo.md +++ b/todo.md @@ -14,6 +14,18 @@ - [x] strategies/strategies.vue: 清理未使用的 CSS - [x] 添加 OPTIMIZATION.md 优化计划文档 +### 2026-03-24 +- [x] TypeScript 迁移完成(Phase 0-4) +- [x] P3 功能增强(下拉刷新/上拉加载/空状态) +- [x] P6 UI/UX 优化(产品评审反馈) +- [x] 交易时间格式优化 +- [x] 小程序编译兼容性修复 + +### 2026-03-25 +- [x] 收益率并发问题修复(后端) +- [x] SqlSugarClient 高性能模式优化(后端) +- [x] 数据源优先级调整(后端) + ## 当前状态 ### 组件使用策略 @@ -29,105 +41,71 @@ ### 页面代码量 | 页面 | 总行数 | CSS行数 | 状态 | |-----|-------|--------|------| -| index.vue | 654 | 428 | 待优化 | -| detail.vue | 1039 | 330 | 已优化 | -| config.vue | 733 | 325 | 已优化 | -| strategies/edit | 997 | ~250 | 已优化 | -| strategies | 230 | 117 | 已清理 | -| me.vue | 180 | 47 | 无需修改 | +| index.vue | 654 | 428 | ✅ 已优化 | +| detail.vue | 1039 | 330 | ✅ 已优化 | +| config.vue | 733 | 325 | ✅ 已优化 | +| strategies/edit | 997 | ~250 | ✅ 已优化 | +| strategies | 230 | 117 | ✅ 已清理 | +| me.vue | 180 | 47 | ✅ 无需修改 | -## 待处理 +--- -### P1 - CSS 清理 ✅ 完成 -- [x] index.vue: 检查并移除未使用的 CSS 类 -- [x] detail.vue: 进一步清理冗余样式 +## ✅ 全部任务完成! + +### 前端完成清单 + +#### TypeScript 迁移 ✅ +- [x] Phase 0 - 基础设施(tsconfig、types 目录) +- [x] Phase 1 - 类型定义(6 个类型文件) +- [x] Phase 2 - 工具函数迁移(currency.ts、api.ts) +- [x] Phase 3 - 页面组件迁移(6 个页面) +- [x] Phase 4 - 清理验证(tsc --noEmit 通过) + +#### P1 - CSS 清理 ✅ +- [x] index.vue: 移除未使用的 CSS 类 +- [x] detail.vue: 清理冗余样式 - [x] config.vue: 优化表单样式 -### P2 - 小程序兼容性 ✅ 完成 -- [x] config.vue: 替换 4 处 u-input 为原生 input -- [x] detail.vue: 替换 1 处 u-input 为原生 input +#### P2 - 小程序兼容性 ✅ +- [x] 替换 u-input 为原生 input +- [x] 替换 u-picker 为原生 picker +- [x] ES2015 语法兼容 -### P3 - 功能增强 ✅ 完成 +#### P3 - 功能增强 ✅ - [x] 下拉刷新(index / strategies / me / detail) - [x] 上拉加载(detail 交易记录分页) - [x] 空状态优化(index / strategies / detail) -### P4 - TypeScript 迁移 🚀 进行中 -详细计划见 `TYPESCRIPT_MIGRATION.md` +#### P6 - UI/UX 优化 ✅ +- [x] 收益曲线空状态引导 +- [x] 首页当日涨跌幅显示 +- [x] Y 轴刻度 +- [x] 状态标签颜色优化 +- [x] 交易记录时间格式优化 +- [x] 组合名称长度限制 +- [x] 去掉无意义标签 +- [x] 运行天数替代会员等级 -#### Phase 0 - 基础设施 ✅ 完成 -- [x] 安装 TypeScript 相关依赖 (typescript@6.0.2) -- [x] 创建 tsconfig.json -- [x] 创建 src/types/ 目录结构 (6个类型文件) -- [x] 修改 vite.config.js → vite.config.ts -- [x] 修改 main.js → main.ts -- [x] `tsc --noEmit` 无错误通过 +#### 交易时间优化 ✅ +- [x] 添加时间选择器 +- [x] 后端时间解析修复 -#### Phase 1 - 类型定义 ✅ 完成 -- [x] types/api.ts - API 响应类型(与后端对齐) -- [x] types/portfolio.ts - 组合/持仓/交易类型(与后端 DTO 对齐) -- [x] types/strategy.ts - 策略类型(与后端 DTO 对齐) -- [x] types/user.ts - 用户类型(与后端 DTO 对齐) -- [x] types/global.d.ts - 全局类型声明 -- [x] types/shims.d.ts - Vue/模块声明 -- [x] `tsc --noEmit` 无错误通过 +### 后端完成清单 -#### Phase 2 - 工具函数迁移 ✅ 完成 -- [x] currency.js → currency.ts(带类型注解) -- [x] api.js → api.ts(泛型化请求方法,完整类型定义) -- [x] 更新 shims.d.ts(uni、importMeta 类型声明) -- [x] 删除原 .js 文件 -- [x] `tsc --noEmit` 无错误通过 +#### 收益率并发问题 ✅ +- [x] static 内存缓存(跨请求共享) +- [x] Lazy> 防止重复请求 +- [x] SqlSugarClient 高性能模式 +- [x] 后台写入创建新实例 +- [x] SemaphoreSlim 串行化 → 最终方案 -#### Phase 3 - 页面组件迁移 ✅ 完成 -- [x] me.vue (最简单) -- [x] strategies/strategies.vue -- [x] strategies/edit/edit.vue -- [x] config/config.vue -- [x] detail/detail.vue -- [x] index/index.vue -- [x] `tsc --noEmit` 无错误通过 +#### 数据源优化 ✅ +- [x] 实时价格:腾讯 → Yahoo → Tiingo +- [x] 历史K线:Yahoo → Tiingo -#### Phase 4 - 清理验证 ✅ 完成 -- [x] 删除原 .js 文件(仅保留 uni.promisify.adaptor.js) -- [x] `tsc --noEmit` 无错误通过 -- [x] 微信小程序验证(待真机测试) - ---- - -## ✅ TypeScript 迁移完成! - -**迁移统计:** -- 配置文件:2 个 -- 类型文件:7 个 -- 工具函数:2 个 -- 页面组件:6 个 -- 总代码行数:~5,000+ 行 - -**收益:** -- ✅ 完整的类型提示 -- ✅ 编译时错误检查 -- ✅ IDE 自动补全 -- ✅ 重构安全性提升 - -### P6 - UI/UX 优化(产品评审反馈)⏳ 进行中 - -#### P0 - 紧急 -- [x] 收益曲线空状态添加引导按钮("生成收益曲线")✅ 已实现 - -#### P1 - 高优先级 -- [x] 首页组合卡片添加当日涨跌幅显示 ✅ 已实现 -- [x] 详情页收益曲线 Y 轴添加刻度 ✅ - -#### P2 - 中优先级 -- [x] 状态标签颜色优化(运行中=绿色,已暂停=黄色)✅ 已实现 -- [x] 交易记录时间格式合并为一行 ✅ -- [x] 组合名称长度限制(超出截断)✅ -- [x] 详情页去掉无意义标签("账本追踪中"、"NV")✅ - -#### P3 - 低优先级 -- [x] 持仓明细优化(显示成本价)✅ 已实现 -- [x] 我的页面会员等级改为运行天数 ✅ +#### 其他优化 ✅ +- [x] 用户访问时自动触发净值计算 +- [x] 收益曲线数据不一致修复 ## 兼容性 - ✅ 微信小程序(已验证) @@ -138,3 +116,4 @@ 1. 微信开发者工具需关闭"过滤无依赖文件" 2. uview-plus 组件在小程序中有兼容性问题,谨慎使用 3. 原生组件在小程序中表现更稳定 +4. SqlSugarClient 每次创建新实例,IsAutoCloseConnection=true