doum
2025-09-15 a1c569d40b5d1d6571a197467a41fd3421c393ce
small-program/pages/packaging-worker/packaging-worker.vue
@@ -9,7 +9,7 @@
            <view class="list-item-row" @click="show = true">
               <view class="list-item-row-label">用工时间<b>*</b></view>
               <view class="list-item-row-val">
                  <text>{{form.startDate ? form.startDate + ' 至 ' + form.endDate + ' (' + form.priceNum1 + '天) ' : '请选择'}}</text>
                  <text>{{form.startDate ? form.startDate + ' 至 ' + form.endDate + ' (' + workDays + '天) ' : '请选择'}}</text>
                  <u-icon name="arrow-right" color="#111111" size="16"></u-icon>
               </view>
            </view>
@@ -18,7 +18,7 @@
               <view class="list-item-row" @click="selectAddress()">
                  <view class="list-item-row-label">用工地点<b>*</b></view>
                  <view class="list-item-row-val">
                     <text>{{form.location ? form.location : '请选择'}}</text>
                     <text style="width:80%;">{{form.location ? form.location : '请选择'}}</text>
                     <u-icon name="arrow-right" color="#111111" size="16"></u-icon>
                  </view>
               </view>
@@ -44,20 +44,13 @@
                     <u-icon name="arrow-right" color="#111111" size="16"></u-icon>
                  </view>
               </view>
               <view class="list-item-row">
                  <view class="list-item-row-label">用工数量<b>*</b></view>
                  <view class="list-item-row-val">
                     <input type="number" v-model="form.priceNum2" @blur="getPrice" placeholder="请输入" />
                     <text>人</text>
                  </view>
               </view>
               <view class="list-item-row" v-if="viewStatus">
               <view class="list-item-row"  >
                  <view class="list-item-row-label">需求补充</view>
                  <view class="list-item-row-val">
                     <textarea v-model="form.supplement" cols="30" rows="10" placeholder="如果有特殊要求,请在此处说明" maxlength="200"></textarea>
                  </view>
               </view>
               <view class="list-item-row" v-if="viewStatus">
               <view class="list-item-row"  >
                  <view class="list-item-row-label">图片</view>
                  <view class="list-item-row-upload">
                     <view class="upload-item" v-for="(item, index) in form.multifileList" :key="index">
@@ -70,10 +63,10 @@
                     </view>
                  </view>
               </view>
               <view class="list-item-zk" @click="viewStatus = !viewStatus">
            <!--    <view class="list-item-zk" @click="viewStatus = !viewStatus">
                  <text>{{viewStatus ? '收起' : '补充需求'}}</text>
                  <u-icon :name="viewStatus ? 'arrow-up' : 'arrow-down'" color="#00BC12" size="16"></u-icon>
               </view>
               </view> -->
            </view>
            <view class="list-item">
               <view class="list-item-label">
@@ -84,16 +77,27 @@
                  <view :class="form.carType === item.id ? 'list-item-cate-item active' : 'list-item-cate-item'" v-for="(item, index) in settlementType" :key="index" @click="clickType(item.id)">{{item.name}}</view>
               </view>
               <view class="list-item-row">
                  <view class="list-item-row-label">天数</view>
                  <view class="list-item-row-label" v-if="form.carType === 0">用工天数</view>
                  <view class="list-item-row-label" v-if="form.carType === 1">工作时长<b>*</b></view>
                  <view class="list-item-row-label" v-if="form.carType === 2">包装重量<b>*</b></view>
                  <view class="list-item-row-val">
                     <input v-model="form.priceNum1" disabled @blur="getPrice" type="number" placeholder="请输入" />
                     <text>天</text>
                     <input v-model="form.priceNum1" :disabled="form.carType === 0" @blur="getPrice" type="digit" placeholder="请输入" />
                     <text v-if="form.carType === 0">天</text>
                     <text v-if="form.carType === 1">小时</text>
                     <text v-if="form.carType === 2">斤</text>
                  </view>
               </view>
               <view class="list-item-row">
                  <view class="list-item-row-label">用工数量<b>*</b></view>
                  <view class="list-item-row-val">
                     <input type="digit" v-model="form.priceNum2" @blur="getPrice" placeholder="请输入" />
                     <text>人</text>
                  </view>
               </view>
               <view class="list-item-row">
                  <view class="list-item-row-label">费用标准<b>*</b></view>
                  <view class="list-item-row-val">
                     <input v-model="form.price" type="number" @blur="getPrice" placeholder="请输入" />
                     <input v-model="form.price" type="digit" @blur="getPrice" placeholder="请输入" />
                     <text>{{form.priceUnit}}</text>
                  </view>
               </view>
