Просмотр исходного кода

chore(cfc-web): build bump 1.0.2084 [skip ci]

cfc-deploy 1 неделя назад
Родитель
Сommit
fa2344eb84
4 измененных файлов с 185 добавлено и 3 удалено
  1. 1 1
      cfc-web/.last_build_commit
  2. 1 1
      cfc-web/package.json
  3. 91 0
      cfc-web/public/CHANGELOG-v1.0.md
  4. 92 1
      cfc-web/public/CHANGELOG.md

+ 1 - 1
cfc-web/.last_build_commit

@@ -1 +1 @@
-4817cbab6cacacf53f12003cfb395a563a1cbfd4
+9195a4b37825d785b0c9275a6004cb435676b8a1

+ 1 - 1
cfc-web/package.json

@@ -1,6 +1,6 @@
 {
   "name": "cfc-web",
-  "version": "1.0.2083",
+  "version": "1.0.2084",
   "private": true,
   "scripts": {
     "dev": "vue-cli-service serve",

+ 91 - 0
cfc-web/public/CHANGELOG-v1.0.md

@@ -4,6 +4,97 @@
 
 ---
 
+## v1.0.2084 (2026-11-05)
+
+### 新功能
+- T41 成长页新增小游戏入口卡 + 修复孩子首页小游戏死链
+- 报告上传页成员选择固定4列 + 素质测评入口锚点dan_a2→dan_a1
+- P2-T1 指标多级细化混排 + P2-T2 评分口径文档化
+- P1-T4 其他消费方去直读统一经注册中心
+- P1-T3 指标管理关联收敛+树挂接
+- P1-T1 健康页雷达图改统一维度注册中心配置驱动
+- 统一维度体系增量 - 4根33子维seed(迁移448)+T5历史迁移脚本
+
+### 其他
+-   action-card「益智小游戏」(复用 .action-card 系列样式,不新增样式),
+-   图标 🎮(warm)、标题/描述/右箭头,@click=goToGames;新增 goToGames 方法
+-   跳转 /pages/games/list 大厅。
+- - cfc-frontend/pages/home-pages/child-index.vue: goToGames 跳转目标由不存在的
+-   /pages/games/games 修正为 /pages/games/list(死链修复,仅一行)。
+- 设计规格: docs/superpowers/specs/2026-11-05-miniapp-games-entry.md (cfclub abc0b932d)
+- 验证: verify-vue-compile.js 两文件 PASS;audit-mp-antipatterns.js ERROR 0;
+-       cfc-backend mvn compile 通过;cfc-web npm run build 通过(构建产物已还原)。
+- 
+- - 「素质测评 A2」→「素质测评」,副文案改通用表述
+- - 查看商品锚点 dan_a2 → dan_a1(素质测评A1 核心认知发展评估)
+- 
+- - 实测确认 DimensionRegistryService.getTree(null) 已支持指标挂指标:
+-   指标节点以自身 id 入 idToNode,组装阶段按 parentId 经 idToNode.get 找父,
+-   父为指标节点时 attachChild 正常挂载(合并逻辑无需改动)。
+- - DimensionNode 新增 dimensionCode 字段(仅指标节点有值),getTree 对指标节点
+-   填充 ind.getDimensionCode()——指标挂指标时子指标继承父指标归属维度 code,
+-   保证子指标 dimensionCode 仍 ∈ 注册中心维度节点 code 集合(P1-T3 校验不破)。
+- - cfc-web indicators 管理页:树选择放开指标节点作父(disabled=false,维度/指标
+-   均可选),点击指标父节点时 dimensionCode 继承父指标归属,维度节点行为不变。
+-   契约测试(DimensionRegistryTreeTest)仅断言字段存在性,新字段不破坏。
+- P2-T2(评分口径文档化):
+- - 新建 docs/superpowers/specs/2026-11-05-dimension-scoring-convention.md:
+-   明确雷达/沙盘/指标三处共享 0-100 量纲 + P5/P25/P75/P95 百分位带 tier,逐条
+-   从代码核实换算逻辑(RadarChart 半径映射/P50 参考、EnergyService clamp 与
+-   五行乘性修正、NormCompareEngine 常模分带线性插值/待补不猜值)。
+- - DimensionCodeConstants 新增 SCORE_MIN/MAX、BAND_P5/25/75/95 共享常量并注释
+-   来源(未接入业务逻辑,零运行时行为变化)。
+- 
+-   getDimensionCodesByIds/getDimensionIdByCode,消费方不再直读
+-   product_dimension_config(实体/表仅注册中心层可见)。
+- - DanKnowledgeBaseService: 4 处 mapper 直读(selectBatchIds×2/selectById
+-   循环/selectOne by code)全部改走 DimensionRegistryService 桥接,
+-   行为等价(同 id→code、code→id 语义)。
+- - LanggraphSyncService: selectOne by code 改 getDifyDatasetIdByCode。
+- - HealthDimensionController: /api/dimension/overview 与 /api/dimension/radar-data
+-   标 @Deprecated(设计 §5.3,不删除,保留至零调用确认后下线)。
+- - cfc-web: ContentDimensionThresholdEditor / 知识库维度树改走只读
+-   /api/dimension-registry/tree(映射 code/name,跳过 indicator 节点);
+-   DimensionSelector 排除 indicator 节点保持选择项与旧数据源一致。
+- - 保留直读点(注册中心管理层/一次性迁移,说明见 commit 后汇报):
+-   DimensionConfigController 与管理页(/api/admin/dimension-config/* 写接口)、
+-   MigrationController 一次性历史迁移(enabled=1 语义不可经树等价表达)。
+- - 验收: mvn -q compile EXIT=0;web 脚本 node --check 通过;无新增循环依赖。
+- 
+-   (root/sub,不含指标节点),越界抛 IllegalArgumentException→GlobalExceptionHandler 转 400;
+-   @Lazy 注入 DimensionRegistryService 打破循环依赖;parentId 经实体自动落库
+-   (父节点ID,混排进维度树)。
+- - DimensionRegistryService: 新增 collectDimensionCodes()/isDimensionCode()。
+- - DatabaseInitializer 迁移449 + schema.sql: indicator_definitions.dimension_code 扩宽至
+-   VARCHAR(64)(容纳注册中心子维 code 如 mind.selfConceptOverall=23字符)。
+- - cfc-web 指标管理页: 维度归属由五维单选改为从统一维度注册中心树选择(el-tree,
+-   数据源 GET /api/dimension-registry/tree),保存传 parentId+dimenionCode,指标节点禁选。
+- - cfc-frontend useDimensionRegistry.getRadarConfig 防御:跳过 nodeKind=indicator 子节点,
+-   避免指标挂到根节点后混入健康页雷达轴(P1-T3 连带硬化)。
+- 
+-   封装 GET /api/dimension-registry/tree,模块级缓存+ready 标志,
+-   提供 getRadarConfig(tabCode) 按 tab→根 映射取 children,
+-   解析 legacyAlias JSON 首元素为 scoreField,导出 isRegistryReady。
+- - 改造 health-main/index.vue:currentDimensions/currentScores 改为
+-   遍历注册中心配置驱动取维度/标签/分数(body7/wisdom7/mind10/action5/wealth4,
+-   标签与改造前一致),并保留硬编码兜底(过渡,后端未上线/接口异常时页面不崩)。
+- - 不 demo 块/后端/表结构一律不动。
+- 
+- - 迁移448: 补5根 wuxing_rule_ref(按 energy_dimension.element 关联木/火/金/水/土)
+- - DimensionCodeConstants: 新增26子维常量 + 26 legacy_alias 常量,更新数量注释
+- - 新增 migrate_dimension_unified.sql(T5: 备份+改写7 body+越界扫描,DBA手工)
+- - 未改动445/446/447,未新建Controller/Service类
+- 
+
+### 文档
+- 测试负责人 19:19 轮(契约复验 79 例 74 绿/3 红/2 错·B-21 确认复发(SC-P-11 17→15/17,根因 f14e46f84)·O-1 终局判定:1767d4414/c3e32460a 非 origin/cfclub 祖先链(rev-list 命中 0),建议重登记 6c906c79e/d8687f7c8·B-10 连续第 8 轮无复发)
+- 研发负责人1 标准汇报 2148 轮(第23轮·只读核查·RED 0/YELLOW 2/DONE 12·无新增能力键·⚠ 复现确认维度合并 aa6ccb2dd 未部署 P0·feature/unified-dimension-p0 未合入双路由风险潜伏·场景覆盖 0/218)
+- 研发负责人1 标准汇报 2135 轮(第22轮·唯一增量=S-cfc-16 自动闭环 DONE·YELLOW 2 待 mark-green·RED 0·DONE 12·无新增能力键·场景覆盖 0/218·⚠ 维度合并 aa6ccb2dd 晚于最近部署未部署)
+- 研发负责人2 标准汇报 2122 轮(第20轮·池空稳态延续·RED 0/YELLOW 2/DONE 12·无新增能力键·⚠ 发现维度合并 aa6ccb2dd 晚于最近部署 757e4e32c 尚未部署·O-1 单一卡点复核通过)
+- 研发负责人5 标准汇报 2113 轮(第19轮·部署收口 757e4e32c·池空稳态延续·RED 0/YELLOW 2/DONE 12·无新增能力键)
+- T41 成长页小游戏入口设计定稿
+
+
 ## v1.0.2083 (2026-11-05)
 
 ### 文档

+ 92 - 1
cfc-web/public/CHANGELOG.md

@@ -1,6 +1,6 @@
 # 更新日志
 
-> 当前版本: v1.0.2083
+> 当前版本: v1.0.2084
 
 ## 历史版本
 
@@ -8,6 +8,97 @@
 
 ---
 
+## v1.0.2084 (2026-11-05)
+
+### 新功能
+- T41 成长页新增小游戏入口卡 + 修复孩子首页小游戏死链
+- 报告上传页成员选择固定4列 + 素质测评入口锚点dan_a2→dan_a1
+- P2-T1 指标多级细化混排 + P2-T2 评分口径文档化
+- P1-T4 其他消费方去直读统一经注册中心
+- P1-T3 指标管理关联收敛+树挂接
+- P1-T1 健康页雷达图改统一维度注册中心配置驱动
+- 统一维度体系增量 - 4根33子维seed(迁移448)+T5历史迁移脚本
+
+### 其他
+-   action-card「益智小游戏」(复用 .action-card 系列样式,不新增样式),
+-   图标 🎮(warm)、标题/描述/右箭头,@click=goToGames;新增 goToGames 方法
+-   跳转 /pages/games/list 大厅。
+- - cfc-frontend/pages/home-pages/child-index.vue: goToGames 跳转目标由不存在的
+-   /pages/games/games 修正为 /pages/games/list(死链修复,仅一行)。
+- 设计规格: docs/superpowers/specs/2026-11-05-miniapp-games-entry.md (cfclub abc0b932d)
+- 验证: verify-vue-compile.js 两文件 PASS;audit-mp-antipatterns.js ERROR 0;
+-       cfc-backend mvn compile 通过;cfc-web npm run build 通过(构建产物已还原)。
+- 
+- - 「素质测评 A2」→「素质测评」,副文案改通用表述
+- - 查看商品锚点 dan_a2 → dan_a1(素质测评A1 核心认知发展评估)
+- 
+- - 实测确认 DimensionRegistryService.getTree(null) 已支持指标挂指标:
+-   指标节点以自身 id 入 idToNode,组装阶段按 parentId 经 idToNode.get 找父,
+-   父为指标节点时 attachChild 正常挂载(合并逻辑无需改动)。
+- - DimensionNode 新增 dimensionCode 字段(仅指标节点有值),getTree 对指标节点
+-   填充 ind.getDimensionCode()——指标挂指标时子指标继承父指标归属维度 code,
+-   保证子指标 dimensionCode 仍 ∈ 注册中心维度节点 code 集合(P1-T3 校验不破)。
+- - cfc-web indicators 管理页:树选择放开指标节点作父(disabled=false,维度/指标
+-   均可选),点击指标父节点时 dimensionCode 继承父指标归属,维度节点行为不变。
+-   契约测试(DimensionRegistryTreeTest)仅断言字段存在性,新字段不破坏。
+- P2-T2(评分口径文档化):
+- - 新建 docs/superpowers/specs/2026-11-05-dimension-scoring-convention.md:
+-   明确雷达/沙盘/指标三处共享 0-100 量纲 + P5/P25/P75/P95 百分位带 tier,逐条
+-   从代码核实换算逻辑(RadarChart 半径映射/P50 参考、EnergyService clamp 与
+-   五行乘性修正、NormCompareEngine 常模分带线性插值/待补不猜值)。
+- - DimensionCodeConstants 新增 SCORE_MIN/MAX、BAND_P5/25/75/95 共享常量并注释
+-   来源(未接入业务逻辑,零运行时行为变化)。
+- 
+-   getDimensionCodesByIds/getDimensionIdByCode,消费方不再直读
+-   product_dimension_config(实体/表仅注册中心层可见)。
+- - DanKnowledgeBaseService: 4 处 mapper 直读(selectBatchIds×2/selectById
+-   循环/selectOne by code)全部改走 DimensionRegistryService 桥接,
+-   行为等价(同 id→code、code→id 语义)。
+- - LanggraphSyncService: selectOne by code 改 getDifyDatasetIdByCode。
+- - HealthDimensionController: /api/dimension/overview 与 /api/dimension/radar-data
+-   标 @Deprecated(设计 §5.3,不删除,保留至零调用确认后下线)。
+- - cfc-web: ContentDimensionThresholdEditor / 知识库维度树改走只读
+-   /api/dimension-registry/tree(映射 code/name,跳过 indicator 节点);
+-   DimensionSelector 排除 indicator 节点保持选择项与旧数据源一致。
+- - 保留直读点(注册中心管理层/一次性迁移,说明见 commit 后汇报):
+-   DimensionConfigController 与管理页(/api/admin/dimension-config/* 写接口)、
+-   MigrationController 一次性历史迁移(enabled=1 语义不可经树等价表达)。
+- - 验收: mvn -q compile EXIT=0;web 脚本 node --check 通过;无新增循环依赖。
+- 
+-   (root/sub,不含指标节点),越界抛 IllegalArgumentException→GlobalExceptionHandler 转 400;
+-   @Lazy 注入 DimensionRegistryService 打破循环依赖;parentId 经实体自动落库
+-   (父节点ID,混排进维度树)。
+- - DimensionRegistryService: 新增 collectDimensionCodes()/isDimensionCode()。
+- - DatabaseInitializer 迁移449 + schema.sql: indicator_definitions.dimension_code 扩宽至
+-   VARCHAR(64)(容纳注册中心子维 code 如 mind.selfConceptOverall=23字符)。
+- - cfc-web 指标管理页: 维度归属由五维单选改为从统一维度注册中心树选择(el-tree,
+-   数据源 GET /api/dimension-registry/tree),保存传 parentId+dimenionCode,指标节点禁选。
+- - cfc-frontend useDimensionRegistry.getRadarConfig 防御:跳过 nodeKind=indicator 子节点,
+-   避免指标挂到根节点后混入健康页雷达轴(P1-T3 连带硬化)。
+- 
+-   封装 GET /api/dimension-registry/tree,模块级缓存+ready 标志,
+-   提供 getRadarConfig(tabCode) 按 tab→根 映射取 children,
+-   解析 legacyAlias JSON 首元素为 scoreField,导出 isRegistryReady。
+- - 改造 health-main/index.vue:currentDimensions/currentScores 改为
+-   遍历注册中心配置驱动取维度/标签/分数(body7/wisdom7/mind10/action5/wealth4,
+-   标签与改造前一致),并保留硬编码兜底(过渡,后端未上线/接口异常时页面不崩)。
+- - 不 demo 块/后端/表结构一律不动。
+- 
+- - 迁移448: 补5根 wuxing_rule_ref(按 energy_dimension.element 关联木/火/金/水/土)
+- - DimensionCodeConstants: 新增26子维常量 + 26 legacy_alias 常量,更新数量注释
+- - 新增 migrate_dimension_unified.sql(T5: 备份+改写7 body+越界扫描,DBA手工)
+- - 未改动445/446/447,未新建Controller/Service类
+- 
+
+### 文档
+- 测试负责人 19:19 轮(契约复验 79 例 74 绿/3 红/2 错·B-21 确认复发(SC-P-11 17→15/17,根因 f14e46f84)·O-1 终局判定:1767d4414/c3e32460a 非 origin/cfclub 祖先链(rev-list 命中 0),建议重登记 6c906c79e/d8687f7c8·B-10 连续第 8 轮无复发)
+- 研发负责人1 标准汇报 2148 轮(第23轮·只读核查·RED 0/YELLOW 2/DONE 12·无新增能力键·⚠ 复现确认维度合并 aa6ccb2dd 未部署 P0·feature/unified-dimension-p0 未合入双路由风险潜伏·场景覆盖 0/218)
+- 研发负责人1 标准汇报 2135 轮(第22轮·唯一增量=S-cfc-16 自动闭环 DONE·YELLOW 2 待 mark-green·RED 0·DONE 12·无新增能力键·场景覆盖 0/218·⚠ 维度合并 aa6ccb2dd 晚于最近部署未部署)
+- 研发负责人2 标准汇报 2122 轮(第20轮·池空稳态延续·RED 0/YELLOW 2/DONE 12·无新增能力键·⚠ 发现维度合并 aa6ccb2dd 晚于最近部署 757e4e32c 尚未部署·O-1 单一卡点复核通过)
+- 研发负责人5 标准汇报 2113 轮(第19轮·部署收口 757e4e32c·池空稳态延续·RED 0/YELLOW 2/DONE 12·无新增能力键)
+- T41 成长页小游戏入口设计定稿
+
+
 ## v1.0.2083 (2026-11-05)
 
 ### 文档