瀏覽代碼

feat(membership): 升级页档位按实际价格动态显示,无价格则隐藏

Sisyphus 4 天之前
父節點
當前提交
d66dcd8fb9
共有 1 個文件被更改,包括 24 次插入10 次删除
  1. 24 10
      cfc-frontend/pages/membership/upgrade.vue

+ 24 - 10
cfc-frontend/pages/membership/upgrade.vue

@@ -139,16 +139,19 @@ export default {
     visiblePeriods() {
       var self = this
       return this.periods.filter(function(p) {
-        if (self.selectedLevel === 'FAMILY') {
-          return p.key === 'yearly'
+        var plan = null
+        for (var i = 0; i < self.levels.length; i++) {
+          if (self.levels[i].levelCode === self.selectedLevel) {
+            plan = self.levels[i]
+            break
+          }
         }
-        if (self.selectedLevel === 'BASIC') {
-          return p.key === 'monthly'
-        }
-        if (self.selectedLevel === 'PREMIUM') {
-          return p.key === 'monthly' || p.key === 'yearly'
-        }
-        return true
+        if (!plan) return false
+        var price
+        if (p.key === 'monthly') price = plan.monthly
+        else if (p.key === 'quarterly') price = plan.quarterly
+        else price = plan.yearly
+        return price != null && price > 0
       })
     }
   },
@@ -229,7 +232,18 @@ export default {
     },
     selectLevel: function(code) {
       this.selectedLevel = code
-      this.selectedPeriod = 'yearly'
+      // 选中第一个有价格的周期,避免切换到无价格的周期导致空档
+      var plan = null
+      for (var i = 0; i < this.levels.length; i++) {
+        if (this.levels[i].levelCode === code) { plan = this.levels[i]; break }
+      }
+      if (plan) {
+        if (plan.monthly && plan.monthly > 0) this.selectedPeriod = 'monthly'
+        else if (plan.quarterly && plan.quarterly > 0) this.selectedPeriod = 'quarterly'
+        else if (plan.yearly && plan.yearly > 0) this.selectedPeriod = 'yearly'
+      } else {
+        this.selectedPeriod = 'yearly'
+      }
     },
     selectPeriod: function(key) {
       this.selectedPeriod = key