MrShi
11 小时以前 00a7a61df86db969f2ba61c508d02ba4709ce3d4
small-program/pages/itinerary/itinerary.vue
@@ -10,18 +10,15 @@
            <view class="top-search">
               <view class="searchbox">
                  <u-icon name="search" color="#999999" size="28"></u-icon>
                  <input class="search-input" v-model="keyword" @confirm="getFirstPageData" type="text" placeholder="输入姓名、电话、订单编号搜索">
                  <input class="search-input" v-model="keyword" @confirm="getFirstPageData" type="text"
                     placeholder="输入姓名、电话、订单编号搜索">
               </view>
            </view>
            <scroll-view scroll-x class="tabs-row page-padding" style="padding: 0 0 0 30rpx !important;" show-scrollbar="false">
            <scroll-view scroll-x class="tabs-row page-padding" style="padding: 0 0 0 30rpx !important;"
               show-scrollbar="false">
               <view class="tabs-inner">
                  <view
                     v-for="item in filterTabs"
                     :key="item.value"
                     class="filter-tab"
                     :class="{ active: activeTab === item.value }"
                     @click="changeTab(item) "
                  >
                  <view v-for="item in filterTabs" :key="item.value" class="filter-tab"
                     :class="{ active: activeTab === item.value }" @click="changeTab(item) ">
                     {{ item.label }}
                  </view>
               </view>
@@ -32,7 +29,8 @@
      <view class="content-wrap">
         <view class="page-padding card-list">
            <view v-for="(item, index) in dataList" :key="item.id" class="order-card">
               <view class="order-head" :class="item.mode === 'city' ? 'city-head-bg' : 'local-head-bg'"  @click="jumpOrderDetail(item.id)">
               <view class="order-head" :class="item.mode === 'city' ? 'city-head-bg' : 'local-head-bg'"
                  @click="jumpOrderDetail(item.id)">
                  <view v-if="item.type === 0" class="head-local">
                     <view class="mode-tag local-tag">就地寄存</view>
                     <view class="head-copy single-copy">
@@ -40,15 +38,21 @@
                        <text class="head-user">{{ item.takeUser ||'' }}</text>
                     </view>
                     <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>
                        <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>
                  <view v-else class="head-city">
                     <view class="head-copy city-left">
                        <view class="mode-tag city-tag">同城寄送</view>
@@ -61,15 +65,22 @@
                     </view>
                     <view class="head-copy city-right align-right">
                        <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>
                           <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-name text-ellipsis">{{ item.takeShopName || item.takeLocation||'' }}</text>
                        <text class="head-user">{{ item.takeUser||'' }}</text>
                     </view>
                  </view>
@@ -86,7 +97,7 @@
                     </view>
                  </view>
               </view>
               <view  class="price-line" >
               <view class="price-line">
                  <view class="pickup-wrap" v-if="item.expectedTakeTime">
                     <text class="pickup-label">预计取件时间:</text>
                     <text class="pickup-value">{{ item.expectedTakeTime ||'' }}</text>
@@ -95,7 +106,8 @@
                  <view class="amount-area">
                     <view class="pay-row">
                        <text class="pay-label">实付款:</text>
                        <text class="pay-value">{{(((item.estimatedAmount || 0) - (item.deductionAmount || 0)) / 100).toFixed(2) }}</text>
                        <text
                           class="pay-value">{{(((item.estimatedAmount || 0) - (item.deductionAmount || 0)) / 100).toFixed(2) }}</text>
                     </view>
                     <view class="insurance-row">
                        <text class="insurance-label">含行李保费:</text>
