doum
2025-09-04 9d901b4215323c97a00a068cd962f5c9c04dadfa
前端
已修改5个文件
233 ■■■■ 文件已修改
admin/src/components/business/OperaOrderDetailWindow.vue 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
small-program/pages/demand-hall/demand-hall.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
small-program/pages/freight/freight.vue 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
small-program/pages/order-details/order-details.vue 89 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
small-program/pages/packaging-worker/packaging-worker.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaOrderDetailWindow.vue
@@ -59,8 +59,8 @@
            <div  class="cont"><span class="label">品种:</span> <span class="txt">{{info.categoryName || ''}}</span></div>
          </div>
          <div class="line">
            <div class="cont"><span class="label" v-if="info.workType==1">人数:</span> <span class="txt">{{info.priceNum1 || '' }}人</span></div>
            <div class="cont"><span class="label"  v-if="info.workType==0">重量:</span> <span class="txt">{{info.priceNum1 || '' }}斤</span></div>
            <div class="cont"  v-if="info.workType==1"><span class="label">人数:</span> <span class="txt">{{info.priceNum1 || '' }}人</span></div>
            <div class="cont"  v-if="info.workType==0"><span class="label">重量:</span> <span class="txt">{{info.priceNum1 || '' }}斤</span></div>
            <div class="cont"><span class="label">用工时间:</span><span class="txt">{{info.startDate|| '' }}-{{info.endDate|| '' }}</span></div>
            <div class="cont"><span class="label">用工天数:</span><span class="txt">{{info.totalDays || 0 }}天</span></div>
          </div>
@@ -185,6 +185,22 @@
          </div>
        </div>
      </div>
      <div class="renzheng" v-if="(info.type ===0 || info.type===1)&&(info.status===5|| info.status===4)" >
        <div class="info" >
          <span class="m10">费用确认</span>
        </div>
        <div class="detail" style=" ">
          <div class="line">
            <div class="cont"><span class="label">实际{{feeFrom.priceParam1.name }}:</span><span class="txt">{{info.priceNum1 || 0 }}{{feeFrom.priceParam1.unit }}</span></div>
            <div class="cont" v-if="feeFrom.priceParam2.name!=null"><span class="label">实际{{feeFrom.priceParam2.name }}:</span><span class="txt">{{info.priceNum2 || 0 }}{{feeFrom.priceParam2.unit }}</span></div>
            <div class="cont"  :style="feeFrom.priceParam2.name!=null?'':'flex: 2'"><span class="label">其他费用:</span> <span class="txt">{{((info.confirmOtherFee||0)/100).toFixed(2) }}元</span></div>
          </div>
          <div class="line">
            <div class="cont"><span class="label">实际总费用:</span><span class="txt yellowbtn">{{((info.estimatedAccount||0)/100).toFixed(2) }}元</span></div>
            <div class="cont"  style="flex: 2"><span class="label">备注:</span><span class="txt">{{info.confirmFeeRemark || '' }}</span></div>
          </div>
        </div>
      </div>
      <div class="renzheng" >
        <div class="info" >
          <span class="m10">发单方信息</span>
@@ -248,9 +264,19 @@
  data () {
    return {
      id: '',
      wayList:[],
      wayList: [],
      info: {},
      loading: false
      loading: false,
      feeFrom: {
        priceParam1: {
          name: null,
          unit: null
        },
        priceParam2: {
          name: null,
          unit: null
        }
      }
    }
  },
  methods: {
@@ -259,7 +285,17 @@
      this.visible = true
      this.tableData2 = []
      this.id = row.id
      this.wayList=[]
      this.wayList = []
      this.feeFrom = {
        priceParam1: {
          name: null,
          unit: null
        },
        priceParam2: {
          name: null,
          unit: null
        }
      }
      this.getData()
    },
    getData () {
@@ -267,9 +303,10 @@
        .then(res => {
          this.info = res
          this.visible = true
          if(this.info.wayInfo){
          if (this.info.wayInfo) {
            this.wayList = JSON.parse(this.info.wayInfo)
          }
          this.initPriceNumParam()
          console.log(this.wayList)
        })
    },
@@ -277,7 +314,7 @@
    },
    showLogList () {
      this.$refs.orderProgress.open('订单流转日志', this.info.orderLogList||[])
      this.$refs.orderProgress.open('订单流转日志', this.info.orderLogList || [])
    },
    getScoreLevel (num) {
      if (this.info.commentLevel && this.info.commentLevel >= num) {
@@ -312,6 +349,54 @@
              })
          })
      })
    },
    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 = '次'
      }
    }
  }
}
small-program/pages/demand-hall/demand-hall.vue
@@ -107,9 +107,9 @@
                            <view class="eidt-phone" v-if="[2].includes(item.status)">联系师傅</view>
                            <view class="eidt-phone" v-if="item.status === 4 && item.commentStatus === 0">评价订单</view>
                            <view class="eidt-btn" v-if="[0,1,2].includes(item.status) && item.type !== 2 &&  item.isUpdate!=1" @click.stop="jumpEdit(item)">修改订单</view>
                            <view class="eidt-btn" v-if="(item.type  == 2 && item.status === 0)" @click.stop="jumpEdit(item)">继续支付</view>
                            <view class="eidt-btn" v-if="(item.type  == 2 && item.status === 0)" @click.stop="jumpDesc(item,1)">继续支付</view>
                            <!-- <view class="eidt-btn" v-if="item.status === 2" @click.stop="startJobs(item.id)">开始作业</view> -->
                            <view class="eidt-btn" v-if="item.type != 2 && item.status === 5" @click.stop="jumpDesc(item)">立即支付</view>
                            <view class="eidt-btn" v-if="item.type != 2 && item.status === 5" @click.stop="jumpDesc(item,2)">立即支付</view>
                            <view class="eidt-btn" v-if="item.type == 2 && item.status === 3" @click.stop="jumpDesc(item)">完成作业</view>
                        </view>
                    </view>
