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

chore: auto bump version and changelog [skip ci]

iwt 2 месяцев назад
Родитель
Сommit
f9413da04d

+ 6 - 11
cfc-frontend/pages/action-detail/member-action-detail.vue

@@ -18,16 +18,11 @@
       <text class="brand-strap-text">改善全家关系与沟通能力</text>
       <text class="brand-strap-text">改善全家关系与沟通能力</text>
     </view>
     </view>
 
 
-    <!-- 游客专属区块 -->
-    <template v-if="!isLoggedIn">
-      <LoginGuideCard
-        title="解锁家庭关系与互动数据"
-        :items="[
-          '查看家庭关系图谱与亲密指数',
-          '完成关系问卷,诊断沟通模式',
-          '分配任务协作,参与家庭挑战'
-        ]" />
-    </template>
+    <!-- 游客引导语 -->
+    <view class="monthly-guidance" v-if="!isLoggedIn">
+      <text class="guidance-icon">🌿</text>
+      <text class="guidance-text">{{ monthlyGuidance }}</text>
+    </view>
 
 
     <!-- 登录后内容 -->
     <!-- 登录后内容 -->
     <template v-else>
     <template v-else>
@@ -100,7 +95,7 @@ import DimensionIntroCard from '../../components/DimensionIntroCard.vue'
 import { getEnergyOverview, getFamilyEnergySandbox, getChildren } from '../../utils/api.js'
 import { getEnergyOverview, getFamilyEnergySandbox, getChildren } from '../../utils/api.js'
 
 
 export default {
 export default {
-  components: { PageBanner, LoginGuideCard, FamilyEnergyBar, FamilyRelationGraph, DimensionTasks, DimensionActivities, DimensionProducts, DimensionIntroCard },
+  components: { PageBanner, FamilyEnergyBar, FamilyRelationGraph, DimensionTasks, DimensionActivities, DimensionProducts, DimensionIntroCard },
   data() {
   data() {
     return {
     return {
       memberId: null,
       memberId: null,

+ 45 - 11
cfc-frontend/pages/body-detail/index.vue

@@ -40,16 +40,11 @@
       @select="onFamilyMemberSelect"
       @select="onFamilyMemberSelect"
       @removed="loadFamilyMembersVisible" />
       @removed="loadFamilyMembersVisible" />
 
 
-    <!-- 游客专属区块 -->
-    <template v-if="!isLoggedIn">
-      <LoginGuideCard
-        title="解锁全家健康数据"
-        :items="[
-          '查看全家身体能量数据和健康报告',
-          '上传体检/肠道/舌诊报告,AI智能解读',
-          '记录每日健康打卡,持续积累能量'
-        ]" />
-    </template>
+    <!-- 游客引导语(每月更换) -->
+    <view class="monthly-guidance" v-if="!isLoggedIn">
+      <text class="guidance-icon">🌿</text>
+      <text class="guidance-text">{{ monthlyGuidance }}</text>
+    </view>
 
 
     <!-- 登录后:五维能量条 -->
     <!-- 登录后:五维能量条 -->
     <FamilyEnergyBar
     <FamilyEnergyBar
@@ -116,7 +111,7 @@ import FamilyMemberStrip from '../../components/FamilyMemberStrip.vue'
 import { getVisibleSections, getEnergyOverview, getChildren, getFamilyEnergySandbox, getVisibleFamilyMembers, getDimensionOverview } from '../../utils/api.js'
 import { getVisibleSections, getEnergyOverview, getChildren, getFamilyEnergySandbox, getVisibleFamilyMembers, getDimensionOverview } from '../../utils/api.js'
 
 
 export default {
 export default {
-  components: { TabTransition, PageBanner, LoginGuideCard, FamilyEnergyBar, RadarChart, AIFloatingAvatar, FamilyMemberStrip, DimensionIntroCard },
+  components: { TabTransition, PageBanner, FamilyEnergyBar, RadarChart, AIFloatingAvatar, FamilyMemberStrip, DimensionIntroCard },
   data() {
   data() {
     return {
     return {
       isLoggedIn: false,
       isLoggedIn: false,
@@ -185,6 +180,25 @@ export default {
         result.push(s)
         result.push(s)
       }
       }
       return result
       return result
+    },
+    /** 每月引导语 */
+    monthlyGuidance: function() {
+      var month = new Date().getMonth()
+      var messages = [
+        '一月:新年新健康,从一次体检开始',
+        '二月:春暖花开,适合调整作息',
+        '三月:植树节到,守护呼吸健康',
+        '四月:踏青正当时,关注视力保护',
+        '五月:劳动节后,重视营养均衡',
+        '六月:夏日来临,关注肠胃健康',
+        '七月:暑期到来,规律运动不可少',
+        '八月:秋前调养,提升免疫力',
+        '九月:开学季,关注孩子生长发育',
+        '十月:国庆长假,注意饮食控制',
+        '十一月:秋冬交替,保暖防寒',
+        '十二月:年终总结,规划来年健康'
+      ]
+      return messages[month] || messages[0]
     }
     }
   },
   },
   onShow() {
   onShow() {
@@ -696,4 +710,24 @@ export default {
   color: #9A3412;
   color: #9A3412;
   font-weight: 500;
   font-weight: 500;
 }
 }
+
+/* 每月引导语 */
+.monthly-guidance {
+  margin: 16rpx 30rpx 0;
+  padding: 20rpx 28rpx;
+  background: linear-gradient(135deg, #FFF7ED, rgba(255,140,66,0.08));
+  border-radius: 16rpx;
+  border-left: 4rpx solid #FF8C42;
+  display: flex;
+  align-items: center;
+  gap: 12rpx;
+}
+.guidance-icon {
+  font-size: 32rpx;
+}
+.guidance-text {
+  font-size: 26rpx;
+  color: #9A3412;
+  font-weight: 500;
+}
 </style>
 </style>

+ 6 - 11
cfc-frontend/pages/mind-detail/index.vue

@@ -31,16 +31,11 @@
       @select="onFamilyMemberSelect"
       @select="onFamilyMemberSelect"
       @removed="loadFamilyMembersVisible" />
       @removed="loadFamilyMembersVisible" />
 
 
-    <!-- 游客登录引导卡 -->
-    <template v-if="!isLoggedIn">
-      <LoginGuideCard
-        title="解锁心理成长报告"
-        :items="[
-          '完成 EMI 心理测评,查看四维分析报告',
-          '大五人格测评 · 情绪趋势追踪',
-          '阅读专属心理文章,参与每日情绪打卡'
-        ]" />
-    </template>
+    <!-- 游客引导语 -->
+    <view class="monthly-guidance" v-if="!isLoggedIn">
+      <text class="guidance-icon">🔥</text>
+      <text class="guidance-text">{{ monthlyGuidance }}</text>
+    </view>
 
 
         <!-- 登录后:五维能量条 -->
         <!-- 登录后:五维能量条 -->
         <FamilyEnergyBar
         <FamilyEnergyBar
@@ -159,7 +154,7 @@ import config from '../../config.js'
 import { parseDate } from '../../utils/format.js'
 import { parseDate } from '../../utils/format.js'
 
 
 export default {
 export default {
-components: { TabTransition, PageBanner, RadarChart, LoginGuideCard, FamilyEnergyBar, PsychCrisisBanner, AIFloatingAvatar, FamilyTianpanCard, FamilyMemberStrip, DimensionIntroCard },
+components: { TabTransition, PageBanner, RadarChart, FamilyEnergyBar, PsychCrisisBanner, AIFloatingAvatar, FamilyTianpanCard, FamilyMemberStrip, DimensionIntroCard },
   data() {
   data() {
     return {
     return {
       isLoggedIn: false,
       isLoggedIn: false,

+ 6 - 11
cfc-frontend/pages/wisdom-detail/index.vue

@@ -38,16 +38,11 @@
       @select="onFamilyMemberSelect"
       @select="onFamilyMemberSelect"
       @removed="loadFamilyMembersVisible" />
       @removed="loadFamilyMembersVisible" />
 
 
-    <!-- 3. 游客专属区块 -->
-    <template v-if="!isLoggedIn">
-      <LoginGuideCard
-        title="解锁认知成长数据"
-        :items="[
-          '查看全家认知雷达图与测评报告',
-          '完成认知训练,持续提升思维能力',
-          '预约专业测评,获取个性化成长建议'
-        ]" />
-    </template>
+    <!-- 游客引导语 -->
+    <view class="monthly-guidance" v-if="!isLoggedIn">
+      <text class="guidance-icon">⚡</text>
+      <text class="guidance-text">{{ monthlyGuidance }}</text>
+    </view>
 
 
     <!-- 4. 五维能量条(登录后) -->
     <!-- 4. 五维能量条(登录后) -->
     <FamilyEnergyBar
     <FamilyEnergyBar
@@ -131,7 +126,7 @@ import { getVisibleSections, getChildren, getFamilyEnergySandbox, getAssessmentL
 import { parseDate } from '../../utils/format.js'
 import { parseDate } from '../../utils/format.js'
 
 
 export default {
 export default {
-  components: { TabTransition, PageBanner, LoginGuideCard, RadarChart, FamilyEnergyBar, AIFloatingAvatar, FamilyMemberStrip, DimensionIntroCard },
+  components: { TabTransition, PageBanner, RadarChart, FamilyEnergyBar, AIFloatingAvatar, FamilyMemberStrip, DimensionIntroCard },
   data() {
   data() {
     return {
     return {
       isLoggedIn: false,
       isLoggedIn: false,

+ 1 - 1
cfc-web/.last_build_commit

@@ -1 +1 @@
-dc38f3ffec532341098d048c25509535ca14732a
+f909469accfaaae4baefa781be08344a4720b2f5

+ 1 - 1
cfc-web/package.json

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

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

@@ -4,6 +4,23 @@
 
 
 ---
 ---
 
 
+## v1.0.925 (2026-08-09)
+
+### Bug 修复
+- 修复 parse 读取文件路径重复拼接 uploadBaseDir
+- 健康报告上传改用 upload-only 接口
+
+### 其他
+- parse/parse-preview 读取时又拼一次 uploadBaseDir,形成
+- /data/cfc-uploads/data/cfc-uploads/uploads/... 的重复路径导致文件找不到。
+- 新增 resolveUploadFilePath 兼容绝对/相对两种历史格式,两处读取统一走该方法。
+- 
+- 前端 uploadReportOnly 仍调旧路由命中一体化 uploadReport(返回详情无 draftId),
+- 导致上传成功但 res.data.draftId 为空、不跳转确认页且 toast 显示 message=success。
+- 修正 URL 为 /api/health/report/upload-only。
+- 
+
+
 ## v1.0.924 (2026-08-09)
 ## v1.0.924 (2026-08-09)
 
 
 ### Bug 修复
 ### Bug 修复

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

@@ -1,6 +1,6 @@
 # 更新日志
 # 更新日志
 
 
-> 当前版本: v1.0.924
+> 当前版本: v1.0.925
 
 
 ## 历史版本
 ## 历史版本
 
 
@@ -8,6 +8,23 @@
 
 
 ---
 ---
 
 
+## v1.0.925 (2026-08-09)
+
+### Bug 修复
+- 修复 parse 读取文件路径重复拼接 uploadBaseDir
+- 健康报告上传改用 upload-only 接口
+
+### 其他
+- parse/parse-preview 读取时又拼一次 uploadBaseDir,形成
+- /data/cfc-uploads/data/cfc-uploads/uploads/... 的重复路径导致文件找不到。
+- 新增 resolveUploadFilePath 兼容绝对/相对两种历史格式,两处读取统一走该方法。
+- 
+- 前端 uploadReportOnly 仍调旧路由命中一体化 uploadReport(返回详情无 draftId),
+- 导致上传成功但 res.data.draftId 为空、不跳转确认页且 toast 显示 message=success。
+- 修正 URL 为 /api/health/report/upload-only。
+- 
+
+
 ## v1.0.924 (2026-08-09)
 ## v1.0.924 (2026-08-09)
 
 
 ### Bug 修复
 ### Bug 修复