MrShi
2025-09-05 2f0f13c472e3cb663c3f6cbb417cffe760a497f0
small-program/pages/using-workers/using-workers.vue
@@ -17,14 +17,17 @@
               <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>
               <view class="list-item-row">
                  <view class="list-item-row-label">地点描述</view>
                  <view class="list-item-row-val">
                  <!-- <view class="list-item-row-val">
                     <input type="text" v-model="form.locationRemark" placeholder="请输入" />
                  </view> -->
                  <view class="list-item-row-val">
                     <textarea v-model="form.locationRemark" cols="30" rows="10" placeholder="请输入" maxlength="200"></textarea>
                  </view>
               </view>
            </template>
@@ -50,13 +53,13 @@
                     <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">
@@ -69,10 +72,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">
@@ -82,7 +85,7 @@
               <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>元/斤</text>
                  </view>
               </view>
@@ -119,9 +122,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>
@@ -132,6 +135,7 @@
         :show="show"
         color="#00BC12"
         mode="range"
          :allowSameDay="true"
         @close="show = false"
         @confirm="confirmDate" />
      
@@ -185,7 +189,7 @@
            },
            modify: false,
            cateList: [],
            viewStatus: false
            viewStatus: true
         };
      },
      onLoad(option) {
@@ -210,6 +214,7 @@
            })
         } else {
            this.form.linkPhone = this.userInfo.telephone
            this.form.linkName = this.userInfo.name
            this.form.days = option.days
            this.form.startDate = option.startDate
            this.form.endDate = option.endDate
@@ -223,6 +228,7 @@
      methods: {
         // 提交订单
         submit() {
            var that = this;
            if (!this.form.categoryId) {
               return uni.showToast({ title: '请选择采摘品种', icon: 'none' })
            }
@@ -235,32 +241,41 @@
            if (!this.form.linkPhone) {
               return uni.showToast({ title: '请输入联系电话', icon: 'none' })
            }
            if (!this.form.id) {
               this.$u.api.release({ ...this.form, price: Number(this.form.price) * 100 })
                  .then(res => {
                     if (res.code == 200) {
                        uni.navigateTo({
                           url: `/pages/success/success?orderId=${res.data.id}`
            if (!that.form.id) {
               uni.requestSubscribeMessage({
                  tmplIds: ['oVjOBLcHxIlGzOMJsdInmgI5CHGXh-UTvMzQqfFOnIg','AA97cHjvlPiNO4viMkVe4JifCf9TD5b5Eb7s6El3VS8'],
                  success(res) {
                     that.$u.api.release({ ...that.form, price: Number(that.form.price) * 100 })
                        .then(res => {
                           if (res.code == 200) {
                              uni.navigateTo({
                                 url: `/pages/success/success?orderId=${res.data.id}`
                              })
                           }
                        })
                     }
                  })
                  }
               })
            } else {
               this.$u.api.updateOrder({ ...this.form, price: Number(this.form.price) * 100  })
                  .then(res => {
                     if (res.code == 200) {
                        uni.showToast({
                           title: '编辑成功',
                           icon: 'success',
                           mask: true,
                           duration: 2000
               // uni.requestSubscribeMessage({
               //    tmplIds: ['3YSC7gouRlSjHXz4CrWOGFzPmGwEBtFj4snwdfMvKHk'],
               //    success(res) {
                     that.$u.api.updateOrder({ ...that.form, price: Number(that.form.price) * 100  })
                        .then(res => {
                           if (res.code == 200) {
                              uni.showToast({
                                 title: '编辑成功',
                                 icon: 'success',
                                 mask: true,
                                 duration: 2000
                              })
                              setTimeout(() => {
                                 uni.navigateBack({ delta: 1 });
                                 // uni.$emit('refresh')
                              }, 1500)
                           }
                        })
                        setTimeout(() => {
                           uni.navigateBack({ delta: 1 });
                           uni.$emit('refresh')
                        }, 1500)
                     }
                  })
               //    }
               // })
            }
         },
         // 计算金额
@@ -292,7 +307,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
               }
            });
         },
@@ -313,24 +328,25 @@
         uploadImg() {
            uni.chooseImage({
               success: (chooseImageRes) => {
                  const tempFilePaths = chooseImageRes.tempFilePaths;
                  uni.uploadFile({
                     url: this.$baseUrl + '/web/public/upload',
                     filePath: tempFilePaths[0],
                     name: 'file',
                     formData: {
                        'folder': 'orders'
                     },
                     success: (uploadFileRes) => {
                        const res = JSON.parse(uploadFileRes.data)
                        this.form.multifileList.push({
                           fileurl: res.data.imgaddr,
                           name: res.data.originname,
                           url: res.data.url,
                           type: 0
                        })
                     }
                  });
                  for (let i = 0; i < chooseImageRes.tempFilePaths.length; i++) {
                     uni.uploadFile({
                        url: this.$baseUrl + '/web/public/upload',
                        filePath: chooseImageRes.tempFilePaths[i],
                        name: 'file',
                        formData: {
                           'folder': 'orders'
                        },
                        success: (uploadFileRes) => {
                           const res = JSON.parse(uploadFileRes.data)
                           this.form.multifileList.push({
                              fileurl: res.data.imgaddr,
                              name: res.data.originname,
                              url: res.data.url,
                              type: 0
                           })
                        }
                     });
                  }
               }
            });
         }