@@ -107,26 +119,47 @@
               <view class="card-footer">
                  <view class="footer-actions" v-if="item.type===0">
                     <view class="footer-btn contact-btn" @click="contactPhone(item,0)" v-if="item.status ===1 ||item.status ===5 || item.status==2 || item.status===98">联系门店</view>
                      <view class="footer-btn contact-btn" v-if="[0,1].includes(item.status) && item.abnormalOrder !== 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 class="footer-btn contact-btn" @click="contactPhone(item,0)"
                        v-if="item.status ===1 ||item.status ===5 || item.status==2 || item.status===98">联系门店
                     </view>
                     <view class="footer-btn contact-btn"
                        v-if="[0,1].includes(item.status) && item.abnormalOrder !== 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>
                  <view class="footer-actions" v-else>
                     <view class="footer-btn contact-btn" @click="contactPhone(item,0)" v-if="(item.status ===1 || item.status ==2) && item.takeShopId">联系门店</view>
                     <view class="footer-btn contact-btn" @click="contactPhone(item,2)" v-if="[3,4,5].includes(item.status) && !item.takeShopId">联系骑手</view>
                     <view class="footer-btn contact-btn" @click="contactPhone(item,1)" v-if="item.status ===5 && item.takeShopId">联系门店</view>
                     <view class="footer-btn contact-btn" v-if="[0,1,2].includes(item.status)"  @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>
                     <view class="footer-btn primary-btn"  @click="doneOrder(item)"  v-if="!item.takeShopId && item.status ===5">确认收货</view>
                     <view class="footer-btn primary-btn"  @click="evaluateOrder(item)" v-if="item.status ===7 && !item.commentStatus ">评价订单</view>
                     <view class="footer-btn contact-btn" @click="contactPhone(item,0)"
                        v-if="(item.status ===1 || item.status ==2) && item.takeShopId">联系门店</view>
                     <view class="footer-btn contact-btn" @click="contactPhone(item,2)"
                        v-if="[3,4,5].includes(item.status) && !item.takeShopId">联系骑手</view>
                     <view class="footer-btn contact-btn" @click="contactPhone(item,1)"
                        v-if="item.status ===5 && item.takeShopId">联系门店</view>
                     <view class="footer-btn contact-btn" v-if="[0].includes(item.status)"
                        @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.abnormalOrder === 0 && [1,2].includes(item.status)">申请退款
                     </view>
                     <view class="footer-btn primary-btn"
                        v-if="item.status ===1 || (item.takeShopId && item.status ===5)"
                        @click="openQrcode(item)">核销码</view>
                     <view class="footer-btn primary-btn" @click="doneOrder(item)"
                        v-if="!item.takeShopId && item.status ===5">确认收货</view>
                     <view class="footer-btn primary-btn" @click="evaluateOrder(item)"
                        v-if="item.status ===7 && !item.commentStatus ">评价订单</view>
                  </view>
               </view>
            </view>
@@ -136,11 +169,12 @@
            <view v-else-if="!hasNext && !dataList.length" class="loading-text">暂无数据</view>
         </view>
      </view>
      <u-popup :show="showPhone" round="15" mode="bottom" :safeAreaInsetBottom="true"  @close="contactPhone()" :closeable="true" :closeOnClickOverlay="true">
      <u-popup :show="showPhone" round="15" mode="bottom" :safeAreaInsetBottom="true" @close="contactPhone()"
         :closeable="true" :closeOnClickOverlay="true">
         <view class="phone">
            <view class="phone-head">
               <view></view>
               <text>{{linkItem.title}}</text>
               <text>{{linkItem.title}}</text>
            </view>
            <!-- <view class="phone-item">
               <view>
@@ -149,14 +183,14 @@
               </view>
                <view class="line" v-if="serverPhone && serverPhone.length"></view>
            </view> -->
             <view class="phone-item" >
                <view @click="contactPhoneDo()">
                  <image src="/static/icon/ic_call@2x.png" mode="widthFix"  ></image>
                  <text  >{{linkItem.linkname||''}} </text>
                  <text  style="margin-left: 10px;"> {{linkItem.linkphone||''}}</text>
               </view>
             </view>
             <view style="width: 100%; height: 30rpx;"></view>
            <view class="phone-item">
               <view @click="contactPhoneDo()">
                  <image src="/static/icon/ic_call@2x.png" mode="widthFix"></image>
                  <text>{{linkItem.linkname||''}} </text>
                  <text style="margin-left: 10px;"> {{linkItem.linkphone||''}}</text>
               </view>
            </view>
            <view style="width: 100%; height: 30rpx;"></view>
            <!-- <view class="phone-botton"  @click="contactPhone()" >关闭</view> -->
         </view>
      </u-popup>
