Przeglądaj źródła

fix(frontend): 修复组件引用路径与打卡页 :key 表达式

liaoxg 1 miesiąc temu
rodzic
commit
764ca9df9a

+ 1 - 1
cfc-frontend/pages/action-detail/index.vue

@@ -132,7 +132,7 @@ import DimensionTasks from '../../components/DimensionTasks.vue'
 import DimensionActivities from '../../components/DimensionActivities.vue'
 import DimensionProducts from '../../components/DimensionProducts.vue'
 import DimensionIntroCard from '../../components/DimensionIntroCard.vue'
-import FloatingAvatar from '../../components/FloatingAvatar.vue'
+import FloatingAvatar from '../../components/AIFloatingAvatar.vue'
 import RadarChart from '../../components/RadarChart.vue'
 import DimensionSubDims from '../../components/DimensionSubDims.vue'
 import { getVisibleSections, getEnergyOverview, getChildren, getFamilyEnergySandbox, getEnergySandbox, getFamilyMemberList } from '../../utils/api.js'

+ 1 - 1
cfc-frontend/pages/ai/chat.vue

@@ -155,7 +155,7 @@
 <script>
 import { aiSendMessage, aiGetConversations, aiGetMessages, aiDeleteConversation, aiSendNutritionMessage, aiSendHealthCoachMessage, aiSendHealthButlerMessage, getMyMembership } from '../../utils/api.js'
 import BaseEmpty from '../../components/BaseEmpty.vue'
-import TaskCard from '../../components/TaskCard.vue'
+import TaskCard from '../../components/AITaskCard.vue'
 import config from '@/config.js'
 
 export default {

+ 1 - 1
cfc-frontend/pages/body-detail/index.vue

@@ -113,7 +113,7 @@ import PageBanner from '../../components/PageBanner.vue'
 import FamilyEnergyBar from '../../components/FamilyEnergyBar.vue'
 import RadarChart from '../../components/RadarChart.vue'
 import DimensionSubDims from '../../components/DimensionSubDims.vue'
-import FloatingAvatar from '../../components/FloatingAvatar.vue'
+import FloatingAvatar from '../../components/AIFloatingAvatar.vue'
 import DimensionIntroCard from '../../components/DimensionIntroCard.vue'
 import FamilyMemberStrip from '../../components/FamilyMemberStrip.vue'
 import { getVisibleSections, getEnergyOverview, getChildren, getFamilyEnergySandbox, getEnergySandbox, getFamilyMemberList, getDimensionOverview } from '../../utils/api.js'

+ 4 - 1
cfc-frontend/pages/growth/diet-checkin.vue

@@ -40,7 +40,7 @@
         <view class="card-body">
           <text class="card-title">📷 拍照记录</text>
           <view class="photo-row">
-            <view class="photo-item" v-for="(img, idx) in form.photos" :key="'p' + idx" @tap="removePhoto(idx)">
+            <view class="photo-item" v-for="(img, idx) in form.photos" :key="getPhotoKey(img, idx)" @tap="removePhoto(idx)">
               <image :src="img" mode="aspectFill" class="photo-preview" />
               <text class="photo-del">×</text>
             </view>
@@ -211,6 +211,9 @@ export default {
         }
       })
     },
+    getPhotoKey: function(img, idx) {
+      return img ? img : ('p' + idx)
+    },
     removePhoto: function(idx) {
       this.form.photos.splice(idx, 1)
     },

+ 4 - 1
cfc-frontend/pages/growth/exercise-checkin.vue

@@ -54,7 +54,7 @@
         <view class="card-body">
           <text class="card-title">📷 拍照记录</text>
           <view class="photo-row">
-            <view class="photo-item" v-for="(img, idx) in form.photos" :key="'p' + idx" @tap="removePhoto(idx)">
+            <view class="photo-item" v-for="(img, idx) in form.photos" :key="getPhotoKey(img, idx)" @tap="removePhoto(idx)">
               <image :src="img" mode="aspectFill" class="photo-preview" />
               <text class="photo-del">×</text>
             </view>
@@ -230,6 +230,9 @@ export default {
         }
       })
     },
