| <template> | 
|     <view> | 
|         <uni-segmented-control :current="current" :values="items" @clickItem="onClickItem"> | 
|         </uni-segmented-control> | 
|         <view class="content"> | 
|             <view v-if="current === 0" class="headerstyle"> | 
|                 <view class="itemstyle"> | 
|                     <uni-forms label-width="180"> | 
|                         <uni-forms-item :label="label"> | 
|                         </uni-forms-item> | 
|                         <uni-forms-item label="托盘条码:"> | 
|                             <uni-easyinput type="text" placeholder="请扫描托盘条码" ref='midInput' :focus="!focus" | 
|                                 v-model="barcode" @input="barcodeInput" /> | 
|                         </uni-forms-item> | 
|                         <uni-forms-item label="内箱标签:"> | 
|                             <uni-easyinput type="text" placeholder="请扫描内箱标签" ref='midInput' :focus="focus" | 
|                                 v-model="materSn" @input="snInput" /> | 
|                         </uni-forms-item> | 
|   | 
|                         <uni-forms-item :label="Testlabel" v-if="Test"> | 
|                             <uni-easyinput type="text" :placeholder="Testplaceholder" ref='midInput' | 
|                                 v-model="Initiallife" /> | 
|                         </uni-forms-item> | 
|   | 
|                         <!-- <uni-forms-item> | 
|                             <checkbox checked="check">是否满盘</checkbox> | 
|                         </uni-forms-item> --> | 
|                         <uni-forms-item> | 
|                             <button @click="submit" type="primary" size="default" style="margin-top: 2%;">组盘</button> | 
|                         </uni-forms-item> | 
|                     </uni-forms> | 
|                     <uni-list> | 
|                         <!-- <uni-list-item direction="column" v-for="item in matTotal" :key="item.matCode"> | 
|                             <template v-slot:body> | 
|                                 <view class="uni-list-box"> | 
|                                     <view class="uni-content"> | 
|                                         <view class="uni-title-sub uni-ellipsis-2">物料编码:{{item.matCode}}</view> | 
|                                         <view class="uni-title-sub uni-ellipsis-2">数量:{{item.matQuantity}}</view> | 
|                                     </view> | 
|                                 </view> | 
|                             </template> | 
|                         </uni-list-item> --> | 
|                         <uni-list-item direction="column" v-for="(item,index) in matInfos" :key="index"> | 
|                             <template v-slot:body> | 
|                                 <view class="uni-list-box"> | 
|                                     <uni-icons type="trash" size="22" style="position: absolute;right: 5%;" | 
|                                         @click="deleteList(index)"> | 
|                                     </uni-icons> | 
|                                     <view class="uni-content"> | 
|                                         <view class="uni-title-sub uni-ellipsis-2">采购单号:{{item.purchaseOrderNo}}</view> | 
|                                         <view class="uni-note">物料编码:{{item.materielCode}}</view> | 
|                                         <view class="uni-note">批次号:{{item.lotNo}}</view> | 
|                                         <view class="uni-note">数量:{{item.quantity}}</view> | 
|                                         <view class="uni-note">生产日期:{{item.productionDate}}</view> | 
|                                         <view class="uni-note">有效期:{{item.effectiveDate}}</view> | 
|                                     </view> | 
|                                 </view> | 
|                             </template> | 
|                         </uni-list-item> | 
|                     </uni-list> | 
|                 </view> | 
|             </view> | 
|             <view v-if="current === 1" class="headerstyle"> | 
|                 <view class="itemstyle"> | 
|                     <uni-forms label-width="120"> | 
|                         <uni-forms-item label="托盘条码"> | 
|                             <uni-easyinput type="text" :focus="!addressFocus" v-model="inboundBarcode" | 
|                                 placeholder="请扫描托盘条码" ref='midInput' @input="inputChangebarcode" /> | 
|                         </uni-forms-item> | 
|                         <uni-forms-item label="地址条码"> | 
|                             <uni-easyinput type="text" v-model="address" placeholder="请扫描地址条码" ref='midInput' | 
|                                 :focus="addressFocus" /> | 
|                         </uni-forms-item> | 
|                         <uni-forms-item> | 
|                             <button @click="inbound" type="primary" size="default" style="margin-top: 2%;">入库确认</button> | 
|                         </uni-forms-item> | 
|                     </uni-forms> | 
|                 </view> | 
|             </view> | 
|             <view v-if="current === 2" class="headerstyle"> | 
|                 <view class="itemstyle"> | 
|                     <uni-list :border="true"> | 
|                         <uni-list-item direction="column" v-for="(item,index) in orderInfo" :key="index"> | 
|                             <template v-slot:body> | 
|                                 <view class="uni-list-box"> | 
|                                     <view class="uni-content"> | 
|                                         <view style="font-size: 18px;">单据号:{{orderNo}}</view> | 
|                                         <view style="font-size: 18px;">物料编码:{{item.materielCode}}</view> | 
|                                         <!-- <view style="font-size: 18px;">物料名称:{{item.matName}}</view> --> | 
|                                         <view style="font-size: 18px;">数量:{{item.orderQuantity}}</view> | 
|                                         <view style="font-size: 18px;">单位:{{item.unit}}</view> | 
|                                         <view style="font-size: 18px;">组盘数量:{{item.receiptQuantity}}</view> | 
|                                     </view> | 
|                                 </view> | 
|                             </template> | 
|                         </uni-list-item> | 
|                     </uni-list> | 
|                 </view> | 
|             </view> | 
|             <view v-if="current === 3" class="headerstyle"> | 
|                 <view class="itemstyle"> | 
|                     <uni-forms label-width="180"> | 
|                         <uni-forms-item label="内箱标签:"> | 
|                             <uni-easyinput type="text" placeholder="请扫描内箱标签" ref='midInput' :focus="pkfocus" | 
|                                 v-model="pkmaterSn" @input="pksnInput" /> | 
|                         </uni-forms-item> | 
|                         <uni-forms-item> | 
|                             <button @click="pksubmit" type="primary" size="default" style="margin-top: 2%;">入平库</button> | 
|                         </uni-forms-item> | 
|                     </uni-forms> | 
|                     <uni-list> | 
|                         <uni-list-item direction="column" v-for="(item,index) in pkmatInfos" :key="index"> | 
|                             <template v-slot:body> | 
|                                 <view class="uni-list-box"> | 
|                                     <uni-icons type="trash" size="22" style="position: absolute;right: 5%;" | 
|                                         @click="pkdeleteList(index)"> | 
|                                     </uni-icons> | 
|                                     <view class="uni-content"> | 
|                                         <view class="uni-title-sub uni-ellipsis-2">采购单号:{{item.purchaseOrderNo}}</view> | 
|                                         <view class="uni-note">物料编码:{{item.materielCode}}</view> | 
|                                         <view class="uni-note">批次号:{{item.lotNo}}</view> | 
|                                         <view class="uni-note">数量:{{item.quantity}}</view> | 
|                                         <view class="uni-note">生产日期:{{item.productionDate}}</view> | 
|                                         <view class="uni-note">有效期:{{item.effectiveDate}}</view> | 
|                                     </view> | 
|                                 </view> | 
|                             </template> | 
|                         </uni-list-item> | 
|                     </uni-list> | 
|                 </view> | 
|             </view> | 
|         </view> | 
|         <u-toast ref="uToast" /> | 
|     </view> | 
| </template> | 
|   | 
| <script> | 
|     const innerAudioContext = uni.createInnerAudioContext(); | 
|     export default { | 
|         data() { | 
|             return { | 
|                 items: ['组盘', '入库', '单据信息'], //, '解盘' | 
|                 current: 0, | 
|                 matTotal: [], | 
|                 matInfos: [], | 
|                 orderNo: "", | 
|                 label: "", | 
|                 orderInfo: [], | 
|                 focus: false, | 
|                 pkfocus:false, | 
|                 barcode: "", | 
|                 materSn: "", | 
|                 Initiallife: 1000, | 
|                 sns: [], | 
|                 pksns:[], | 
|                 addressFocus: false, | 
|                 inboundBarcode: "", | 
|                 address: "", | 
|                 check: true, | 
|                 value: "", | 
|                 matInfo: [], | 
|                 value2: "", | 
|                 matTotals: [], | 
|                 warehouseId: "", | 
|                 Test: false, | 
|                 Testlabel: "", | 
|                 Testplaceholder: "", | 
|                 Testcheck: false, | 
|                 pkmaterSn: "", | 
|                 pkmatInfos: [] | 
|             } | 
|         }, | 
|         onShow() {}, | 
|         onLoad(res) { | 
|             this.focus = false; | 
|             this.addressFocus = false; | 
|             this.orderNo = res.orderNo; | 
|             this.warehouseId = res.warehouseId; | 
|             if (this.warehouseId == 6) { //测试架仓库区ID | 
|                 this.Test = true; | 
|                 this.Testlabel = "初始寿命:"; | 
|                 this.Testplaceholder = "请输入初始寿命"; | 
|             } else if (this.warehouseId == 2) { //油墨仓库区ID | 
|                 this.Test = true; | 
|                 this.Testlabel = "数量:"; | 
|                 this.Testplaceholder = "请输入数量"; | 
|                 this.Initiallife = 16; | 
|             } else if (this.warehouseId == 5) { //辅料 | 
|                 this.items.push("入平库"); | 
|                 this.items[1] = "入立库"; | 
|                 this.address = "8005"; | 
|             } | 
|             this.label = "单据编号:" + this.orderNo; | 
|             this.getData(); | 
|         }, | 
|         methods: { | 
|             voiceSpeech(src) { | 
|                 innerAudioContext.src = src; // '../../static/success.mp3'; | 
|                 innerAudioContext.play(); | 
|             }, | 
|             //解盘 | 
|             releasebox() { | 
|                 if (this.value.length == 0) { | 
|                     this.$refs.uToast.show({ | 
|                         title: "请扫码", | 
|                         type: "error" | 
|                     }) | 
|                     return; | 
|                 } | 
|                 var param; | 
|                 var matInfo = this.value.split('|'); | 
|                 if (matInfo.length == 7) { | 
|                     param = { | 
|                         MainData: { | 
|                             "innerCode": this.value | 
|                         } | 
|                     } | 
|                 } else { | 
|                     param = { | 
|                         MainData: { | 
|                             "barcode": this.value | 
|                         } | 
|                     } | 
|                 } | 
|                 this.$u.post('/api/StockOperate/ReleaseAllBox', param).then(resdt => { | 
|                     if (resdt.status) { | 
|                         uni.$showMsg('解盘成功!') | 
|                         this.value = ""; | 
|                         this.matInfo = []; | 
|                         this.matTotals = []; | 
|                         this.value2 = ""; | 
|                     } else { | 
|                         this.$refs.uToast.show({ | 
|                             title: resdt.message, | 
|                             type: "error" | 
|                         }) | 
|                     } | 
|                 }) | 
|             }, | 
|             releaseboxInput() { | 
|                 this.$nextTick(() => { | 
|                     if (this.value.length == 0) { | 
|                         return; | 
|                     } | 
|                     var matInfo = this.value.split('|'); | 
|                     this.matInfo = []; | 
|                     if (matInfo.length == 7) { | 
|                         this.$u.post('/api/StockOperate/GetStockInfoByInnerCode', { | 
|                             MainData: { | 
|                                 "innerCode": this.value | 
|                             } | 
|                         }).then(res => { | 
|                             if (res.status) { | 
|                                 this.matInfo = res.data.stockInfo; | 
|                                 this.matTotals = res.data.stockTotal; | 
|                                 this.value2 = res.data.barcode; | 
|                             } else { | 
|                                 this.$refs.uToast.show({ | 
|                                     title: res.message, | 
|                                     type: "error" | 
|                                 }) | 
|                             } | 
|                         }) | 
|                     } else { | 
|                         this.$u.post('/api/StockOperate/GetStockInfoByBarcode', { | 
|                             MainData: { | 
|                                 "barcode": this.value | 
|                             } | 
|                         }).then(res => { | 
|                             if (res.status) { | 
|                                 this.matInfo = res.data.stockInfo; | 
|                                 this.matTotals = res.data.stockTotal; | 
|                                 this.value2 = res.data.barcode; | 
|                             } else { | 
|                                 this.$refs.uToast.show({ | 
|                                     title: res.message, | 
|                                     type: "error" | 
|                                 }) | 
|                             } | 
|                         }) | 
|                     } | 
|                 }) | 
|             }, | 
|   | 
|             updateFocus() { | 
|                 debugger | 
|                 this.$nextTick(() => { | 
|                     this.materSn = ''; | 
|                     if (!this.focus) { | 
|                         this.focus = true; | 
|                     } | 
|                 }); | 
|             }, | 
|             barcodeFocus() { | 
|                 debugger | 
|                 this.barcode = ''; | 
|                 if (this.focus) { | 
|                     this.focus = false; | 
|                 } | 
|             }, | 
|             getData() { | 
|                 var postData = { | 
|                     MainData: { | 
|                         orderNo: this.orderNo | 
|                     }, | 
|                 } | 
|                 this.$u.post('/api/InboundOrderDetail/GetInboundOrderDetails', postData).then((res) => { | 
|                     if (res.status) { | 
|                         this.orderInfo = res.data; | 
|                         if (this.orderInfo.length > 3) { | 
|                             this.loadVisible = true; | 
|                         } | 
|                     } | 
|                 }) | 
|             }, | 
|             onClickItem(e) { | 
|                 this.focus = false; | 
|                 this.addressFocus = false; | 
|                 if (this.current !== e.currentIndex) { | 
|                     this.current = e.currentIndex; | 
|                     if (this.current == 2) { | 
|                         this.getData(); | 
|                     } | 
|                 } | 
|             }, | 
|             barcodeInput() { | 
|                 this.$nextTick(function(x) { | 
|                     if (this.barcode.length > 0) { | 
|                         // if (this.barcode.substring(0, 1) == 'A' || this.barcode.substring(0, 2) == 'TP') { | 
|                         this.focus = true; | 
|                         // } else { | 
|                         //     this.$refs.uToast.show({ | 
|                         //         title: "扫码错误,请扫描托盘码", | 
|                         //         type: "error" | 
|                         //     }) | 
|                         // } | 
|                     } | 
|                 }) | 
|             }, | 
|             snInput() { | 
|                 this.$nextTick(() => { | 
|                     if (this.materSn != "") { | 
|                         this.focus = false; | 
|                         var matSn = this.materSn; | 
|                         setTimeout(() => { | 
|                             this.materSn = ""; | 
|                         }, 10); | 
|                         this.$u.post('/api/MaterielInfo/CodeAnalysis?serNum=' + matSn, {}).then((res) => { | 
|                             this.Testcheck = false; | 
|                             if (res.status) { | 
|                                 this.sns.push(res.data.serialNumber); | 
|   | 
|                                 this.matInfos.push(res.data); | 
|                                 if (res.message) { | 
|                                     this.$refs.uToast.show({ | 
|                                         title: res.message, | 
|                                         type: "error" | 
|                                     }) | 
|                                     setTimeout(() => { | 
|                                         this.voiceSpeech('../../static/fail.mp3'); | 
|                                     }, 100); | 
|                                     return; | 
|                                 } | 
|                                 setTimeout(() => { | 
|                                     this.voiceSpeech('../../static/success.mp3'); | 
|                                 }, 100); | 
|                             } else { | 
|                                 this.$refs.uToast.show({ | 
|                                     title: res.message, | 
|                                     type: "error" | 
|                                 }) | 
|                                 setTimeout(() => { | 
|                                     this.voiceSpeech('../../static/fail.mp3'); | 
|                                 }, 100); | 
|                             } | 
|                         }) | 
|                     } | 
|                 }) | 
|             }, | 
|             pksnInput() { | 
|                 this.$nextTick(() => { | 
|                     if (this.pkmaterSn != "") { | 
|                         this.focus = false; | 
|                         var matSn = this.pkmaterSn; | 
|                         setTimeout(() => { | 
|                             this.pkmaterSn = ""; | 
|                         }, 10); | 
|                         this.$u.post('/api/MaterielInfo/CodeAnalysis?serNum=' + matSn, {}).then((res) => { | 
|                             if (res.status) { | 
|                                 this.pksns.push(res.data.serialNumber); | 
|                                 this.pkmatInfos.push(res.data); | 
|                                 if (res.message) { | 
|                                     this.$refs.uToast.show({ | 
|                                         title: res.message, | 
|                                         type: "error" | 
|                                     }) | 
|                                     setTimeout(() => { | 
|                                         this.voiceSpeech('../../static/fail.mp3'); | 
|                                     }, 100); | 
|                                     return; | 
|                                 } | 
|                                 setTimeout(() => { | 
|                                     this.voiceSpeech('../../static/success.mp3'); | 
|                                 }, 100); | 
|                             } else { | 
|                                 this.$refs.uToast.show({ | 
|                                     title: res.message, | 
|                                     type: "error" | 
|                                 }) | 
|                                 setTimeout(() => { | 
|                                     this.voiceSpeech('../../static/fail.mp3'); | 
|                                 }, 100); | 
|                             } | 
|                         }) | 
|                     } | 
|                 }) | 
|             }, | 
|             inbound() { | 
|                 if (this.inboundBarcode == "") { | 
|                     this.$refs.uToast.show({ | 
|                         title: "请扫描托盘条码", | 
|                         type: "error" | 
|                     }) | 
|                     return; | 
|                 } | 
|                 if (this.address == "") { | 
|                     this.$refs.uToast.show({ | 
|                         title: "请扫描地址条码", | 
|                         type: "error" | 
|                     }) | 
|                     return; | 
|                 } | 
|                 var postData = { | 
|                     MainData: { | 
|                         "barcode": this.inboundBarcode, | 
|                         "startPoint": this.address, | 
|                         "warehouseId": this.warehouseId | 
|                     } | 
|                 } | 
|                 this.$u.post('/api/Task/RequestInboundTask', postData).then(res => { | 
|                     if (res.status) { | 
|                         this.inboundBarcode = ""; | 
|                         if (this.warehouseId != 5) this.address = ""; | 
|                         setTimeout(() => { | 
|                             this.addressFocus = false; | 
|                             this.$refs.uToast.show({ | 
|                                 title: "成功", | 
|                                 type: "success" | 
|                             }) | 
|                         }, 200); | 
|                     } else { | 
|                         this.$refs.uToast.show({ | 
|                             title: res.message, | 
|                             type: "error" | 
|                         }) | 
|                     } | 
|                 }).catch(err => { | 
|                     this.$refs.uToast.show({ | 
|                         title: err.message, | 
|                         type: "error" | 
|                     }) | 
|                 }) | 
|             }, | 
|             inputChangebarcode() { | 
|                 this.addressFocus = false; | 
|                 this.$nextTick(function(x) { | 
|                     if (this.inboundBarcode != '') { | 
|                         this.addressFocus = true; | 
|                     } | 
|                 }) | 
|             }, | 
|             deleteList(res) { | 
|                 this.matInfos.splice(res, 1); | 
|                 this.sns.splice(res, 1); | 
|             }, | 
|             pkdeleteList(res) { | 
|                 this.pkmatInfos.splice(res, 1); | 
|                 this.pksns.splice(res, 1); | 
|             }, | 
|             pksubmit(){ | 
|                 if (this.pkmatInfos.length == 0) { | 
|                     this.$refs.uToast.show({ | 
|                         title: "请扫描内箱标签", | 
|                         type: 'error' | 
|                     }) | 
|                     return; | 
|                 } | 
|                 this.$u.post('/api/InboundOrder/InPinKu?warehouseId=' + this.warehouseId+"&orderNo="+ this.orderNo, this.pksns).then(res => { | 
|                     if (res.status) { | 
|                         this.$refs.uToast.show({ | 
|                             title: "入库成功", | 
|                             type: "success" | 
|                         }) | 
|                         this.focus = false; | 
|                         this.pkmatInfos = []; | 
|                         this.pksns = []; | 
|                     } else { | 
|                         this.$refs.uToast.show({ | 
|                             title: res.message, | 
|                             type: "error" | 
|                         }) | 
|                     } | 
|                 }) | 
|             }, | 
|             submit() { | 
|                 if (this.barcode == "") { | 
|                     this.$refs.uToast.show({ | 
|                         title: "请扫描托盘条码", | 
|                         type: 'error' | 
|                     }) | 
|                     return; | 
|                 } | 
|                 if (this.matInfos.length == 0) { | 
|                     this.$refs.uToast.show({ | 
|                         title: "请扫描内箱标签", | 
|                         type: 'error' | 
|                     }) | 
|                     return; | 
|                 } | 
|                 if (this.Test) { | 
|                     if (!this.Testcheck) { | 
|                         this.Testcheck = true; | 
|                         this.$refs.uToast.show({ | 
|                             title: "请确认初始寿命", | 
|                             type: 'error' | 
|                         }) | 
|                         return; | 
|                     } | 
|                 } | 
|                 this.$u.post('/api/InboundOrder/MaterielGroup', { | 
|                     MainData: { | 
|                         "palletCode": this.barcode, | 
|                         "orderNo": this.orderNo, | 
|                         "initiallife": this.Initiallife, | 
|                         // "isFull": this.check | 
|                         "warehouseId": this.warehouseId | 
|                     }, | 
|                     DelKeys: this.sns | 
|                 }).then(res => { | 
|                     this.Testcheck = false; | 
|                     if (res.status) { | 
|                         this.$refs.uToast.show({ | 
|                             title: "组盘成功", | 
|                             type: "success" | 
|                         }) | 
|                         this.focus = false; | 
|                         this.barcode = ""; | 
|                         this.matInfos = []; | 
|                         this.sns = []; | 
|                         this.matTotal = []; | 
|                     } else { | 
|                         this.$refs.uToast.show({ | 
|                             title: res.message, | 
|                             type: "error" | 
|                         }) | 
|                     } | 
|                 }) | 
|             } | 
|         } | 
|     } | 
| </script> | 
|   | 
| <style lang="scss"> | 
|     @import '@/common/uni-ui.scss'; | 
|   | 
|     .content { | 
|         display: flex; | 
|         height: 150px; | 
|     } | 
|   | 
|     .content-text { | 
|         font-size: 14px; | 
|         color: #666; | 
|     } | 
|   | 
|     .itemstyle { | 
|         margin-top: 30px; | 
|         margin-left: 5%; | 
|     } | 
|   | 
|     .headerstyle { | 
|         width: 90%; | 
|     } | 
| </style> |