doum
2025-09-03 b5391c8c5a802d6662f4336e1e2290439d0a91c4
small-program/pages/order-details/order-details.vue
@@ -11,8 +11,7 @@
         <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">取消订单</view>
         <view class="order-quxiao-btn" @click="show = true" v-if="userInfo.id === info.releaseMemberId  &&  info.isUpdate!=1 &&  info.status ===2">取消订单</view>
         <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>
      <view class="order-user"  v-if="userInfo.id === info.releaseMemberId && info.acceptMemberId">
@@ -39,7 +38,7 @@
                  </view>
               </view>
            </view>
            <view class="user-info-r" @click="contactPhone(info.acceptPhone)">
            <view class="user-info-r" @click="contactPhone(info.acceptPhone)" v-if="info.status ==2||info.status==3||info.status==5">
               <image src="/static/icon/ic_call@2x.png" mode="widthFix"></image>
               <text>联系师傅</text>
            </view>
@@ -133,7 +132,7 @@
            <view class="order-ren-left-tip">业主</view>
         </view>
         <view class="order-ren-x"></view>
         <view class="order-ren-lx"  @click="contactPhone(info.releasePhone)">
         <view class="order-ren-lx"  v-if="info.status ==2||info.status==3||info.status==5"  @click="contactPhone(info.releasePhone)">
            <image src="/static/icon/ic_call@2x.png" mode="widthFix"></image>
            <text>发单方</text>
         </view>
@@ -186,10 +185,9 @@
            <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 ===3 && info.type !==2)|| (info.status ===0 && info.type===2))" @click="show1 = true">{{info.type === 2 ? '继续支付' : '完成并支付'}}</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-b" @click="startJobs()" v-if="userInfo.id === info.releaseMemberId && (info.status ===2)">开始作业</view> -->
@@ -278,7 +276,66 @@
            <view class="zhifu-botton" @click="payment">确认支付</view>
         </view>
      </u-popup>
      <!-- 支付弹窗 -->
      <u-popup :show="show7" round="15" mode="bottom">
         <view class="querenfee">
            <view class="querenfee-head">
               <view></view>
               <text>费用确认</text>
               <image @click="show7 = false" src="/static/icon/ic_close@2x.png" mode="widthFix"></image>
            </view>
            <view class="querenfee-c">
               <view class="querenfee-c-info1">费用标准:</view>
               <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-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>
            </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-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>
            </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>
            </view>
            <view class="querenfee-c">
               <view class="querenfee-c-info1">备注信息:</view>
               <view class="querenfee-c-input">
                  <u--textarea placeholder="如需备注,请输入" border="none" v-model="feeForm.confirmFeeRemark"  ></u--textarea>
               </view>
            </view>
            <view class="querenfee-c">
               <view class="querenfee-c-info1">实际总费用:</view>
               <view class="querenfee-c-input">
                  <image src="/static/icon/ic_money@2x.png" mode="widthFix"></image>
                  <text class="querenfee-c-input money">{{confirmPayFee}}</text>
               </view>
            </view>
            <view class="querenfee-c">
               <view class="querenfee-tips">最终费用由发单方支付,接单方收到的金额将扣除平台手续费用</view>
            </view>
            <view class="querenfee-botton" @click="confirmFee">确认费用</view>
         </view>
      </u-popup>
      <!-- 评价 -->
      <u-popup :show="show2" round="15" mode="bottom">
         <view class="zhifu">
@@ -321,6 +378,7 @@
            show4:false,
            show5:false,
            show6:false,
            show7:true,
            timeInfo:'00:00:00',
            lessTime:null,
            value:0,