+    getPhotoKey: function(img, idx) {
+      return img ? img : ('p' + idx)
+    },
     removePhoto: function(idx) {
       this.form.photos.splice(idx, 1)
     },

+ 4 - 1
cfc-frontend/pages/growth/growth-emotion-checkin.vue

@@ -53,7 +53,7 @@
         <view class="card-body">
           <text class="card-title">📷 拍照记录</text>
           <view class="photo-row">
-            <view class="photo-item" v-for="(img, idx) in photos" :key="'p' + idx" @tap="removePhoto(idx)">
+            <view class="photo-item" v-for="(img, idx) in photos" :key="getPhotoKey(img, idx)" @tap="removePhoto(idx)">
               <image :src="img" mode="aspectFill" class="photo-preview" />
               <text class="photo-del">×</text>
             </view>
@@ -225,6 +225,9 @@ export default {
         }
       })
     },
+    getPhotoKey: function(img, idx) {
+      return img ? img : ('p' + idx)
+    },
     removePhoto: function(idx) {
       this.photos.splice(idx, 1)
     },

+ 4 - 1
cfc-frontend/pages/growth/sleep-checkin.vue

@@ -47,7 +47,7 @@
         <view class="card-body">
           <text class="card-title">📷 拍照记录</text>
           <view class="photo-row">
-            <view class="photo-item" v-for="(img, idx) in form.photos" :key="'p' + idx" @tap="removePhoto(idx)">
+            <view class="photo-item" v-for="(img, idx) in form.photos" :key="getPhotoKey(img, idx)" @tap="removePhoto(idx)">
               <image :src="img" mode="aspectFill" class="photo-preview" />
               <text class="photo-del">×</text>
             </view>
@@ -204,6 +204,9 @@ export default {
         }
       })
     },
+    getPhotoKey: function(img, idx) {
+      return img ? img : ('p' + idx)
+    },
     removePhoto: function(idx) {
       this.form.photos.splice(idx, 1)
     },

+ 1 - 1
cfc-frontend/pages/mind-detail/index.vue

@@ -170,7 +170,7 @@ import RadarChart from '../../components/RadarChart.vue'
 import DimensionSubDims from '../../components/DimensionSubDims.vue'
 import FamilyEnergyBar from '../../components/FamilyEnergyBar.vue'
 import PsychCrisisBanner from '../../components/PsychCrisisBanner.vue'
-import FloatingAvatar from '../../components/FloatingAvatar.vue'
+import FloatingAvatar from '../../components/AIFloatingAvatar.vue'
 import FamilyTianpanCard from '../../components/FamilyTianpanCard.vue'
 import FamilyMemberStrip from '../../components/FamilyMemberStrip.vue'
 import { getVisibleSections, getEmiReport, getFamilyEnergySandbox, getEnergySandbox, getChildren, getFamilyMemberList, getEnergyOverview, getContactList, getHealthAlerts, getMilestones, getDanReportByChild, getFamilyFortune } from '../../utils/api.js'

+ 1 - 1
cfc-frontend/pages/profile-main/profile.vue

@@ -250,7 +250,7 @@
 </template>
 
 <script>
-import FloatingAvatar from '../../components/FloatingAvatar.vue'
+import FloatingAvatar from '../../components/AIFloatingAvatar.vue'
 import IntentPicker from '../../components/intent-picker.vue'
 import {
   getChildren, getFamilyMemberList,

+ 1 - 1
cfc-frontend/pages/wisdom-detail/index.vue

@@ -136,7 +136,7 @@ import PageBanner from '../../components/PageBanner.vue'
 import RadarChart from '../../components/RadarChart.vue'
 import DimensionSubDims from '../../components/DimensionSubDims.vue'
 import FamilyEnergyBar from '../../components/FamilyEnergyBar.vue'
-import FloatingAvatar from '../../components/FloatingAvatar.vue'
+import FloatingAvatar from '../../components/AIFloatingAvatar.vue'
 import FamilyMemberStrip from '../../components/FamilyMemberStrip.vue'
 import DimensionIntroCard from '../../components/DimensionIntroCard.vue'
 import { getVisibleSections, getChildren, getFamilyEnergySandbox, getEnergySandbox, getAssessmentLatestResult, getDanReportByChild } from '../../utils/api.js'