doum
2025-09-05 77b52c06afdb843ee67c6e938afab0458143d76f
small-program/pages/order-details/order-details.vue
@@ -9,7 +9,7 @@
            订单信息已修改,请及时确认,{{timeInfo}}后将自动同意
         </view> 
         <view class="order-head-info" v-if="isPushlishor  && info.type ==2 && info.status ==0" style="color: red;">
            剩余支付支付时间,{{timeInfo1}}后将自动取消
            剩余支付时间,{{timeInfo1}}后将自动取消
         </view> 
         <view class="order-head-info" v-else >{{getStatusInfo()}}</view> 
      </view>
@@ -55,7 +55,7 @@
            <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===0" class="order-info-wz">{{info.categoryName || ''}}|{{info.priceNum1 || '' }}{{feeFrom.priceParam1.unit}}{{info.type==0&info.workType==2&&info.carType==2?' | '+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>
@@ -94,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>
@@ -111,18 +111,60 @@
            </view>
            <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) }}
               <view class="price-row-val" :style="{color: (!isPushlishor&&info.status!=4&&info.status!=5) || (isPushlishor&&info.type!=2 &&info.status!=4&&info.status!=5) ? '#FF0000' : ''}">
                  ¥{{((info.originEstimatedAccount||0)/100).toFixed(2) }}
               </view>
            </view>
            <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) }}
               </view>
            </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: info.status !=4 ? '#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" v-if="isPushlishor">
                  <view class="price-row-label" >实际支付(元)</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">
@@ -169,6 +211,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>
@@ -206,7 +252,6 @@
         </view>
         <view style="width: 100%; height: env(safe-area-inset-bottom);"></view>
      </view>
      <u-modal
         title="温馨提示"
         :show="show"
