MrShi
2025-09-03 a584a014ac0a16fc906e23fb2263a59ffd43f994
small-program/pages/order-details/order-details.vue
@@ -5,16 +5,16 @@
      </view> -->
      <view class="order-head" :style="{ backgroundImage: 'url(' + bgImg + ')' }">
         <view class="order-head-status">{{info.statusName || ''}}</view>          
         <view class="order-head-info" v-if="userInfo.id === info.acceptMemberId && info.isUpdate ==1" style="color: red;">
         <view class="order-head-info" v-if="isAcceptor && info.isUpdate ==1" style="color: red;">
            订单信息已修改,请及时确认,{{timeInfo}}后将自动同意
         </view> 
         <view class="order-head-info" v-else >{{getStatusInfo()}}</view> 
      </view>
      <view class="order-quxiao">
         <view class="order-quxiao-btn" @click="show = true" v-if="(userInfo.id === info.acceptMemberId && info.status ===2) || (userInfo.id === info.releaseMemberId  &&  info.isUpdate!=1 &&  info.status ===2)">取消订单</view>
         <view class="order-quxiao-btn1" v-if="userInfo.id === info.releaseMemberId && info.type!=2 &&  info.isUpdate!=1 &&   info.status ===2 " @click="jumpEdit()">修改订单</view>
         <view class="order-quxiao-btn" @click="show = true" v-if="(isAcceptor && info.status ===2) || (isPushlishor  &&  info.isUpdate!=1 &&  info.status ===2)">取消订单</view>
         <view class="order-quxiao-btn1" v-if="isPushlishor && info.type!=2 &&  info.isUpdate!=1 &&   info.status ===2 " @click="jumpEdit()">修改订单</view>
      </view>
      <view class="order-user"  v-if="userInfo.id === info.releaseMemberId && info.acceptMemberId">
      <view class="order-user"  v-if="isPushlishor && info.acceptMemberId">
         <view class="order-user-info">
            <view class="user-info-l">
               <view class="user-info-l-image">
@@ -105,7 +105,7 @@
               </view>
            </view>
            
            <view class="price-row" v-if="userInfo.id === info.acceptMemberId">
            <view class="price-row" v-if="isAcceptor">
               <view class="price-row-label">实际到账(元)</view>
               <view class="price-row-val" style="color: #FF0000;">
                  ¥{{((info.estimatedAccount * (1 - (info.platformRata || 0))) / 100).toFixed(2) }}
@@ -122,7 +122,7 @@
            {{ info.commentInfo || '-'}}
         </view>
      </view>
      <view class="order-ren" v-if="userInfo.id === info.acceptMemberId">
      <view class="order-ren" v-if="isAcceptor">
         <view class="order-ren-left">
            <view class="order-ren-left-img">
               <image v-if="info.releaseCoverImage" :src="info.releaseCoverImage" mode="widthFix"></image>
