qingyiay
2023-09-12 5386f47f55ecb9ad2189998f9dda6d682b6be7e0
pages/driver-page/driver-index/bill-of-lading-details/weighDetail/weighDetail.vue
@@ -5,6 +5,7 @@
         icon="http://cdn.uviewui.com/uview/empty/data.png"
         textSize="30"
         iconSize="1000"
         text="暂无数据"
         v-if="showWeigh.length===0"></u-empty>
      <view class="main-block"
         v-for="(item,i) in showWeigh"
@@ -56,68 +57,96 @@
               <view class="count">{{ item.weight }}</view>
            </view>
         </view>
         <view class="level">
            <view style="width: 140rpx;">
               <u--text text="物资明细"
                  size='32'></u--text>
            </view>
            <view class="tag-select"
               @click="goodsPopoverShow(i)"
               v-if='roleType===4'>
               <text>
                  {{item.breed+"/"+item.spec||item.modifygoodsName||'暂无'}}
               </text>
            </view>
         </view>
         <view class="level"
            v-if='item.modifygoodsName||globalShowWeigh[i].modifyProductName'>
            <view style="width: 180rpx;">
               <u--text text="品名与规格"
                  size='32'></u--text>
            </view>
            <view class="tag-select"
               @click="productNamePopoverShow(i)">
               <text>
                  {{!flag?(globalShowWeigh[i].modifyProductName?globalShowWeigh[i].modifyProductName:item.modifygoodsName):(item.breed+'/'+item.spec)}}
               </text>
            </view>
         </view>
         <view class="unqualifiedBreed">
            <view style="width: 180rpx;">
               <u--text text="不合格品名"
                  size='32'></u--text>
            </view>
            <view class="tag-select"
               @click="selectunqualifiedBreed(i)">
               <text>
                  {{!flag?(globalShowWeigh[i].unqualifiedBreed?globalShowWeigh[i].unqualifiedBreed:item.unqualifiedBreed):(item.unqualifiedBreed||"请选择")}}
               </text>
            </view>
         </view>
         <view class="notice-num">
            <view class="num-text">
               <u--text text="不合格重量"
                  size='32'></u--text>
            </view>
            <view class="num-input"
               v-if='roleType===4&&!flag'>
               <u--input placeholder="请输入不合格重量"
                  border="bottom"
                  clearable
                  v-model="item.unqualifiedWeight"
                  @input='v=>unqualifiedWeightInputHandle(v,i,item.clean)'></u--input>
            </view>
            <view class="num-show"
               v-else-if="flag">
               {{item.unqualifiedWeight}}
            </view>
         </view>
         <view class="notice-num">
            <view class="num-text"
               style="margin-left: 10rpx;">
               <u--text text="通知数量"
                  size='32'></u--text>
            </view>
            <view class="num-input">
            <view class="num-input"
               v-if='roleType===4&&!flag'>
               <u--input placeholder="请输入通知数量"
                  border="bottom"
                  clearable
                  v-model="item.num"></u--input>
            </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.unqualifiedBreed"></u--input>
            <view class="num-show"
               v-else-if="flag">
               {{item.num}}
            </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"></u--input>
         <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 class="level"
            v-if='!flag'>
            <view class=""
               style="width: 140rpx;">
               <u--text text="物资明细"
                  size='32'></u--text>
            </view>
            <u-tag :text="item.breed+item.spec||item.modifygoodsName||'暂无'"
               plain
               @click="goodsPopoverShow(i)"
               v-if='item.breed&&item.spec||roleType===4'></u-tag>
         </view>
         <view class="level"
            v-if='item.modifygoodsName||flag'>
            <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"
                  plain
                  @click="productNamePopoverShow(i)"></u-tag>
            </view>
         </view>
         <view class=""
            style="margin-top: 8rpx;">
         <view v-else-if='!item.isImage&&!flag'
            style="margin: 30rpx 80rpx;">
            <u-upload :fileList="item.fileList"
               deletable
               @afterRead="afterRead"
@@ -137,7 +166,7 @@
            :closeOnClickOverlay='true'
            @close='goodsNameClose'
            @select="goodsselectClick"></u-action-sheet>
         <!-- 产品列表 -->
         <!-- 品名与规格 -->
         <view class="">
            <u-action-sheet :actions="actionsList"
               :show="actionShow"
