doum
2025-09-04 9d901b4215323c97a00a068cd962f5c9c04dadfa
small-program/pages/order-details/order-details.vue
@@ -8,6 +8,9 @@
         <view class="order-head-info" v-if="isAcceptor && info.isUpdate ==1" style="color: red;">
            订单信息已修改,请及时确认,{{timeInfo}}后将自动同意
         </view> 
         <view class="order-head-info" v-if="isPushlishor  && info.type ==2 && info.status ==0" style="color: red;">
            剩余支付时间,{{timeInfo1}}后将自动取消
         </view>
         <view class="order-head-info" v-else >{{getStatusInfo()}}</view> 
      </view>
      <view class="order-quxiao">
@@ -48,12 +51,12 @@
         <view class="order-info-title">
            <view class="x"></view>
            <text v-if="info.type===0">用工单-{{(info.workType===0?'采摘工':(info.workType===1?'分拣工':'包装工')) }}</text> 
            <text v-if="info.type===1">运货单-{{info.categoryName || ''}}-{{info.carUnit || ''}}</text>
            <text v-if="info.type===1">运货单-{{info.categoryName || ''}}</text>
            <text v-if="info.type===2">订餐单</text>
            
         </view>
         <view v-if="info.type===0" class="order-info-wz">{{info.categoryName || ''}}|{{info.priceNum1 || '' }}{{info.workType === 0?'斤':'人'}}</view>
         <view v-if="info.type===1" class="order-info-wz">{{info.transportTypeName || ''}}{{' | '}}{{info.transportNum || '' }}{{info.transportUnit||''}}{{' | '}}需{{info.priceNum2 || '' }}辆</view>
         <view v-if="info.type===1" class="order-info-wz">{{info.carUnit || ''}}{{' | '}}{{info.transportTypeName || ''}}{{' | '}}{{info.transportNum || '' }}{{info.transportUnit||''}}{{' | '}}需{{info.priceNum2 || '' }}辆</view>
         <view class="order-info-address">
            <image src="/static/icon/order_ic_location@2x.png" mode="widthFix"></image>
            <view class="order-info-address-info">
@@ -91,11 +94,11 @@
         <view class="order-info-price">
            <view class="price-row" v-if="feeFrom.priceParam1.name">
               <view class="price-row-label">{{feeFrom.priceParam1.name}}</view>
               <view class="price-row-val" >  {{(info.priceNum1||0) }}{{feeFrom.priceParam1.unit}} </view>
               <view class="price-row-val" >  {{(info.originPriceNum1||0) }}{{feeFrom.priceParam1.unit}} </view>
            </view>
            <view class="price-row" v-if="feeFrom.priceParam2.name">
               <view class="price-row-label">{{feeFrom.priceParam2.name}}</view>
               <view class="price-row-val" >  {{(info.priceNum2||0) }}{{feeFrom.priceParam2.unit}} </view>
               <view class="price-row-val" >  {{(info.originPriceNum2||0) }}{{feeFrom.priceParam2.unit}} </view>
            </view>
            <view class="price-row">
               <view class="price-row-label">费用标准</view>
