rk
2026-04-28 908b9876dde97acbb09c53dc6debe3eecbb9d1b4
small-program/pages/itinerary/itinerary.vue
@@ -14,7 +14,7 @@
                     :key="item.value"
                     class="filter-tab"
                     :class="{ active: activeTab === item.value }"
                     @tap="activeTab = item.value"
                     @click="changeTab(item) "
                  >
                     {{ item.label }}
                  </view>
@@ -33,9 +33,15 @@
                        <text class="head-name text-ellipsis">{{ item.depositShopName||'' }}</text>
                        <text class="head-user">{{ item.takeUser ||'' }}</text>
                     </view>
                     <text v-if="item.status < 7" class=" status-text status-orange">{{ item.statusName||'' }}</text>
                     <text v-else-if="item.status ===7" class=" status-text  status-grey">{{ item.statusName||'' }}</text>
                     <text v-else-if="item.status >7" class=" status-text status-grey">{{ item.statusName||'' }}</text>
                     <view style="display: flex;flex-direction: column;">
                        <text v-if="item.status ===5 && item.overdueStatus ===1 "  class="status-text" style="color: red;">超时未取件</text>
                        <text v-else-if="item.status ===5 && item.overdueStatus ===3 "  class="status-text" style="color: red;">超时到店取件</text>
                        <text v-else-if="item.status < 7" class=" status-text status-orange">{{ item.statusName||'' }}</text>
                        <text v-else-if="item.status ===7" class=" status-text  status-grey">{{ item.statusName||'' }}</text>
                        <text v-else class=" status-text status-grey">{{ item.statusName||'' }}</text>
                        <text v-if="item.status ===5 && item.overdueStatus ===1 "  class="status-text" style="color: red;font-size: 24rpx;">逾期费用¥{{((item.overdueFee || 0)/100).toFixed(2)}}</text>
                        <text v-if="item.status ===5 && item.overdueStatus ===3 "  class="status-text" style="color: red;font-size: 24rpx;">逾期费用¥{{((item.overdueFee || 0)/100).toFixed(2)}}</text>
                     </view>
                  </view>   
                  <view v-else class="head-city">
                     <view class="head-copy city-left">
@@ -48,9 +54,15 @@
                        <view class="arrow-head"></view>
                     </view>
                     <view class="head-copy city-right align-right">
                        <text v-if="item.status < 7" class=" status-text status-orange">{{ item.statusName||'' }}</text>
                        <text v-else-if="item.status ===7" class="status-text  status-grey" >{{ item.statusName||'' }}</text>
                        <text v-else-if="item.status >7" class=" status-text status-grey">{{ item.statusName||'' }}</text>
                        <view style="display: flex;flex-direction: column;">
                           <text v-if="item.status ===5 && item.overdueStatus ===1 "  class="status-text" style="color: red;">超时未取件</text>
                           <text v-else-if="item.status ===5 && item.overdueStatus ===3 "  class="status-text" style="color: red;">超时到店取件</text>
                           <text v-else-if="item.status < 7" class=" status-text status-orange">{{ item.statusName||'' }}</text>
                           <text v-else-if="item.status ===7" class=" status-text  status-grey">{{ item.statusName||'' }}</text>
                           <text v-else class=" status-text status-grey">{{ item.statusName||'' }}</text>
                           <text v-if="item.status ===5 && item.overdueStatus ===1 "  class="status-text" style="color: red;font-size: 24rpx;">逾期费用¥{{((item.overdueFee || 0)/100).toFixed(2)}}</text>
                           <text v-if="item.status ===5 && item.overdueStatus ===3 "  class="status-text" style="color: red;font-size: 24rpx;">逾期费用¥{{((item.overdueFee || 0)/100).toFixed(2)}}</text>
                        </view>
                        <text class="head-name text-ellipsis">{{ item.takeShopName || item.takeLocation||'' }}</text>
                        <text class="head-user">{{ item.takeUser||'' }}</text>
                     </view>
@@ -92,6 +104,7 @@
                      <view class="footer-btn contact-btn" v-if="item.status ===0 || item.status ===1"  @click="cancelOrder(item)">取消订单</view>
                     <view class="footer-btn contact-btn" @click="deleteOrder(item)" v-if="item.status ===7 || item.status===96 || item.status == 99">删除订单</view>
                     <view class="footer-btn primary-btn"  @click="payOrder(item)" v-if="item.status ===0">立即支付</view>
                     <view class="footer-btn primary-btn" @click="payOrderFee(item)" v-if="item.status ===5 && item.overdueStatus===3 ">立即支付</view>
                     <view class="footer-btn primary-btn" v-if="item.status >=1 &&item.status <7 " @click="openQrcode(item)" >核销码</view>
                     <view class="footer-btn primary-btn" @click="evaluateOrder(item)" v-if="item.status ===7 && !item.commentStatus ">评价订单</view>
                  </view>
