Browse Source

fix: DimensionActivities 移除维度参数自加载

Xiaogang Liao 2 months ago
parent
commit
1990ab9d08
1 changed files with 27 additions and 10 deletions
  1. 27 10
      cfc-frontend/components/DimensionActivities.vue

+ 27 - 10
cfc-frontend/components/DimensionActivities.vue

@@ -4,7 +4,7 @@
     <view class="section-header">
       <view class="section-header-left">
         <view class="section-icon-wrap">
-          <text class="section-icon">{{ dimensionIcon }}</text>
+          <text class="section-icon">🎯</text>
         </view>
         <text class="section-title">推荐活动</text>
       </view>
@@ -16,7 +16,7 @@
 
     <!-- 空状态 -->
     <view v-if="!displayActivities || displayActivities.length === 0" class="empty-state">
-      <text class="empty-icon">{{ dimensionIcon }}</text>
+      <text class="empty-icon">🎯</text>
       <text class="empty-tip">{{ isLoggedIn ? '暂无相关活动' : '登录后查看更多活动' }}</text>
     </view>
 
@@ -89,7 +89,7 @@
 <script>
 import config from '@/config.js'
 import { parseDate } from '@/utils/format.js'
-import { getMyMembership } from '@/utils/api.js'
+import { getMyMembership, getActivityList } from '@/utils/api.js'
 
 var DIMENSION_MAP = {
   body: { name: '身', color: '#FF8C42', icon: '🌏' },
@@ -101,14 +101,20 @@ var DIMENSION_MAP = {
 
 export default {
   props: {
-    dimensionCode: { type: String, default: '' },
     activities: { type: Array, default: function() { return [] } },
     isLoggedIn: { type: Boolean, default: false }
   },
   data: function() {
     return {
       swiperIndex: 0,
-      isMember: false
+      isMember: false,
+      selfActivities: [],
+      loading: false
+    }
+  },
+  mounted: function() {
+    if (!this.activities || this.activities.length === 0) {
+      this.loadActivities()
     }
   },
   created: function() {
@@ -122,7 +128,8 @@ export default {
   computed: {
     displayActivities: function() {
       var self = this
-      return (this.activities || []).slice(0, 3).map(function(item) {
+      var list = (this.activities && this.activities.length > 0 ? this.activities : self.selfActivities)
+      return (list || []).slice(0, 3).map(function(item) {
         return {
           id: item.id,
           title: item.title,
@@ -140,13 +147,23 @@ export default {
           _memberPriceDisplay: self.formatPriceWithSymbol(item.memberPrice)
         }
       })
-    },
-    dimensionIcon: function() {
-      var map = { body: '🌏', mind: '🔥', wisdom: '⚡', action: '🌿', wealth: '💧' }
-      return map[this.dimensionCode] || '🎯'
     }
   },
   methods: {
+    loadActivities: function() {
+      var self = this
+      self.loading = true
+      getActivityList({ page: 1, size: 3 }).then(function(res) {
+        self.loading = false
+        if (res && res.code === 200 && res.data) {
+          var list = Array.isArray(res.data) ? res.data : (res.data.records || [])
+          self.selfActivities = list.slice(0, 3)
+        }
+      }).catch(function() {
+        self.loading = false
+        self.selfActivities = []
+      })
+    },
     onSwiperChange: function(e) {
       this.swiperIndex = e.detail.current
     },