小小儁爺
2025-05-13 cd0ccf788c9d94708c70c75210135db344f68083
pages/wlgl/cgrk4.vue
@@ -45,12 +45,11 @@
                                    <view>物料名称:</view>
                                    <view>物料规格:</view>
                                    <view>采购订单:</view>
                                    <view v-show='item.children.length===0'>入库数量:</view>
                                    <view>入库进度:</view>
                                    <view>任务数量:</view>
                                    <view>到货进度:</view>
                                    <!-- <view>物料标签:</view> -->
                                    <view v-show="!item.arrowType">物料数量:</view>
                                    <view v-show="!item.arrowType">供方信息:</view>
                                    <view v-show="!item.arrowType">采购批次:</view>
                                    <view v-show="!item.arrowType">质量状态:</view>
                                 </view>
                                 <view class="flex_column contentFont">
                                    <view>{{item.partcode}}</view>
@@ -58,48 +57,32 @@
                                    <view class="ellipsis" style="width: 460rpx;">
                                       {{item.partspec?item.partspec:'/'}}
                                    </view>
                                    <view>{{item.ordercode}}</view>
                                    <view>{{ordercode}}</view>
                                    <view v-show='item.children.length===0'>
                                       <u--input placeholder="请输入" border="surround" min='1'
                                          v-model="item.countInquantity2"></u--input>
                                    </view>
                                    <view style="height: 50rpx;display: flex;align-items: center;">
                                       <u-line-progress :percentage="(item.hqty/item.hplanqty)*100"
                                       {{parseFloat(item.countInquantity)}}
                                    </view>
                                    <view>{{ parseFloat(item.quantity)}}</view>
                                    <view style="height: 50rpx;display: flex;align-items: center;">
                                       <u-line-progress
                                          :percentage="(item.countarrivalquantity/item.quantity)*100"
                                          height="12" :showText='false'></u-line-progress>
                                       <view style="margin-left: 6rpx; color:#2979FF">
                                          {{item.hqty}}
                                          {{parseFloat(item.countarrivalquantity)}}
                                       </view>
                                       <view>
                                          /
                                       </view>
                                       <view>
                                          {{item.hplanqty}} PCS
                                       </view>
                                    </view>
                                    <!-- <view>还像还没返回</view> -->
                                    <view v-show="!item.arrowType">{{item.hqty}}</view>
                                    <view v-show="!item.arrowType">{{item.customername}}</view>
                                    <view v-show="!item.arrowType">/</view>
                                    <view v-show="!item.arrowType">
                                       <view v-if="!item.qualitystatus">/</view>
                                       <view v-else style="display: flex;align-items: center;">
                                          <u-icon name="tags-fill" color="green" size="20"
                                             v-if="item.qualitystatus==='CS'"></u-icon>
                                          <view style="margin-left: 10rpx;"
                                             v-if="item.qualitystatus==='CS'">免检</view>
                                          <u-icon name="checkmark-circle-fill" color="#55ff00" size="20"
                                             v-if="item.qualitystatus==='OK'"></u-icon>
                                          <view style="margin-left: 10rpx;"
                                             v-if="item.qualitystatus==='OK'">合格</view>
                                          <u-icon name="close-circle-fill" color="#FF0000" size="20"
                                             v-if="item.qualitystatus==='NG'"></u-icon>
                                          <view style="margin-left: 10rpx;"
                                             v-if="item.qualitystatus==='NG'">不合格</view>
                                          <u-icon name="more-circle-fill" color="#55aaff" size="20"
                                             v-if="item.qualitystatus==='TS'"></u-icon>
                                          <view style="margin-left: 10rpx;"
                                             v-if="item.qualitystatus==='TS'">待检</view>
                                          {{parseFloat(item.quantity)}} PCS
                                       </view>
                                    </view>
@@ -110,7 +93,7 @@
                           </view>
                           <view class="head_block" v-show="!item.arrowType">
                           <view class="head_block">
                              <view class="head_left">
                                 <view class="head_bar"></view>
                                 <view class="head_title" style="font-weight: bold;">
@@ -123,8 +106,7 @@
                              </view>
                           </view>
                           <view class="flex_between marginBottom20 marginLeft20 marginTop20"
                              v-show="!item.arrowType">
                           <view class="flex_between marginBottom20 marginLeft20 marginTop20">
                              <view style="display: flex;">
                                 <view class="flex_column titleFont">
                                    <view>库位信息:</view>