@@ -330,7 +388,14 @@
            loading:false,
            commentInfo:'',
            info: {},
            amount: ''
            amount: '',
            confirmPayFee:0.00,
            feeFrom:{
               priceNum1:null,
               priceNum2:null,
               confirmFeeRemark:null,
               confirmOtherFee:null,
            }
         };
      },
      onLoad(options) {
@@ -389,6 +454,9 @@
                  that.getOrderData()
               }
            })
         },
         confirmFee(){
            console.log("confirmFee")
         },
         payment() {
            var that = this
@@ -575,14 +643,17 @@
            } 
            var that =this
            this.lessTime = Math.floor( Number(that.info.confirmCountdown || 0)/1000) ;
            this.timer =  setInterval(function(){
                  let h = Math.floor(that.lessTime/60/60) ;
                  let m = Math.floor((that.lessTime - h*60*60)/60);
                  let s=  Math.floor(that.lessTime- h*60*60 -m*60);
                  that.timeInfo =(h<10?'0':'')+ h+":"+(m<10?'0':'')+m+":"+(s<10?'0':'')+s;
                  that.lessTime =that.lessTime-1;
                  // console.log( that.timeInfo)
            },1000)
            if(lessTime>0){
               this.timer =  setInterval(function(){
                     let h = Math.floor(that.lessTime/60/60) ;
                     let m = Math.floor((that.lessTime - h*60*60)/60);
                     let s=  Math.floor(that.lessTime- h*60*60 -m*60);
                     that.timeInfo =(h<10?'0':'')+ h+":"+(m<10?'0':'')+m+":"+(s<10?'0':'')+s;
                     that.lessTime =that.lessTime-1;
                     // console.log( that.timeInfo)
               },1000)
            }
         },
         getOrderData(){
            var that = this
@@ -630,6 +701,116 @@
<style lang="scss" scoped>
   .order {
      width: 100%;
      .querenfee {
         width: 100%;
         padding: 40rpx 30rpx;
         box-sizing: border-box;
         .querenfee-textarea {
            width: 100%;
            height: 364rpx;
            padding: 30rpx;
            box-sizing: border-box;
            background: #F7F7F7;
            border-radius: 16rpx;
            border: 1rpx solid #EEEEEE;
            margin-top: 48rpx;
            display: flex;
            align-items: start;
            image {
               flex-shrink: 0;
               width: 29rpx;
               height: 29rpx;
               margin-right: 10rpx;
            }
         }
         .querenfee-head {
            width: 100%;
            display: flex;
            align-items: center;
            justify-content: space-between;
            image {
               width: 28rpx;
               height: 28rpx;
            }
            text {
               font-weight: 500;
               font-size: 32rpx;
               color: #222222;
            }
         }
         .querenfee-c {
            width: 100%;
            margin-top: 46rpx;
            display: flex;
            .querenfee-c-info {
               align-items: center;
               font-weight: 500;
               font-size: 30rpx;
               color: #222222;
               margin-bottom: 30rpx;
               text {
                  color: #00BC12;
                  margin-left: 10rpx;
               }
            }
            .querenfee-c-info1 {
               width: 50%;
               font-weight: 400;
               font-size: 30rpx;
               color: #666666;
               margin-bottom: 20rpx;
            }
            .querenfee-tips{
               width: 100%;
               font-weight: 400;
               font-size: 26rpx;
               color: #999999;
               line-height: 36rpx;
            }
            .money{
               width: 50%;
               text-align: right;
               color: red !important;
            }
            .querenfee-c-input {
               width: 100%;
               padding: 0 30rpx;
               box-sizing: border-box;
               height: 60rpx;
               background: #F7F7F7;
               border-radius: 10rpx;
               border: 1rpx solid #EEEEEE;
               display: flex;
               align-items: center;
               image {
                  flex-shrink: 0;
                  width: 28rpx;
                  height: 60rpx;
                  margin-right: 24rpx;
               }
               input {
                  flex: 1;
                  height: 100%;
                  font-weight: 500;
                  color: #222222;
               }
            }
         }
         .querenfee-botton {
            width: 100%;
            height: 88rpx;
            line-height: 88rpx;
            text-align: center;
            font-weight: 500;
            font-size: 32rpx;
            color: #FFFFFF;
            background: #00BC12;
            border-radius: 44rpx;
            margin-top: 264rpx;
         }
      }
      .zhifu {
         width: 100%;
         padding: 40rpx 30rpx;
@@ -702,6 +883,9 @@
               color: #666666;
               margin-bottom: 20rpx;
            }
            .money{
               color: red !important;
            }
            .zhifu-c-input {
               width: 100%;
               padding: 0 30rpx;