|
|
@@ -4,6 +4,55 @@
|
|
|
|
|
|
---
|
|
|
|
|
|
+## v1.0.1799 (2026-10-26)
|
|
|
+
|
|
|
+### Bug 修复
|
|
|
+- 今日成长打卡入口补传 taskId,打通任务→打卡→任务完成联动(C1)
|
|
|
+
|
|
|
+### 其他
|
|
|
+- 改动(唯一文件 cfc-frontend/pages/growth-main/index.vue):
|
|
|
+- 1. loadProgressItems 阶段新增 fetchTodayTasks(),一次请求取当日当前成员任务,按 actionType 索引挂到 progressItems 的 taskId/taskMemberId 上;
|
|
|
+- 2. findTaskByAction 只取 status 为 pending/in_progress 的任务(同 actionType 取首个);
|
|
|
+- 3. handleProgressClick 命中 diet/exercise/sleep 且有 taskId 时拼 ?taskId=X&memberId=Y(memberId 取任务归属 familyMemberId||executorId||this.memberId,与 tasks.vue navigateByAction 同口径);无任务时保持纯跳转,退化为纯记录打卡(后端 updateProgress 兜底,不报错);
|
|
|
+- 4. loadRecentTasks 复用 loadProgressItems 已拉取的今日任务缓存,避免同页重复调用 /api/tasks/today(原先传参为 {memberId} 对象,与 getTodayTasks(memberId) 签名不符,实际未按成员过滤)。
|
|
|
+- 范围纪律:不改打卡页(diet/sleep/exercise-checkin.vue)、不改后端(updateCheckinTaskProgress/completeTask/updateProgress 三条路径均已存在且幂等)、不改任务生成器、不改完成度判定(仍基于记录查询)、不改 onShow 刷新逻辑。
|
|
|
+- 验收:node --check PASS;scripts/verify-vue-compile.js 模板/样式/脚本 1/1/1 PASS;audit-mp-antipatterns ERROR 0;audit-duplicate-api-calls 0 error;逻辑级验证 27 项断言全通过(含无任务退化、接口异常静默降级、done=true 仍挂 taskId)。
|
|
|
+-
|
|
|
+- 背景:diet-checkin.vue 餐次为 TagChip 单选(form.mealType 单值),一次只能选一餐。
|
|
|
+- 关键约束:health_meal_record.meal_type VARCHAR(32) 足够存多餐次逗号拼接值,
|
|
|
+- 无需 schema 迁移 —— 1 条记录承载多餐次,后端契约(mealType 单值 String)保持不变。
|
|
|
+- 改动清单(5 文件):
|
|
|
+- - cfc-frontend/pages/growth/diet-checkin.vue
|
|
|
+- · form.mealType(单值) → form.mealTypes(数组,初始 []);新增计算属性 mealType
|
|
|
+- 序列化为逗号拼接字符串(固定按 早餐→午餐→晚餐→加餐 排序,避免点击顺序漂移)
|
|
|
+- · TagChip 改 toggle 多选::active 判数组包含,@select 调 toggleMealType
|
|
|
+- · submitCheckin 校验改为「mealTypes 至少一项」;payload.mealType 写入序列化字符串
|
|
|
+- · mealTypeLabel 改逗号兼容版(split(',') 逐项映射后 join('、'))
|
|
|
+- · 卡片标题微调「选择餐次(可多选)」以提示可多选
|
|
|
+- - cfc-frontend/pages/growth-main/index.vue
|
|
|
+- · mealTypeLabel 同步改逗号兼容版(保留 extra→零食 映射)
|
|
|
+- - cfc-frontend/pages/diet/records.vue
|
|
|
+- · :class 取逗号拼接首项 split(',')[0],保留 meal-* 样式语义
|
|
|
+- · mealLabel 改逗号兼容版(goDetail 弹窗同步受益)
|
|
|
+- - cfc-frontend/pages/diet/record-detail.vue
|
|
|
+- · 餐次由原始值 {{ record.mealType }} 改为中文标签 {{ mealLabel(record.mealType) }}
|
|
|
+- - cfc-backend/src/main/java/com/etotem/cfc/controller/HealthMealController.java
|
|
|
+- · create 校验改为「按逗号拆分 trim 去空后至少一项」,并回写归一化值
|
|
|
+- · 其余逻辑零改动:任务回写、CF 发放(按记录 ID 幂等)、补打校验、成员归属修正
|
|
|
+- 计数语义(不变):一次提交多餐次计 1 次任务进度(targetValue=1 即 completed),
|
|
|
+- CF 发放 1 次,补打(isBackfill=1)不参与任务回写与 CF 发放。
|
|
|
+- 明确不做:今日成长入口 taskId 补传(属 C1);health/diet-index.vue 另一入口多选
|
|
|
+- (另案评估);不改 RepeatTaskGenerator / TaskService;不拆 N 条记录;不改补打逻辑;
|
|
|
+- 不新增 DB 迁移。
|
|
|
+- 验证:cfc-backend mvn compile BUILD SUCCESS(1948 源文件);
|
|
|
+- 小程序 4 文件 node --check 全通过、vue-template-compiler 模板编译全通过;
|
|
|
+- audit-mp-antipatterns ERROR 0;序列化/标签/归一化逻辑 22 项断言全通过。
|
|
|
+-
|
|
|
+
|
|
|
+### 新功能
|
|
|
+- C2 饮食打卡餐次多选(早/中/晚/加餐可多选,逗号拼接单值,零迁移)
|
|
|
+
|
|
|
+
|
|
|
## v1.0.1798 (2026-10-26)
|
|
|
|
|
|
### 其他
|