| <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="120"> | 
|                         <uni-forms-item label="托盘条码"> | 
|                             <uni-easyinput type="text" :focus="!istrue" v-model="barcode" placeholder="请扫描托盘条码" | 
|                                 ref='midInput' @input="inputChangebarcode()" /> | 
|                         </uni-forms-item> | 
|                         <uni-forms-item> | 
|                             <button @click="picking" type="primary" style="margin-left: 0px;">拣选完成</button> | 
|                         </uni-forms-item> | 
|                     </uni-forms> | 
|                     <uni-list> | 
|                         <uni-list-item direction="column" v-for="item in matInfos" :key="item.palletCode"> | 
|                             <template v-slot:body> | 
|                                     <!-- <uni-icons type="trash" size="22" style="position: absolute;right: 5%;" | 
|                                         @click="deleteList(item.sn)"> | 
|                                     </uni-icons> --> | 
|                                     <view class="uni-content"> | 
|                                         <view>单据编号:{{item.orderNo}}</view> | 
|                                         <view>托盘编号:{{item.palletCode}}</view> | 
|                                         <view>物料批次:{{item.batchNo}}</view> | 
|                                         <view>物料编码:{{item.materielCode}}</view> | 
|                                         <view>物料名称:{{item.materielName}}</view> | 
|                                         <view>单据数量:{{item.orderQuantity}}</view> | 
|                                         <view>原始库存:{{item.originalQuantity}}</view> | 
|                                         <view>分配库存:{{item.assignQuantity}}</view> | 
|                                         <view>剩余库存:{{item.originalQuantity-item.assignQuantity}}</view> | 
|                                     </view> | 
|                             </template> | 
|                         </uni-list-item> | 
|                     </uni-list> | 
|                 </view> | 
|             </view> | 
|             <view v-if="current === 2" class="headerstyle"> | 
|                 <view class="itemstyle"> | 
|                     <uni-forms label-width="120"> | 
|                         <uni-forms-item label="托盘条码"> | 
|                             <uni-easyinput type="text" :focus="!istrue2" v-model="barcode2" placeholder="请扫描托盘条码" | 
|                                 ref='midInput' @input="inputChangebarcode2()" /> | 
|                         </uni-forms-item> | 
|                         <uni-forms-item label="内箱标签"> | 
|                             <uni-easyinput type="text" @input="inputChange2()" v-model="innerboxcode" | 
|                                 placeholder="请扫描内箱标签" ref='midInput' :focus="istrue2" /> | 
|                         </uni-forms-item> | 
|                         <uni-forms-item> | 
|                             <button @click="submit" type="primary" size="default" style="margin-top: 2%;">组盘</button> | 
|                         </uni-forms-item> | 
|                     </uni-forms> | 
|                 </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="inputChangebarcode3" /> | 
|                         </uni-forms-item> | 
|                         <uni-forms-item label="地址条码"> | 
|                             <uni-easyinput type="text" v-model="address" :disabled = "addressdisabled" 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> | 
|                     <uni-list> | 
|                         <uni-list-item direction="column" v-if="inboundBarcode"> | 
|                             <template v-slot:body> | 
|                                 <view class="uni-list-box"> | 
|                                     <view class="uni-content"> | 
|                                         <view class="uni-title-sub uni-ellipsis-2">总数量:{{Summmary}}</view> | 
|                                     </view> | 
|                                 </view> | 
|                             </template> | 
|                         </uni-list-item> | 
|                         <uni-list-item direction="column" v-for="(item,index) in stockInfoDetail" :key="index"> | 
|                             <template v-slot:body> | 
|                                 <view class="uni-list-box"> | 
|                                     <view class="uni-content"> | 
|                                         <view class="uni-title-sub uni-ellipsis-2">物料编号:{{item.materielCode}}</view> | 
|                                         <view class="uni-note">物料名称:{{item.materielName}}</view> | 
|                                         <view class="uni-note">物料批次:{{item.batchNo}}</view> | 
|                                         <view class="uni-note">库存数量:{{item.stockQuantity}}</view> | 
|                                         <view class="uni-note">出库数量:{{item.outboundQuantity}}</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 SixUniTts = uni.requireNativePlugin("SmallSix-SixUniTts") | 
|     export default { | 
|         data() { | 
|             return { | 
|                 items: ['拣选', '入库'], //'拣选组盘', | 
|                 current: 0, | 
|                 isPicking: false, | 
|                 istrue: false, | 
|                 matInfos: [], | 
|                 barcode: '', | 
|                 materialsns: "", | 
|                 boxBarcodes: [], | 
|                 sns: [], | 
|                 barcodefocus: true, | 
|                 totalNum: 0, | 
|                 pickNum: 0, | 
|                 num: 0, | 
|                 orderTotalNum: 0, | 
|                 orderPickNum: 0, | 
|                 orderNo: "", | 
|                 matTotal: [], | 
|                 istrue2: false, | 
|                 barcode2: '', | 
|                 innerboxcode: "", | 
|                 sns2: [], | 
|                 barcodefocus: true, | 
|                 addressFocus: false, | 
|                 inboundBarcode: "", | 
|                 address: "", | 
|                 warehouseId: 0, | 
|                 Summmary: 0, | 
|                 stockInfoDetail: [], | 
|                 addressdisabled: false | 
|             } | 
|         }, | 
|         onLoad(res) { | 
|             this.barcodefocus = false; | 
|             this.warehouseId = res.warehouseId; | 
|             if (this.warehouseId == 5) { | 
|                 this.address = "8005" | 
|             }else if (this.warehouseId == 3) { | 
|                 this.address = "1011"; | 
|                 this.addressdisabled = true; | 
|             } | 
|             this.istrue = false; | 
|             this.addressFocus = false; | 
|         }, | 
|         methods: { | 
|             onClickItem(e) { | 
|                 this.barcodeFo = true; | 
|                 this.focus = false; | 
|                 this.addressFocus = false; | 
|                 if (this.current !== e.currentIndex) { | 
|                     this.current = e.currentIndex; | 
|                 } | 
|             }, | 
|             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) { | 
|                         uni.$showMsg(res.message); | 
|                         this.inboundBarcode = ""; | 
|                         setTimeout(() => { | 
|                             this.addressFocus = false; | 
|                         }, 200); | 
|                     } else { | 
|                         this.$refs.uToast.show({ | 
|                             title: res.message, | 
|                             type: "error" | 
|                         }) | 
|                     } | 
|                 }).catch(err => { | 
|                     this.$refs.uToast.show({ | 
|                         title: err.message, | 
|                         type: "error" | 
|                     }) | 
|                 }) | 
|             }, | 
|             inputChangebarcode3() { | 
|                 this.addressFocus = false; | 
|                 this.$nextTick(function(x) { | 
|                     if (this.inboundBarcode != '') { | 
|                         this.addressFocus = true; | 
|                     } | 
|                 }) | 
|                 this.$nextTick(function(x) { | 
|                     if (this.inboundBarcode != '') { | 
|                         var postData = { | 
|                             MainData: { | 
|                                 "barcode": this.inboundBarcode, | 
|                                 "warehouseId": this.warehouseId, | 
|                             } | 
|                         }; | 
|                         this.$u.post('/api/StockInfo/StockQueryData', postData).then(res => { | 
|                             // this.stockInfo = []; | 
|                             this.stockInfoDetail = []; | 
|                             if (res.status) { | 
|                                     // this.stockInfo = res.data, | 
|                                     this.stockInfoDetail = res.data.details | 
|                                     //获取总数量 | 
|                                     this.stockInfoDetail.forEach(item => { | 
|                                         this.Summmary+= item.stockQuantity; | 
|                                     }); | 
|                             } else { | 
|                                 this.$refs.uToast.show({ | 
|                                     // title: "未找到托盘信息", | 
|                                     title: res.message, | 
|                                     type: "error" | 
|                                 }) | 
|                             } | 
|                         }) | 
|                     } | 
|                 }) | 
|             }, | 
|             picking() { | 
|                 if (this.barcode == "") { | 
|                     this.$refs.uToast.show({ | 
|                         title: "请扫描托盘条码", | 
|                         type: "error" | 
|                     }) | 
|                     return; | 
|                 } | 
|                 this.$u.post('/api/OutStockLockInfo/MaterialPick?palletCode=' + this.barcode, {}).then(res => { | 
|                     if (res.status) { | 
|                         // if(this.warehouseId==5){ | 
|                         //     this.Finish("8005"); | 
|                         // } | 
|   | 
|                         uni.$showMsg('拣选成功!') | 
|                         this.barcode = ""; | 
|                         this.matInfos = []; | 
|                     } else { | 
|                         this.$refs.uToast.show({ | 
|                             title: res.message, | 
|                             type: "error" | 
|                         }) | 
|                     } | 
|                 }) | 
|             }, | 
|             Finish(code) { | 
|                 this.$u.post('http://127.0.0.1:9291/api/CTU_AGV/PutFinish?&code=' + code).then( | 
|                     res => { | 
|                         if (res.status) { | 
|                             // this.$refs.uToast.show({ | 
|                             //     title: "完成成功", | 
|                             //     type: "success" | 
|                             // }) | 
|                             // this.barcode = ""; | 
|                         } else { | 
|                             // this.$refs.uToast.show({ | 
|                             //     title: res.message, | 
|                             //     type: "error" | 
|                             // }) | 
|                         } | 
|                     }) | 
|             }, | 
|             inputChange(e) { | 
|                 this.$nextTick(() => { | 
|                     this.istrue = false; | 
|                     var matInfo = this.materialsns.split('|'); | 
|                     if (matInfo.length == 7) { | 
|                         var matObj = { | 
|                             matCode: matInfo[1], | 
|                             matProductionDate: matInfo[3], | 
|                             matQty: matInfo[5], | 
|                             orderNo: matInfo[6], | 
|                             sn: this.materialsns, | 
|                             isPicking: this.isPicking | 
|                         } | 
|                         var temp = this.boxBarcodes.find(x => x.orderNo == matObj.orderNo); | 
|                         if (!temp) { | 
|                             var tmp = this.matTotal.find(x => x.matCode == matObj.matCode); | 
|                             if (!tmp) { | 
|                                 this.matTotal.push({ | 
|                                     matCode: matObj.matCode, | 
|                                     matQuantity: parseInt(matObj.matQty) | 
|                                 }) | 
|                             } else { | 
|                                 tmp.matQuantity += parseInt(matObj.matQty); | 
|                             } | 
|                             this.sns.push({ | 
|                                 innerboxcode: this.materialsns, | 
|                                 isSplit: this.isPicking | 
|                             }); | 
|                             this.boxBarcodes.push(matObj); | 
|                             this.isPicking = false; | 
|                             setTimeout(this.updateFocus, 100); | 
|                         } else { | 
|                             this.$refs.uToast.show({ | 
|                                 title: "扫码重复", | 
|                                 type: "error" | 
|                             }) | 
|                             setTimeout(this.updateFocus, 100); | 
|                         } | 
|                     } else { | 
|                         this.$refs.uToast.show({ | 
|                             title: "扫码错误,请扫描正确内箱码", | 
|                             type: "error" | 
|                         }) | 
|                         setTimeout(this.updateFocus, 100); | 
|                     } | 
|                 }) | 
|             }, | 
|             checkedClick() { | 
|                 this.isPicking = !this.isPicking; | 
|                 this.istrue = false; | 
|                 this.$nextTick(function(x) { | 
|                     if (this.barcode != '') { | 
|                         this.istrue = true; | 
|                     } | 
|                 }) | 
|             }, | 
|             updateFocus() { | 
|                 this.materialsns = ''; | 
|                 if (!this.istrue) { | 
|                     this.istrue = true; | 
|                 } | 
|             }, | 
|             inputChangebarcode() { | 
|                 this.boxBarcodes = []; | 
|                 this.istrue = false; | 
|                 this.$nextTick(function(x) { | 
|                     if (this.barcode != '') { | 
|                         var postData = { | 
|                             MainData: { | 
|                                 "barcode": this.barcode, | 
|                                 "warehouseId": this.warehouseId, | 
|                             } | 
|                         }; | 
|                         this.$u.post('/api/OutStockLockInfo/GetStockOutboundOrder', postData).then(res => { | 
|                             this.matInfos = []; | 
|                             if (res != null) { | 
|                                 this.matInfos = res | 
|                             } else { | 
|                                 this.$refs.uToast.show({ | 
|                                     title: "未找到拣选信息", | 
|                                     type: "error" | 
|                                 }) | 
|                             } | 
|                         }) | 
|                         this.istrue = true; | 
|                     } | 
|                 }) | 
|             }, | 
|             deleteList(res) { | 
|                 this.matTotal.map((item, index) => { | 
|                     var temp = this.boxBarcodes.find(x => x.sn == res); | 
|                     if (temp) { | 
|                         if (item.matCode == temp.matCode) { | 
|                             if (item.matQuantity - temp.matQty == 0) { | 
|                                 this.matTotal.splice(index, 1); | 
|                             } else { | 
|                                 item.matQuantity -= temp.matQty; | 
|                             } | 
|                         } | 
|                     } | 
|                 }) | 
|                 this.sns.map((item, index) => { | 
|                     if (item.innerboxcode == res) { | 
|                         this.sns.splice(index, 1); | 
|                     } | 
|                 }) | 
|                 this.boxBarcodes.map((item, index) => { | 
|                     if (item.sn == res) { | 
|                         this.boxBarcodes.splice(index, 1); | 
|                     } | 
|                 }) | 
|             }, | 
|   | 
|             submit() { | 
|                 if (this.barcode2 == "") { | 
|                     this.$refs.uToast.show({ | 
|                         title: "请扫描托盘条码", | 
|                         type: "error" | 
|                     }) | 
|                     return; | 
|                 } | 
|                 if (this.innerboxcode == "") { | 
|                     this.$refs.uToast.show({ | 
|                         title: "请扫描内箱标签", | 
|                         type: "error" | 
|                     }) | 
|                     return; | 
|                 } | 
|                 this.$u.post('/api/StockOperate/PickingBoxing', { | 
|                     MainData: { | 
|                         "barcode": this.barcode2, | 
|                         "innerboxcode": this.innerboxcode | 
|                     }, | 
|                     DelKeys: this.sns2 | 
|                 }).then(res => { | 
|                     if (res.status) { | 
|                         uni.$showMsg('组盘成功!') | 
|                         this.barcode2 = ""; | 
|                         this.innerboxcode = ""; | 
|                     } else { | 
|                         this.$refs.uToast.show({ | 
|                             title: res.message, | 
|                             type: "error" | 
|                         }) | 
|                     } | 
|                 }).catch(err => { | 
|                     this.$refs.uToast.show({ | 
|                         title: err.message, | 
|                         type: "error" | 
|                     }) | 
|                 }) | 
|             }, | 
|             inputChange2(e) { | 
|   | 
|             }, | 
|             inputChangebarcode2() { | 
|                 this.istrue2 = false; | 
|                 this.$nextTick(function(x) { | 
|                     if (this.barcode2 != '') { | 
|                         this.istrue2 = true; | 
|                     } | 
|                 }) | 
|             }, | 
|         } | 
|     } | 
| </script> | 
|   | 
| <style lang="scss"> | 
|     @import '@/common/uni-ui.scss'; | 
|   | 
|     .content { | 
|         display: flex; | 
|         height: 150px; | 
|     } | 
|   | 
|     .content-text { | 
|         font-size: 14px; | 
|         color: #666; | 
|     } | 
|   | 
|     .itemstyle { | 
|         margin-top: 20px; | 
|         margin-left: 5%; | 
|     } | 
|   | 
|     .headerstyle { | 
|         width: 90%; | 
|     } | 
| </style> |