xuxueyang
2024-08-13 a4ea10b61135956b23a0a44ddd4620c6ee9b9c02
pages/order/order.vue
@@ -1,11 +1,13 @@
<script>
   export default {
      data() {
         return {
            type: 'customer',
            query: {
               status: '',
            },
            timer: undefined,
            status: [{
                  name: '全部',
                  value: ''
@@ -37,10 +39,50 @@
            ]
         };
      },
      onLoad(options) {
      onUnload() {
         this.timer && clearTimeout(this.timer)
      },
      async onLoad(options) {
         this.query.status = options.status || ''
         this.listApi = `/api/customer/order/list`
         this.getList()
         await this.getList()
         this.timer = setInterval(() => {
            //倒计时
            var nowdate = new Date().getTime() - 1000 * 60 * 5
            var change = false
            for (var item of this.list) {
               if (item.statusBackend === 'PENDING') {
                  //计算倒计时
                  var diff = new Date(item.createTime).getTime() - nowdate
                  // console.log('diff', diff, item)
                  if (diff <= 2000 && true) {
                     //超过了5分钟
                     item.statusBackend = 'CANCEL'
                     item.statusBackend = '已取消'
                     item.status = 'CANCEL'
                     item.statusStr = '已取消'
                     item.bctime = ''
                     change = true
                  } else {
                     //相差
                     var alltime = parseInt(diff / 1000)
                     var tt = 0
                     if (alltime > 60) {
                        tt = alltime - parseInt(alltime / 60) * 60
                     } else {
                        tt = alltime
                     }
                     item.bctime = `0${parseInt(alltime / 60)}:${tt<10?'0':''}${tt}`
                     change = true
                  }
               }
            }
            if (change)
               this.$forceUpdate()
         }, 1000)
      },
      onReachBottom() {
         this.getMore()
@@ -277,7 +319,7 @@
                  <view class="value">{{ dto.deliveryName }}</view>
               </view>
            </view>
            <view class="desc flex" v-if="dto.statusBackend!=='PENDING'&&dto.statusBackend!=='CANCEL'">
               <view class="label">
                  支付时间:
@@ -340,7 +382,7 @@
               <view class="button button-0 m-l-a m-r-15" v-if="dto.statusBackend==='PENDING'"
                  @click="buttonClick(dto,'cancelOrder')">取消订单</view>
               <view class="button button-1 m-l-15 m-r-15" v-if="dto.statusBackend==='PENDING'"
                  @click="buttonClick(dto,'payAgain')">重新支付</view>
                  @click="buttonClick(dto,'payAgain')">重新支付<span v-if="dto.bctime">({{dto.bctime}})</span></view>
               <view class="button button-0 m-l-a m-r-15" @click="buttonClick(dto,'refund')"
                  v-if="dto.couldRefund">