Przeglądaj źródła

fix(frontend): 统一 memberId 回退链 currentChildId → currentMemberId → userId

修复多个页面 memberId 为空导致 API 500 的问题:
- health-main, growth-main, survey-history, survey-questionnaire
- diet/index, diet/preferences, diet/records, diet/record-detail
- api.js getDietPreferences 支持传 data 参数

回退链统一: currentChildId → currentMemberId → userId
Xiaogang Liao 2 miesięcy temu
rodzic
commit
9ab6fb85d0

+ 1 - 1
cfc-frontend/pages/diet/index.vue

@@ -141,7 +141,7 @@ export default {
   },
   onLoad() {
     this.familyId = uni.getStorageSync('familyId')
-    this.familyMemberId = uni.getStorageSync('currentMemberId')
+    this.familyMemberId = uni.getStorageSync('currentChildId') || uni.getStorageSync('currentMemberId') || uni.getStorageSync('userId')
     this.loadIngredients()
     this.loadMealSummary()
   },

+ 2 - 2
cfc-frontend/pages/diet/preferences.vue

@@ -162,7 +162,7 @@ export default {
     }
   },
   onLoad() {
-    this.familyMemberId = uni.getStorageSync('currentMemberId')
+    this.familyMemberId = uni.getStorageSync('currentChildId') || uni.getStorageSync('currentMemberId') || uni.getStorageSync('userId')
     this.loadPreferences()
   },
   methods: {
@@ -171,7 +171,7 @@ export default {
     },
     loadPreferences() {
       var self = this
-      getDietPreferences().then(function(res) {
+      getDietPreferences({ memberId: self.familyMemberId }).then(function(res) {
         if (res) {
           self.allergies = res.allergies || []
           self.absoluteAvoid = res.absoluteAvoid || []

+ 1 - 1
cfc-frontend/pages/diet/record-detail.vue

@@ -103,7 +103,7 @@ export default {
     },
     loadRecord: function() {
       var self = this
-      var memberId = uni.getStorageSync('currentMemberId')
+      var memberId = uni.getStorageSync('currentChildId') || uni.getStorageSync('currentMemberId') || uni.getStorageSync('userId')
       var today = self.formatDate(new Date())
       
       getDietDailyRecords({ memberId: memberId, date: today }).then(function(res) {

+ 1 - 1
cfc-frontend/pages/diet/records.vue

@@ -125,7 +125,7 @@ export default {
     },
     loadRecords: function() {
       var self = this
-      var memberId = uni.getStorageSync('currentMemberId')
+      var memberId = uni.getStorageSync('currentChildId') || uni.getStorageSync('currentMemberId') || uni.getStorageSync('userId')
       if (!memberId) return
       
       getDietDailyRecords({ memberId: memberId, date: this.selectedDate }).then(function(res) {

+ 1 - 1
cfc-frontend/pages/growth-main/index.vue

@@ -299,7 +299,7 @@ export default {
   onShow() {
     this.isLoggedIn = !!uni.getStorageSync('token')
     if (this.isLoggedIn) {
-      this.memberId = uni.getStorageSync('currentChildId') || ''
+      this.memberId = uni.getStorageSync('currentChildId') || uni.getStorageSync('currentMemberId') || uni.getStorageSync('userId') || ''
       var now = new Date()
       this.todayDate = now.getFullYear() + '-' + this.pad(now.getMonth() + 1) + '-' + this.pad(now.getDate())
       this.loadAllData()

+ 3 - 2
cfc-frontend/pages/health-main/index.vue

@@ -359,7 +359,7 @@ export default {
   onShow() {
     this.isLoggedIn = !!uni.getStorageSync('token')
     if (this.isLoggedIn) {
-      var stored = uni.getStorageSync('currentChildId') || ''
+      var stored = uni.getStorageSync('currentChildId') || uni.getStorageSync('currentMemberId') || ''
       if (stored) {
         this.selectedMemberId = stored
         this.selectedMemberName = uni.getStorageSync('currentChildName') || '成员'
@@ -404,7 +404,8 @@ export default {
       var self = this
       try {
         var api = require('../../utils/api.js')
-        api.getReportList().then(function(res) {
+        var memberId = uni.getStorageSync('currentChildId') || uni.getStorageSync('currentMemberId') || uni.getStorageSync('userId') || ''
+        api.getReportList(memberId).then(function(res) {
           if (res.code === 200 && res.data) {
             var list = Array.isArray(res.data) ? res.data : (res.data.list || [])
             self.reports = list

+ 1 - 1
cfc-frontend/pages/health/survey-history.vue

@@ -30,7 +30,7 @@ export default {
   data() { return { memberId: '', loading: false, historyList: [], templateMap: {} } },
   onLoad(options) {
     var ui = uni.getStorageSync('userInfo') || {}
-    this.memberId = options.memberId || ui.currentMemberId || ui.memberId
+    this.memberId = options.memberId || uni.getStorageSync('currentChildId') || uni.getStorageSync('currentMemberId') || uni.getStorageSync('userId') || ''
     this.loadData()
   },
   onShow() { if (this.memberId) this.loadData() },

+ 1 - 2
cfc-frontend/pages/health/survey-questionnaire.vue

@@ -58,8 +58,7 @@ export default {
     },
     async handleSubmit() {
       var self = this
-      var ui = uni.getStorageSync('userInfo') || {}
-      var memberId = ui.currentMemberId || ui.memberId
+      var memberId = uni.getStorageSync('currentChildId') || uni.getStorageSync('currentMemberId') || uni.getStorageSync('userId') || ''
       var answersArr = []
       for (var i = 0; i < this.questions.length; i++) answersArr.push(this.answers[i] || '')
       var answersJson = JSON.stringify(answersArr)

+ 1 - 1
cfc-frontend/utils/api.js

@@ -2628,7 +2628,7 @@ export const getHealthStatus = () => request('/api/health-status/get', 'POST', {
 export const saveHealthStatus = (data) => request('/api/health-status/save', 'POST', data)
 
 // ===== 饮食模块 =====
-export const getDietPreferences = () => request('/api/diet/preferences/current-member', 'POST', {})
+export const getDietPreferences = (data) => request('/api/diet/preferences/current-member', 'POST', data || {})
 export const saveDietPreferences = (data) => request('/api/diet/preferences/save', 'POST', data)
 export const getDietIngredients = () => request('/api/diet/ingredients/suggest', 'POST', {})
 export const refreshDietIngredients = () => request('/api/diet/ingredients/recommend', 'POST', {})