فهرست منبع

fix: body-detail/index.vue 中文CSS类名导致WXSS编译错误

liaoxg 3 هفته پیش
والد
کامیت
2a771c257e
1فایلهای تغییر یافته به همراه17 افزوده شده و 19 حذف شده
  1. 17 19
      cfc-frontend/pages/health/health-plan-summary.vue

+ 17 - 19
cfc-frontend/pages/health/health-plan-summary.vue

@@ -18,13 +18,13 @@
       <view class="hint-text">选择方案针对的家庭成员</view>
       <view class="member-list">
         <view v-for="(m, idx) in executors" :key="getMemberKey(m, idx)"
-              class="member-card" :class="{ active: isMemberSelected(m.memberId) }"
-              @click="toggleMember(m.memberId)">
+              class="member-card" :class="{ active: isMemberSelected(m.id) }"
+              @click="toggleMember(m.id)">
           <view class="member-card-left">
-            <view class="member-avatar">{{ m.name.charAt(0) }}</view>
-            <text class="member-card-name">{{ m.name }}</text>
+            <view class="member-avatar">{{ (m.nickname || m.name || '成').charAt(0) }}</view>
+            <text class="member-card-name">{{ m.nickname || m.name || '成员' }}</text>
           </view>
-          <view class="member-check">{{ isMemberSelected(m.memberId) ? '✓' : '' }}</view>
+          <view class="member-check">{{ isMemberSelected(m.id) ? '✓' : '' }}</view>
         </view>
         <view v-if="executors.length === 0" class="empty-state">
           <text class="empty-icon">👨‍👩‍👧</text>
@@ -418,7 +418,7 @@ export default {
     var self = this
     // 处理初始成员ID
     if (options.initialMemberIds) {
-      this.selectedMemberIds = options.initialMemberIds.split(',').filter(function(id) { return id })
+      this.selectedMemberIds = options.initialMemberIds.split(',').filter(function(id) { return id }).map(function(id) { return parseInt(id) || id })
     }
     // 处理 planId 查看模式
     this.planId = options.planId ? parseInt(options.planId) : null
@@ -450,29 +450,27 @@ export default {
   },
   methods: {
     // ===== 成员选择 (保持原有) =====
-    getMemberKey: function(m, idx) { return m.memberId || idx },
+    getMemberKey: function(m, idx) { return m.id || idx },
     loadExecutors: function() {
+      if (this._executorsLoading) return
+      this._executorsLoading = true
       var self = this
       getFamilyMemberList({ visibleOnly: true }).then(function(res) {
         if (res && res.code === 200 && res.data) {
           var list = res.data instanceof Array ? res.data : []
-          self.executors = list.filter(function(m) { return m.memberId || m.id }).map(function(m) {
-            return { memberId: String(m.memberId || m.id), name: m.nickname || m.name || '成员' }
-          })
+          self.executors = list.filter(function(m) { return m.id })
           if (self.selectedMemberIds.length === 0 && self.executors.length > 0) {
-            self.selectedMemberIds = [self.executors[0].memberId]
-          } else {
-            self.selectedMemberIds = self.selectedMemberIds.map(function(id) { return String(id) })
+            self.selectedMemberIds = [self.executors[0].id]
           }
         }
         self._executorsLoaded = true
-      }).catch(function() { self.executors = []; self._executorsLoaded = true })
+        self._executorsLoading = false
+      }).catch(function() { self.executors = []; self._executorsLoaded = true; self._executorsLoading = false })
     },
-    isMemberSelected: function(memberId) {
-      return this.selectedMemberIds.indexOf(String(memberId)) >= 0
+    isMemberSelected: function(id) {
+      return this.selectedMemberIds.indexOf(id) >= 0
     },
-    toggleMember: function(memberId) {
-      var id = String(memberId)
+    toggleMember: function(id) {
       var idx = this.selectedMemberIds.indexOf(id)
       if (idx >= 0) this.selectedMemberIds.splice(idx, 1)
       else this.selectedMemberIds.push(id)
@@ -849,7 +847,7 @@ export default {
           self.planDetail = res.data
           self.userGoal = res.data.goal || ''
           if (res.data.memberIds) {
-            self.selectedMemberIds = res.data.memberIds.split(',').filter(function(id) { return id })
+            self.selectedMemberIds = res.data.memberIds.split(',').filter(function(id) { return id }).map(function(id) { return parseInt(id) || id })
           }
           try {
             var pj = JSON.parse(res.data.planJson || '{}')