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

feat(self-check): 首页入口显示自检总分 + 跳转中间页

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

+ 19 - 4
cfc-frontend/pages/home-pages/parent-index.vue

@@ -116,7 +116,12 @@
           </view>
           <view class="selfcheck-body">
             <text class="selfcheck-title">五维家庭自检</text>
-            <text class="selfcheck-subtitle">15题 · 5分钟 · 生成五行相生寻源建议</text>
+            <text class="selfcheck-subtitle" v-if="selfCheckScore != null">
+              最近得分 {{ selfCheckScore }}/45 分
+            </text>
+            <text class="selfcheck-subtitle" v-else>
+              15题 · 5分钟 · 生成五行相生寻源建议
+            </text>
           </view>
           <text class="selfcheck-arrow">→</text>
         </view>
@@ -474,7 +479,7 @@
 </template>
 
 <script>
-import { getFamilyMemberList, getChildren, getPendingReviewTasks, getPendingWishes, approveTask, rejectTask, getChildCompletionStats, getParentDashboard, getFamilyEnergySandbox, getEnergySandbox, getUnlockStatus, getEnergyOverview, getActivityList, getProductsByDomain, getContactList, getFeaturedArticles, getActiveAlerts, dismissAlert, getFamilyRanking, getChallengeList, getCircleRanking, getInviteQrCode, switchToFamilyMember } from '../../utils/api.js'
+import { getFamilyMemberList, getChildren, getPendingReviewTasks, getPendingWishes, approveTask, rejectTask, getChildCompletionStats, getParentDashboard, getFamilyEnergySandbox, getEnergySandbox, getUnlockStatus, getEnergyOverview, getActivityList, getProductsByDomain, getContactList, getFeaturedArticles, getActiveAlerts, dismissAlert, getFamilyRanking, getChallengeList, getCircleRanking, getInviteQrCode, switchToFamilyMember, getSelfCheckStatus } from '../../utils/api.js'
 import store from '../../store/index.js'
 import PlayfulCard from '../../components/PlayfulCard.vue'
 import PlayfulButton from '../../components/PlayfulButton.vue'
@@ -583,7 +588,8 @@ export default {
       // P3 健康圈(社区扩散)
       circleRankings: [],
       circleName: '',
-      circleLoading: false
+      circleLoading: false,
+      selfCheckScore: null
     }
   },
   computed: {
@@ -896,6 +902,7 @@ export default {
 
         // 加载家庭成员可见列表
         this.loadFamilyMembersVisible()
+        this.loadSelfCheckStatus()
         // 加载健康预警(P1-2)
         this.loadAlerts()
         // 加载家庭健康互动(P2-2)
@@ -1105,7 +1112,15 @@ export default {
       uni.navigateTo({ url: '/pages/share/index' })
     },
     goToSelfCheck: function() {
-      uni.navigateTo({ url: '/pages/family/self-check' })
+      uni.navigateTo({ url: '/pages/family/self-check-entry' })
+    },
+    loadSelfCheckStatus: function() {
+      var self = this
+      getSelfCheckStatus().then(function(res) {
+        if (res.code === 200 && res.data && res.data.lastResult) {
+          self.selfCheckScore = res.data.lastResult.totalScore
+        }
+      }).catch(function() {})
     },
     goMemberDetail(member) {
       if (!member || !member.memberId) return

+ 18 - 4
cfc-frontend/pages/index-home/index.vue

@@ -397,7 +397,7 @@ import ArticleBookshelf from '../../components/ArticleBookshelf.vue'
 import FamilyChallengeCard from '../../components/FamilyChallengeCard.vue'
 import DailyTaskCard from '../../components/daily-task-card.vue'
 import ReportUploadCard from '../../components/report-upload-card.vue'
-import { acceptParentInvite, productList, getActivityList, getFeaturedArticles, getEnergySandbox, getEnergyOverview, getFamilyMemberList, getChildren, getChallengeList, switchToFamilyMember, getMyMembership, updateChallengeProgress, respondChallenge, getTodayTasks, completeTask as completeTaskApi, getTodayParentTasks, completeParentTask as completeParentTaskApi, getTaskHistory, getNotices, getNotificationList, getSurveyStatus } from '../../utils/api.js'
+import { acceptParentInvite, productList, getActivityList, getFeaturedArticles, getEnergySandbox, getEnergyOverview, getFamilyMemberList, getChildren, getChallengeList, switchToFamilyMember, getMyMembership, updateChallengeProgress, respondChallenge, getTodayTasks, completeTask as completeTaskApi, getTodayParentTasks, completeParentTask as completeParentTaskApi, getTaskHistory, getNotices, getNotificationList, getSurveyStatus, getSelfCheckStatus } from '../../utils/api.js'
 import nav from '../../utils/nav.js'
 import config from '@/config.js'
 import { parseDate } from '../../utils/format.js'
@@ -432,6 +432,8 @@ export default {
       _splashReady: false,
       _watchPageReadyDone: false,
       pendingSurveys: [],
+      selfCheckScore: null,
+      selfCheckLoading: false,
 
       typeList: [
         { label: '全部', value: '' },
@@ -556,7 +558,10 @@ export default {
     },
     selfTestSub: function() {
       if (this.sandboxData) {
-        return '最近综合得分 ' + (this.sandboxData.overallScore || 0) + ' 分 · 点击重新自检'
+        if (this.selfCheckScore != null) {
+          return '最近自检得分 ' + this.selfCheckScore + '/45 分 · 点击查看'
+        }
+        return '最近综合得分 ' + (this.sandboxData.overallScore || 0) + ' 分 · 点击查看'
       }
       return '15 题五维自检 · 约 20 秒'
     }
@@ -645,6 +650,7 @@ export default {
       this.loadEnergyOverview()
       this.loadActionArticles()
       this.loadChallenges()
+      this.loadSelfCheckStatus()
     },
     loadEnergyOverview: function() {
       var memberId = this.currentChildId || uni.getStorageSync('currentMemberId')
@@ -999,10 +1005,18 @@ export default {
           '&periodEnd=' + (firstPending.periodEnd || '')
         uni.navigateTo({ url: url })
       } else {
-        // 无待填调研 → 进入五维自检(先花1分钟/再次了解·看看变化)
-        uni.navigateTo({ url: '/pages/family/self-check' })
+        // 无待填调研 → 进入五维自检中间页
+        uni.navigateTo({ url: '/pages/family/self-check-entry' })
       }
     },
+    loadSelfCheckStatus: function() {
+      var self = this
+      getSelfCheckStatus().then(function(res) {
+        if (res.code === 200 && res.data && res.data.lastResult) {
+          self.selfCheckScore = res.data.lastResult.totalScore
+        }
+      }).catch(function() {})
+    },
     _doInit(options) {
       options = options || {}
       if (!this.isLoggedIn()) {