@@ -141,7 +123,99 @@
                           </view>
                           <view style="display: flex;justify-content: center;margin : 10rpx; 0">
                           <view class="flex_column borderSet" v-if='item.children.length>0'
                              :style="{'borderBottom':ind===item.children.length-1?' 1px blue dotted':'none'}"
                              v-for="(it,ind) in item.children" :key="item.hbarcode" v-show="!item.arrowType">
                              <!-- <u-gap height="2" style="width: 90%;margin: auto;" bgColor="#eff0f1"></u-gap> -->
                              <view class="head_block" style="position: absolute;margin: 38rpx 0 0 0;">
                                 <view class="head_left">
                                    <view class="head_bar"></view>
                                    <view class="head_title" style="font-weight: bold;">
                                       标签信息
                                    </view>
                                 </view>
                              </view>
                              <view class="orderNumber" style="width: 80rpx;margin-left:0" :key="it.hbarcode">
                                 {{(index+1).toString().padStart(2,0)}}-{{ind+1}}
                              </view>
                              <!-- v-show="item.children.length>1" -->
                              <view class="trash" @click="trashChildrenClick(index,ind)">
                                 <u-icon name="trash" size='20'></u-icon>
                              </view>
                              <view v-show="item.children.length===1" style="width: 48rpx;height: 48rpx;">
                              </view>
                              <view class="flex_between marginBottom20 marginLeft20 marginTop20">
                                 <view style="display: flex;">
                                    <view class="flex_column titleFont">
                                       <view>物料标签:</view>
                                       <view>到货单号:</view>
                                       <view>物料数量:</view>
                                       <view>供方信息:</view>
                                       <view>采购批次:</view>
                                       <view>质量状态:</view>
                                    </view>
                                    <view class="flex_column contentFont">
                                       <view>{{it.hbarcode?it.hbarcode:'/'}}</view>
                                       <view>{{it.hbillno?it.hbillno:'/'}}</view>
                                       <view>{{it.hqty}}</view>
                                       <view>{{it.hcustomername}}</view>
                                       <view>/</view>
                                       <view>
                                          <view v-if="!it.qstatus">/</view>
                                          <view v-else style="display: flex;align-items: center;">
                                             <u-icon name="tags-fill" color="green" size="20"
                                                v-if="it.qstatus==='CS'"></u-icon>
                                             <view style="margin-left: 10rpx;" v-if="it.qstatus==='CS'">
                                                免检</view>
                                             <u-icon name="checkmark-circle-fill" color="#55ff00"
                                                size="20" v-if="it.qstatus==='OK'"></u-icon>
                                             <view style="margin-left: 10rpx;" v-if="it.qstatus==='OK'">
                                                合格</view>
                                             <u-icon name="close-circle-fill" color="#FF0000" size="20"
                                                v-if="it.qstatus==='NG'"></u-icon>
                                             <view style="margin-left: 10rpx;" v-if="it.qstatus==='NG'">
                                                不合格</view>
                                             <u-icon name="more-circle-fill" color="#55aaff" size="20"
                                                v-if="it.qstatus==='TS'"></u-icon>
                                             <view style="margin-left: 10rpx;" v-if="it.qstatus==='TS'">
                                                待检</view>
                                          </view>
                                       </view>
                                    </view>
                                 </view>
                              </view>
                           </view>
                           <view v-show='item.children.length>0'
                              style="display: flex;justify-content: center;margin : 10rpx; 0">
                              <view class="arrowClass"
                                 @click="item.arrowType?arrowDownClick(item):arrowUpClick(item)">
                                 <u-icon :name="item.arrowType?'arrow-down':'arrow-up'" color="#c8c8c8"
@@ -150,6 +224,7 @@
                           </view>
                           <u-gap height="10" v-if="index!==purchorderArr.length-1" bgColor="#eff0f1"></u-gap>
                        </view>
@@ -196,6 +271,7 @@
      onLoad(option) {
         this.getMesAppPurchInStorSelectCGOrderPart(option.ordercode)
         this.ordercode = option.ordercode
      },
      onPullDownRefresh() {
@@ -216,7 +292,8 @@
            columns: [],
            columnsData: [],
            wareHouseLocationArr: [], //仓库库位数组
            isDisabledSubmitButton: false
            isDisabledSubmitButton: false,
            ordercode: '', //采购订单
         }
      },
      created() {
@@ -314,6 +391,10 @@
                  i.arrowType = ind !== 0
                  i.lcationcode = '' //库位
                  i.stockcode = '' //仓库
                  i.countInquantity2 = parseFloat(i.quantity) - parseFloat(i.countInquantity) +
                     parseFloat(i.countreturnquantity)
                  console.log(i.countInquantity)
               })
               this.purchorderArr = res.data
               this.purchorderObj = this.purchorderArr[0]
