doum
2025-09-15 82735e4d46ac7b9969facef2acc8f8e793b68f71
small-program/pages/freight/freight.vue
@@ -91,36 +91,40 @@
               <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="digit" 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" >
                  <view class="list-item-row-label">需求补充</view>
                  <view class="list-item-row-val">
                     <textarea cols="30" v-model="form.supplement" 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">
                     <view class="upload-item" v-for="(item, index) in form.multifileList" :key="index" @click="preview(index, form.multifileList)">
                        <image :src="item.url || item.fileurlFull" mode="widthFix"></image>
                        <image class="upload-item-dele" @click="form.multifileList.splice(index, 1)" src="/static/icon/ic_delete1@2x.png" mode="widthFix"></image>
                        <image class="upload-item-dele" @click.stop="form.multifileList.splice(index, 1)" src="/static/icon/ic_delete1@2x.png" mode="widthFix"></image>
                     </view>
                     <view class="upload-item" @click="uploadImg">
                        <u-icon name="plus" color="#999999" size="24"></u-icon>
                        <text>点击上传</text>
                     </view>
                     <view style="width: 215rpx; height: 0;"></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">
@@ -133,21 +137,21 @@
               <view class="list-item-row" v-if="form.carType==0">
                  <view class="list-item-row-label">用车天数</view>
                  <view class="list-item-row-val">
                     <input type="number" v-model="form.totalDays" disabled placeholder="" />
                     <input type="digit" v-model="form.totalDays" disabled placeholder="" />
                     <text>天</text>
                  </view>
               </view>
               <view class="list-item-row" v-if="form.carType==1">
                  <view class="list-item-row-label">用车次数<b>*</b></view>
                  <view class="list-item-row-val">
                     <input type="number" v-model="form.priceNum1"   placeholder="请输入" />
                     <input type="digit" v-model="form.priceNum1"  @input="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 type="digit" @blur="getPrice"  v-model="form.price" placeholder="请输入" />
                     <input type="digit" @input="getPrice"  v-model="form.price" placeholder="请输入" />
                     <text>{{form.priceUnit}}</text>
                  </view>
               </view>
@@ -304,6 +308,7 @@
               } else if (news === 1) {
                  this.form.priceUnit = '元/次'
               }
               this.getPrice()
            }
         }
      },
@@ -351,7 +356,11 @@
         this.getCategoryLists()
      },
      methods: {
          handleInputPrice(e) {
         preview(current, arr) {
            let urls = arr.map(item => item.url || item.fileurlFull)
            uni.previewImage({ current, urls })
         },
         handleInputPrice(e) {
             try{
                this.form.price = Number(this.form.price).toFixed(3) 
             }catch(e){
@@ -438,7 +447,7 @@
                     }).then(res => {
                        if (res.code == 200) {
                           uni.showToast({
                              title: '编辑成功',
                              title: '修改成功',
                              icon: 'success',
                              mask: true,
                              duration: 2000
@@ -485,8 +494,9 @@
               this.$u.api.getTotal({
                  price: Number(this.form.price).toFixed(2) * 100,
                  priceUnit: this.form.priceUnit,
                  priceNum1: this.form.priceNum1,
                  priceNum1: this.form.carType!=1?this.form.totalDays:this.form.priceNum1,
                  priceNum2: this.form.priceNum2,
                  carType:this.form.carType ,
                  type: 1
               }).then(res => {
                  if (res.code === 200) {
@@ -538,6 +548,7 @@
            let time = this.form.startDate == this.form.endDate ? 1 : 0
            this.form.totalDays = e.length - time;
            this.show2 = false
            this.getPrice()
         },
         addAddr() {
            this.form.wayInfoDTOList.push({
@@ -552,6 +563,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
@@ -925,21 +937,22 @@
                  width: 100%;
                  display: flex;
                  align-items: center;
                  justify-content: space-between;
                  flex-wrap: wrap;
                  padding: 30rpx 0;
                  box-sizing: border-box;
                  .upload-item {
                     width: 156rpx;
                     height: 156rpx;
                     width: 215rpx;
                     height: 215rpx;
                     display: flex;
                     align-items: center;
                     flex-direction: column;
                     justify-content: center;
                     background: #F8F9FB;
                     border-radius: 8rpx;
                     margin-right: 20rpx;
                     border: 2rpx solid #EEEEEE;
                     position: relative;
                     margin-bottom: 15rpx;
                     &:last-child {
                        margin: 0 !important;
                     }
@@ -989,6 +1002,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;
                     }
                  }
               }
            }
         }