@@ -130,9 +134,9 @@
            </view>
         </view>
         <view class="footer-bottom">
            <div class="footer-bottom-btn" @click="submit">
               <text>立即下单</text>
               <text>(服务完成后付款)</text>
            <div class="footer-bottom-btn" @click="submit" >
               <text>{{form.id?'确认修改':'立即下单'}}</text>
               <text v-if="!form.id">(服务完成后付款)</text>
            </div>
         </view>
         <view style="width: 100%; height: env(safe-area-inset-bottom);"></view>
@@ -143,6 +147,7 @@
         :show="show"
         color="#00BC12"
         mode="range"
          :allowSameDay="true"
         @close="show = false"
         @confirm="confirmDate" />
      
@@ -198,11 +203,12 @@
            },
            settlementType: [
               { name: '按天付费', id: 0 },
               { name: '按次付费', id: 1 },
               { name: '按小时付费', id: 1 },
               { name: '按重量付费', id: 2 }
            ],
            cateList: [],
            viewStatus: false
            viewStatus: true,
            workDays: 0
         };
      },
      onLoad(option) {
@@ -211,18 +217,23 @@
            this.$u.api.getDetail({
               orderId: option.id
            }).then(res => {
               this.info = res.data
               for (const key in this.form) {
                  this.form[key] = res.data[key]
               if (res.code === 200) {
                  this.info = res.data
                  for (const key in this.form) {
                     this.form[key] = res.data[key]
                  }
                  this.form.days = res.data.totalDays
                  this.form.price = Number(this.form.price) / 100
                  if (!this.form.multifileList) {
                     this.form.multifileList = []
                  }
                  this.workDays = res.data.totalDays
                  // this.clickType()
               }
               this.form.days = res.data.totalDays
               this.form.price = Number(this.form.price) / 100
               if (!this.form.multifileList) {
                  this.form.multifileList = []
               }
               // this.clickType()
            })
         } else {
            this.form.linkName = this.userInfo.name
            this.form.linkPhone = this.userInfo.telephone
            this.form.priceNum1 = option.days
            this.form.startDate = option.startDate
@@ -231,6 +242,8 @@
            this.form.lgt = option.longitude
            this.form.location = option.address
            this.form.workType = option.workType
            this.form.days = option.days
            this.workDays = option.days
         }
         this.getCateList()
      },
@@ -240,12 +253,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' })
            }
@@ -266,7 +283,7 @@
                           uni.showToast({ title: '编辑成功', icon: 'success', mask: true, duration: 2000 })
                           setTimeout(() => {
                              uni.navigateBack({ delta: 1 });
                              uni.$emit('refresh')
                              // uni.$emit('refresh')
                           }, 1500)
                        }
                     }
@@ -279,18 +296,26 @@
               this.$u.api.getTotal({
                  price: Number(this.form.price) * 100,
                  priceNum1: this.form.priceNum1,
                  priceNum2: this.form.priceNum2,
                  priceNum2:  this.form.priceNum2,
                  type: this.form.type,
                  carType:this.form.carType ,
                  workType: this.form.workType
               }).then(res => {
                  this.form.estimatedAccount = res.data
                  if (res.code === 200) {
                     this.form.estimatedAccount = res.data
                  }
               })
            }
         },
         confirmDate(e) {
            this.form.startDate = e[0]
            this.form.endDate = e[e.length - 1]
            this.form.priceNum1 = e.length;
            let time = this.form.startDate == this.form.endDate ? 1 : 0
            this.workDays = e.length - time;
            if (this.form.carType === 0) {
               this.form.priceNum1 = e.length - time;
            }
            this.show = false
            this.getPrice()
         },
@@ -299,7 +324,7 @@
               success: (res) => {
                  this.form.lat = res.latitude
                  this.form.lgt = res.longitude
                  this.form.address = res.address
                  this.form.address =res.name ||  res.address
               }
            });
         },
@@ -307,8 +332,13 @@
            this.form.carType = id
            if (id === 0) {
               this.form.priceUnit = '元/人/天'
            } else {
               this.form.priceNum1 = this.workDays
            } else if (id === 1) {
               this.form.priceUnit = '元/人/小时'
               this.form.priceNum1 = ''
            } else {
               this.form.priceUnit = '元/斤'
               this.form.priceNum1 = ''
            }
         },
         confirmCategary(e) {
@@ -320,7 +350,9 @@
            this.$u.api.getCategoryList({
               type: 0
            }).then(res => {
               this.cateList = [res.data]
               if (res.code === 200) {
                  this.cateList = [res.data]
               }
            })
         },
         uploadImg() {