|  |  | 
 |  |  | <template> | 
 |  |  |    <view> | 
 |  |  |       <view class="head"> | 
 |  |  |          <z-input v-for="it in page" | 
 |  |  |          :desc="it.title" | 
 |  |  |          :name="it.name"  | 
 |  |  |          :btn="it.btn"  | 
 |  |  |          :btn-name="it.btnName"  | 
 |  |  |          v-model="it.val"  | 
 |  |  |          :index="it.id"  | 
 |  |  |          :lenCheck="it.lenCheck"  | 
 |  |  |          :focus="it.focus"  | 
 |  |  |          @inputVal='input2' | 
 |  |  |          ></z-input> | 
 |  |  |          <z-input :desc="input1.title" | 
 |  |  |             :name="input1.name"  | 
 |  |  |             :btn="input1.btn"  | 
 |  |  |             :btn-name="input1.btnName"  | 
 |  |  |             v-model="barcode"  | 
 |  |  |             :index="input1.id"  | 
 |  |  |             :lenCheck="input1.lenCheck"  | 
 |  |  |             :focus="barcodeFocus"  | 
 |  |  |             @inputVal='barcodeInput' | 
 |  |  |          /> | 
 |  |  |          <z-input :desc="input2.title" | 
 |  |  |             :name="input2.name"  | 
 |  |  |             :btn="input2.btn"  | 
 |  |  |             :btn-name="input2.btnName"  | 
 |  |  |             v-model="matnr"  | 
 |  |  |             :index="input2.id"  | 
 |  |  |             :lenCheck="input2.lenCheck"  | 
 |  |  |             :focus="matnrFocus"  | 
 |  |  |             @inputVal='matnrInput' | 
 |  |  |          /> | 
 |  |  |       </view> | 
 |  |  |        | 
 |  |  | 		 | 
 |  |  |       <u-sticky  > | 
 |  |  |          <view class="sticky">商品列表</view> | 
 |  |  |          <view class="sticky"> | 
 |  |  |             <view class="flex1">开启键盘</view> | 
 |  |  |             <view class="flex1">商品列表</view> | 
 |  |  |             <view class="flex1"></view> | 
 |  |  |          </view> | 
 |  |  |       </u-sticky> | 
 |  |  |        | 
 |  |  |       <z-data-list class="data-list" | 
 |  |  |          v-for="(it,i) in zDataList"  | 
 |  |  |          :key="i"   | 
 |  |  |          :list="it.detl"  | 
 |  |  |          :lable="lable"  | 
 |  |  |          :fields="it" | 
 |  |  |          :index="i+1" | 
 |  |  |          @goDetail='goDetail(it.detl,i)'  | 
 |  |  |          @goDetail='goDetail(it,i)'  | 
 |  |  |       ></z-data-list> | 
 |  |  | 		 | 
 |  |  |       <!-- 垫高 --> | 
 |  |  |       <view style="height: 100rpx;"></view> | 
 |  |  |       <view style="height: 100rpx;" /> | 
 |  |  | 		 | 
 |  |  |       <view class="z-floor"> | 
 |  |  |          <view class="z-default" @click="clean">重置</view> | 
 |  |  |          <view class="z-primary" @click="comb">组托</view> | 
 |  |  |       </view> | 
 |  |  |        | 
 |  |  |    </view> | 
 |  |  | </template> | 
 |  |  | 
 |  |  | <script> | 
 |  |  |    import { mapState } from 'vuex' | 
 |  |  |    import addMat from '@/pages/api/addMat.js' | 
 |  |  |    import util from '@/static/js/util.js' | 
 |  |  |    export default { | 
 |  |  |       data() { | 
 |  |  |          return { | 
 |  |  |             zDataList: [ | 
 |  |  |                { | 
 |  |  |                   detl: [ | 
 |  |  |                      {key: '商品码',value: 'LSH90152025',valText: 'val-text'}, | 
 |  |  |                      {key: '商品名称',value: '尼龙头(灰白)5.2x25'}, | 
 |  |  |                      {key: '规格',value: '700*699*80'}, | 
 |  |  |                      {key: '批号',value: '20231007204944',type: 'input'}, | 
 |  |  |                      {key: '数量',value: 951326478,type: 'number-box',valText: 'val-num'}, | 
 |  |  |                      {key: '序号',value: 1}, | 
 |  |  |                   ] | 
 |  |  |                }, | 
 |  |  |                { | 
 |  |  |                   detl: [ | 
 |  |  |                      {key: '商品码',value: 'LSH90152025',valText: 'val-text'}, | 
 |  |  |                      {key: '商品名称',value: '尼龙头(灰白)5.2x25'}, | 
 |  |  |                      {key: '规格',value: '700*699*80'}, | 
 |  |  |                      {key: '批号',value: '20231007204944',type: 'input'}, | 
 |  |  |                      {key: '数量',value: 951326478,type: 'number-box',valText: 'val-num'}, | 
 |  |  |                      {key: '序号',value: 2}, | 
 |  |  |                   ] | 
 |  |  |                }, | 
 |  |  |                { | 
 |  |  |                   detl: [ | 
 |  |  |                      {key: '商品码',value: 'LSH90152025',valText: 'val-text'}, | 
 |  |  |                      {key: '商品名称',value: '尼龙头(灰白)5.2x25'}, | 
 |  |  |                      {key: '规格',value: '700*699*80'}, | 
 |  |  |                      {key: '批号',value: '20231007204944',type: 'input'}, | 
 |  |  |                      {key: '数量',value: 951326478,type: 'number-box',valText: 'val-num'}, | 
 |  |  |                      {key: '序号',value: 3}, | 
 |  |  |                   ] | 
 |  |  |                }, | 
 |  |  |                { | 
 |  |  |                   detl: [ | 
 |  |  |                      {key: '商品码',value: 'LSH90152025',valText: 'val-text'}, | 
 |  |  |                      {key: '商品名称',value: '尼龙头(灰白)5.2x25'}, | 
 |  |  |                      {key: '规格',value: '700*699*80'}, | 
 |  |  |                      {key: '批号',value: '20231007204944',type: 'input'}, | 
 |  |  |                      {key: '数量',value: 951326478,type: 'number-box',valText: 'val-num'}, | 
 |  |  |                      {key: '序号',value: 4}, | 
 |  |  |                   ] | 
 |  |  |                }, | 
 |  |  |                { | 
 |  |  |                   detl: [ | 
 |  |  |                      {key: '商品码',value: 'LSH90152025',valText: 'val-text'}, | 
 |  |  |                      {key: '商品名称',value: '尼龙头(灰白)'}, | 
 |  |  |                      {key: '规格',value: '700*699*80'}, | 
 |  |  |                      {key: '批号',value: '20231007204944',type: 'input'}, | 
 |  |  |                      {key: '数量',value: 951326478,type: 'number-box',valText: 'val-num'}, | 
 |  |  |                      {key: '序号',value: 5}, | 
 |  |  |                   ] | 
 |  |  |                }, | 
 |  |  |                { | 
 |  |  |                   detl: [ | 
 |  |  |                      {key: '商品码',value: 'LSH90152025',valText: 'val-text'}, | 
 |  |  |                      {key: '商品名称',value: '尼龙头(灰白)5.2x25'}, | 
 |  |  |                      {key: '规格',value: '700*699*80'}, | 
 |  |  |                      {key: '批号',value: '20231007204944',type: 'input'}, | 
 |  |  |                      {key: '数量',value: 951326478,type: 'number-box',valText: 'val-num'}, | 
 |  |  |                      {key: '序号',value: 1}, | 
 |  |  |                   ] | 
 |  |  |                }, | 
 |  |  |                { | 
 |  |  |                   detl: [ | 
 |  |  |                      {key: '商品码',value: 'LSH90152025',valText: 'val-text'}, | 
 |  |  |                      {key: '商品名称',value: '尼龙头(灰白)5.2x25'}, | 
 |  |  |                      {key: '规格',value: '700*699*80'}, | 
 |  |  |                      {key: '批号',value: '20231007204944',type: 'input'}, | 
 |  |  |                      {key: '数量',value: 951326478,type: 'number-box',valText: 'val-num'}, | 
 |  |  |                      {key: '序号',value: 2}, | 
 |  |  |                   ] | 
 |  |  |                }, | 
 |  |  |                { | 
 |  |  |                   detl: [ | 
 |  |  |                      {key: '商品码',value: 'LSH90152025',valText: 'val-text'}, | 
 |  |  |                      {key: '商品名称',value: '尼龙头(灰白)5.2x25'}, | 
 |  |  |                      {key: '规格',value: '700*699*80'}, | 
 |  |  |                      {key: '批号',value: '20231007204944',type: 'input'}, | 
 |  |  |                      {key: '数量',value: 951326478,type: 'number-box',valText: 'val-num'}, | 
 |  |  |                      {key: '序号',value: 3}, | 
 |  |  |                   ] | 
 |  |  |                }, | 
 |  |  |                { | 
 |  |  |                   detl: [ | 
 |  |  |                      {key: '商品码',value: 'LSH90152025',valText: 'val-text'}, | 
 |  |  |                      {key: '商品名称',value: '尼龙头(灰白)5.2x25'}, | 
 |  |  |                      {key: '规格',value: '700*699*80'}, | 
 |  |  |                      {key: '批号',value: '20231007204944',type: 'input'}, | 
 |  |  |                      {key: '数量',value: 951326478,type: 'number-box',valText: 'val-num'}, | 
 |  |  |                      {key: '序号',value: 4}, | 
 |  |  |                   ] | 
 |  |  |                }, | 
 |  |  |                { | 
 |  |  |                   detl: [ | 
 |  |  |                      {key: '商品码',value: 'LSH90152025',valText: 'val-text'}, | 
 |  |  |                      {key: '商品名称',value: '尼龙头(灰白)'}, | 
 |  |  |                      {key: '规格',value: '700*699*80'}, | 
 |  |  |                      {key: '批号',value: '20231007204944',type: 'input'}, | 
 |  |  |                      {key: '数量',value: 951326478,type: 'number-box',valText: 'val-num'}, | 
 |  |  |                      {key: '序号',value: 5}, | 
 |  |  |                   ] | 
 |  |  |                } | 
 |  |  |             ], | 
 |  |  |             list: [ | 
 |  |  |                {} | 
 |  |  |             ] | 
 |  |  |             zDataList: [], | 
 |  |  |             barcode: '', | 
 |  |  |             matnr: '', | 
 |  |  |             inputCode: '托盘码', | 
 |  |  |             barcodeFocus: true, | 
 |  |  |             matnrFocus: false | 
 |  |  |          } | 
 |  |  |       }, | 
 |  |  |       onShow() { | 
 |  |  |          console.log(this.page); | 
 |  |  |          // console.log(this.page); | 
 |  |  |       }, | 
 |  |  |       computed: mapState({ | 
 |  |  |          page: state => state.project.menu[0].page.input | 
 |  |  |          input1: state => state.project.menu[0].page.input[0], | 
 |  |  |          input2: state => state.project.menu[0].page.input[1], | 
 |  |  |          xInput: state => state.project.menu[0].page.input1, | 
 |  |  |          lable: state => state.project.menu[0].page.lable | 
 |  |  |       }), | 
 |  |  |       methods: { | 
 |  |  |          input2(arr) { | 
 |  |  |             if(arr[1] == 'matnr') { | 
 |  |  |                this.getMat(arr[0]) | 
 |  |  |          barcodeInput(arr) { | 
 |  |  |             this.barcodeFocus = false | 
 |  |  |             setTimeout(()=>{ | 
 |  |  |                this.matnrFocus = true | 
 |  |  |             },10) | 
 |  |  |          }, | 
 |  |  |          matnrInput(arr) { | 
 |  |  |             if(arr.title == 'matnr') { | 
 |  |  |                this.getMat(arr.value) | 
 |  |  |             } | 
 |  |  |          }, | 
 |  |  |          goDetail(param,index) { | 
 |  |  |             let _this = this | 
 |  |  |             uni.navigateTo({ | 
 |  |  |                url: '/pages/common/data-list/dataDetail', | 
 |  |  |                // 传 | 
 |  |  |                success: function(data) { | 
 |  |  |                   data.eventChannel.emit('param', { | 
 |  |  |                      param: param, | 
 |  |  |                      index: index | 
 |  |  |                   }) | 
 |  |  |                }, | 
 |  |  |                // 接 | 
 |  |  |                events: { | 
 |  |  |                   dataList: function(data) { | 
 |  |  |                      console.log(data); | 
 |  |  |                   }, | 
 |  |  |                   del: function(data) { | 
 |  |  |                      _this.zDataList.splice(data.data,1) | 
 |  |  |                   } | 
 |  |  |                }, | 
 |  |  |             }) | 
 |  |  |          }, | 
 |  |  |          // 获取物料 | 
 |  |  |          async getMat(matnr) { | 
 |  |  |             let mat = await addMat.addMat() | 
 |  |  |             if (!addMat.isEmpty(mat)) { | 
 |  |  |                this.zDataList.push(mat) | 
 |  |  |             let res = await addMat.addMat(matnr) | 
 |  |  |             if (res.code === 200 && res.data) { | 
 |  |  |                this.matPick(res.data) | 
 |  |  |                // res.data['count'] = 1 | 
 |  |  |                // this.zDataList =  util.matCheck(res.data,this.zDataList) | 
 |  |  |                this.matnr = '' | 
 |  |  |             } else if (res.code === 200 && !res.data) { | 
 |  |  |                let msg = `${this.matnr} 物料异常,请重试` | 
 |  |  |                uni.showToast({ title: msg, icon: "none", position: 'top' }) | 
 |  |  |             } else if (res.code == 403) { | 
 |  |  |                uni.showToast({ title: res.msg, icon: "none", position: 'top' }) | 
 |  |  |                setTimeout(() => { | 
 |  |  |                   uni.reLaunch({ | 
 |  |  |                      url: '../../LoginDemo/LoginDemo' | 
 |  |  |                   }); | 
 |  |  |                }, 1000); | 
 |  |  |             } else { | 
 |  |  |                uni.showToast({ title: res.msg, icon: "none", position: 'top' }) | 
 |  |  |             } | 
 |  |  |          }, | 
 |  |  |          // 跳转物料提取页面 | 
 |  |  |          matPick(mat) { | 
 |  |  |             let _this = this | 
 |  |  |             uni.navigateTo({ | 
 |  |  |                url: '/pages/common/mat/matPick', | 
 |  |  |                // 传 | 
 |  |  |                success: function(data) { | 
 |  |  |                   data.eventChannel.emit('mat', { | 
 |  |  |                      mat: mat, | 
 |  |  |                   }) | 
 |  |  |                }, | 
 |  |  |                // 接 | 
 |  |  |                events: { | 
 |  |  |                   matList: function(data) { | 
 |  |  |                      data.data['count'] = 1 | 
 |  |  |                      let newList = util.matCheck(data.data,_this.zDataList) | 
 |  |  |                      _this.zDataList =  '' | 
 |  |  |                      _this.zDataList = newList | 
 |  |  |                   }, | 
 |  |  |                }, | 
 |  |  |             }) | 
 |  |  |          }, | 
 |  |  |          // 组托 | 
 |  |  |          comb() { | 
 |  |  |             console.log(this.barcode); | 
 |  |  |             console.log(this.zDataList); | 
 |  |  |          }, | 
 |  |  |          clean() { | 
 |  |  | 				 | 
 |  |  |          } | 
 |  |  | 			 | 
 |  |  |       } | 
 |  |  |    } | 
 |  |  | </script> | 
 |  |  |  | 
 |  |  | <style> | 
 |  |  |    .head { | 
 |  |  |       background-color: #f8f8f8; | 
 |  |  |       margin-top: -8px; | 
 |  |  |       /* margin-top: -8px; */ | 
 |  |  |    } | 
 |  |  |    .sticky { | 
 |  |  |       height: 70rpx; | 
 |  |  |       margin-top: -8px; | 
 |  |  |       box-shadow:  0px 4px 4px #e2e2e2; | 
 |  |  |       text-align: center; | 
 |  |  |       background-color: #f8f8f8; | 
 |  |  |       background-color: #fff; | 
 |  |  |       display: flex; | 
 |  |  |       align-items: center; | 
 |  |  |       justify-content: center; | 
 |  |  |    } | 
 |  |  |    .flex1 { | 
 |  |  |       flex: 1 | 
 |  |  |    } | 
 |  |  | </style> | 
 |  |  |  |