qingyiay
2023-07-07 837c21ced9ed0aafe17a7c0c16975a1b6731eb9d
pages/driver-page/driver-index/bill-of-lading-details/weighDetail/weighDetail.vue
@@ -8,7 +8,7 @@
         v-if="showWeigh.length===0"></u-empty>
      <view class="main-block"
         v-for="(item,i) in showWeigh"
         :key="i">
         :key="item.id">
         <view class="weigh-item">
            <view class="item">
               <view class="concrete"
@@ -35,43 +35,59 @@
         <view class="discount">
            <view class="rate">
               <view class="label-text">
                  折扣率
                  扣渣
               </view>
               <view v-if='roleType===4&&!flag'
                  class="count-input">
                  <u--input placeholder="请输入折扣率"
                  <u--input placeholder="请输入扣渣"
                     border="bottom"
                     clearable
                     v-model="item.discount"
                     v-model="item.cinderWeight"
                     @input='v=>discountInputHandle(v,i,item.clean)'></u--input>
               </view>
               <view v-else-if='flag'
                  class="count">{{ item.discount }}%
                  class="count">{{ item.cinderWeight }}
               </view>
            </view>
            <view class="weigh">
               <view class="label-text">
                  折扣后重量
                  扣渣后净重
               </view>
               <view class="count">{{ item.discountWeight }}</view>
               <view class="count">{{ item.weight }}</view>
            </view>
         </view>
         <view class="level">
            <u-tag :text="item.level||'请选择'"
         <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="popoverShow(i)"
               v-if='item.level||roleType===4'></u-tag>
            <u-tag :text="item.productName||'请选择'"
               plain
               @click="productNamePopoverShow(i)"
               v-if='item.level||roleType===4'></u-tag>
               @click="goodsPopoverShow(i)"
               v-if='item.breed&&item.spec||roleType===4'></u-tag>
         </view>
         <view v-if='roleType===4'>
            <u-picker :show="show"
               :columns="columns"
               @cancel='cancel'
               @confirm='confirm'></u-picker>
         <view class="level"
            v-if='item.modifygoodsName||flag'>
            <view style="width: 140rpx;">
               <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>
         <!-- 物资明细 -->
         <u-action-sheet :actions="goodsList"
            :show="goodsShow"
            cancelText='取消'
            :closeOnClickOverlay='true'
            @close='goodsNameClose'
            @select="goodsselectClick"></u-action-sheet>
         <!-- 产品列表 -->
         <view class="">
            <u-action-sheet :actions="actionsList"
               :show="actionShow"
@@ -82,7 +98,7 @@
         </view>
      </view>
      <view class="confirm-button"
         v-if='roleType===4'>
         v-if='roleType===4&&!flag'>
         <u-button type="primary"
            shape="circle"
            text="确认"