@@ -178,20 +178,20 @@
      </view>
      <view style="width: 100%; height: calc(108rpx + env(safe-area-inset-bottom));" v-if="![99].includes(info.status)"></view>
      <view class="order-footer" v-if="![99].includes(info.status)">
         <template v-if="(userInfo.id === info.releaseMemberId) && info.isUpdate!=1 &&info.status ===2">
         <template v-if="isPushlishor && info.isUpdate!=1 &&info.status ===2">
            <sunui-mverify hint="开始作业" @change="getaccept($event)"></sunui-mverify>
         </template>
         <view class="order-footer-btn" v-else> 
            <view class="order-footer-btn-a" @click="show = true" v-if="1==2&& userInfo.id === info.acceptMemberId && info.status ===2">取消订单</view>
            <view class="order-footer-btn-a" @click="show = true" v-if="userInfo.id === info.releaseMemberId && (info.status ===0 ||  info.status ===1|| info.status ===2)">取消订单</view>
            <view class="order-footer-btn-b" @click="show2=true" v-if="userInfo.id === info.releaseMemberId && (info.status ===4 && info.commentStatus!=1)">去评价</view>
            <view class="order-footer-btn-b" v-if="userInfo.id === info.releaseMemberId &&((info.status ===5 && info.type !==2)|| (info.status ===0 && info.type===2))" @click="show1 = true">{{info.type === 2 ? '继续支付' : '完成并支付'}}</view>
            <view class="order-footer-btn-a" @click="show7 = true" v-if=" info.type!==2 && userInfo.id === info.acceptMemberId && info.status ===3">确认费用</view>
            <view class="order-footer-btn-b" v-if="userInfo.id === info.releaseMemberId && ((info.status ===3 && info.type===2))" @click="payment1">完成作业</view>
            <view class="order-footer-btn-b" v-if="info.type !=2 && info.isUpdate!=1&& userInfo.id === info.releaseMemberId && (info.status ===0 ||  info.status ===1|| info.status ===2)" @click="jumpEdit()">修改订单</view>
            <view class="order-footer-btn-b" @click="show5 =true" v-if="userInfo.id === info.acceptMemberId && (info.isUpdate==1 && info.status ===2)">修改确认</view>
            <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" @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>
            <view class="order-footer-btn-b" @click="show5 =true" v-if="isAcceptor&& (info.isUpdate==1 && info.status ===2)">修改确认</view>
            <!-- <view class="order-footer-btn-b" @click="startJobs()" v-if="userInfo.id === info.releaseMemberId && (info.status ===2)">开始作业</view> -->
            <view class="order-footer-btn-b"  @click="show6 =true" v-if="userInfo.id !== info.releaseMemberId && (info.status ===1)">抢单</view>
            <view class="order-footer-btn-b"  @click="show6 =true" v-if="!isPushlishor && (info.status ===1)">抢单</view>
         </view>
         <view style="width: 100%; height: env(safe-area-inset-bottom);"></view>
      </view>
@@ -286,40 +286,32 @@
            </view>
            <view class="querenfee-c">
               <view class="querenfee-c-info1">费用标准:</view>
               <viem class=" money">{{((info.price||0)/100).toFixed(2) }}{{info.priceUnit || '' }}</viem>
               <viem class="money">{{((info.price||0)/100).toFixed(2) }}{{info.priceUnit || '' }}</viem>
            </view>
            <view class="querenfee-c" >                
               <view class="querenfee-c-info1" v-if="info.type ==1 && info.carType ==0"><text style="color: red;">*</text>实际用车天数:</view>
               <view class="querenfee-c-info1" v-if="info.type ==1 && info.carType ==1"><text style="color: red;">*</text>实际用车次数:</view>
               <view class="querenfee-c-info1" v-if="info.type ==0 && info.workType ==0"><text style="color: red;">*</text>实际采摘重量:</view>
               <view class="querenfee-c-info1" v-if="info.type ==0 && info.workType ==1"><text style="color: red;">*</text>实际用工天数:</view>
               <view class="querenfee-c-info1" v-if="info.type ==0 && info.workType ==2"><text style="color: red;">*</text>实际用车次数:</view>
               <view class="querenfee-c-info1"><text style="color: red;">*</text>{{feeFrom.priceParam1.name}}</view>
               <view class="querenfee-c-input"> 
                  <input type="number" v-model="feeForm.priceNum1"   placeholder="请输入" />
               </view>
               <text class="querenfee-c-info1" v-if="info.type ==1 && info.carType ==0">天</text>
               <text class="querenfee-c-info1" v-if="info.type ==1 && info.carType ==1">次</text>
               <text class="querenfee-c-danw">{{feeFrom.priceParam1.unit}}</text>
            </view>
            <view class="querenfee-c"  v-if="info.type ==0 && (info.workType ==1 ||info.workType ==2)">
               <view class="querenfee-c-info1" v-if="info.workType ==1"><text style="color: red;">*</text>实际用工人数:</view>
               <view class="querenfee-c-info1" v-if="info.workType ==2 && info.carType ==0"><text style="color: red;">*</text>实际用工人数:</view>
               <view class="querenfee-c-info1" v-if="info.workType ==2 && info.carType ==1"><text style="color: red;">*</text>实际用工时间:</view>
               <view class="querenfee-c-info1" v-if="info.workType ==2 && info.carType ==1"><text style="color: red;">*</text>实际用工时间:</view>
            <view class="querenfee-c" v-if="feeFrom.priceParam2.name !=null">
               <view class="querenfee-c-info1"><text style="color: red;">*</text>{{feeFrom.priceParam2.name}}:</view>
               <view class="querenfee-c-input"> 
                  <input type="number" v-model="feeForm.priceNum2"   placeholder="请输入" />
               </view>
               <text class="querenfee-c-info1" v-if="info.workType ==1">人</text>
               <text class="querenfee-c-info1" v-if="info.workType ==2 && ">次</text>
               <text class="querenfee-c-info1" >{{feeFrom.priceParam2.unit}}</text>
            </view>
            <view class="querenfee-c">
               <view class="querenfee-c-info1">其他费用:</view>
               <view class="querenfee-c-input">
                  <input type="number" v-model="feeForm.confirmOtherFee"  placeholder="请输入" />
               </view>
               <text class="querenfee-c-danw">元</text>
            </view>
            <view class="querenfee-c">
            <view class="querenfee-c" style="flex-direction: column;">
               <view class="querenfee-c-info1">备注信息:</view>
               <view class="querenfee-c-input">
               <view class="querenfee-c-input" style="width: 100%; height: 200rpx; padding: 30rpx; box-sizing: border-box;">
                  <u--textarea placeholder="如需备注,请输入" border="none" v-model="feeForm.confirmFeeRemark"  ></u--textarea>
               </view>
            </view>