@@ -204,28 +238,41 @@
            </view>
         </view>
      </u-popup>
      <u-popup :show="showQrcode" round="15" @close="openQrcode()"   :safeAreaInsetBottom="false" mode="bottom"  :closeable="true" :closeOnClickOverlay="false">
      <u-popup :show="showQrcode" round="15" @close="openQrcode()" :safeAreaInsetBottom="false" mode="bottom"
         :closeable="true" :closeOnClickOverlay="false">
         <view class="tc" style="height: auto;width: 100%; ">
            <view class="tc-contemt" style="text-align: center;">
               <view  style="margin-bottom: 30rpx;">
               <view style="margin-bottom: 30rpx;">
                  <text class="pickup-code" style="font-size: 48rpx;">行李编号:{{ currentOrder.sortnum||'' }}</text>
                  <view class="pickup-code" style="margin-left: 60rpx;font-size: 28rpx;text-align: left;font-weight: normal;">用户:{{currentOrder.takeUser||''}}({{currentOrder.takePhone||''}})</view>
                  <view class="pickup-code" style="margin-left: 60rpx;font-size: 28rpx;text-align: left;font-weight: normal;" v-if="currentOrder.type === 1">门店:{{ currentOrder.status === 1 ? currentOrder.depositShopName||'' : currentOrder.status === 5 ? currentOrder.takeShopName||'' : ''}}</view>
                  <view class="pickup-code" style="margin-left: 60rpx;font-size: 28rpx;text-align: left;font-weight: normal;" v-else>门店:{{ currentOrder.depositShopName||'' }}</view>
                  <view class="item-form-list" style="align-items:baseline;" v-if="currentOrder && currentOrder.orderImages && currentOrder.orderImages.length">
                     <view class="item-form-list-row" v-for="(item,index) in currentOrder.orderImages" key="item">
                        <image :src="item" mode="widthFix" @click="previewImage(currentOrder.orderImages,index)"  ></image>
                     </view>
                  <view class="pickup-code"
                     style="margin-left: 60rpx;font-size: 28rpx;text-align: left;font-weight: normal;">
                     用户:{{currentOrder.takeUser||''}}({{currentOrder.takePhone||''}})</view>
                  <view class="pickup-code"
                     style="margin-left: 60rpx;font-size: 28rpx;text-align: left;font-weight: normal;"
                     v-if="currentOrder.type === 1">
                     门店:{{ currentOrder.status === 1 ? currentOrder.depositShopName||'' : currentOrder.status === 5 ? currentOrder.takeShopName||'' : ''}}
                  </view>
                  <view class="pickup-code"
                     style="margin-left: 60rpx;font-size: 28rpx;text-align: left;font-weight: normal;" v-else>
                     门店:{{ currentOrder.depositShopName||'' }}</view>
                  <view class="item-form-list" style="align-items:baseline;"
                     v-if="currentOrder && currentOrder.orderImages && currentOrder.orderImages.length">
                     <view class="item-form-list-row" v-for="(item,index) in currentOrder.orderImages"
                        key="item">
                        <image :src="item" mode="widthFix"
                           @click="previewImage(currentOrder.orderImages,index)"></image>
                     </view>
                  </view>
               </view>
               <view class="qrcode-box">
                  <canvas canvas-id="qrcodeCanvas" id="qrcodeCanvas" style="width: 100px; height: 100px; position: fixed; top: -100%; left: -100%; z-index: -1;"></canvas>
                  <canvas canvas-id="qrcodeCanvas" id="qrcodeCanvas"
                     style="width: 100px; height: 100px; position: fixed; top: -100%; left: -100%; z-index: -1;"></canvas>
                  <image class="qrcode-image" :src="qrcodeImage" mode="widthFix"></image>
               </view>
               <text class="pickup-code">核销码:{{ currentOrder.memberVerifyCode||'' }}</text>
               <text class="pickup-tip" @tap="copyCode">点击复制核销码</text>
            </view>
         </view>
      </u-popup>
      <custom-tabbar></custom-tabbar>
