소스 검색

购买页面记录倒计时,并恢复

cuiyalong 5 년 전
부모
커밋
c3e586a860
6개의 변경된 파일36개의 추가작업 그리고 14개의 파일을 삭제
  1. 1 0
      src/utils/globalFilters.ts
  2. 5 6
      src/views/Test.vue
  3. 25 3
      src/views/buy/Buy.vue
  4. 3 3
      src/views/order/detail.vue
  5. 1 1
      src/views/pay/Pay.vue
  6. 1 1
      src/views/pay/PaySuccess.vue

+ 1 - 0
src/utils/globalFilters.ts

@@ -95,6 +95,7 @@ Vue.filter('dateFormatter', function (date, fmt = 'yyyy-MM-dd HH:mm:ss') {
   return fmt
 })
 
+// 金额3位逗号分隔
 Vue.filter('formatNumber', function (s, n = -1, comma = false) {
   if (n !== -1) n = n > 0 && n <= 20 ? n : 2
   const intS = parseInt(s)

+ 5 - 6
src/views/Test.vue

@@ -51,11 +51,7 @@ export default class Test extends Vue {
       subTitle: '',
       urls: [
         {
-          pathName: '我的 -> 我的企业',
-          path: '/ent/list'
-        },
-        {
-          pathName: '百宝箱 -> 推送列表',
+          pathName: '列表页面',
           path: '/home'
         }
       ]
@@ -66,9 +62,12 @@ export default class Test extends Vue {
   confTestArr = [
     {
       title: '开发环境',
-      baseUrl: 'http://192.168.20.216:8080/page',
+      baseUrl: 'http://192.168.20.216:8080/datareport/page',
       subTitle: '20.216',
       urls: [
+        {
+          path: '/home'
+        },
         {
           path: '/test'
         }

+ 25 - 3
src/views/buy/Buy.vue

@@ -67,14 +67,14 @@
           <span class="price-t-label">支付金额:</span>
           <span class="price-t-count-now">
             <span class="cn-l">&yen;</span>
-            <span class="cn-r">{{ orderInfo.price | fen2Yuan }}</span>
+            <span class="cn-r">{{ orderInfo.price | fen2Yuan | formatNumber(-1, true)  }}</span>
           </span>
         </div>
         <div class="price-bottom">
           <span class="price-b-label">原价:</span>
           <span class="price-b-count-o">
             <span class="co-l">&yen;</span>
-            <span class="co-r">{{ orderInfo.before_price | fen2Yuan }}</span>
+            <span class="co-r">{{ orderInfo.before_price | fen2Yuan | formatNumber(-1, true)  }}</span>
           </span>
         </div>
       </div>
@@ -176,6 +176,11 @@ export default class BuyReport extends Vue {
   sendedEmail = false
   emailCodePass = false
 
+  countdown = {
+    count: 0,
+    leaveTimeStamp: 0
+  }
+
   // 错误提示信息
   errorMsg = {
     email: '',
@@ -394,13 +399,29 @@ export default class BuyReport extends Vue {
   recoverState () {
     const buyState = this.buyState()
     if (Object.keys(buyState).length === 0) return false
+    // 恢复数据
     for (const key in buyState) {
       this[key] = buyState[key]
     }
+
+    // 求时间差
+    const tDiff: any = +new Date() - this.countdown.leaveTimeStamp
+    const timeDiff = Math.ceil(tDiff / 1000)
+
+    if (timeDiff < this.countdown.count) {
+      // 恢复倒计时
+      const countdownButton: any = this.$refs.countdownButton
+      countdownButton.startTimer(this.countdown.count - timeDiff)
+    }
     return true
   }
 
   saveState () {
+    // 保存当前秒数
+    const countdownButton: any = this.$refs.countdownButton
+    this.countdown.count = countdownButton.count
+    // 保存当前时间戳
+    this.countdown.leaveTimeStamp = +new Date()
     const pageState = {
       orderInfo: this.orderInfo,
       originInfo: this.originInfo,
@@ -408,7 +429,8 @@ export default class BuyReport extends Vue {
       iAgree: this.iAgree,
       sendedEmail: this.sendedEmail,
       emailCodePass: this.emailCodePass,
-      errorMsg: this.errorMsg
+      errorMsg: this.errorMsg,
+      countdown: this.countdown
     }
     this.saveBuyState(pageState)
   }

+ 3 - 3
src/views/order/detail.vue

@@ -51,7 +51,7 @@
               </span>
               <span class="rp-right">
                 <span class="product-type">数据报告</span>
-                <span class="pay-money">&yen; {{ orderInfo.payMoney }}</span>
+                <span class="pay-money">&yen; {{ orderInfo.payMoney | fen2Yuan | formatNumber(-1, true) }}</span>
               </span>
             </div>
             <div class="j-card product-info">
@@ -108,7 +108,7 @@
                 </div>
                 <div class="j-card-item">
                   <span class="card-item-l">支付金额:</span>
-                  <span class="card-item-r">&yen; {{ orderInfo.payMoney | fen2Yuan }}</span>
+                  <span class="card-item-r">&yen; {{ orderInfo.payMoney | fen2Yuan | formatNumber(-1, true) }}</span>
                 </div>
               </div>
             </div>
@@ -150,7 +150,7 @@ export default class OrderDetail extends Vue {
   protected getOrderDetail!: any
   protected checkInvokeIsOver!: any
 
-  loading = false
+  loading = true
 
   ordercode = ''
 

+ 1 - 1
src/views/pay/Pay.vue

@@ -5,7 +5,7 @@
         <span class="info-text">需支付金额</span>
         <span class="price-count">
           <span class="pc-l">&yen;</span>
-          <span class="pc-r">{{ orderInfo.payMoney | fen2Yuan }}</span>
+          <span class="pc-r">{{ orderInfo.payMoney | fen2Yuan | formatNumber(-1, true) }}</span>
         </span>
       </div>
       <van-radio-group v-model="payWay">

+ 1 - 1
src/views/pay/PaySuccess.vue

@@ -6,7 +6,7 @@
         <span class="pay-text">支付成功</span>
         <span class="pay-count">
           <span class="pc-l">&yen;</span>
-          <span class="pc-r">{{ orderInfo.payMoney | fen2Yuan }}</span>
+          <span class="pc-r">{{ orderInfo.payMoney | fen2Yuan | formatNumber(-1, true)  }}</span>
         </span>
         <p class="pay-text-desc">我们会尽快将数据报告发送至</p>
         <p class="pay-text-desc">{{ orderInfo.email }}</p>