#
zjj
2025-07-17 32b10def2b0944c4afbe4d89e55261c39a690f1d
pages/listing/matnrPalletising.vue
@@ -1,5 +1,7 @@
<template>
   <view class="has-foot">
      <view>
      <form>
         <view class="cu-form-group margin-top">
            <view class="title">容器号</view>
@@ -11,11 +13,17 @@
            <input placeholder="请扫描物料编码" v-model="matnrCode"></input>
            <text class='cuIcon-search text-blue' @click="search"></text>
         </view>
         <view class="cu-form-group">
            <view class="title">ASN单号</view>
            <input placeholder="请输入ASN单号" v-model="asnCode"></input>
         </view>
      </form>
      <view class="flex solid-bottom padding-sm justify-between">
         <view class="text-blue">物料总类:{{list.length}}</view>
         <view class="text-blue">组盘总数:{{allCount}}</view>
      </view>
      </view>
      <view class="padding-lr margin-top-sm">
@@ -38,20 +46,18 @@
               </view>
               <view class="cu-item">
                  <view class="content">
                     <text class="text-black">物料编码:</text>
                     <text class="text-grey ">{{item.maktx}}</text>
                  </view>
               </view>
               <view class="cu-item">
                  <view class="content">
                     <text class="text-black">ASN:</text>
                  </view>
                  <view class="action">
                     <text class="text-grey ">{{item.asnCode}}</text>
                  </view>
               </view>
               <view class="cu-item">
                  <view class="content">
                     <text class="text-black">物料条码:</text>
                  </view>
                  <view class="action">
                     <text class="text-grey ">{{item.trackCode}}</text>
                  </view>
               </view>
               </view>
               <view class="cu-item">
                  <view class="content">
                     <text class="text-black">供应商批次:</text>
@@ -60,22 +66,19 @@
                     <text class="text-grey ">{{item.splrBatch}}</text>
                  </view>
               </view>
               <view class="cu-item">
               <view class="cu-item">
                  <view class="content">
                     <text class="text-black">库存批次:</text>
                  </view>
                  <view class="action">
                     <text class="text-grey ">{{item.batch}}</text>
                     <text class="text-black">质检结果: <text class="text-grey ">{{item.inspect}}</text></text>
                  </view>
               </view>
               <view class="cu-item">
               <!-- <view class="cu-item">
                  <view class="content">
                     <text class="text-black">平台行号: <text class="text-grey ">{{item.platformId}}</text></text>
                  </view>
                  <view class="content">
                     <text class="text-black">质检结果: <text class="text-grey ">{{item.inspect}}</text></text>
                  </view>
               </view>
               </view> -->
               <view class="cu-item">
                  <view class="content">
@@ -92,7 +95,7 @@
               <view class="cu-item">
                  <view class="content">
                     <text class="text-black">可组盘数量: <text
                           class="text-grey ">{{item.anfme - item.workQty}}</text></text>
                           class="text-grey ">{{item.anfme - item.workQty - item.qty}}</text></text>
                  </view>
                  
               </view>
@@ -102,8 +105,8 @@
                        <view class="title text-blue"><text
                              class="text-red text-xl vertical-middle">*</text>组盘数量:
                        </view>
                        <uni-number-box style="width: 70%;" :max="max" v-model="megreQty"
                           :step='1'></uni-number-box>
                        <uni-number-box style="width: 70%;" :min="0" :max="max" :decimal="2" :step="0.01" v-model="item.receiptQty"
                           ></uni-number-box>
                     </view>
                  </view>
               </view>
@@ -135,10 +138,9 @@
            megreQty: '',
            list: [],
            range: [],
            batch: '',
            asnCode: '',
            repeatClick: false,
            isconfirm: false,
            batch:'',
            isconfirm: false,
            matnrCode:'',
            max: 99999999,
         }