@@ -300,30 +345,30 @@
               <viem class="money">{{((info.price||0)/100).toFixed(2) }}{{info.priceUnit || '' }}</viem>
            </view>
            <view class="querenfee-c" >                
               <view class="querenfee-c-info1"><text style="color: red;">*</text>实际{{feeFrom.priceParam1.name}}</view>
               <view class="querenfee-c-info1"><text style="color: red;">*</text>实际{{feeFrom.priceParam1.name}}:</view>
               <view class="querenfee-c-input"> 
                  <input type="number" placeholder-style="color: #999999; font-size: 56rpx; font-weight: 500;" v-model="feeForm.priceNum1"   placeholder="请输入" />
                  <input type="number" placeholder-style="color: #999999; font-size: 50rpx; font-weight: 500;" @input="getTotal" v-model="feeFrom.priceNum1"   placeholder="0" />
               </view>
               <text class="querenfee-c-danw">{{feeFrom.priceParam1.unit}}</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-style="color: #999999; font-size: 56rpx; font-weight: 500;" placeholder="请输入" />
                  <input type="number" v-model="feeFrom.priceNum2" placeholder-style="color: #999999; font-size: 50rpx; font-weight: 500;" @input="getTotal" placeholder="0" />
               </view>
               <text class="querenfee-c-info1" >{{feeFrom.priceParam2.unit}}</text>
               <text class="querenfee-c-danw" >{{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-style="color: #999999; font-size: 56rpx; font-weight: 500;" placeholder="请输入" />
                  <input type="digit" v-model="feeFrom.confirmOtherFee" placeholder-style="color: #999999; font-size: 50rpx; font-weight: 500;"  @input="getTotal" placeholder="0" />
               </view>
               <text class="querenfee-c-danw">元</text>
            </view>
            <view class="querenfee-c" style="flex-direction: column;">
               <view class="querenfee-c-info1" style="margin-bottom: 30rpx;">备注信息:</view>
               <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>
                  <u--textarea placeholder="如需备注,请输入" border="none" v-model="feeFrom.confirmFeeRemark"  ></u--textarea>
               </view>
            </view>
            <view class="querenfee-c">
@@ -388,6 +433,7 @@
            show5:false,
            show6:false,
            show7:false,
            actionFlag:null,
            timeInfo:'00:00:00',
            timeInfo1:'00:00:00',
            lessTime:null,
@@ -421,6 +467,7 @@
         console.log(options)
         var id = options.id
         this.id = id 
         this.actionFla=options.flag
      },
      onShow(options) { 
         this.getOrderData()
@@ -474,8 +521,61 @@
               }
            })
         },
         getTotal() {
            this.$u.api.getTotal({
               price: this.info.price,
               priceUnit: this.feeFrom.priceParam1.unit,
               priceNum1: this.feeFrom.priceNum1 || 0,
               priceNum2: this.feeFrom.priceNum2 || 0,
               confirmOtherFee:(this.feeFrom.confirmOtherFee||0)*100,
               type: this.info.type,
               carType:this.info.carType ,
               workType: this.info.workType
            }).then(res => {
               if (res.code === 200) {
                  this.confirmPayFee = (res.data / 100) || '0'
               }
            })
         },
         confirmFee(){
            console.log("confirmFee")
            var that =this
            if (!this.feeFrom.priceNum1) {
               return uni.showToast({
                  title: '实际' + this.feeFrom.priceParam1.name + '不能为空',
                  icon: 'none'
               })
            }
            if (this.feeFrom.priceParam2.name && !this.feeFrom.priceNum2) {
               return uni.showToast({
                  title: '实际' + this.feeFrom.priceParam2.name + '不能为空',
                  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||0)*100,
               orderId: this.info.id,
               priceNum1: this.feeFrom.priceNum1,
               priceNum2: this.feeFrom.priceNum2
            }).then(res => {
               if (res.code === 200) {
                  that.show7 = false
                  uni.showToast({ title: '操作成功', icon: 'success', duration: 2000 });
                  that.getOrderData()
               }
            })
         },
         payment() {
            var that = this
@@ -568,7 +668,7 @@
               }
            }) 
         },
         acceptDo(){
         acceptDoBiz(){
            var that = this
            var param = {orderId: this.id}
            this.$u.api.accept(param).then(res =>{
@@ -578,6 +678,18 @@
                  that.getOrderData()
               }
            }) 
         },
         acceptDo() {
            var that = this;
            uni.requestSubscribeMessage({
               tmplIds: ['AA97cHjvlPiNO4viMkVe4JifCf9TD5b5Eb7s6El3VS8','3YSC7gouRlSjHXz4CrWOGFzPmGwEBtFj4snwdfMvKHk','tDpYImlrdv-0d3euTrHbYZ1cEZvjVHTNlqHvV0tpLHg'],
               success(res) {
                  that.acceptDoBiz()
               },
               fail(err) {
                  that.acceptDoBiz()
               }
            })
         },
         cancelDo(){
            var that = this
@@ -718,15 +830,8 @@
                     //如果是接单方
                     that.isAcceptor =true
                  }
                  if(that.isAcceptor ||that.isPushlishor ){
                  // 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)
@@ -738,9 +843,9 @@
                        that.updateTimeInfo1()
                     }
                     that.initPriceNumParam()
                  }else{
                     uni.showToast({ title: '订单信息不存在', icon: 'error', duration: 2000 });
                  }
                  // }else{
                  //    uni.showToast({ title: '订单信息不存在', icon: 'error', duration: 2000 });
                  // }
               }
             }) 
         },
@@ -751,13 +856,13 @@
            this.feeFrom.priceParam2.unit =null
            if(this.info.type==0 && this.info.workType==1){
               //分拣工
               this.feeFrom.priceParam1.name ='用工天数:'
               this.feeFrom.priceParam1.name ='用工天数'
               this.feeFrom.priceParam1.unit ='天'
               this.feeFrom.priceParam2.name ='用工人数:'
               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.name ='采摘重量'
               this.feeFrom.priceParam1.unit ='斤'
               this.feeFrom.priceParam2.name =null
               this.feeFrom.priceParam2.unit =null
@@ -772,10 +877,10 @@
               }else if(this.info.carType==1){
                  //按小时
                  this.feeFrom.priceParam1.name ='工作时长'
                  this.feeFrom.priceParam1.unit ='时'
                  this.feeFrom.priceParam1.unit ='小时'
                  this.feeFrom.priceParam2.name ='用工人数'
                  this.feeFrom.priceParam2.unit ='人'
               }else if(this.info.carType==1){
               }else if(this.info.carType==2){
                  //按小时
                  this.feeFrom.priceParam1.name ='包装重量'
                  this.feeFrom.priceParam1.unit ='斤'