yangan
2023-12-14 f8efcc177dcde3bbeec6a64bf2597a871e2ca64a
pages/driver-page/driver-index/bill-of-lading-details/weighDetail/weighDetail.vue
@@ -36,6 +36,7 @@
               <view class="num">{{ item.clean }}</view>
            </view>
         </view>
            <view v-if="isShow(item) && isYanz()">
         <view class="discount">
            <view class="rate">
               <view class="label-text">
@@ -45,7 +46,7 @@
                  class="count-input">
                  <u--input placeholder="请输入扣渣"
                     border="bottom"
                     type="number"
                     type="digit"
                     clearable
                     v-model="item.cinderWeight"
                     @input='v=>discountInputHandle(v,i,item.clean)'></u--input>
@@ -61,10 +62,11 @@
               <view class="count">{{ item.weight  || item.clean}}</view>
            </view>
         </view>
      </view>
         <!-- 判断是否检验质量 -->
         <view v-if="isShow(item)">
         <view v-if="isShow(item) && isYanz()">
            <view class="level">
            <view style="width: 140rpx;">
            <view style="width: 180rpx;">
               <u--text text="物资明细"
                  size='32'></u--text>
            </view>
@@ -90,7 +92,7 @@
               </text>
            </view>
         </view>
         <view class="unqualifiedBreed">
         <!-- <view class="unqualifiedBreed">
            <view style="width: 180rpx;">
               <u--text text="不合格品名"
                  size='32'></u--text>
@@ -119,7 +121,8 @@
               v-else-if="flag">
               {{item.unqualifiedWeight}}
            </view>
         </view>
         </view> -->
         <view class="notice-num">
            <view class="num-text"
               style="margin-left: 10rpx;">
@@ -231,8 +234,11 @@
            </view>
         </view>
         </view>
         <u-empty v-else icon-size="200"  text="''" >
         <u-empty v-if=" isYanz() && !isShow(item) " icon-size="200"  text="''" >
            <text>暂未验质</text>
         </u-empty>
         <u-empty v-if="!isYanz()" icon-size="200"  text="''" >
            <text>暂无数据</text>
         </u-empty>
         <view style="display: flex;margin-top: 20rpx;margin-left: 20rpx;"
            v-if="item.isImage">
@@ -262,6 +268,68 @@
               :previewFullImage="true">
            </u-upload>
         </view>
         <u--list
         :height="0"
         style="   margin-left: 50rpx;margin-top: 30rpx;"
         >
            <u--list-item
                v-for="(el,index) in unqualifiedArr(i) "
                style=" box-shadow: 0px 0 0 0px #ccc;"
               :key="index"
               :height="0"
            >
               <u-cell
                  :title="(index + 1) +  '.' + '不合格品类'"
                  style="text-indent: 30RPX;"
                  @click="editItem(i,index)"
               >
               <text slot="value" @click.stop="deleteItem(i,index)" style="color: red;">删除</text>
            </u-cell>
         <view>
            <view class="unqualifiedBreed">
            <view style="width: 180rpx;">
               <u--text text="不合格品名"
                  size='32'></u--text>
            </view>
            <view class="tag-select">
               <text>
                  <!-- {{!flag?(globalShowWeigh[i].unqualifiedBreed?globalShowWeigh[i].unqualifiedBreed:item.unqualifiedBreed):(item.unqualifiedBreed||"请选择")}} -->
                  {{  el.unqualifiedBreed  }}
               </text>
            </view>
         </view>
         </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="el.unqualifiedWeight"
                  readonly
                  @input='v=>unqualifiedWeightInputHandle(v,i,item.clean)'></u--input> -->
                  <view class="num-show"
>   {{el.unqualifiedWeight}}
            </view>
            </view>
            <view class="num-show"
               v-else-if="flag">
               {{el.unqualifiedWeight}}
            </view>
         </view>
         </view>
         </u--list-item>
      </u--list>
      <!-- 增加不合格规矩 -->
      <button  class="addBtn"  type="primary"   :plain="false"  @click="addUnqualified(i)">添加不合格品类</button>
         <!-- 物资明细 -->
         <u-action-sheet :actions="goodsList"
            :show="goodsShow"
@@ -289,6 +357,8 @@
         </view>
      </view>
      <!-- 新增 验质备注。验质说明 -->
      <view v-if=" isYanz()">
         <view v-if="coalDetailsData.orderType == '外购'">
      <view style="padding: 10rpx;">
      <u-row  >
                    <u-col span="24" >
@@ -328,6 +398,7 @@
                    </u-col>
                </u-row>
            </view>
         </view>
      <view class="confirm-button"
         v-if='roleType===4&&!flag'>
         <u-button type="primary"
@@ -337,13 +408,15 @@
            :loading="loading"
            loading-text="确认"></u-button>
      </view></view>
      </view>
      <!-- 物料明细 -->
      <view v-if="!current">
         <view class="main-block"
         v-for="(item,i) in goodsList"
         :key="item.id">
         <view class="level">
            <view style="width: 140rpx;">
            <view style="width: 180rpx;">
               <u--text text="物资名称"
                  size='32'></u--text>
            </view>