@@ -99,8 +112,9 @@
                     <view class="footer-btn contact-btn" @click="contactPhone(item,0)" v-if="item.status ===1 || item.status ==2">联系门店</view> 
                     <view class="footer-btn contact-btn" @click="contactPhone(item,2)" v-if="item.status ===3 || item.status ===4 ">联系骑手</view>
                     <view class="footer-btn contact-btn" @click="contactPhone(item,1)" v-if="item.status ===5">联系门店</view>
                        <view class="footer-btn contact-btn" v-if="item.status ===0"  @click="cancelOrder(item)">取消订单</view>
                        <view class="footer-btn primary-btn" @click="payOrder(item)" v-if="item.status ===0">立即支付</view>
                     <view class="footer-btn contact-btn" v-if="item.status ===0"  @click="cancelOrder(item)">取消订单</view>
                     <view class="footer-btn primary-btn" @click="payOrder(item)" v-if="item.status ===0">立即支付</view>
                     <view class="footer-btn primary-btn" @click="payOrderFee(item)" v-if="item.status ===5 && item.overdueStatus===3 ">立即支付</view>
                     <view class="footer-btn contact-btn" @click="deleteOrder(item)" v-if="item.status ===7 || item.status===96 || item.status == 99">删除订单</view>
                     <view class="footer-btn primary-btn" @click="cancelOrder(item)" v-if="item.status ===1">申请退款</view>
                     <view class="footer-btn primary-btn" v-if="item.status ===1 || (item.takeShopId && item.status ===5)" @click="openQrcode(item)" >核销码</view>
@@ -192,7 +206,7 @@
                  <image class="qrcode-image" :src="qrcodeImage" mode="widthFix"></image>
               </view>
               <text class="pickup-code">{{ currentOrder.memberVerifyCode||'' }}</text>
               <text class="pickup-tip" @tap="copyCode">点击复制自提码</text>
               <text class="pickup-tip" @tap="copyCode">点击复制核销码</text>
            </view>
         </view>
      </u-popup>
@@ -235,22 +249,22 @@
               { label: '待配送', value: 2 },
               { label: '待收货', value: 3},
               { label: '已完成', value: 4},
               { label: '已退款', value: 5}
               { label: '已取消', value: 5}
            ],
            dataList: []
         }
      },
      watch: {
         activeTab() {
           this.getFirstPageData()
         }
      },
      // watch: {
      //    activeTab() {
      //      this.getFirstPageData()
      //    }
      // },
      onLoad(options) {
         console.log(options )
         this.activeTab = -1
         if (options.status != null && options.status != undefined) {
         /* if (options.status != null && options.status != undefined) {
            this.activeTab =  Number(options.status)
         }
         } */
         var that =this
         uni.$on('updateOrder',function(data){
            console.log('监听到事件来自 update ,携带参数 msg 为:' ,data);
@@ -271,6 +285,8 @@
          })
      },
      onShow() {
         this.activeTab = -1
         this.showDone=false
         this.showCancel=false
         this.showDelete=false
@@ -283,16 +299,59 @@
         this.linkItem={title:'',linkname:'',linkphone:''}
         var orderStatus = uni.getStorageSync("orderStatus");
         console.log(orderStatus,"==================")
         if (orderStatus != null &&orderStatus != undefined) {
            this.activeTab =  Number(orderStatus)
         if (orderStatus != null &&orderStatus != undefined ) {
            if( Number(orderStatus) === -2){
               this.activeTab = 0
            } else{
               this.activeTab =  Number(orderStatus)
            }
         }
         uni.clearStorageSync("orderStatus")
         // this.getFirstPageData()
         this.getFirstPageData()
      },
      onReachBottom(){
         this.getDataList();
      },
      methods: {
         changeTab(item){
             this.activeTab = item.value
             this.getFirstPageData()
         },
         payOrderFee(info){
            var that = this;
            uni.showLoading({ title: '发起支付中...', mask: true })
            this.$u.api.payOverdueFee({
               orderId: info.id
            }).then(res => {
               uni.hideLoading()
               if (res.code === 200 && res.data) {
                  let paymentData = res.data.response
                  uni.requestPayment({
                     provider: 'wxpay',
                     timeStamp: paymentData.timeStamp || '',
                     nonceStr: paymentData.nonceStr || '',
                     package: paymentData.package || '',
                     signType: paymentData.signType || 'MD5',
                     paySign: paymentData.paySign || '',
                     success: (res) => {
                        that.getFirstPageData()
                     },
                     fail: (err) => {
                        if (err.errMsg.includes('cancel')) {
                           uni.showToast({ title: '已取消支付', icon: 'none' })
                        } else {
                           uni.showToast({ title: '支付失败', icon: 'none' })
                        }
                     }
                  })
               } else {
                  uni.showToast({ title: res.msg || '支付失败', icon: 'none' })
               }
            }).catch(err => {
               uni.hideLoading()
               uni.showToast({ title: '支付失败', icon: 'none' })
            })
         },
         payOrder(item){
            var that = this;
            uni.showLoading({ title: '发起支付中...', mask: true })
@@ -419,7 +478,7 @@
               data: this.currentOrder.memberVerifyCode,
               success: () => {
                  uni.showToast({
                     title: '已复制自提码',
                     title: '已复制核销码',
                     icon: 'none'
                  })
               }
@@ -820,6 +879,7 @@
      color: #8C939F;
   }
   .price-line{
      padding: 0 30rpx;
      box-sizing: border-box;
      display: flex;
      align-items: flex-end;