@@ -150,31 +152,91 @@
         }
      },
      mounted() {},
      methods: {
      methods: {
         async search() {
            const find = this.list.find(el => el.trackCode === this.barcode);
            find ? this.scrollTo() : this.getDet();
         },
         async getDet() {
            const {
               code,
               data,
               msg
            } = await request('/asnOrderItem/trackCode', {
               matnrCode: this.matnrCode
            }, "post")
            if (code === 200) {
               data && this.list.push(data);
            } else {
         getDet() {
            let that = this;
            uni.navigateTo({
               url: "../listing/itemSelect",
               success: function(res) {
                  // 通过eventChannel向被打开页面传送数据   向另外一个页面传递值的
                  res.eventChannel.emit('data', {
                     matnrCode: that.matnrCode,
                     asnCode: that.asnCode
                  })
               },
               events: {
                  // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据  另外一个页面传过来的
                  backData: function(data) {
                     that.showBackData(data.data)
                  },
               },
            });
         },
         // async getDet() {
         //    let that = this;
         //    const {
         //       code,
         //       data,
         //       msg
         //    } = await request('/asnOrderItem/trackCode', {
         //       matnrCode: that.matnrCode,
         //       asnCode: that.asnCode
         //    }, "post")
         //    if (code === 200) {
         //       data.map(item => {
         //          item.receiptQty = 0;
         //          item.selected = false;
         //       })
         //       // for (var i = 0; i < data.length; i++) {
         //       //    data[i].receiptQty =1;
         //       //    data[i].selected = false;
         //       // }
         //       if(data !== [] || data !== null){
         //       uni.navigateTo({
         //             url: "../listing/itemSelect",
         //             success: function(res) {
         //                // 通过eventChannel向被打开页面传送数据   向另外一个页面传递值的
         //                res.eventChannel.emit('data', {
         //                   item: data
         //                })
         //             },
         //             events: {
         //                // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据  另外一个页面传过来的
         //                backData: function(data) {
         //                   that.showBackData(data.data)
         //                },
         //             },
         //          });
         //       }
         //       // this.list = data
         //    } else {
         //       uni.showToast({
         //          title: msg,
         //          icon: "none",
         //          position: 'top'
         //       })
         //    }
         // },
         async getList() {
            if(this.container === '' || this.container === null){
               uni.showToast({
                  title: msg,
                  title: "容器码为空",
                  icon: "none",
                  position: 'top'
               })
               return ;
            }
         },
         async getList() {
            const {
               code,
               data,
@@ -183,7 +245,11 @@
               barcode: this.container
            })
            if (code === 200) {
               this.list = data
               uni.showToast({
                  title: msg,
                  icon: "success",
                  position: 'top'
               })
            } else {
               uni.showToast({
                  title: msg,
@@ -191,6 +257,36 @@
                  position: 'top'
               })
            }
         },
         showBackData(data){
            let status ;
            data.map(item => {
               this.list.push(item)
            })
            let oldLength = this.list.length
            this.list = this.list.filter((item, index, self) =>
               self.findIndex(i => (
                  i.id === item.id // 根据id去重
               )) === index && item.isptResult === self[0].isptResult
            );
            let newLength = this.list.length
            if(oldLength > newLength){
               this.showMsg("新明细被过滤,请检查状态")
            }
         },
         showMsg(msg){
            setTimeout(function() {
             uni.showToast({
                icon: "none",
                position: 'top',
                title: msg,
                duration:2000,
             })
            }, 200);
         },
         scrollTo() {
            const ref = this.$refs[`${this.barcode}ref`][0];
@@ -220,12 +316,28 @@
            this.isconfirm = false
         },
         async confirm() {
            this.repeatClick = true
            if(this.container === '' || this.container === null){
               uni.showToast({
                  title: "容器码为空",
                  icon: "none",
                  position: 'top'
               })
               return ;
            }
            if(this.list.length ===0 || this.list === null){
               uni.showToast({
                  title: "未添加明细",
                  icon: "none",
                  position: 'top'
               })
               return ;
            }
            this.repeatClick = true
            const newArr = this.list.map(item => {
               return {
                  ...item,
                  anfme: item.anfme === null ? 0 : +item.anfme,
                  receiptQty: this.megreQty,
                  anfme: item.anfme === null ? 0 : +item.anfme,
               };
            });
@@ -235,8 +347,7 @@
               msg
            } = await request('/waitPakin/merge', {
               items: newArr,
               barcode: this.container,
               batch: this.batch,
               barcode: this.container,
            })
            if (code === 200) {
               uni.showToast({