@@ -359,6 +440,16 @@
            val.arrowType = true
            this.$forceUpdate()
         },
         trashChildrenClick(index, ind) {
            this.purchorderArr[index].children.splice(ind, 1)
            if (this.purchorderArr[index].children.length > 0) {
               let sum = 0
               this.purchorderArr[index].children.forEach(i => {
                  sum += parseFloat(i.hqty)
               })
               this.purchorderArr[index].countInquantity2 = sum
            }
         },
         async submit() {
            const data1 = {
               username: uni.getStorageSync("username")
@@ -369,26 +460,71 @@
            if (ind > -1) { //说明有未填写的库位信息
               return this.$u.toast('第' + (ind + 1) + '个的库位信息未填写')
            }
            console.log(this.wareHouseLocationArr.flat())
            this.purchorderArr.forEach(i => {
            let count = 0
            this.purchorderArr.forEach((i, index) => {
               if (parseFloat(i.countInquantity2) <= 0) {
                  return count = index + 1
               }
               if (parseFloat(i.countInquantity2) > parseFloat(i.quantity) - parseFloat(i
                     .countInquantity) +
                  parseFloat(i.countreturnquantity)) {
                  return count = index + 1
               }
               if (i.children) {
                  i.children.forEach(j => {
                     j.lactioncode = this.purchorderObj.lcationname2
                     j.housecode = this.purchorderObj.stockname2
                     j.harcodelocation = 'IN'
                  })
               }
               data2.push({
                  "hbarcode": "",
                  "hbillno": "",
                  "hqty": i.hqty,
                  "hcustomercode": i.customercode,
                  "hdeptcode": i.departmentcode,
                  "hsourceid": i.hsourceid,
                  "hsourcebillno": i.hsourcebillno,
                  "sbid": i.sbid,
                  "partcode": i.partcode,
                  "partname": i.partname,
                  "partspec": i.partspec,
                  "unitcode": i.unitcode,
                  "hsourceid": i.orderid,
                  "hsourcebillno": i.ordercode,
                  "unitname": i.unitname,
                  "quantity": i.quantity,
                  "countarrivalquantity": i.countarrivalquantity,
                  "countInquantity": i.countInquantity2,
                  "countreturnquantity": i.countreturnquantity,
                  "lactioncode": this.purchorderObj.lcationname2,
                  "lactionname": this.purchorderObj.lcationcode,
                  "housecode": this.purchorderObj.stockname2,
                  "housename": this.purchorderObj.stockcode,
                  "deptcode": i.deptcode,
                  "deptname": i.deptname,
                  children: i.children
                  "stockcode": this.purchorderObj.stockname2,
                  "lcationcode": this.purchorderObj.lcationname2
                  // "hbarcode": "",
                  // "hbillno": "",
                  // "hqty": i.hqty,
                  // "hcustomercode": i.customercode,
                  // "hdeptcode": i.departmentcode,
                  // "partcode": i.partcode,
                  // "unitcode": i.unitcode,
                  // "hsourceid": i.orderid,
                  // "hsourcebillno": i.ordercode,
                  // "stockcode": this.purchorderObj.stockname2,
                  // "lcationcode": this.purchorderObj.lcationname2
               })
            })
            // console.log(JSON.stringify(data2))
            if (count > 0) {
               return this.$u.toast('第' + count + '个物料的入库数量错误!')
            }
            console.log(JSON.stringify(data2))
            const res = await MesAppPurchInStorSave(this.global.formatData(
               data1), data2)
@@ -417,23 +553,36 @@
      display: block;
   }
   .borderSet {
      width: 100%;
      border-top: 1px blue dotted;
      border-left: 1px blue dotted;
      border-right: 1px blue dotted;
   }
   .orderNumber {
      width: 60rpx;
      height: 40rpx;
      // margin: -22rpx 0 0 -30rpx;
      background-color: #d3daf9;
      color: #2979FF;
      // background-color: #d3daf9;
      background-color: #2979FF;
      color: #fff;
      font-size: 26rpx;
      padding: 4rpx 0 0 10rpx;
      border-radius: 0 0 90% 0;
      // padding: 4rpx 0 0 10rpx;
      border-radius: 8rpx;
      margin-left: calc(100% - 60rpx);
      display: flex;
      justify-content: center;
   }
   .trash {
      width: 48rpx;
      height: 48rpx;
      margin: -26rpx 0 0 646rpx;
      margin: 20rpx 0rpx -40rpx 646rpx;
      background-color: #d3daf9;
      font-size: 26rpx;
      padding: 6rpx 0 0 10rpx;
@@ -457,4 +606,11 @@
      // border-radius: 10rpx;
      height: 56rpx;
   }
   ::v-deep .u-input--radius {
      padding: 0 !important;
      border-bottom: 2rpx #ccc solid;
   }
</style>