@@ -109,17 +112,65 @@
            <view class="price-row">
               <view class="price-row-label">预估总费用(元)</view>
               <view class="price-row-val" :style="{color: userInfo.id !== info.acceptMemberId ? '#FF0000' : ''}">
                  ¥{{((info.estimatedAccount||0)/100).toFixed(2) }}
                  ¥{{((info.originEstimatedAccount||0)/100).toFixed(2) }}
               </view>
            </view>
            <view class="price-row" v-if="isAcceptor">
            <view class="price-row"   v-if="isAcceptor&&(info.type==2 || (info.status!=5&& info.status!=4))">
               <view class="price-row-label">实际到账(元)</view>
               <view class="price-row-val" style="color: #FF0000;">
                  ¥{{((info.estimatedAccount * (1 - (info.platformRata || 0))) / 100).toFixed(2) }}
                  ¥{{((info.receiveAccount || 0) / 100).toFixed(2) }}
               </view>
            </view>
         </view>
         <template v-if="info.type!=2&&(info.status==5|| info.status==4)">
            <view class="order-info-x"></view>
            <view class="order-info-supplement" >
               <view class="order-info-supplement-title">已确认费用</view>
            </view>
            <view class="order-info-price">
               <view class="price-row" v-if="feeFrom.priceParam1.name">
                  <view class="price-row-label">实际{{feeFrom.priceParam1.name}}</view>
                  <view class="price-row-val" > {{(info.priceNum1||0) }}{{feeFrom.priceParam1.unit}} </view>
               </view>
               <view class="price-row" v-if="feeFrom.priceParam2.name">
                  <view class="price-row-label">实际{{feeFrom.priceParam2.name}}</view>
                  <view class="price-row-val" > {{(info.priceNum2||0) }}{{feeFrom.priceParam2.unit}} </view>
               </view>
               <view class="price-row" >
                  <view class="price-row-label">其他费用</view>
                  <view class="price-row-val" >¥{{((info.confirmOtherFee||0)/100).toFixed(2) }} </view>
               </view>
               <view class="price-row">
                  <view class="price-row-label">实际总费用(元)</view>
                  <view class="price-row-val" style="color:  #FF0000">
                     ¥{{((info.estimatedAccount||0)/100).toFixed(2) }}
                  </view>
               </view>
               <view class="price-row" >
                  <view class="price-row-label">备注</view>
                  <view class="price-row-val" >
                     {{ info.confirmFeeRemark ||'' }}
                  </view>
               </view>
            </view>
         </template>
         <template v-if="info.type==2 || info.status==4">
            <view class="order-info-x"></view>
            <view class="order-info-supplement" >
               <view class="order-info-supplement-title">实际费用</view>
            </view>
            <view class="order-info-price">
               <view class="price-row">
                  <view class="price-row-label" v-if="isPushlishor">实际支付</view>
                  <view class="price-row-val" style="color: #FF0000;">¥{{((info.payAccount||0)/100).toFixed(2) }} </view>
               </view>
               <view class="price-row" v-if="isAcceptor && info.status==4" >
                  <view class="price-row-label">实际到账</view>
                  <view class="price-row-val" style="color: #FF0000;">¥{{((info.receiveAccount||0)/100).toFixed(2) }} </view>
               </view>
            </view>
         </template>
      </view>
      <view class="order-info" v-if="info.commentStatus ===1">
         <view class="order-info-title">
@@ -166,6 +217,10 @@
               <text>开始时间:</text>
               <text>{{info.workStartTime||'-'}}</text>
            </view>
            <view class="order-info-list-item" v-if="info.confirmFeeTime">
               <text>费用确认时间:</text>
               <text>{{info.confirmFeeTime||'-'}}</text>
            </view>
            <view class="order-info-list-item" v-if="info.finishTime">
               <text>完成时间:</text>
               <text>{{info.finishTime||'-'}}</text>
@@ -193,7 +248,7 @@
            <view class="order-footer-btn-a" @click="show = true" v-if="1==2&& isAcceptor && info.status ===2">取消订单</view>
            <view class="order-footer-btn-a" @click="show = true" v-if="isPushlishor && (info.status ===0 ||  info.status ===1|| info.status ===2)">取消订单</view>
            <view class="order-footer-btn-b" @click="show2=true" v-if="isPushlishor && (info.status ===4 && info.commentStatus!=1)">去评价</view>
            <view class="order-footer-btn-b" v-if="isPushlishor&&((info.status ===5 && info.type !==2)|| (info.status ===0 && info.type===2))" @click="show1 = true">{{info.type === 2 ? '继续支付' : '完成并支付'}}</view>
            <view class="order-footer-btn-b" v-if="isPushlishor&&((info.status ===5 && info.type !==2)|| (info.status ===0 && info.type===2))" @click="show1 = true">{{info.type === 2 ? '继续支付' : '立即支付'}}</view>
            <view class="order-footer-btn-b" @click="show7 = true" v-if=" info.type!==2 &&isAcceptor && info.status ===3">确认费用</view>
            <view class="order-footer-btn-b" v-if="isPushlishor && ((info.status ===3 && info.type===2))" @click="payment1">完成作业</view>
            <view class="order-footer-btn-b" v-if="info.type !=2 && info.isUpdate!=1&& isPushlishor && (info.status ===0 ||  info.status ===1|| info.status ===2)" @click="jumpEdit()">修改订单</view>
@@ -203,7 +258,6 @@
         </view>
         <view style="width: 100%; height: env(safe-area-inset-bottom);"></view>
      </view>
      <u-modal
         title="温馨提示"
         :show="show"
@@ -313,7 +367,7 @@
            <view class="querenfee-c">
               <view class="querenfee-c-info1">其他费用:</view>
               <view class="querenfee-c-input">
                  <input type="number" v-model="feeFrom.confirmOtherFee" placeholder-style="color: #999999; font-size: 56rpx; font-weight: 500;" placeholder="请输入" />
                  <input type="digit" v-model="feeFrom.confirmOtherFee" placeholder-style="color: #999999; font-size: 56rpx; font-weight: 500;" placeholder="请输入" />
               </view>
               <text class="querenfee-c-danw">元</text>
            </view>
