Bläddra i källkod

fix(frontend): 方案制定页成员选中效果加强-粗边框投影+头像变色+圆形对勾徽章

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
liaoxg 2 månader sedan
förälder
incheckning
eb918aeb2c

+ 1 - 2
cfc-frontend/pages.json

@@ -927,8 +927,7 @@
           }
         },
         {
-          }
-        {
+          "path": "intent-quiz",
           "style": {
             "navigationBarTitleText": "选择开始方式"
           }

+ 58 - 48
cfc-frontend/pages/health-main/index.vue

@@ -1,6 +1,6 @@
 <template>
   <view class="container">
-    <view v-if="!isLoggedIn">
+    <block v-if="!isLoggedIn">
       <PageBanner theme="body" tagline="科学管理全家健康" quote="身体健康是幸福的基础" />
       <!-- 品牌定位语 -->
       <view class="brand-strap"><text class="brand-strap-text">科学管理全家健康数据</text></view>
@@ -67,7 +67,6 @@
           <text class="demo-chart-tag">示例</text>
         </view>
         <RadarChart :dimensions="demoCogDims" :scores="demoCogScores" fillColor="#6366F1" childName="示例" width="560" height="460" />
-      </view>
       <!-- 五维健康体系 -->
       <view class="wuxing-section">
         <view class="wuxing-title">身·心·智·行·富 · 看得见的健康闭环</view>
@@ -165,8 +164,8 @@
             '每日打卡追踪身体/情绪/认知趋势'
           ]" />
       </view>
-    </view>
-    <view v-else>
+    </block>
+    <block v-else>
       <PageBanner theme="body" tagline="看见·主动健康闭环" quote="采集→看见→行动" />
 
       <view class="tab-bar">
@@ -258,7 +257,7 @@
       </view>
 
       <ArticleBookshelf :articles="healthArticles" :isLoggedIn="true" @articleClick="goArticleDetail" @moreArticles="goMoreArticles" />
-    </view>
+    </block>
   </view>
 </template>
 
@@ -315,6 +314,7 @@ export default {
       emiFamilyData: [],
       relationshipData: [],
       energySandbox: null,
+      wealthDetail: null,
       childrenList: [],
       relationshipEmpty: false
     }
@@ -339,34 +339,14 @@ export default {
         return [{ label:'亲子信任',key:'parentTrust'},{ label:'亲子亲密度',key:'parentIntimacy'},{ label:'沟通质量',key:'communication'},{ label:'关系健康度',key:'healthStatus'},{ label:'最近互动',key:'lastInteraction' }]
       }
       if (this.currentTab === 'wealth') {
-        return [{ label:'身能量',key:'body'},{ label:'心能量',key:'mind'},{ label:'智能量',key:'wisdom'},{ label:'行能量',key:'action'},{ label:'富能量',key:'wealth' }]
+        var isChild = !!uni.getStorageSync('currentChildId')
+        if (isChild) {
+          return [{ label:'学业成绩',key:'education'},{ label:'社交筹码',key:'social'},{ label:'规则博弈',key:'points' }]
+        }
+        return [{ label:'金钱/收入',key:'income'},{ label:'社会成就',key:'achievement'},{ label:'资源网络',key:'network' }]
       }
       return [{ label:'生长发育',key:'growth'},{ label:'睡眠质量',key:'sleep'},{ label:'视力健康',key:'vision'},{ label:'免疫力',key:'immunity'},{ label:'营养均衡',key:'nutrition'},{ label:'肠胃健康',key:'gut'},{ label:'运动活力',key:'exercise' }]
     },
