qingyiay
2023-07-13 4d7d02bbe9e91f4bdd2f45642775c320260129bc
pages/driver-page/driver-index/bill-of-lading-details/weighDetail/weighDetail.vue
@@ -68,6 +68,31 @@
                  v-model="item.num"></u--input>
            </view>
         </view>
         <view class="unqualifiedBreed">
            <view class="num-text"
               style="width: 160rpx;">
               <u--text text="不合格品名"
                  size='32'></u--text>
            </view>
            <view class="num-input">
               <u-tag :text="item.unqualifiedBreed||'请选择'"
                  plain
                  @click='selectunqualifiedBreed(i)'></u-tag>
            </view>
         </view>
         <view class="notice-num">
            <view class="num-text">
               <u--text text="不合格重量"
                  size='32'></u--text>
            </view>
            <view class="num-input">
               <u--input placeholder="请输入不合格重量"
                  border="bottom"
                  clearable
                  v-model="item.unqualifiedWeight"
                  @input='v=>unqualifiedWeightInputHandle(v,i,item.clean)'></u--input>
            </view>
         </view>
         <view class="level"
            v-if='!flag'>
            <view class=""
@@ -78,20 +103,47 @@
            <u-tag :text="item.breed+item.spec||item.modifygoodsName||'暂无'"
               plain
               @click="goodsPopoverShow(i)"
               v-if='item.breed&&item.spec||roleType===4'></u-tag>
               v-if='roleType===4'></u-tag>
         </view>
         <view class="level"
            v-if='item.modifygoodsName||flag'>
            <view style="width: 220rpx;">
               <u--text text="品名与规格修改"
            <view style="width: 200rpx;">
               <u--text text="品名与规格"
                  size='32'></u--text>
            </view>
            <view v-if="showWeighCopy[i].modifyProductName||item.breed&&item.spec">
               <u-tag :text="!flag?showWeighCopy[i].modifyProductName:item.breed+item.spec"
                  v-if="showWeighCopy[i].modifyProductName"
                  plain
                  @click="productNamePopoverShow(i)"></u-tag>
            </view>
         </view>
         <view style="display: flex;margin-top: 20rpx;margin-left: 20rpx;"
            v-if="item.isImage">
            <view style="width: 100px;"
               v-for="(val,index) in item.inspectionJpg"
               :key="index">
               <u--image :showLoading="true"
                  :src="`${BaseUrl}${val}`"
                  width="80px"
                  height="80px">
                  <view slot="error"
                     style="font-size: 24rpx;">加载失败</view>
               </u--image>
            </view>
         </view>
         <view v-else-if='!item.isImage&&!flag'
            style="margin-top: 8rpx;">
            <u-upload :fileList="item.fileList"
               deletable
               @afterRead="afterRead"
               @delete="deletePic"
               :name="i"
               multiple
               :maxCount="4"
               width="250"
               height="150"
               :previewFullImage="true">
            </u-upload>
         </view>
         <!-- 物资明细 -->
         <u-action-sheet :actions="goodsList"
@@ -100,7 +152,7 @@
            :closeOnClickOverlay='true'
            @close='goodsNameClose'
            @select="goodsselectClick"></u-action-sheet>
         <!-- 产品列表 -->
         <!-- 品名与规格 -->
         <view class="">
            <u-action-sheet :actions="actionsList"
               :show="actionShow"
@@ -108,6 +160,15 @@
               :closeOnClickOverlay='true'
               @close='productNameClose'
               @select="selectClick"></u-action-sheet>
         </view>
         <!-- 不合格品名 -->
         <view class="">
            <u-action-sheet :actions="actionsList"
               :show="unqualifiedShow"
               cancelText='取消'
               :closeOnClickOverlay='true'
               @close='unqualifiedClose'
               @select="selectUnqualifiedClick"></u-action-sheet>
         </view>
      </view>
      <view class="confirm-button"