@@ -332,9 +332,9 @@
                        
                    })
            },
            jumpDesc(item) {
            jumpDesc(item,flag) {
                uni.navigateTo({
                    url: `/pages/order-details/order-details?id=${item.id}`
                    url: `/pages/order-details/order-details?id=${item.id}&flag=${flag}`
                })
            },
            // 修改
small-program/pages/freight/freight.vue
@@ -91,12 +91,15 @@
                    <view class="list-item-row">
                        <view class="list-item-row-label">运输重量/数量<b>*</b></view>
                        <view class="list-item-row-val">
                            <input type="text" style="flex: 1;" v-model="form.transportNum" placeholder="请输入" />
                            <view @click="show4 = true" style="width: 100rpx; flex-shrink: 0; display: flex; align-items: center; justify-content: flex-end;">
                            <input type="text" style="flex: 3;" v-model="form.transportNum" placeholder="请输入" />
                            <!-- <view @click="show4 = true" style="width: 100rpx; flex-shrink: 0; display: flex; align-items: center; justify-content: flex-end;">
                                <text>{{form.transportUnit}}</text>
                                <u-icon name="arrow-down" color="#111111" size="16"></u-icon>
                            </view>
                            </view> -->
                            <view  style="flex: 1;" :class="form.transportUnit ==='个' ? 'val-cate-item val-active' : 'val-cate-item'"   @click="form.transportUnit = '个'">个</view>
                            <view  style="flex: 1;" :class="form.transportUnit ==='斤' ? 'val-cate-item val-active' : 'val-cate-item'"   @click="form.transportUnit = '斤'">斤</view>
                        </view>
                    </view>
                    <view class="list-item-row" v-if="viewStatus">
                        <view class="list-item-row-label">需求补充</view>
@@ -438,7 +441,7 @@
                            }).then(res => {
                                if (res.code == 200) {
                                    uni.showToast({
                                        title: '编辑成功',
                                        title: '修改成功',
                                        icon: 'success',
                                        mask: true,
                                        duration: 2000
@@ -552,6 +555,7 @@
                        if ([2].includes(type)) {
                            this.form.latitude = res.latitude
                            this.form.longitude = res.longitude
                            this.form.location = res.name || res.address
                            this.form.address = res.name || res.address
                        } else if (type === 3) {
                            this.form.locationEnd = res.name || res.address
@@ -989,6 +993,25 @@
                            font-size: 30rpx;
                            color: #111111;
                        }
                        .val-active {
                            background: #00BC12 !important;
                            color: #ffffff !important;
                        }
                        .val-cate-item {
                            width: 208rpx;
                            height: 72rpx;
                            line-height: 72rpx;
                            text-align: center;
                            font-weight: 400;
                            font-size: 28rpx;
                            color: #333333;
                            background: #EEEEEE;
                            border-radius: 36rpx;
                            margin-right: 24rpx;
                            &:last-child {
                                margin: 0 !important;
                            }
                        }
                    }
                }
            }
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>
@@ -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>
@@ -112,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">
@@ -169,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>
@@ -206,7 +258,6 @@
            </view>
            <view style="width: 100%; height: env(safe-area-inset-bottom);"></view>
        </view>
        <u-modal
            title="温馨提示"
            :show="show"
@@ -316,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>
@@ -388,6 +439,7 @@
                show5:false,
                show6:false,
                show7:false,
                actionFlag:null,
                timeInfo:'00:00:00',
                timeInfo1:'00:00:00',
                lessTime:null,
@@ -421,6 +473,7 @@
            console.log(options)
            var id = options.id
            this.id = id 
            this.actionFla=options.flag
        },
        onShow(options) { 
            this.getOrderData()
@@ -500,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()
                    }
                })
            },
small-program/pages/packaging-worker/packaging-worker.vue
@@ -251,12 +251,16 @@
                if (!this.form.categoryId) {
                    return uni.showToast({ title: '请选择分拣品种', icon: 'none' })
                }
                if (this.form.carType !=0 && !this.form.priceNum1) {
                    var t = this.form.carType ==1?"工作时长":"包装重量"
                    return uni.showToast({ title: '请输入'+t, icon: 'none' })
                }
                if (!this.form.priceNum2) {
                    return uni.showToast({ title: '请输入用工数量', icon: 'none' })
                }
                if (!this.form.price) {
                    return uni.showToast({ title: '请输入费用标准', icon: 'none' })
                }
                }
                if (!this.form.linkPhone) {
                    return uni.showToast({ title: '请输入联系电话', icon: 'none' })
                }