-    _cognitiveScore: function(key) {
-      if (!this.cognitiveData) return 0
-      var v = this.cognitiveData[key]
-      return (typeof v === 'number' && v > 0) ? v : 0
-    },
-    _emiScore: function(key) {
-      if (!this.emiData) return 0
-      var v = this.emiData[key]
-      return (typeof v === 'number' && v > 0) ? v : 0
-    },
-    _relScore: function(key) {
-      if (!this.relationshipData || this.relationshipData.length === 0) return 0
-      var total = 0, count = 0
-      for (var i = 0; i < this.relationshipData.length; i++) {
-        var item = this.relationshipData[i]
-        if (item[key] != null) { total += Number(item[key]); count++ }
-      }
-      return count > 0 ? Math.round(total / count) : 0
-    },
-    _wealthScore: function(key) {
-      if (!this.energySandbox) return 0
-      var v = this.energySandbox[key]
-      return (typeof v === 'number' && v > 0) ? v : 0
-    },
     currentScores: function() {
       if (this.chartIsEmpty) {
         var dims = this.currentDimensions, scores = []
@@ -408,13 +388,13 @@ export default {
         ]
       }
       if (this.currentTab === 'wealth') {
-        return [
-          this._wealthScore('bodyScore'),
-          this._wealthScore('mindScore'),
-          this._wealthScore('wisdomScore'),
-          this._wealthScore('actionScore'),
-          this._wealthScore('wealthScore')
-        ]
+        var d = this.wealthDetail
+        if (!d) return [0, 0, 0]
+        var isChild = !!uni.getStorageSync('currentChildId')
+        if (isChild) {
+          return [d.wealthEducation || 0, d.wealthSocial || 0, d.wealthPoints || 0]
+        }
+        return [d.wealthIncome || 0, d.wealthAchievement || 0, d.wealthNetwork || 0]
       }
       // body: fallback to demo
       if (this.reports.length > 0) {
@@ -454,8 +434,13 @@ export default {
       if (this.currentTab === 'relationship' && this.relationshipData.length > 0) {
         return [this._relScore('trustScore'), this._relScore('intimacyScore'), this._relScore('communicationScore'), this._relScore('totalScore'), 0]
       }
-      if (this.currentTab === 'wealth' && this.energySandbox) {
-        return [this._wealthScore('bodyScore'), this._wealthScore('mindScore'), this._wealthScore('wisdomScore'), this._wealthScore('actionScore'), this._wealthScore('wealthScore')]
+      if (this.currentTab === 'wealth' && this.wealthDetail) {
+        var d = this.wealthDetail
+        var isChild = !!uni.getStorageSync('currentChildId')
+        if (isChild) {
+          return [d.wealthEducation || 0, d.wealthSocial || 0, d.wealthPoints || 0]
+        }
+        return [d.wealthIncome || 0, d.wealthAchievement || 0, d.wealthNetwork || 0]
       }
       return []
     },
@@ -464,7 +449,7 @@ export default {
       if (this.currentTab === 'cognitive') return !this.cognitiveData || !this.cognitiveData.overallScore
       if (this.currentTab === 'mental') return !this.emiData || !this.emiData.overallScore
       if (this.currentTab === 'relationship') return !this.relationshipData || this.relationshipData.length === 0
-      if (this.currentTab === 'wealth') return !this.energySandbox
+      if (this.currentTab === 'wealth') return !this.wealthDetail
       var quiz = this.quizzes.filter(function(q) { return q.code === this.currentTab }.bind(this))[0]
       return !(quiz && quiz.score)
     }
@@ -482,6 +467,30 @@ export default {
     }
   },
   methods: {
+    _cognitiveScore: function(key) {
+      if (!this.cognitiveData) return 0
+      var v = this.cognitiveData[key]
+      return (typeof v === 'number' && v > 0) ? v : 0
+    },
+    _emiScore: function(key) {
+      if (!this.emiData) return 0
+      var v = this.emiData[key]
+      return (typeof v === 'number' && v > 0) ? v : 0
+    },
+    _relScore: function(key) {
+      if (!this.relationshipData || this.relationshipData.length === 0) return 0
+      var total = 0, count = 0
+      for (var i = 0; i < this.relationshipData.length; i++) {
+        var item = this.relationshipData[i]
+        if (item[key] != null) { total += Number(item[key]); count++ }
+      }
+      return count > 0 ? Math.round(total / count) : 0
+    },
+    _wealthScore: function(key) {
+      if (!this.energySandbox) return 0
+      var v = this.energySandbox[key]
+      return (typeof v === 'number' && v > 0) ? v : 0
+    },
     switchTab: function(code) { this.currentTab = code },
     goPage: function(url) { uni.navigateTo({ url: url }) },
     goQuiz: function(code) {
@@ -562,14 +571,15 @@ export default {
             self.relationshipEmpty = true
           }
         }).catch(function() { self.relationshipEmpty = true })
-        // 财富能量沙盘(家庭五维)
-        api.getFamilyEnergySandbox().then(function(res) {
-          if (res && res.data && !res.data.locked && res.data.familyData) {
-            self.energySandbox = res.data.familyData
-          } else if (res && res.data && !res.data.locked && res.data.personalData) {
-            self.energySandbox = res.data.personalData
-          }
-        }).catch(function() {})
+        // 财富子维度(富维度三子维度)
+        if (memberId) {
+          var memberType = uni.getStorageSync('currentChildId') ? 'child' : 'parent'
+          api.getWealthDetail(memberId, memberType).then(function(res) {
+            if (res.code === 200 && res.data) {
+              self.wealthDetail = res.data
+            }
+          }).catch(function() {})
+        }
       } catch (e) { console.error('加载健康数据失败', e) }
     },
     loadPlanList: function() {

+ 32 - 6
cfc-frontend/pages/health/health-plan-summary.vue

@@ -34,7 +34,7 @@
             <view class="member-avatar">{{ m.name.charAt(0) }}</view>
             <text class="member-card-name">{{ m.name }}</text>
           </view>
-          <view class="member-check" v-if="selectedMemberIds.indexOf(m.memberId) >= 0">&#10003;</view>
+          <view class="member-check">{{ selectedMemberIds.indexOf(m.memberId) >= 0 ? '✓' : '' }}</view>
         </view>
         <view v-if="executors.length === 0" class="empty-state">
           <text class="empty-icon">👨‍👩‍👧‍👦</text>
@@ -490,13 +490,14 @@ export default {
   justify-content: space-between;
   padding: 20rpx 24rpx;
   border-radius: 16rpx;
-  border: 2rpx solid #e8e8e8;
+  border: 3rpx solid #e8e8e8;
   background: #FAFAFA;
   transition: all 0.2s;
 }
 .member-card.active {
   border-color: #F97316;
   background: #FFF8F3;
+  box-shadow: 0 4rpx 16rpx rgba(249, 115, 22, 0.22);
 }
 .member-card-left {
   display: flex;
@@ -507,24 +508,49 @@ export default {
   width: 60rpx;
   height: 60rpx;
   border-radius: 30rpx;
-  background: #F97316;
-  color: #fff;
+  background: #ececec;
+  border: 2rpx solid #ddd;
+  color: #888;
   font-size: 28rpx;
   font-weight: bold;
   display: flex;
   align-items: center;
   justify-content: center;
   flex-shrink: 0;
+  transition: all 0.2s;
+}
+.member-card.active .member-avatar {
+  background: #F97316;
+  border-color: #F97316;
+  color: #fff;
 }
 .member-card-name {
   font-size: 28rpx;
   font-weight: 600;
   color: #333;
+  transition: color 0.2s;
 }
-.member-check {
-  font-size: 32rpx;
+.member-card.active .member-card-name {
   color: #F97316;
+}
+.member-check {
+  width: 36rpx;
+  height: 36rpx;
+  border-radius: 50%;
+  border: 2rpx solid #d5d5d5;
+  background: #fff;
+  color: #fff;
+  font-size: 22rpx;
   font-weight: bold;
+  line-height: 32rpx;
+  text-align: center;
+  flex-shrink: 0;
+  transition: all 0.2s;
+}
+.member-card.active .member-check {
+  background: #F97316;
+  border-color: #F97316;
+  color: #fff;
 }
 .empty-state {
   display: flex;

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

@@ -4,173 +4,6 @@
 
 ---
 
-## v1.0.1087 (2026-08-15)
-
-### Bug 修复
-- 清理菜单管理页残留冲突标记
-- 迁移247 user_intents补skip_count/last_skip_at列,修复Unknown column错误
-
-### 新功能
-- 菜单编辑改用树形选择器作为上级菜单
-
-### 其他
-- - 新增 treeData computed:递归展平菜单树,带 padding 缩进
-- - 新增 currentLabel computed:选中后显示面包屑路径(如 系统配置 > 基础管理 > 用户管理)
-- - 新增 excludedIds computed:编辑模式下自动排除自身及所有子孙节点,防循环引用
-- - 新增 selectParentNode 方法:点击树节点设置 parentId
-- - 添加 parent-hint 提示条:显示当前选中上级路径或'顶级菜单'
-- 
-
-### 样式
-- 副标题文案调整
-
-
-## v1.0.1086 (2026-08-15)
-
-### 新功能
-- 通知模板通道多选加公众号选项 (W3)
-- 通知五通道模型 - 公众号通道 + 通道抽象 (W3)
-
-### 其他
-- - 提示文案:小程序内为内置通道,短信/微信/公众号/电话需接入外部接口后生效
-- Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode)
-- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
-- 
-- - NotificationChannel 接口 + NotificationMessage DTO
-- - 5 通道实现:
--   - InAppNotificationChannel 内置写库
--   - Sms/Wechat/Gzh/Phone 外部通道预留 stub(enabled 配置开关 + 日志,TODO 接入网关)
-- - NotificationDispatchService 统一分发入口:读模板 → 占位符替换 → 按 channels 多选分发
-- - DanReportUploadService / ProblemCompletionService 改走分发服务(移除硬编码/模板辅助方法)
-- Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode)
-- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
-- 
-
-
-## v1.0.1085 (2026-08-15)
-
-### 新功能
-- 单入口问卷弹窗 + 首页跳转修正
-
-### 其他
-- - 以后再说调用 /api/user-intent/skip 记录skipCount,最多3次
-- - B类跳转改为 /pages/health/ai-questionnaire(原指向domain-list)
-- - handleIntentClose 移除旧 intent_skipped 存储标记
-- - 后端skip接口、user_intents.skip_count列均已就绪
-- 
-
-
-## v1.0.1083 (2026-08-15)
-
-### Bug 修复
-- ArticleCategory.vue 修复 el-dialog 标签缺失导致属性裸奔
-
-### 新功能
-- 意图问卷入口 + 跳过提醒机制
-
-### 其他
-- - UserIntent实体新增skipCount/lastSkipAt字段
-- - 新增POST /api/user-intent/skip 接口记录跳过次数
-- - 迁移243: user_intents表添加skip_count和last_skip_at列
-- 前端:
-- - 新增pages/health/intent-quiz.vue意图问卷入口页(三选一:随便看看/先了解自己/解决问题+以后再说)
-- - health-main新增showIntentReminder状态,跳过1-2次后显示提醒横幅
-- - 跳转逻辑:A类→返回浏览 / B类→AI问卷 / C类→问题域选择
-- 设计说明:
-- - 所有用户从统一入口开始(intent-quiz页面)
-- - 随便看看用户点击以后再说,记录skipCount,最多提醒3次
-- - 先了解自己/解决问题用户直接进入AI智能问卷或问题域选择
-- 
-
-
-## v1.0.1082 (2026-08-15)
-
-### Bug 修复
-- 报告详情页异常数量修复 + 指标自组装异常统计补齐
-- 修复动态菜单子菜单名称为空、无子菜单的一级菜单展开箭头问题
-
-### 其他
--   仅 high/low/abnormal/偏高/偏低/异常/缺乏/不足/注意/高风险 计入异常数
-- - assembleBlocksFromPayload 生成 indicator 块时携带 abnormalCount
-- - report-blocks-renderer indicator 块标题行显示异常数量
-- 
-- - 模板: el-submenu 增加 children.length > 0 条件(无子节点时不渲染展开箭头)
-- - key/index: 补充 id 兜底,避免 path 为空时的渲染异常
-- 
-
-
-## v1.0.1081 (2026-08-15)
-
-### 新功能
-- 商品详情页展示套餐包含明细
-- 商品编辑页支持套餐类型及套餐组成配置
-- ProductService.detail返回套餐商品组成
-- ProductDTO新增bundleItems套餐组成字段
-- 迁移246创建product_bundle_items表(套餐商品组成明细)
-
-### 文档
-- 商品套餐管理功能实现计划
-
-
-## v1.0.1080 (2026-08-15)
-
-### 文档
-- 更新 PROJECT-OVERVIEW.md v2.8 — SKU价格单位统一分 + 规格选择响应式修复 (7 Tasks 已完成)
-- SKU价格统一分单位+规格按钮修复 实现计划
-- SKU规格价格统一分单位 + 详情页规格按钮响应式修复设计文档
-
-### Bug 修复
-- 详情页规格选择用/,按钮始终可点
-- ProductSkuEditor 价格显示/输入采用元,提交采用分 (×100)
-- 迁移245 product_skus存量价格×100(元→分),sys_config幂等标记
-- 购物车项单价有SKU时用规格价,修复购物车显示商品价而非规格价
-- ProductSku/ProductSkuDTO 价格字段 BigDecimal(元)→Integer(分),统一价格单位
-
-
-## v1.0.1079 (2026-08-15)
-
-### 文档
-- 商品套餐管理功能设计文档(建表/管理端配置/小程序展示)
-
-
-## v1.0.1078 (2026-08-15)
-
-### 新功能
-- 我的页面新增当前意图展示与重新选择入口
-
-### 重构
-- 统一家庭成员接口迁移到 getFamilyMemberList,修复 quick-survey :key 警告
-
-### 其他
-- - api.js 新增 getFamilyMemberList 唯一入口,移除 getFamilyMembers/getVisibleFamilyMembers/listFamilyMembers 废弃导出
-- - 迁移 24 处调用点(8 getFamilyMembers + 13 getVisibleFamilyMembers + 3 listFamilyMembers)
-- - quick-survey.vue 3 处 :key 表达式改为方法调用
-- - api.test.js 测试同步更新
-- 
-
-
-## v1.0.1077 (2026-08-15)
-
-### 新功能
-- 报告详情直入编辑模式取消返回列表页
-
-### 其他
-- - cancelEdit: directEdit 时 uni.navigateBack() 返回报告列表/卡片页,等同原生返回
-- - enterEditMode: 重置 directEdit,view 内点编辑后取消仍回 view 模式
-- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
-- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
-- 
-
-
-## v1.0.1076 (2026-08-15)
-
-### Bug 修复
-- 报告详情/确认页被检测人选择面板始终列出全部成员
-
-### 其他
-- 
-
-
 ## v1.0.1075 (2026-08-15)
 
 ### 新功能

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

@@ -1,6 +1,6 @@
 # 更新日志
 
-> 当前版本: v1.0.1087
+> 当前版本: v1.0.1075
 
 ## 历史版本
 
@@ -8,173 +8,6 @@
 
 ---
 
-## v1.0.1087 (2026-08-15)
-
-### Bug 修复
-- 清理菜单管理页残留冲突标记
-- 迁移247 user_intents补skip_count/last_skip_at列,修复Unknown column错误
-
-### 新功能
-- 菜单编辑改用树形选择器作为上级菜单
-
-### 其他
-- - 新增 treeData computed:递归展平菜单树,带 padding 缩进
-- - 新增 currentLabel computed:选中后显示面包屑路径(如 系统配置 > 基础管理 > 用户管理)
-- - 新增 excludedIds computed:编辑模式下自动排除自身及所有子孙节点,防循环引用
-- - 新增 selectParentNode 方法:点击树节点设置 parentId
-- - 添加 parent-hint 提示条:显示当前选中上级路径或'顶级菜单'
-- 
-
-### 样式
-- 副标题文案调整
-
-
-## v1.0.1086 (2026-08-15)
-
-### 新功能
-- 通知模板通道多选加公众号选项 (W3)
-- 通知五通道模型 - 公众号通道 + 通道抽象 (W3)
-
-### 其他
-- - 提示文案:小程序内为内置通道,短信/微信/公众号/电话需接入外部接口后生效
-- Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode)
-- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
-- 
-- - NotificationChannel 接口 + NotificationMessage DTO
-- - 5 通道实现:
--   - InAppNotificationChannel 内置写库
--   - Sms/Wechat/Gzh/Phone 外部通道预留 stub(enabled 配置开关 + 日志,TODO 接入网关)
-- - NotificationDispatchService 统一分发入口:读模板 → 占位符替换 → 按 channels 多选分发
-- - DanReportUploadService / ProblemCompletionService 改走分发服务(移除硬编码/模板辅助方法)
-- Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode)
-- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
-- 
-
-
-## v1.0.1085 (2026-08-15)
-
-### 新功能
-- 单入口问卷弹窗 + 首页跳转修正
-
-### 其他
-- - 以后再说调用 /api/user-intent/skip 记录skipCount,最多3次
-- - B类跳转改为 /pages/health/ai-questionnaire(原指向domain-list)
-- - handleIntentClose 移除旧 intent_skipped 存储标记
-- - 后端skip接口、user_intents.skip_count列均已就绪
-- 
-
-
-## v1.0.1083 (2026-08-15)
-
-### Bug 修复
-- ArticleCategory.vue 修复 el-dialog 标签缺失导致属性裸奔
-
-### 新功能
-- 意图问卷入口 + 跳过提醒机制
-
-### 其他
-- - UserIntent实体新增skipCount/lastSkipAt字段
-- - 新增POST /api/user-intent/skip 接口记录跳过次数
-- - 迁移243: user_intents表添加skip_count和last_skip_at列
-- 前端:
-- - 新增pages/health/intent-quiz.vue意图问卷入口页(三选一:随便看看/先了解自己/解决问题+以后再说)
-- - health-main新增showIntentReminder状态,跳过1-2次后显示提醒横幅
-- - 跳转逻辑:A类→返回浏览 / B类→AI问卷 / C类→问题域选择
-- 设计说明:
-- - 所有用户从统一入口开始(intent-quiz页面)
-- - 随便看看用户点击以后再说,记录skipCount,最多提醒3次
-- - 先了解自己/解决问题用户直接进入AI智能问卷或问题域选择
-- 
-
-
-## v1.0.1082 (2026-08-15)
-
-### Bug 修复
-- 报告详情页异常数量修复 + 指标自组装异常统计补齐
-- 修复动态菜单子菜单名称为空、无子菜单的一级菜单展开箭头问题
-
-### 其他
--   仅 high/low/abnormal/偏高/偏低/异常/缺乏/不足/注意/高风险 计入异常数
-- - assembleBlocksFromPayload 生成 indicator 块时携带 abnormalCount
-- - report-blocks-renderer indicator 块标题行显示异常数量
-- 
-- - 模板: el-submenu 增加 children.length > 0 条件(无子节点时不渲染展开箭头)
-- - key/index: 补充 id 兜底,避免 path 为空时的渲染异常
-- 
-
-
-## v1.0.1081 (2026-08-15)
-
-### 新功能
-- 商品详情页展示套餐包含明细
-- 商品编辑页支持套餐类型及套餐组成配置
-- ProductService.detail返回套餐商品组成
-- ProductDTO新增bundleItems套餐组成字段
-- 迁移246创建product_bundle_items表(套餐商品组成明细)
-
-### 文档
-- 商品套餐管理功能实现计划
-
-
-## v1.0.1080 (2026-08-15)
-
-### 文档
-- 更新 PROJECT-OVERVIEW.md v2.8 — SKU价格单位统一分 + 规格选择响应式修复 (7 Tasks 已完成)
-- SKU价格统一分单位+规格按钮修复 实现计划
-- SKU规格价格统一分单位 + 详情页规格按钮响应式修复设计文档
-
-### Bug 修复
-- 详情页规格选择用/,按钮始终可点
-- ProductSkuEditor 价格显示/输入采用元,提交采用分 (×100)
-- 迁移245 product_skus存量价格×100(元→分),sys_config幂等标记
-- 购物车项单价有SKU时用规格价,修复购物车显示商品价而非规格价
-- ProductSku/ProductSkuDTO 价格字段 BigDecimal(元)→Integer(分),统一价格单位
-
-
-## v1.0.1079 (2026-08-15)
-
-### 文档
-- 商品套餐管理功能设计文档(建表/管理端配置/小程序展示)
-
-
-## v1.0.1078 (2026-08-15)
-
-### 新功能
-- 我的页面新增当前意图展示与重新选择入口
-
-### 重构
-- 统一家庭成员接口迁移到 getFamilyMemberList,修复 quick-survey :key 警告
-
-### 其他
-- - api.js 新增 getFamilyMemberList 唯一入口,移除 getFamilyMembers/getVisibleFamilyMembers/listFamilyMembers 废弃导出
-- - 迁移 24 处调用点(8 getFamilyMembers + 13 getVisibleFamilyMembers + 3 listFamilyMembers)
-- - quick-survey.vue 3 处 :key 表达式改为方法调用
-- - api.test.js 测试同步更新
-- 
-
-
-## v1.0.1077 (2026-08-15)
-
-### 新功能
-- 报告详情直入编辑模式取消返回列表页
-
-### 其他
-- - cancelEdit: directEdit 时 uni.navigateBack() 返回报告列表/卡片页,等同原生返回
-- - enterEditMode: 重置 directEdit,view 内点编辑后取消仍回 view 模式
-- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
-- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
-- 
-
-
-## v1.0.1076 (2026-08-15)
-
-### Bug 修复
-- 报告详情/确认页被检测人选择面板始终列出全部成员
-
-### 其他
-- 
-
-
 ## v1.0.1075 (2026-08-15)
 
 ### 新功能