|
|
@@ -52,7 +52,7 @@
|
|
|
<text class="period-original" v-if="showOriginalPrice(p.key)">¥{{ getOriginalPriceForPeriod(p.key) / 100 }}</text>
|
|
|
</view>
|
|
|
</view>
|
|
|
- <button class="btn-upgrade" @click="goNext">下一步</button>
|
|
|
+ <button class="btn-upgrade" @click="goNext">{{ isRenew ? '续费' : '下一步' }}</button>
|
|
|
</view>
|
|
|
|
|
|
<!-- 权益对比表 -->
|
|
|
@@ -62,12 +62,14 @@
|
|
|
<view class="compare-row header-row">
|
|
|
<text class="compare-cell cell-feature">权益项</text>
|
|
|
<text class="compare-cell cell-free">免费</text>
|
|
|
+ <text class="compare-cell cell-basic" :class="selectedLevel === 'BASIC' ? 'active' : ''">体验会员</text>
|
|
|
<text class="compare-cell cell-family" :class="selectedLevel === 'FAMILY' ? 'active' : ''">家庭会员</text>
|
|
|
<text class="compare-cell cell-premium" :class="selectedLevel === 'PREMIUM' ? 'active' : ''">高级会员</text>
|
|
|
</view>
|
|
|
<view class="compare-row" v-for="(item, idx) in compareData" :key="idx">
|
|
|
<text class="compare-cell cell-feature">{{ item.name }}</text>
|
|
|
<text class="compare-cell cell-free">{{ item.free }}</text>
|
|
|
+ <text class="compare-cell cell-basic" :class="selectedLevel === 'BASIC' ? 'active' : ''">{{ item.basic }}</text>
|
|
|
<text class="compare-cell cell-family" :class="selectedLevel === 'FAMILY' ? 'active' : ''">{{ item.family }}</text>
|
|
|
<text class="compare-cell cell-premium" :class="selectedLevel === 'PREMIUM' ? 'active' : ''">{{ item.premium }}</text>
|
|
|
</view>
|
|
|
@@ -111,13 +113,17 @@ export default {
|
|
|
isFree: true,
|
|
|
currentLevelName: '免费用户',
|
|
|
compareData: [
|
|
|
- { name: '商品折扣', free: '普通价格', family: '会员折扣', premium: '会员折扣', lifetime: '会员折扣' },
|
|
|
- { name: '家庭管理', free: '基础功能', family: '全部功能', premium: '全部功能+优先响应', lifetime: '全部功能+专属管家' },
|
|
|
- { name: '管家服务', free: '—', family: '—', premium: '每周一次', lifetime: '专属管家7×24h' },
|
|
|
- { name: '推荐佣金', free: '不可参与', family: '可参与', premium: '可参与', lifetime: '可参与' },
|
|
|
- { name: '专属活动', free: '部分参与', family: '全部参与', premium: '优先参与', lifetime: 'VIP专属+定制活动' },
|
|
|
- { name: '成长报告', free: '月度', family: '每周+深度', premium: '每日+深度+专家解读', lifetime: '实时+专家深度解读' },
|
|
|
- { name: '任务配额', free: '每日5个', family: '不限量', premium: '不限量+优先审核', lifetime: '不限量+专属通道' }
|
|
|
+ { name: '商品折扣', free: '普通价格', basic: '会员折扣', family: '会员折扣', premium: '会员折扣', lifetime: '会员折扣' },
|
|
|
+ { name: '家庭管理', free: '基础功能', basic: '3个孩子', family: '10个孩子', premium: '20个孩子', lifetime: '全部功能+专属管家' },
|
|
|
+ { name: 'AI健康顾问', free: '—', basic: '3次/月', family: '不限', premium: '不限', lifetime: '不限' },
|
|
|
+ { name: '报告解读', free: '—', basic: '1次/月', family: '每周+深度', premium: '每日+深度+专家解读', lifetime: '实时+专家深度解读' },
|
|
|
+ { name: '健康报告上传', free: '—', basic: '2份/月', family: '不限', premium: '不限', lifetime: '不限' },
|
|
|
+ { name: '测评预约', free: '仅查看', basic: '1次/月', family: '不限', premium: '优先', lifetime: '优先' },
|
|
|
+ { name: '管家服务', free: '—', basic: '—', family: '月1次', premium: '每周一次', lifetime: '专属管家7×24h' },
|
|
|
+ { name: '推荐佣金', free: '不可参与', basic: '可参与', family: '可参与', premium: '可参与', lifetime: '可参与' },
|
|
|
+ { name: '专属活动', free: '部分参与', basic: '部分参与', family: '全部参与', premium: '优先参与', lifetime: 'VIP专属+定制活动' },
|
|
|
+ { name: '成长报告', free: '月度', basic: '基础模板', family: '每周+深度', premium: '每日+深度+专家解读', lifetime: '实时+专家深度解读' },
|
|
|
+ { name: '任务配额', free: '每日5个', basic: '每日3个', family: '不限量', premium: '不限量+优先审核', lifetime: '不限量+专属通道' }
|
|
|
],
|
|
|
periods: [
|
|
|
{ key: 'monthly', label: '月度', unit: '/月' },
|
|
|
@@ -136,6 +142,11 @@ export default {
|
|
|
return lv.levelCode !== 'FREE' && lv.levelCode !== 'LIFETIME' && lv.levelCode !== 'PROVIDER'
|
|
|
})
|
|
|
},
|
|
|
+ isRenew() {
|
|
|
+ var current = this.membership && this.membership.memberLevel
|
|
|
+ if (current && current !== 'FREE' && this.selectedLevel === current) return true
|
|
|
+ return false
|
|
|
+ },
|
|
|
visiblePeriods() {
|
|
|
var self = this
|
|
|
return this.periods.filter(function(p) {
|
|
|
@@ -206,11 +217,9 @@ export default {
|
|
|
if (this.membership && this.membership.memberLevel && this.membership.memberLevel !== 'FREE') {
|
|
|
this.isFree = false
|
|
|
this.currentLevelName = this.membership.levelName || '家庭会员'
|
|
|
- this.selectedLevel = this.membership.memberLevel
|
|
|
} else {
|
|
|
this.isFree = true
|
|
|
this.currentLevelName = '免费用户'
|
|
|
- this.selectedLevel = 'FAMILY'
|
|
|
}
|
|
|
} catch (e) {
|
|
|
console.error('加载会员信息失败', e)
|
|
|
@@ -218,6 +227,7 @@ export default {
|
|
|
try {
|
|
|
const levelsRes = await getMembershipPlans()
|
|
|
this.levels = levelsRes.data || []
|
|
|
+ this.applyDefaultLevel()
|
|
|
} catch (e) {
|
|
|
console.error('加载会员等级失败', e)
|
|
|
}
|
|
|
@@ -248,6 +258,17 @@ export default {
|
|
|
selectPeriod: function(key) {
|
|
|
this.selectedPeriod = key
|
|
|
},
|
|
|
+ applyDefaultLevel: function() {
|
|
|
+ var current = this.membership && this.membership.memberLevel ? this.membership.memberLevel : 'FREE'
|
|
|
+ var rank = { 'FREE': 0, 'BASIC': 1, 'FAMILY': 2, 'PREMIUM': 3 }
|
|
|
+ var currentRank = rank[current] !== undefined ? rank[current] : 0
|
|
|
+ var target = null
|
|
|
+ for (var i = 0; i < this.buyableLevels.length; i++) {
|
|
|
+ var r = rank[this.buyableLevels[i].levelCode]
|
|
|
+ if (r !== undefined && r > currentRank) { target = this.buyableLevels[i].levelCode; break }
|
|
|
+ }
|
|
|
+ this.selectedLevel = target || current
|
|
|
+ },
|
|
|
getPriceForPeriod: function(periodKey) {
|
|
|
var plan = null
|
|
|
for (var i = 0; i < this.levels.length; i++) {
|