@@ -439,6 +512,7 @@
      data() {
         return {
            qualityInstructions:"",
             indexFlag:0, // 下标标志位
            remarks:'',
            selectlist:[
               {
@@ -529,13 +603,61 @@
            return    uni.getStorageSync('roleType')!== 4 && item.iszj == 1 ? true :  uni.getStorageSync('roleType')== 4 ? true : false;
                // 已经验质
            }
         },
         //判断需不需要验质
         isYanz(){
            return function(item){
            // return     ( this.coalDetailsData.orderType !=='外购' ||   this.coalDetailsData.weighingType !=='回磅') ? false : true;
            if(this.coalDetailsData.orderType =='外购'){
               if(this.coalDetailsData.weighingType == '回磅'){
                  return true
               }else{
                  return false
               }
            }else if(this.coalDetailsData.orderType =='外销'){
               return false;
            }
                // 已经验质
            }
         },
         //计算不合格规格数组
         unqualifiedArr(){
            return function(index){
               let arr = [];
               let temp = [];
               const item = this.globalShowWeigh[index];
               if(item){
               if(item.unqualifiedBreed){
                  arr = item.unqualifiedBreed.split(",");
                   temp = item.unqualifiedWeights.toString().split(',');
                   let result =  arr.length && arr.map((el,index)=>{
                  let obj = {unqualifiedBreed:el,unqualifiedWeight:temp[index]}
                  return obj
                  })
                  console.log(result,temp,'arr')
                  return result;
               }else{
                  return []
               }
               }
            }
         }
      },
      onShow(){
         this.numAll(this.globalShowWeigh[this.indexFlag].unqualifiedWeights.split(","),this.indexFlag,this.showWeigh[this.indexFlag].clean)
      },
      mounted() {
         this.roleType === 1 ? this.GetOrderPlan() : this.getTakeCoal()
         this.roleType === 1 ? this.GetOrderPlan() : this.getTakeCoal();
      },
      onLoad(params) {
         console.log(params,this.showWeighCopyStorge,'params路由')
         console.log(params,this.showWeighCopyStorge,this.globalShowWeigh,'params路由')
         this.orderPlanId = params.orderPlanId ? params.orderPlanId : '';
         this.flag = params.flag ? params.flag : false;
         this.ModifiedOrderIndex = params.index
@@ -546,6 +668,34 @@
      },
      methods: {
         ...mapMutations(['changeglobalShowWeigh']),
         numAll(value, index, clean){
            console.log(value,'valusess')
            // 计算扣渣净重
            // 判断是不是有净重才进行计算
            let x = new BigNumber(clean - 0)
            // let y = new BigNumber(value - 0) // 因为value 是 0 所以需要循环 取减
            let z = new BigNumber(this.showWeigh[index].cinderWeight -  0);
            let y;
            if(value.filter(Boolean) .length){
                y = value.reduce((p,n)=>{
            return (p - 0) + (n - 0);
             },0);
            }else{
                y = 0;
            }
            console.log(value,y,'yyyyyyyyy')
            if(x.minus(y).minus(z).toFixed(2)  <= 0){
                  this.showWeigh[index].weight = '0';
                  this.$u.toast('当前净重不合格,请检查皮重,毛重是否准确')
               }else{
                  this.showWeigh[index].weight = x.minus(y).minus(z).toFixed(2) ;
               }
         },
         getTakeCoal() {
            uni.showLoading({
               title: '加载中'
@@ -628,7 +778,7 @@
         // 点击确认
         confirmInput() {
            this.loading = true;
            let params = {};
            let params = {},unqualifiedWeightAll;
            params.qualityInstructions = this.qualityInstructions;
            params.remarks = this.remarks;
            this.showWeigh = this.showWeigh.map((v, i) => {
@@ -636,14 +786,21 @@
                  v.penaltyAmount = '';
                  v.unqualifiedType = '';
               }
               if(this.globalShowWeigh[i].unqualifiedWeight){
               unqualifiedWeightAll = this.globalShowWeigh[i].unqualifiedWeight.split(",").reduce((p,n)=>{return (p - 0) + (n - 0)},0)  || ''
               }else{
                  unqualifiedWeightAll =''
               }
               return {
                  ...v,
                  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(',')
                  inspectionJpg: v.fileList.map(v => v.url.replace(BaseUrl, '')).join(','),
                  unqualifiedWeights :this.globalShowWeigh[i].unqualifiedWeights,
                  unqualifiedWeight :unqualifiedWeightAll
               }
            })
            params.tmTaskCoalItems = this.showWeigh;
@@ -719,12 +876,36 @@
         },
         // 折扣率输入
         discountInputHandle(value, index, clean) {
            let znums;
            if(this.globalShowWeigh[index].unqualifiedWeights){
               znums = this.globalShowWeigh[index].unqualifiedWeights.split(',')
            }else{
               znums = []
            }
            console.log('计算净重',value, index, clean)
            this.indexFlag  = index; // 记录标识位
            if (
               value &&
               value.indexOf(".") < 0 &&
               value != ""
         ) {
            value = parseFloat(value);
            value = value + ""; // 变回为字符串
         }else{
            value =  value.replace(/^(-)*(\d+)\.(\d\d).*$/,"$1$2.$3");
            this.$nextTick(()=>{
               this.showWeigh[index].cinderWeight  = value.replace(/[^\d.]/g, "");
            });
         } // 如果没有小数点,首位不能为类似于 01、02的值
            this.showWeigh[index].cinderWeight = (value - 0)
               let x = new BigNumber(clean - 0)
               let y = new BigNumber(value - 0)
               let z =  new BigNumber(this.showWeigh[index].unqualifiedWeight - 0)
               console.log(clean,value,this.showWeigh[index].unqualifiedWeight - 0,'扣渣');
               let z =  new BigNumber(znums.reduce((p,n)=>{
                  return (p - 0) + (n - 0)
               },0))
               console.log(clean,value,'扣渣');
               if(x.minus(y).minus(z).toFixed(2) <= 0){
                  this.showWeigh[index].weight = '0';
                  this.$u.toast('当前净重不合格,请检查皮重,毛重是否准确')
@@ -740,7 +921,7 @@
               // this.unqualifiedShow = true
               // this.unqualifiedIndex = index
               uni.navigateTo({
                  url: `/pages/public-page/selectSpecifications/selectSpecifications?index=${index}&takeCoalId=${this.orderPlanId}&unqualified=${this.willUnqualified}`
                  url: `/pages/public-page/selectSpecifications/selectSpecifications?index=${index}&takeCoalId=${this.orderPlanId}&unqualified=${this.willUnqualified}&type=edit`
               })
            }
         },
@@ -754,6 +935,7 @@
         unqualifiedWeightInputHandle(value, index, clean) {
            // 判断是不是有净重才进行计算
            let x = new BigNumber(clean - 0)
            this.indexFlag  = index; // 记录标识位
            let y = new BigNumber(value - 0)
            let z = new BigNumber(this.showWeigh[index].cinderWeight -  0);
            if(x.minus(y).minus(z).toFixed(2)  <= 0){
@@ -820,6 +1002,62 @@
         },
         closeEvent(){
            this.focusSelect = false;
         },
         //增加不合格规矩
         addUnqualified(i){
            if (this.roleType === 4 && !this.flag) {
               // this.unqualifiedShow = true
               // this.unqualifiedIndex = index
               this.indexFlag  = i; // 记录标识位
               uni.navigateTo({
                  url: `/pages/public-page/selectSpecifications/selectSpecifications?index=${i}&takeCoalId=${this.orderPlanId}&unqualified=${this.willUnqualified}&type=add`
               })
               console.log(this.globalShowWeigh[i],'2222')
               this.numAll(this.globalShowWeigh[i].unqualifiedWeights.split(","),i,this.showWeigh[i].clean)
            }
         },
         deleteItem(i,index){
           let {unqualifiedBreed,unqualifiedWeights} =  this.globalShowWeigh[i];
           this.indexFlag  = i; // 记录标识位
           console.log(this.globalShowWeigh[i],'index')
           if (this.roleType === 4 && !this.flag) {
            if( unqualifiedBreed !== void 0 && unqualifiedWeights!== void 0 ){
            if(unqualifiedBreed.split(',').length > 1){
               // unqualifiedBreed = unqualifiedBreed.split(',').splice(index ,1).join(",")
               let strArr = unqualifiedBreed.split(',');
               strArr.splice(index ,1)
               unqualifiedBreed = strArr.join(",")
            }else{
               unqualifiedBreed = '';
            }
            if(unqualifiedWeights.split(',').length > 1){
               // unqualifiedWeights = unqualifiedWeights.split(',').splice(index,1).join(",")
               let strArr = unqualifiedWeights.split(',');
                strArr.splice(index ,1)
               unqualifiedWeights = strArr.join(",")
            }else{
               unqualifiedWeights = '';
            }
             this.globalShowWeigh[i].unqualifiedBreed = unqualifiedBreed;
             this.globalShowWeigh[i].unqualifiedWeights = unqualifiedWeights;
             this.globalShowWeigh[i].tempArr.splice(index,1)
             }
             this.numAll(this.globalShowWeigh[this.indexFlag].unqualifiedWeights.split(","),this.indexFlag,this.showWeigh[this.indexFlag].clean)
             console.log(this.globalShowWeigh[i],'deleteItem');
           }
         },
         editItem(i,index){
            this.indexFlag  = i; // 记录标识位
            if (this.roleType === 4 && !this.flag) {
               // this.unqualifiedShow = true
               // this.unqualifiedIndex = index
               uni.navigateTo({
                  url: `/pages/public-page/selectSpecifications/selectSpecifications?index=${i}&takeCoalId=${this.orderPlanId}&unqualified=${this.willUnqualified}&type=edit&indexTo=${index}`
               })
            }
         }
      },
   }
@@ -836,6 +1074,11 @@
   /deep/ .u-picker {
      height: 600rpx;
   }
   .addBtn{
      width: 65%;
      font-size: 26rpx;
      background-color: #3c9cff;;
   }
   .main {
      width: 96%;