@@ -233,7 +280,9 @@
</template>
<script>
   import { mapState } from 'vuex'
   import {
      mapState
   } from 'vuex'
   import CustomTabbar from '@/components/custom-tabbar/custom-tabbar.vue'
   import drawQrcode from 'weapp-qrcode'
   export default {
@@ -243,32 +292,56 @@
      data() {
         return {
            activeTab: -1,
            loading:false,
            loading: false,
            pageSize: 10,
            currentPage: 1,
            showDone:false,
            showCancel:false,
            showDelete:false,
            showQrcode:false,
            showPay:false,
            showPhone:false,
            total:0,
            hasNext:true,
            keyword:'',
            showDone: false,
            showCancel: false,
            showDelete: false,
            showQrcode: false,
            showPay: false,
            showPhone: false,
            total: 0,
            hasNext: true,
            keyword: '',
            userType: 0,
            qrcodeImage:null,
            qrcodeImage: null,
            isLoadingMore: false,
            currentOrder:null,
            contanctType:0,
            linkItem:{title:'',linkname:'',linkphone:''},
            filterTabs: [
               { label: '全部'  ,value: -1},
               { label: '待支付',value: 0 },
               { label: '待核验', value: 1},
               { label: '待配送', value: 2 },
               { label: '待收货', value: 3},
               { label: '已完成', value: 4},
               { label: '已取消', value: 5}
            currentOrder: null,
            contanctType: 0,
            linkItem: {
               title: '',
               linkname: '',
               linkphone: ''
            },
            filterTabs: [{
                  label: '全部',
                  value: -1
               },
               {
                  label: '待支付',
                  value: 0
               },
               {
                  label: '待核验',
                  value: 1
               },
               {
                  label: '待配送',
                  value: 2
               },
               {
                  label: '待收货',
                  value: 3
               },
               {
                  label: '已完成',
                  value: 4
               },
               {
                  label: '已取消',
                  value: 5
               }
            ],
            dataList: []
         }
@@ -279,66 +352,99 @@
      //    }
      // },
      onLoad(options) {
         console.log(options )
         console.log(options)
         this.activeTab = -1
         /* if (options.status != null && options.status != undefined) {
            this.activeTab =  Number(options.status)
         } */
         this.getFirstPageData()
         var that =this
         uni.$on('updateOrder',function(data){
            console.log('监听到事件来自 update ,携带参数 msg 为:' ,data);
            if(data.delete == 1){
         var that = this
         uni.$on('updateOrder', function(data) {
            console.log('监听到事件来自 update ,携带参数 msg 为:', data);
            if (data.delete == 1) {
               //删除订单,强制刷新数据
               that.getFirstPageData()
            }else if(data.info!=null && data.info.orderId!=null){
                 console.log('监听到事件来自 update 01:' ,data);
               that.dataList.forEach((item,index)=>{
                  if(item.id==data.info.orderId){
                      console.log('监听到事件来自 update 02:' ,data);
            } else if (data.info != null && data.info.orderId != null) {
               console.log('监听到事件来自 update 01:', data);
               that.dataList.forEach((item, index) => {
                  if (item.id == data.info.orderId) {
                     console.log('监听到事件来自 update 02:', data);
                     item.status = data.info.orderStatus
                     item.commentStatus = data.info.commentStatus
                  }
               })
               })
            }
          })
          uni.$on('shuaxin', (orderStatus) => {
         })
         // uni.$on('shuaxin', (orderStatus) => {
         // this.activeTab = -1
         // this.showDone=false
         // this.showCancel=false
         // this.showDelete=false
         // this.showQrcode=false
         // this.showPay=false
         // this.contanctType =0
         // this.showPhone=false
         // this.loading=false
         // this.currentOrder=null
         // this.linkItem={title:'',linkname:'',linkphone:''}
         // if( Number(orderStatus) === -2){
         //    this.activeTab = 0
         // } else if( Number(orderStatus) !== 0 ){
         //    this.activeTab =  Number(orderStatus)
         // }
         // this.getFirstPageData()
         // })
      },
      onShow() {
         const status = uni.getStorageSync('orderStatus');
         if (String(status) !== '') {
            this.activeTab = -1
            this.showDone=false
            this.showCancel=false
            this.showDelete=false
            this.showQrcode=false
            this.showPay=false
            this.contanctType =0
            this.showPhone=false
            this.loading=false
            this.currentOrder=null
            this.linkItem={title:'',linkname:'',linkphone:''}
            if( Number(orderStatus) === -2){
            this.showDone = false
            this.showCancel = false
            this.showDelete = false
            this.showQrcode = false
            this.showPay = false
            this.contanctType = 0
            this.showPhone = false
            this.loading = false
            this.currentOrder = null
            this.linkItem = {
               title: '',
               linkname: '',
               linkphone: ''
            }
            if (Number(status) === -2) {
               this.activeTab = 0
            } else if( Number(orderStatus) !== 0 ){
               this.activeTab =  Number(orderStatus)
            } else if (Number(status) !== 0) {
               this.activeTab = Number(status)
            }
            this.getFirstPageData()
          })
            uni.removeStorageSync('orderStatus');
         } else {
            if (this.currentPage === 1) {
               this.getFirstPageData()
            }
         }
      },
      onReachBottom(){
      onReachBottom() {
         this.getDataList();
      },
      methods: {
         previewImage(images,index = 0) {
         previewImage(images, index = 0) {
            uni.previewImage({
               current: index,
               urls: images
               current: index,
               urls: images
            });
         },
         changeTab(item){
             this.activeTab = item.value
             this.getFirstPageData()
         changeTab(item) {
            this.activeTab = item.value
            this.getFirstPageData()
         },
         payOrderFee(info){
         payOrderFee(info) {
            var that = this;
            uni.showLoading({ title: '发起支付中...', mask: true })
            uni.showLoading({
               title: '发起支付中...',
               mask: true
            })
            this.$u.api.payOverdueFee({
               orderId: info.id
            }).then(res => {
@@ -357,23 +463,38 @@
                     },
                     fail: (err) => {
                        if (err.errMsg.includes('cancel')) {
                           uni.showToast({ title: '已取消支付', icon: 'none' })
                           uni.showToast({
                              title: '已取消支付',
                              icon: 'none'
                           })
                        } else {
                           uni.showToast({ title: '支付失败', icon: 'none' })
                           uni.showToast({
                              title: '支付失败',
                              icon: 'none'
                           })
                        }
                     }
                  })
               } else {
                  uni.showToast({ title: res.msg || '支付失败', icon: 'none' })
                  uni.showToast({
                     title: res.msg || '支付失败',
                     icon: 'none'
                  })
               }
            }).catch(err => {
               uni.hideLoading()
               uni.showToast({ title: '支付失败', icon: 'none' })
               uni.showToast({
                  title: '支付失败',
                  icon: 'none'
               })
            })
         },
         payOrder(item){
         payOrder(item) {
            var that = this;
            uni.showLoading({ title: '发起支付中...', mask: true })
            uni.showLoading({
               title: '发起支付中...',
               mask: true
            })
            this.$u.api.continuePayOrder({
               orderId: item.id
            }).then(res => {
@@ -392,102 +513,136 @@
                     },
                     fail: (err) => {
                        if (err.errMsg.includes('cancel')) {
                           uni.showToast({ title: '已取消支付', icon: 'none' })
                           uni.showToast({
                              title: '已取消支付',
                              icon: 'none'
                           })
                        } else {
                           uni.showToast({ title: '支付失败', icon: 'none' })
                           uni.showToast({
                              title: '支付失败',
                              icon: 'none'
                           })
                        }
                     }
                  })
               } else {
                  uni.showToast({ title: res.msg || '支付失败', icon: 'none' })
                  uni.showToast({
                     title: res.msg || '支付失败',
                     icon: 'none'
                  })
               }
            }).catch(err => {
               uni.hideLoading()
               uni.showToast({ title: '支付失败', icon: 'none' })
               uni.showToast({
                  title: '支付失败',
                  icon: 'none'
               })
            })
         },
         doneOrder(item){
         doneOrder(item) {
            this.currentOrder = null
            this.showDone = !this.showDone
            if(this.showDone){
            if (this.showDone) {
               this.currentOrder = item
            }
         },
         async  doneOrderDo(){
            if(this.userType == 1 || this.currentOrder==null || this.currentOrder.id == null) {
         async doneOrderDo() {
            if (this.userType == 1 || this.currentOrder == null || this.currentOrder.id == null) {
               return
            }
            var that =this
            let res = await this.$u.api.confirmReceipt({ orderId: this.currentOrder.id  });
            if (res.code === 200 ) {
            var that = this
            let res = await this.$u.api.confirmReceipt({
               orderId: this.currentOrder.id
            });
            if (res.code === 200) {
               that.showDone = false
               that.getFirstPageData()
               that.showDone()
            }
         },
         contactPhone(item,type){
             this.showPhone = !this.showPhone
            this.linkItem = {title:'',linkname:'',linkphone:''}
             console.log("==================================",this.showPhone)
             if(!item){
                return
             }
            if(type == 0){
               this.linkItem = {title:'联系门店',linkname:item.depositShopName,linkphone:item.depositShopPhone}
            }else if(type ==2){
               this.linkItem = {title:'联系骑手',linkname:item.driverName,linkphone:item.driverPhone}
            }else if(type ==1){
               this.linkItem = {title:'联系门店',linkname:item.takeShopName,linkphone:item.takeShopPhone}
            }
         },
         contactPhoneDo(){
            if(this.linkItem.linkphone !=null && this.linkItem.linkphone!=''){
         contactPhone(item, type) {
            this.showPhone = !this.showPhone
            this.linkItem = {
               title: '',
               linkname: '',
               linkphone: ''
            }
            console.log("==================================", this.showPhone)
            if (!item) {
               return
            }
            if (type == 0) {
               this.linkItem = {
                  title: '联系门店',
                  linkname: item.depositShopName,
                  linkphone: item.depositShopPhone
               }
            } else if (type == 2) {
               this.linkItem = {
                  title: '联系骑手',
                  linkname: item.driverName,
                  linkphone: item.driverPhone
               }
            } else if (type == 1) {
               this.linkItem = {
                  title: '联系门店',
                  linkname: item.takeShopName,
                  linkphone: item.takeShopPhone
               }
            }
         },
         contactPhoneDo() {
            if (this.linkItem.linkphone != null && this.linkItem.linkphone != '') {
               uni.makePhoneCall({
                  phoneNumber: this.linkItem.linkphone
                  phoneNumber: this.linkItem.linkphone
               })
            }
         },
         cancelOrder(item){
         cancelOrder(item) {
            this.currentOrder = null
            this.showCancel = !this.showCancel
            if(this.showCancel){
            if (this.showCancel) {
               this.currentOrder = item
            }
         },
         deleteOrder(item){
         deleteOrder(item) {
            this.currentOrder = null
            this.showDelete = !this.showDelete
            if(this.showDelete){
            if (this.showDelete) {
               this.currentOrder = item
            }
         },
         async cancelOrderDo(){
            if( this.currentOrder==null || this.currentOrder.id == null) {
         async cancelOrderDo() {
            if (this.currentOrder == null || this.currentOrder.id == null) {
               return
            }
               var that =this
            let res = await that.$u.api.cancelOrder({ orderId: this.currentOrder.id  });
            if (res.code === 200 ) {
            var that = this
            let res = await that.$u.api.cancelOrder({
               orderId: this.currentOrder.id
            });
            if (res.code === 200) {
               this.showCancel = false
               //修改订单状态
               this.dataList.forEach(item=>{
                  if(item.id==this.currentOrder.id){
               this.dataList.forEach(item => {
                  if (item.id == this.currentOrder.id) {
                     item.status = 4
                  }
               })
               })
               that.getFirstPageData()
            }
            }
         },
         async deleteOrderDo(){
            if( this.currentOrder==null || this.currentOrder.id == null) {
         async deleteOrderDo() {
            if (this.currentOrder == null || this.currentOrder.id == null) {
               return
            }
            var that =this
            let res = await that.$u.api.deleteOrder({ orderId: this.currentOrder.id  });
            if (res.code === 200 ) {
            var that = this
            let res = await that.$u.api.deleteOrder({
               orderId: this.currentOrder.id
            });
            if (res.code === 200) {
               this.showDelete = false
               this.getFirstPageData()
            }
            }
         },
         copyCode() {
            if (!this.currentOrder || !this.currentOrder.memberVerifyCode) {
@@ -503,12 +658,12 @@
               }
            })
         },
         async openQrcode(item){
         async openQrcode(item) {
            this.currentOrder = null
            this.qrcodeImage=null
            var that =this
            if(!this.showQrcode){
               this.showQrcode =true
            this.qrcodeImage = null
            var that = this
            if (!this.showQrcode) {
               this.showQrcode = true
               this.currentOrder = item
               drawQrcode({
                  canvasId: 'qrcodeCanvas',
@@ -525,61 +680,61 @@
                     }
                  }, this)
               }, 100)
            }else{
            } else {
               this.showQrcode = false
            }
         },
         getFirstPageData(){
         getFirstPageData() {
            this.currentPage = 0
            this.hasNext=true
            this.total=0
            this.dataList=[]
            this.hasNext = true
            this.total = 0
            this.dataList = []
            this.getDataList()
         },
         async getDataList(){
               if(this.loading || !this.hasNext){
                  return
               }
               this.loading=true
               this.currentPage =   this.currentPage+1
               if(this.currentPage == 1){
                  this.hasNext =true
                  this.dataList=[]
               }
               var that =this
               let res ={};
               res = await that.$u.api.myOrderPage({
                  capacity:10,
                  model: {
                     combinedStatus: this.activeTab == -1?'':this.activeTab,
                     keyword: this.keyword
                  },
                  page:this.currentPage
               });
               console.log(res)
               if (res.code === 200 ) {
                  if ( res.data && res.data.page ===this.currentPage) {
                     res.data.records = res.data.records||[]
                      that.dataList.push(...res.data.records)
                      that.total=res.data.total
                      if( this.currentPage >= res.data.pageCount||0){
                         that.hasNext=false
                      }else{
                         that.hasNext=true
                      }
         async getDataList() {
            if (this.loading || !this.hasNext) {
               return
            }
            this.loading = true
            this.currentPage = this.currentPage + 1
            if (this.currentPage == 1) {
               this.hasNext = true
               this.dataList = []
            }
            var that = this
            let res = {};
            res = await that.$u.api.myOrderPage({
               capacity: 10,
               model: {
                  combinedStatus: this.activeTab == -1 ? '' : this.activeTab,
                  keyword: this.keyword
               },
               page: this.currentPage
            });
            console.log(res)
            if (res.code === 200) {
               if (res.data && res.data.page === this.currentPage) {
                  res.data.records = res.data.records || []
                  that.dataList.push(...res.data.records)
                  that.total = res.data.total
                  if (this.currentPage >= res.data.pageCount || 0) {
                     that.hasNext = false
                  } else {
                     that.hasNext = true
                  }
               }
               this.loading=false
               }
            }
            this.loading = false
         },
         jumpOrderDetail(id){
         jumpOrderDetail(id) {
            uni.navigateTo({
               url:'/pages/delivery-order-detail/delivery-order-detail?userType=0&id='+id
               url: '/pages/delivery-order-detail/delivery-order-detail?userType=0&id=' + id
            })
         },
         evaluateOrder(item){
         evaluateOrder(item) {
            uni.navigateTo({
               url:`/pages/evaluate/evaluate?id=${item.id}&type=${item.type}&takeShopId=${item.takeShopId || ''}`
               url: `/pages/evaluate/evaluate?id=${item.id}&type=${item.type}&takeShopId=${item.takeShopId || ''}`
            })
         }
      }
@@ -587,11 +742,12 @@
</script>
<style lang="scss" scoped>
   .tc-contemt{
          display: flex;
          flex-direction: column;
          align-items: center;
   .tc-contemt {
      display: flex;
      flex-direction: column;
      align-items: center;
   }
   .itinerary-page {
      min-height: 100vh;
      background: #f7f7f7;
@@ -619,7 +775,7 @@
      z-index: 1;
      padding-bottom: 18rpx;
   }
   .page-padding {
      padding: 0 30rpx;
      box-sizing: border-box;
@@ -648,7 +804,7 @@
      align-items: center;
      padding: 0 30rpx;
      box-sizing: border-box;
      background: rgba(255,255,255,0.9);
      background: rgba(255, 255, 255, 0.9);
      border-radius: 16rpx;
      overflow: hidden;
   }
@@ -731,19 +887,20 @@
      background: #fff4e8;
   }
   .head-local{
          flex: 1;
          padding: 24rpx 30rpx;
          min-width: 0;
          display: flex;
          align-items: center;
          background: linear-gradient(90deg, #15B9F7 -20%, #ffffff 100%);
   .head-local {
      flex: 1;
      padding: 24rpx 30rpx;
      min-width: 0;
      display: flex;
      align-items: center;
      background: linear-gradient(90deg, #15B9F7 -20%, #ffffff 100%);
   }
   .head-city {
      flex: 1;
      min-width: 0;
       padding: 24rpx 30rpx;
       background: linear-gradient(90deg, #FA8010 -20%, #ffffff 100%);
      padding: 24rpx 30rpx;
      background: linear-gradient(90deg, #FA8010 -20%, #ffffff 100%);
      display: flex;
      align-items: center;
   }
@@ -819,7 +976,7 @@
      overflow: hidden;
      text-align: center;
      text-overflow: ellipsis;
      max-width: 100%;
      max-width: 100%;
   }
   .city-arrow {
@@ -857,12 +1014,13 @@
      color: #10B2FA;
      flex-shrink: 0;
   }
   .status-orange{
   .status-orange {
      color: #FA8010 !important;
   }
   .status-grey{
   .status-grey {
      color: #666666 !important;
   }
@@ -872,12 +1030,12 @@
      box-sizing: border-box;
   }
   .status-orange{
   .status-orange {
      color: #FA8010 !important;
   }
   .status-orange{
   .status-orange {
      color: #FA8010 !important;
   }
@@ -887,6 +1045,7 @@
      align-items: flex-start;
      justify-content: space-between;
      margin-bottom: 26rpx;
      &:last-child {
         margin: 0 !important;
      }
@@ -931,12 +1090,14 @@
      font-size: 24rpx;
      color: #8C939F;
   }
   .price-line{
   .price-line {
      padding: 0 30rpx;
      box-sizing: border-box;
      display: flex;
      align-items: end;
   }
   .amount-area {
      width: 50%;
      // padding: 0 30rpx;
@@ -1029,6 +1190,7 @@
      box-sizing: border-box;
      margin-right: 20rpx;
      white-space: nowrap;
      &:last-child {
         margin: 0 !important;
      }
@@ -1052,6 +1214,7 @@
      font-size: 22rpx;
      color: #a5aab3;
   }
   .qrcode-box {
      margin-top: 40rpx;
      width: 360rpx;
@@ -1059,6 +1222,7 @@
      border-radius: 8rpx;
      box-sizing: border-box;
      position: relative;
      canvas {
         position: absolute;
         top: 0;
@@ -1066,6 +1230,7 @@
         opacity: 0;
      }
   }
   .item-form-list {
      max-width: 100%;
      display: flex;
@@ -1073,30 +1238,34 @@
      align-items: center;
      justify-content: center;
      gap: 20rpx;
      .item-form-list-row {
         border-radius: 8rpx;
         overflow: hidden;
         image {
            width: 130rpx;
            max-height: 150rpx;
         }
      }
   }
   .qrcode-image {
      width: 100%;
      height: 100%;
   }
   .pickup-code {
      margin-top: 32rpx;
      font-weight: 600;
      font-size: 36rpx;
      color: #222222;
   }
   .pickup-tip {
      font-weight: 400;
      font-size: 24rpx;
      color: #999999;
      margin-top: 24rpx;
   }
</style>
</style>