@@ -380,12 +434,16 @@
            count: 5, 
            show3:false,
            timer:null,
            timer1:null,
            show4:false,
            show5:false,
            show6:false,
            show7:false,
            actionFlag:null,
            timeInfo:'00:00:00',
            timeInfo1:'00:00:00',
            lessTime:null,
            lessTime1:null,
            value:0,
            wayList:[],
            bgImg: require('@/static/image/bg_green@2x.png'),
@@ -415,6 +473,7 @@
         console.log(options)
         var id = options.id
         this.id = id 
         this.actionFla=options.flag
      },
      onShow(options) { 
         this.getOrderData()
@@ -494,17 +553,29 @@
                  icon: 'none'
               })
            }
            uni.requestSubscribeMessage({
               tmplIds: ['3rOz7DAnawrkKDM8b5_XW4FLivISWYov6d7QSC4ORsg'],
               success(res) {
                  that.doConfirmFeeBiz()
               },
               fail(err) {
                  that.doConfirmFeeBiz()
               }
            })
         },
         doConfirmFeeBiz(){
            var that = this
            this.$u.api.confirmFee({
               confirmFeeRemark: this.feeFrom.confirmFeeRemark,
               confirmOtherFee: this.feeFrom.confirmOtherFee,
               confirmOtherFee: (this.feeFrom.confirmOtherFee||0)*100,
               orderId: this.info.id,
               priceNum1: this.feeFrom.priceNum1,
               priceNum2: this.feeFrom.priceNum2
            }).then(res => {
               if (res.code === 200) {
                  this.show7 = false
                  that.show7 = false
                  uni.showToast({ title: '操作成功', icon: 'success', duration: 2000 });
                  this.getOrderData()
                  that.getOrderData()
               }
            })
         },
@@ -660,6 +731,8 @@
                     return ''
                  }
                  return '您已接单,请按时完成订单任务'
               }else if(this.info.status === 5){
                  return '您已确认费用,等待发单方支付'
               }else if(this.info.status === 3){
                  return '订单进行中,请按时完成订单任务'
               }else if(this.info.status === 4){
@@ -673,6 +746,8 @@
                  return '请尽快完成支付,发布订单'
               }else if(this.info.status === 1){
                  return '您订单已经成功发起,请耐心等待接单'
               }else if(this.info.status === 5){
                  return '接单方已确认费用,请支付'
               }else if(this.info.status === 2){
                  if(this.info.isUpdate==1){
                     return '订单已修改,请等待接单方确认'
@@ -686,6 +761,28 @@
                  return '订单已取消'
               }
            }
         },
         updateTimeInfo1(){
            if(this.timer1){
               clearInterval(this.timer1)
            }
            var that =this
            this.lessTime1 = Math.floor( Number(that.info.cancelCountdown || 0)/1000) ;
            if(this.lessTime1>0){
               this.timer1 =  setInterval(function(){
                     let h = Math.floor(that.lessTime1/60/60) ;
                     let m = Math.floor((that.lessTime1 - h*60*60)/60);
                     let s=  Math.floor(that.lessTime1- h*60*60 -m*60);
                     that.timeInfo1 =(h<10?'0':'')+ h+":"+(m<10?'0':'')+m+":"+(s<10?'0':'')+s;
                     that.lessTime1 =that.lessTime1-1;
                     if(that.lessTime1 <=0){
                         that.timeInfo1 ="00:00:00"
                        clearInterval(that.timer1)
                     }
                     // console.log( that.timeInfo)
               },1000)
            }
         },
         updateTimeInfo(){
            if(this.timer){
@@ -701,6 +798,10 @@
                     that.timeInfo =(h<10?'0':'')+ h+":"+(m<10?'0':'')+m+":"+(s<10?'0':'')+s;
                     that.lessTime =that.lessTime-1;
                     // console.log( that.timeInfo)
                     if(that.lessTime<=0){
                        that.timeInfo ="00:00:00"
                        clearInterval(that.timer)
                     }
               },1000) 
            }
         
@@ -711,8 +812,6 @@
            this.isPushlishor =false
            this.isAcceptor =false
            this.$u.api.getDetail(param).then(res =>{
               console.error("=============================",res.data.releaseMemberId,res.data.acceptMemberId,that.userInfo.id)
               if(res.code ===200){
                  if(that.userInfo.id === res.data.releaseMemberId ){
                     //如果是发单方
@@ -737,6 +836,9 @@
                     if(res.data.isUpdate == 1){
                        that.updateTimeInfo()
                     }
                     if(res.data.status == 0){
                        that.updateTimeInfo1()
                     }
                     that.initPriceNumParam()
                  }else{
                     uni.showToast({ title: '订单信息不存在', icon: 'error', duration: 2000 });