@@ -369,6 +361,8 @@
      },
      data() {
         return {
            isPushlishor:false,
            isAcceptor:false,
            show: false,
            show1: false,
            show2: false,
@@ -378,7 +372,7 @@
            show4:false,
            show5:false,
            show6:false,
            show7:true,
            show7:false,
            timeInfo:'00:00:00',
            lessTime:null,
            value:0,
@@ -391,6 +385,14 @@
            amount: '',
            confirmPayFee:0.00,
            feeFrom:{
               priceParam1:{
                  name:null,
                  unit:null
               },
               priceParam2:{
                  name:null,
                  unit:null
               },
               priceNum1:null,
               priceNum2:null,
               confirmFeeRemark:null,
@@ -643,7 +645,7 @@
            } 
            var that =this
            this.lessTime = Math.floor( Number(that.info.confirmCountdown || 0)/1000) ;
            if(lessTime>0){
            if(this.lessTime>0){
               this.timer =  setInterval(function(){
                     let h = Math.floor(that.lessTime/60/60) ;
                     let m = Math.floor((that.lessTime - h*60*60)/60); 
@@ -658,10 +660,28 @@
         getOrderData(){
            var that = this
            var param ={ orderId:that.id}
            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 || that.userInfo.id === res.data.acceptMemberId ){
                  if(that.userInfo.id === res.data.releaseMemberId ){
                     //如果是发单方
                     that.isPushlishor =true
                  }else if(that.userInfo.id ===res.data.acceptMemberId ){
                     //如果是接单方
                     that.isAcceptor =true
                  }
                  if(that.isAcceptor ||that.isPushlishor ){
                     that.info = res.data
                     if(that.userInfo.id === that.info.releaseMemberId ){
                        //如果是发单方
                        that.isPushlishor =true
                     }else if(that.userInfo.id === that.info.acceptMemberId ){
                        //如果是接单方
                        that.isAcceptor =true
                     }
                     that.amount = ((that.info.estimatedAccount || 0) / 100).toFixed(2)
                     if(that.info.wayInfo){
                        that.wayList = JSON.parse(that.info.wayInfo)
@@ -669,11 +689,60 @@
                     if(res.data.isUpdate == 1){
                        that.updateTimeInfo()
                     }
                     that.initPriceNumParam()
                  }else{
                     uni.showToast({ title: '订单信息不存在', icon: 'error', duration: 2000 });
                  }
               }
             }) 
         },
         initPriceNumParam(){
            this.feeFrom.priceParam1.name =null
            this.feeFrom.priceParam1.unit =null
            this.feeFrom.priceParam2.name =null
            this.feeFrom.priceParam2.unit =null
            if(this.info.type==0 && this.info.workType==1){
               //分拣工
               this.feeFrom.priceParam1.name ='实际用工天数:'
               this.feeFrom.priceParam1.unit ='天'
               this.feeFrom.priceParam2.name ='实际用工人数:'
               this.feeFrom.priceParam2.unit ='人'
            }else if(this.info.type==0 && this.info.workType==0){
               //采摘工
               this.feeFrom.priceParam1.name ='实际采摘重量:'
               this.feeFrom.priceParam1.unit ='斤'
               this.feeFrom.priceParam2.name =null
               this.feeFrom.priceParam2.unit =null
            }else if(this.info.type==0 && this.info.workType==2){
               //包装工
               if(this.info.carType==0){
                  //按天
                  this.feeFrom.priceParam1.name ='实际用工天数:'
                  this.feeFrom.priceParam1.unit ='天'
                  this.feeFrom.priceParam2.name ='实际用工人数:'
                  this.feeFrom.priceParam2.unit ='人'
               }else if(this.info.carType==1){
                  //按小时
                  this.feeFrom.priceParam1.name ='实际用工时间:'
                  this.feeFrom.priceParam1.unit ='时'
                  this.feeFrom.priceParam2.name ='实际用工人数:'
                  this.feeFrom.priceParam2.unit ='人'
               }else if(this.info.carType==1){
                  //按小时
                  this.feeFrom.priceParam1.name ='实际包装重量:'
                  this.feeFrom.priceParam1.unit ='斤'
                  this.feeFrom.priceParam2.name =null
                  this.feeFrom.priceParam2.unit =null
               }
            }else if(this.info.type==1 && this.info.carType==0){
               //运货单 按天数
               this.feeFrom.priceParam1.name ='实际用车天数:'
               this.feeFrom.priceParam1.unit ='天'
            }else if(this.info.type==1 && this.info.carType==1){
               //运货单 按次数
               this.feeFrom.priceParam1.name ='实际用车次数:'
               this.feeFrom.priceParam1.unit ='次'
            }
         }
      }
   }
@@ -744,6 +813,7 @@
            width: 100%;
            margin-top: 46rpx;
            display: flex;
            justify-content: space-between;
            .querenfee-c-info {               
               align-items: center;
               font-weight: 500;
@@ -755,11 +825,22 @@
                  margin-left: 10rpx;
               }
            }
            .querenfee-c-info1 {
               width: 50%;
            .querenfee-c-danw {
               display: flex;
               align-items: center;
               flex-shrink: 0;
               font-weight: 400;
               font-size: 30rpx;
               color: #666666;
               color: #333333;
               margin-left: 10rpx;
            }
            .querenfee-c-info1 {
               width: 50%;
               display: flex;
               align-items: center;
               font-weight: 600;
               font-size: 32rpx;
               color: #222222;
               margin-bottom: 20rpx;
            }
            .querenfee-tips{
@@ -772,13 +853,22 @@
            .money{
               width: 50%;
               text-align: right;
               color: red !important;
               font-weight: 600;
               font-size: 34rpx;
               color: #FF0000 !important;
            }
            .querenfee-c-input {
               width: 100%;
               padding: 0 30rpx;
               // width: 100%;
               // padding: 0 30rpx;
               // box-sizing: border-box;
               // height: 60rpx;
               // background: #F7F7F7;
               // border-radius: 10rpx;
               // border: 1rpx solid #EEEEEE;
               width: 260rpx;
               height: 100rpx;
               padding: 10rpx 30rpx;
               box-sizing: border-box;
               height: 60rpx;
               background: #F7F7F7;
               border-radius: 10rpx;
               border: 1rpx solid #EEEEEE;
@@ -794,7 +884,9 @@
                  flex: 1;
                  height: 100%;
                  font-weight: 500;
                  font-size: 56rpx;
                  color: #222222;
                  text-align: right;
               }
            }
         }
@@ -808,7 +900,7 @@
            color: #FFFFFF;
            background: #00BC12;
            border-radius: 44rpx;
            margin-top: 264rpx;
            margin-top: 40rpx;
         }
      }
      .zhifu {