@@ -123,7 +184,9 @@
</template>
<script>
   import { BaseUrl } from '@/api/publicInterface.js';
   import { onlineurl } from '@/api/request.js'
   import backtop from '../../../../../uni_modules/uview-ui/libs/config/props/backtop';
   export default {
      data() {
         return {
@@ -147,26 +210,27 @@
            havedInput: false,
            flag: false,
            orderCode: null,
            modifyProductName: null,
            // 是否修改
            isModify: false
            isModify: false,
            // 上传图片
            fileList1: [],
            BaseUrl,
            // 不合格品名
            unqualifiedShow: false,
            unqualifiedIndex: null
         };
      },
      computed: {
         roleType() {
            return uni.getStorageSync('roleType')
         }
         },
      },
      onLoad(params) {
         this.orderPlanId = params.orderPlanId ? params.orderPlanId : ''
         this.flag = params.flag ? params.flag : false
      },
      onShow() {
         this.orderPlanId = params.orderPlanId ? params.orderPlanId : '';
         this.flag = params.flag ? params.flag : false;
         this.roleType === 1 ? this.GetOrderPlan() : this.getTakeCoal()
         if (this.orderCode) {
            this.getMaterialDetailByOrderCode()
         }
         this.getJcProductList()
      },
      methods: {
@@ -184,8 +248,10 @@
                     return {
                        ...v,
                        modifyProductName: '',
                        modifygoodsName: ''
                        modifygoodsName: '',
                        fileList: [],
                        inspectionJpg: v.inspectionJpg.split(','),
                        isImage: v.inspectionJpg
                     }
                  })
                  this.showWeighCopy = JSON.parse(JSON.stringify(this.showWeigh))
@@ -240,7 +306,9 @@
               return {
                  ...v,
                  breed: this.showWeighCopy[i].modifyProductName ? this.showWeighCopy[i].breed : v.breed,
                  spec: this.showWeighCopy[i].modifyProductName ? this.showWeighCopy[i].spec : v.spec
                  spec: this.showWeighCopy[i].modifyProductName ? this.showWeighCopy[i].spec : v.spec,
                  inspectionJpg: v.fileList.map(v => v.url.replace(BaseUrl, '')).join(',')
               }
            })
            this.$reqPost('updateTmTaskCoalItem', this.showWeigh, 'json').then(
@@ -255,7 +323,7 @@
                     }, 800)
                  } else {
                     this.loading = false
                     this.$u.toast('操作失败')
                     this.$u.toast(res.msg ? res.msg : '操作失败')
                  }
               })
         },
@@ -277,7 +345,7 @@
            this.showWeigh[this.goodsIndex].spec = val.spec
            this.showWeigh[this.goodsIndex].weightUnit = val.weightUnit
         },
         // 产品列表
         // 品名与规格
         productNamePopoverShow(index) {
            if (this.roleType === 4 && !this.flag) {
               this.actionShow = true
@@ -296,7 +364,69 @@
         discountInputHandle(value, index, clean) {
            this.showWeigh[index].cinderWeight = Number(value)
            this.showWeigh[index].weight = (clean - (Number(value)).toFixed(2));
         }
         },
         // 选择不合格品名
         selectunqualifiedBreed(index) {
            if (this.roleType === 4 && !this.flag) {
               this.unqualifiedShow = true
               this.unqualifiedIndex = index
            }
         },
         // 不合格重量输入
         unqualifiedWeightInputHandle(value, index, clean) {
            this.showWeigh[index].weight = (clean - (Number(value)) - this.showWeigh[index].cinderWeight).toFixed(2)
            console.log(this.showWeigh[index].weight);
         },
         unqualifiedClose() {
            this.unqualifiedShow = false
         },
         selectUnqualifiedClick(val) {
            this.showWeigh[this.unqualifiedIndex].unqualifiedBreed = val.secondCategoryName + val.spec
         },
         // 删除图片
         deletePic(event) {
            this.showWeigh[event.name].fileList.splice(event.index, 1);
         },
         // 新增图片
         async afterRead(event) {
            // 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
            let lists = [].concat(event.file);
            let fileListLen = this.showWeigh[event.name].fileList.length;
            lists.map(item => {
               this.showWeigh[event.name].fileList.push({
                  ...item,
                  status: 'uploading',
                  message: '上传中'
               });
            });
            for (let i = 0; i < lists.length; i++) {
               const result = await this.uploadFilePromise(lists[i].url, event.name);
               let item = this.showWeigh[event.name].fileList[fileListLen];
               this.showWeigh[event.name].fileList.splice(
                  fileListLen,
                  1,
                  Object.assign(item, {
                     status: 'success',
                     message: '上传成功',
                     url: result
                  })
               );
               fileListLen++;
            }
         },
         uploadFilePromise(url, num) {
            return new Promise((resolve, reject) => {
               let a = uni.uploadFile({
                  url: BaseUrl + '/admin/sys-file/uploadUnToken',
                  filePath: url,
                  name: 'file',
                  formData: {},
                  success: res => {
                     resolve(`${BaseUrl}${JSON.parse(res.data).data.url}`);
                  }
               });
            });
         },
      },
   }
</script>
@@ -412,6 +542,12 @@
            }
         }
         .unqualifiedBreed {
            width: 64% !important;
            margin-left: 70rpx !important;
            @extend .level;
         }
         .level {
            width: 60%;
            margin-top: 30rpx;