@@ -145,6 +174,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"
@@ -160,8 +198,10 @@
</template>
<script>
   import BigNumber from "bignumber.js"
   import { BaseUrl } from '@/api/publicInterface.js';
   import { onlineurl } from '@/api/request.js'
   import { mapState, mapMutations } from "vuex"
   export default {
      data() {
         return {
@@ -190,27 +230,49 @@
            isModify: false,
            // 上传图片
            fileList1: [],
            BaseUrl,
            // 不合格品名
            unqualifiedShow: false,
            unqualifiedIndex: null,
            dataForm: {},
            // // 判断是修改品名与规格还是不合格品名
            ModifiedOrderIndex: null,
            willProductName: true,
            willUnqualified: true,
            alterProductName: false,
            alterUnqualified: false,
            // 存储中间态
            showWeighCopyStorge: [],
            havedSubmit: false
         };
      },
      computed: {
         ...mapState(["globalShowWeigh"]),
         roleType() {
            return uni.getStorageSync('roleType')
         },
         showWeighCopyStorgeOther() {
            return uni.getStorageSync('showWeighCopyStorgeOther')
         }
      },
      onLoad(params) {
         this.orderPlanId = params.orderPlanId ? params.orderPlanId : '';
         this.flag = params.flag ? params.flag : false;
         this.roleType === 1 ? this.GetOrderPlan() : this.getTakeCoal()
         this.getJcProductList()
         this.ModifiedOrderIndex = params.index
         this.alterProductName = params.productName === "true" || false
         this.alterUnqualified = params.unqualified === "true" || false
         this.havedSubmit = params.havedSubmit === "true" || false
      },
      methods: {
         ...mapMutations(['changeglobalShowWeigh']),
         getTakeCoal() {
            uni.showLoading({
               title: '加载中'
            });
            this.$reqGet('getTakeCoal', { takeCoalId: this.orderPlanId }).then(res => {
               if (res.code == 0) {
                  uni.hideLoading()
                  this.coalDetailsData = res.data;
                  this.orderCode = res.data.orderCode
                  this.showWeigh = this.coalDetailsData.tmTaskCoalItems ? this.coalDetailsData
@@ -220,11 +282,18 @@
                        ...v,
                        modifyProductName: '',
                        modifygoodsName: '',
                        fileList: []
                        fileList: [],
                        inspectionJpg: v.inspectionJpg.split(','),
                        isImage: v.inspectionJpg
                     }
                  })
                  this.showWeighCopy = JSON.parse(JSON.stringify(this.showWeigh))
                  uni.hideLoading()
                  uni.setStorageSync("showWeighCopyStorge", this.showWeighCopy)
                  if (this.havedSubmit) {
                     this.changeglobalShowWeigh(uni.getStorageSync('showWeighCopyStorgeOther'))
                  } else {
                     this.changeglobalShowWeigh(uni.getStorageSync('showWeighCopyStorge'))
                  }
               } else {
                  this.$u.toast('加载失败')
                  uni.hideLoading()
@@ -234,7 +303,7 @@
                  this.goodsList = r.data.map(v => {
                     return {
                        ...v,
                        name: v.breed + v.spec
                        name: v.breed + '/' + v.spec
                     }
                  })
                  uni.hideLoading()
@@ -268,15 +337,17 @@
               }
            })
         },
         // 输入折扣率后点击确认
         // 点击确认
         confirmInput() {
            this.loading = true
            this.showWeigh = this.showWeigh.map((v, i) => {
               return {
                  ...v,
                  breed: this.showWeighCopy[i].modifyProductName ? this.showWeighCopy[i].breed : v.breed,
                  spec: this.showWeighCopy[i].modifyProductName ? this.showWeighCopy[i].spec : v.spec,
                  inspectionJpg: v.fileList.join(',')
                  unqualifiedBreed: this.globalShowWeigh[i].unqualifiedBreed ? this.globalShowWeigh[i]
                     .unqualifiedBreed : v.unqualifiedBreed,
                  breed: this.globalShowWeigh[i].modifyProductName ? this.globalShowWeigh[i].breed : v.breed,
                  spec: this.globalShowWeigh[i].modifyProductName ? this.globalShowWeigh[i].spec : v.spec,
                  inspectionJpg: v.fileList.map(v => v.url.replace(BaseUrl, '')).join(',')
               }
            })
@@ -292,14 +363,17 @@
                     }, 800)
                  } else {
                     this.loading = false
                     this.$u.toast('操作失败')
                     this.$u.toast(res.msg ? res.msg : '操作失败')
                  }
               })
         },
         // 物资明细
         goodsPopoverShow(index) {
            this.goodsShow = true
            this.goodsIndex = index
            if (this.roleType === 4 && !this.flag) {
               this.goodsShow = true
               this.goodsIndex = index
            }
         },
         goodsNameClose() {
            this.goodsShow = false
@@ -314,11 +388,14 @@
            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
               this.actionIndex = index
               // this.actionShow = true
               // this.actionIndex = index
               uni.navigateTo({
                  url: `/pages/public-page/selectSpecifications/selectSpecifications?index=${index}&takeCoalId=${this.orderPlanId}&productName=${this.willProductName}`
               })
            }
         },
         productNameClose() {
@@ -332,12 +409,38 @@
         // 折扣率输入
         discountInputHandle(value, index, clean) {
            this.showWeigh[index].cinderWeight = Number(value)
            this.showWeigh[index].weight = (clean - (Number(value)).toFixed(2));
            if (clean) {
               let x = new BigNumber(clean)
               let y = new BigNumber(value)
               this.showWeigh[index].weight = x.minus(y).toFixed(2)
            }
         },
         // 选择不合格品名
         selectunqualifiedBreed(index) {
            if (this.roleType === 4 && !this.flag) {
               // this.unqualifiedShow = true
               // this.unqualifiedIndex = index
               uni.navigateTo({
                  url: `/pages/public-page/selectSpecifications/selectSpecifications?index=${index}&takeCoalId=${this.orderPlanId}&unqualified=${this.willUnqualified}`
               })
            }
         },
         unqualifiedClose() {
            this.unqualifiedShow = false
         },
         selectUnqualifiedClick(val) {
            this.showWeigh[this.unqualifiedIndex].unqualifiedBreed = val.secondCategoryName + val.spec
         },
         // 不合格重量输入
         unqualifiedWeightInputHandle(value, index, clean) {
            let x = new BigNumber(clean)
            let y = new BigNumber(value)
            let z = new BigNumber(this.showWeigh[index].cinderWeight)
            this.showWeigh[index].weight = x.minus(y).minus(z).toFixed(2) || ''
         },
         // 删除图片
         deletePic(event) {
            this.showWeigh[event.name].fileList.splice(event.index, 1);
            // this[`fileList${event.name}`].splice(event.index, 1);
         },
         // 新增图片
         async afterRead(event) {
@@ -374,7 +477,6 @@
                  name: 'file',
                  formData: {},
                  success: res => {
                     this.showWeigh[num].fileList.push(JSON.parse(res.data).data.url)
                     resolve(`${BaseUrl}${JSON.parse(res.data).data.url}`);
                  }
               });
@@ -493,14 +595,43 @@
               width: 60%;
               border-bottom: 1px solid rgb(218, 219, 222);
            }
            .num-show {
               width: 60%;
               color: #303030
            }
         }
         .unqualifiedBreed {
            @extend .level;
         }
         .level {
            width: 60%;
            margin-top: 30rpx;
            margin-left: 80rpx;
            width: 89%;
            margin: 30rpx 80rpx;
            display: flex;
            justify-content: space-between;
            justify-content: flex-start;
            .tag-select {
               flex: 1;
               margin-left: 14rpx;
               text-align: center;
               white-space: nowrap;
               overflow: hidden;
               text-overflow: ellipsis;
               border: 1rpx solid rgb(60, 156, 255);
               padding: 8rpx 14rpx;
               color: rgb(60, 156, 255);
               font-size: 26rpx;
               .tag-select_text {
                  // width: vww(180);
                  // border: 1rpx solid rgb(60, 156, 255);
                  // padding: 8rpx 14rpx;
                  // color: rgb(60, 156, 255);
                  // font-size: 26rpx;
               }
            }
         }
         .select-button {