|
|
@@ -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
|
|
|
},
|