@@ -101,21 +117,27 @@
            orderPlanId: "",
            coalDetailsData: {},
            showWeigh: [],
            showWeighCopy: [],
            discountrate: "",
            loading: false,
            show: false,
            columns: [
               ['轻质', '中质', '重质']
            ],
            level: '请选择',
            selectIndex: null,
            // 物资明细
            goodsList: [],
            goodsShow: false,
            goodsIndex: null,
            // 产品列表
            actionsList: [],
            actionShow: false,
            actionIndex: null,
            onlineurl,
            havedInput: false,
            flag: false
            flag: false,
            orderCode: null,
            modifyProductName: null,
            // 是否修改
            isModify: false
         };
      },
      computed: {
@@ -129,6 +151,9 @@
      },
      onShow() {
         this.roleType === 1 ? this.GetOrderPlan() : this.getTakeCoal()
         if (this.orderCode) {
            this.getMaterialDetailByOrderCode()
         }
         this.getJcProductList()
      },
      methods: {
@@ -139,13 +164,33 @@
            this.$reqGet('getTakeCoal', { takeCoalId: this.orderPlanId }).then(res => {
               if (res.code == 0) {
                  this.coalDetailsData = res.data;
                  this.orderCode = res.data.orderCode
                  this.showWeigh = this.coalDetailsData.tmTaskCoalItems ? this.coalDetailsData
                     .tmTaskCoalItems : [],
                     uni.hideLoading()
                     .tmTaskCoalItems : [];
                  this.showWeigh = this.showWeigh.map(v => {
                     return {
                        ...v,
                        modifyProductName: '',
                        modifygoodsName: ''
                     }
                  })
                  this.showWeighCopy = JSON.parse(JSON.stringify(this.showWeigh))
                  uni.hideLoading()
               } else {
                  this.$u.toast('加载失败')
                  uni.hideLoading()
               }
            }).then(() => {
               this.$reqGet('getMaterialDetailByOrderCode', { orderCode: this.orderCode }).then(r => {
                  this.goodsList = r.data.map(v => {
                     return {
                        ...v,
                        name: v.breed + v.spec
                     }
                  })
                  uni.hideLoading()
               })
            })
         },
         GetOrderPlan() {
@@ -153,6 +198,7 @@
            this.$reqGet('GetOrderPlan').then(res => {
               if (res.data) {
                  this.coalDetailsData = res.data;
                  this.orderCode = res.data.orderCode
                  this.showWeigh = this.coalDetailsData[this.index].tmTaskCoals ? this.coalDetailsData[
                        this.index].tmTaskCoals : [],
                     uni.hideLoading();
@@ -168,7 +214,7 @@
                  this.actionsList = res.data.map(v => {
                     return {
                        ...v,
                        name: v.productName
                        name: v.secondCategoryName + v.spec
                     }
                  })
               }
@@ -177,6 +223,13 @@
         // 输入折扣率后点击确认
         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
               }
            })
            this.$reqPost('updateTmTaskCoalItem', this.showWeigh, 'json').then(
               res => {
                  if (res.code == 0) {
@@ -193,38 +246,42 @@
                  }
               })
         },
         // 选择质量
         popoverShow(i) {
            if (this.roleType === 4 && !flag) {
               this.show = true
               this.selectIndex = i
            }
         // 物资明细
         goodsPopoverShow(index) {
            this.goodsShow = true
            this.goodsIndex = index
         },
         // 选择产品
         productNamePopoverShow(i) {
            if (this.roleType === 4 && !flag) {
         goodsNameClose() {
            this.goodsShow = false
         },
         goodsselectClick(val) {
            this.showWeigh[this.goodsIndex].modifygoodsName = val.name
            this.showWeigh[this.goodsIndex].itemId = val.itemId
            this.showWeigh[this.goodsIndex].num = val.num
            this.showWeigh[this.goodsIndex].numUnit = val.numUnit
            this.showWeigh[this.goodsIndex].remark = val.remark
            this.showWeigh[this.goodsIndex].breed = val.breed
            this.showWeigh[this.goodsIndex].spec = val.spec
         },
         // 产品列表
         productNamePopoverShow(index) {
            if (this.roleType === 4 && !this.flag) {
               this.actionShow = true
               this.actionIndex = i
               this.actionIndex = index
            }
         },
         confirm(e) {
            this.show = false
            this.showWeigh[this.selectIndex].level = e.value[0]
         },
         cancel() {
            this.show = false
         },
         productNameClose() {
            this.actionShow = false
         },
         selectClick(val) {
            console.log(this.showWeigh);
            this.showWeigh[this.actionIndex].productName = val.productName
            this.showWeigh[this.actionIndex].productId = val.id
            this.showWeighCopy[this.actionIndex].modifyProductName = val.name
            this.showWeighCopy[this.actionIndex].breed = val.secondCategoryName
            this.showWeighCopy[this.actionIndex].spec = val.spec
         },
         // 折扣率输入
         discountInputHandle(value, index, clean) {
            this.showWeigh[index].discountWeight = ((Number(value) * clean) / 100).toFixed(2)
            this.showWeigh[index].cinderWeight = Number(value)
            this.showWeigh[index].weight = (clean - (Number(value)).toFixed(2));
         }
      },
   }
@@ -253,7 +310,7 @@
      .main-block {
         width: 690rpx;
         height: 360rpx;
         min-height: 360rpx;
         margin: vww(20) auto;
         padding: vww(5);
         background: #ffffff;
@@ -301,6 +358,7 @@
            .rate,
            .weigh {
               width: 50%;
               height: vww(80);
               display: flex;
               align-items: center;
               justify-content: space-around;
@@ -309,8 +367,11 @@
               .count-input {
                  width: 70%;
                  border-bottom: 1px solid rgb(218, 219, 222);
               }
            }
            .weigh {
               justify-content: space-between;
            }
            .count {
@@ -321,11 +382,25 @@
         }
         .level {
            width: 40%;
            width: 60%;
            margin-top: 30rpx;
            margin-left: 80rpx;
            display: flex;
            justify-content: space-between;
         }
         .select-button {
            width: 100%;
            @include flex;
            justify-content: flex-end;
            margin-bottom: 40rpx;
            position: absolute;
            right: vww(-120);
            bottom: vww(-10);
            /deep/ .u-button {
               width: 180rpx !important;
            }
         }
      }
@@ -335,10 +410,6 @@
         @include flex;
         justify-content: center;
         margin-bottom: 40rpx;
         /deep/ .u-button {
            width: 180 rpx !important;
         }
      }
   }
</style>