Просмотр исходного кода

feat: NG-25: 首单&升级够买的分期商品,升级结束后,未完成的分期应支持在复消模块进行购买

Tyler 1 год назад
Родитель
Сommit
8f3244fa87
3 измененных файлов с 53 добавлено и 24 удалено
  1. 1 1
      .env.development
  2. 3 2
      src/api/user.js
  3. 49 21
      src/views/user/member-upgrade.vue

+ 1 - 1
.env.development

@@ -14,7 +14,7 @@ ENV='development'
 # base api
 VUE_APP_BASE_API=''
 VUE_APP_BASE_DO_API='http://16.163.228.151:8043'
-VUE_APP_CDN_API='http://16.163.228.151:8041'
+VUE_APP_CDN_API='http://16.163.228.151:8046'
 VUE_APP_BASE_WEBSITE='http://16.163.228.151:8045'
 VUE_APP_BASE_PAY_STACK_PUBLIC_KEY='pk_test_2eed10135c4a958c5073795b22854ded9d1a6c55'
 VUE_APP_ACCESS_TOKEN_PREFIX='Bearer '

+ 3 - 2
src/api/user.js

@@ -152,10 +152,11 @@ export function fetchFullInfo(data) {
 }
 
 // 用户升级查询
-export function fetchUpgrade() {
+export function fetchUpgrade(data) {
   return request({
     url: '/v1/user/upgrade',
-    method: 'get'
+    method: 'get',
+    params: data
   })
 }
 

+ 49 - 21
src/views/user/member-upgrade.vue

@@ -17,18 +17,18 @@
               <el-input v-model="form.addAt" disabled />
             </el-form-item>
 
-            <el-form-item v-if="!isMax" :label="$t('profile.upgradeWay')">
+            <el-form-item v-if="showProduct && isVipAndStalment" :label="$t('profile.upgradeWay')">
               <el-input v-model="form.upgradeFunc" disabled />
             </el-form-item>
-            <el-form-item v-if="!isMax" prop="upgradeValue" :label="$t('profile.toUpgradeLevel')">
+            <el-form-item v-if="showProduct && isVipAndStalment" prop="upgradeValue" :label="$t('profile.toUpgradeLevel')">
               <el-select v-model="form.upgradeValue" :placeholder="$t('profile.selectLevel')" style="width: 100%;" @change="handleChangeLevel($event)">
                 <el-option v-for="item in upgradeOption" :key="item.ID" :label="item.LEVEL_NAME" :value="{value:item.ID, diffPv:item.REPAIR_PV}" />
               </el-select>
             </el-form-item>
-            <el-form-item v-if="!isMax" :label="$t('profile.topUpBV')">
+            <el-form-item v-if="showProduct && isVipAndStalment" :label="$t('profile.topUpBV')">
               <el-input v-model="needDiffPv" disabled />
             </el-form-item>
-            <el-form-item v-if="!isMax">
+            <el-form-item v-if="showProduct">
               <template slot="label">{{ $t('profile.upgradePurchaseProduct') }}</template>
               <el-tabs v-model="decWay" type="border-card" style="position: relative; width: 100%;">
                 <el-tab-pane :label="$t('shop.product')" name="2">
@@ -71,29 +71,29 @@
                 </el-tab-pane>
               </el-tabs>
             </el-form-item>
-            <el-form-item v-if="!isMax" :label="$t('shop.recipientName')">
+            <el-form-item v-if="showProduct" :label="$t('shop.recipientName')">
               <el-input v-model="form.consignee" />
             </el-form-item>
-            <el-form-item v-if="!isMax" :label="$t('shop.phoneNumber')">
+            <el-form-item v-if="showProduct" :label="$t('shop.phoneNumber')">
               <el-input v-model="form.acceptMobile" />
             </el-form-item>
-            <el-form-item v-if="!isMax" prop="areaSelected" :label="$t('config.state')">
+            <el-form-item v-if="showProduct" prop="areaSelected" :label="$t('config.state')">
               <el-cascader v-model="form.areaSelected" size="large" :options="regionData" style="width: 100%;" />
             </el-form-item>
-            <el-form-item v-if="!isMax" :label="$t('config.localGovernmentArea')">
+            <el-form-item v-if="showProduct" :label="$t('config.localGovernmentArea')">
               <el-input v-model="form.lgaName" />
             </el-form-item>
-            <el-form-item v-if="!isMax" :label="$t('config.city')">
+            <el-form-item v-if="showProduct" :label="$t('config.city')">
               <el-input v-model="form.cityName" />
             </el-form-item>
-            <el-form-item v-if="!isMax" :label="$t('config.detailedAddress')">
+            <el-form-item v-if="showProduct" :label="$t('config.detailedAddress')">
               <el-input v-model="form.address" />
             </el-form-item>
-            <el-form-item v-if="!isMax" :label="$t('common.note')">
+            <el-form-item v-if="showProduct" :label="$t('common.note')">
               <el-input v-model="form.remark" type="textarea" />
             </el-form-item>
 
-            <el-form-item v-if="!isMax" :label="$t('shop.paymentMethod')" required style="padding-left: 0;">
+            <el-form-item v-if="showProduct" :label="$t('shop.paymentMethod')" required style="padding-left: 0;">
               <el-radio-group v-model="form.payType" @change="chosePayType">
                 <el-radio v-for="(item, index) in payList" :key="index" border :label="item.label" style="margin: 5px;">
                   {{ item.name }}<span v-if="item.label === 'cash'" style="color: tomato;">({{ $t('currency.sign') }} {{ userBalance.cash | toThousandFilter }})</span>
@@ -101,7 +101,7 @@
               </el-radio-group>
             </el-form-item>
 
-            <el-form-item v-if="!isMax">
+            <el-form-item v-if="showProduct">
               <el-button size="small" type="primary" :loading="submitButtonStat" @click="onSubmit">{{ $t('common.save') }}</el-button>
             </el-form-item>
           </el-form>
@@ -320,7 +320,11 @@ export default {
         cash: 0
       },
 
-      activeName: 'product'
+      activeName: 'product',
+
+      isStalment: false,
+      showProduct: false,
+      isVipAndStalment: true
     }
   },
   computed: {
@@ -335,14 +339,13 @@ export default {
     }
   },
   created() {
-    this.fetchUpgrade()
   },
   mounted() {
   },
   methods: {
-    fetchUpgrade() {
+    fetchUpgrade(data) {
       this.loading = true
-      fetchUpgrade().then(response => {
+      fetchUpgrade(data).then(response => {
         this.loading = false
 
         this.userBalance = response.data.userBalance
@@ -400,10 +403,33 @@ export default {
         this.form.upgradeFunc = response.data.baseInfo.UPGRADE_FUNC
         this.nowPerf = response.data.baseInfo.NOW_PERF
         this.nextPerf = response.data.baseInfo.NEXT_PERF
+        this.isStalment = response.data.baseInfo.INSTALMENT
+        const data = {
+          isMax: Boolean(this.isMax),
+          userName: this.form.insertUserName
+        }
+        if (this.isMax === true) {
+          if (this.isStalment === true) {
+            this.fetchUpgrade(data)
+            this.toLevel = response.data.baseInfo.DEC_ID
+            this.showProduct = true
+            // isVipAndStalment 等级是vip且有分期商品
+            this.isVipAndStalment = false
+          } else {
+            this.showProduct = false
+            this.isVipAndStalment = true
+            this.tableData = []
+            return false
+          }
+        } else {
+          this.fetchUpgrade(data)
+          this.isVipAndStalment = true
+          this.showProduct = true
+        }
 
-        setTimeout(() => {
-          this.loading = false
-        }, 0.5 * 1000)
+        // setTimeout(() => {
+        //   this.loading = false
+        // }, 0.5 * 1000)
       })
     },
     // 商品详情
@@ -599,8 +625,10 @@ export default {
         cityName: this.form.cityName,
         nowPerf: this.nowPerf,
         nextPerf: this.nextPerf,
-        payType: this.form.payType
+        payType: this.form.payType,
+        isMax: this.isMax
       }
+
       fetchSendUpgrade(params).then(response => {
         if (this.form.payType !== 'pay_stack') {
           // 余额支付