| <template> | 
|     <view> | 
|         <view class="code"> | 
|             <view class="item"> | 
|                 <view class="code-decs">托盘码:</view> | 
|                 <input type="text" placeholder=" 扫码 / 输入" v-model="barcode" :focus="barcodeFocus" | 
|                     @input="barcodeInput()"> | 
|             </view> | 
|             <view class="item"> | 
|                 <view class="code-decs">拣货箱:</view> | 
|                 <input type="text" placeholder=" 扫码 / 输入" v-model="pickCode" :focus="pickCodeFocus" | 
|                     @input="pickCodeInput()"> | 
|             </view> | 
|         </view> | 
|         <view class="mat-list-title"> | 
|             商品列表 | 
|         </view> | 
|         <scroll-view> | 
|             <view class="list" v-for="(item,i) in dataList" :key="i"> | 
|                 <view class="list-left"> | 
|                     <view class="list-left-item"> | 
|                         <view class="desc">No:</view> | 
|                         <view class="left-item">{{i + 1}}</view> | 
|                     </view> | 
|                     <view class="list-left-item"> | 
|                         <view class="desc">箱码:</view> | 
|                         <view class="left-item"> | 
|                             <!-- <input type="text" v-model="item.containerCode" @input="checkContainerCode(item)"> --> | 
|                             <view class="left-item">{{item.containerCode}}</view> | 
|                             <!-- <uni-tag :text="item.containerCode" type="primary"></uni-tag> --> | 
|                         </view> | 
|                     </view> | 
|                     <!-- <view class="list-left-item"> | 
|                         <view class="desc">销售单号:</view> | 
|                         <view class="left-item"> | 
|                             <input type="text" v-model="item.csocode"> | 
|                             -- <uni-tag :text="item.containerCode" type="primary"></uni-tag>  | 
|                         </view> | 
|                     </view> --> | 
|                     <!-- <view class="list-left-item"> | 
|                         <view class="desc">订单行号:</view> | 
|                         <view class="left-item"> | 
|                             <input type="text" v-model="item.isoseq"> | 
|                             -- <uni-tag :text="item.containerCode" type="primary"></uni-tag>  | 
|                         </view> | 
|                     </view> --> | 
|                     <!-- <view class="list-left-item"> | 
|                         <view class="desc">编码:</view> | 
|                         <view class="left-item"> | 
|                             <uni-tag :text="item.matnr" type="primary"></uni-tag> | 
|                         </view> | 
|                     </view> | 
|                     <view class="list-left-item"> | 
|                         <view class="desc">品名:</view> | 
|                         <view class="left-item">{{item.maktx}}</view> | 
|                     </view> --> | 
|                     <!-- <view class="list-left-item"> | 
|                         <view class="desc">规格:</view> | 
|                         <view class="left-item">{{item.specs}}</view> | 
|                     </view> --> | 
|                     <!-- <view class="list-left-item"> | 
|                         <view class="desc">批号:</view> | 
|                         <view class="left-item"> | 
|                             <uni-tag :text="item.batch" type="warning"></uni-tag> | 
|                         </view> | 
|                     </view> --> | 
|                     <!-- <view class="list-left-item"> | 
|                         <view class="desc">重量:</view> | 
|                         <view class="left-item"> | 
|                             <uni-tag :text="item.weight" type="warning"></uni-tag> | 
|                         </view> | 
|                     </view> --> | 
|                     <view class="list-left-item"> | 
|                         <view class="desc">数量:</view> | 
|                         <view class="left-item">{{item.anfme}}</view> | 
|                     </view> | 
|                 </view> | 
|                 <view class="list-right"> | 
|                     <uni-icons type="compose" color="#9add8b" size="24" @click="revise(item,i)"></uni-icons> | 
|                     <uni-icons type="trash" color="#f58a8a" size="24" @click="remove(item,i,'warn')"></uni-icons> | 
|                 </view> | 
|             </view> | 
|         </scroll-view> | 
|         <!-- 底部操作按钮 --> | 
|         <view class="buttom"> | 
|             <button size="mini" @click="reset('warn')">重置</button> | 
|             <button size="mini" type="primary" @click="combConfirm('warn')">拣选</button> | 
|         </view> | 
|         <!-- 弹窗 --> | 
|         <!-- 修改数量 --> | 
|         <view> | 
|             <uni-popup ref="revise" type="dialog"> | 
|                 <view class="popup"> | 
|                     <!-- 标题 --> | 
|                     <view class="title">修改</view> | 
|                     <!-- <view class="popup-item"> | 
|                         <view class="popup-item-left">编码:</view> | 
|                         <view class="popup-item-right"> | 
|                             <input type="text" v-model="matnr" disabled="true" | 
|                                 style="background-color: #f7f7f7;padding: 0;color: #d5d5d5;"> | 
|                         </view> | 
|                     </view> --> | 
|                     <view class="popup-item"> | 
|                         <view class="popup-item-left">箱码:</view> | 
|                         <view class="popup-item-right"><input type="text" v-model="containerCode"></view> | 
|                     </view> | 
|                     <!-- <view class="popup-item"> | 
|                         <view class="popup-item-left">重量:</view> | 
|                         <view class="popup-item-right"><input type="text" v-model="weight"></view> | 
|                     </view> --> | 
|                     <view class="popup-item"> | 
|                         <view class="popup-item-left">数量:</view> | 
|                         <view class="popup-item-right" style="border: none;justify-content: center;"> | 
|                             <uni-number-box :value="count" :step='0.01' :max="9999999" color="#747474" @change="changeValue" /> | 
|                         </view> | 
|                     </view> | 
|                     <view class="btn"> | 
|                         <view class="btn-left" @click="reviseClose">取消</view> | 
|                         <view class="btn-right" @click="reviseConfirm()">修改</view> | 
|                     </view> | 
|                 </view> | 
|             </uni-popup> | 
|         </view> | 
|         <!-- 修改数量 --> | 
|         <view> | 
|             <uni-popup ref="add" type="dialog"> | 
|                 <view class="popup"> | 
|                     <!-- 标题 --> | 
|                     <view class="title">拣货数量</view> | 
|                     <view class="popup-item"> | 
|                         <view class="popup-item-left">料箱码:</view> | 
|                         <view class="popup-item-right"> | 
|                             <input type="text" v-model="pickCode" disabled="true" | 
|                                 style="background-color: #f7f7f7;padding: 0;color: #d5d5d5;"> | 
|                         </view> | 
|                     </view> | 
|                     <view class="popup-item"> | 
|                         <view class="popup-item-left">数量:</view> | 
|                         <view class="popup-item-right" style="border: none;justify-content: center;"> | 
|                             <uni-number-box :value="count" :step='0.01' :max="9999999" color="#747474" @change="changeValue" /> | 
|                         </view> | 
|                     </view> | 
|                     <view class="btn"> | 
|                         <view class="btn-left" @click="addClose">取消</view> | 
|                         <view class="btn-right" @click="addConfirm()">确认</view> | 
|                     </view> | 
|                 </view> | 
|             </uni-popup> | 
|         </view> | 
|         <!-- 移除确认 --> | 
|         <view> | 
|             <!-- 提示窗示例 --> | 
|             <uni-popup ref="alertDialog" type="dialog"> | 
|                 <uni-popup-dialog :type="msgType" confirmText="移除" :title="title" :content="content" | 
|                     @confirm="removeConfirm()" @close="removeClose"></uni-popup-dialog> | 
|             </uni-popup> | 
|         </view> | 
|         <view> | 
|             <!-- 提示信息弹窗 --> | 
|             <uni-popup ref="message" type="message"> | 
|                 <uni-popup-message :type="msgType1" :message="messageText" :duration="2000"></uni-popup-message> | 
|             </uni-popup> | 
|         </view> | 
|         <!-- 确认拣选 --> | 
|         <view> | 
|             <uni-popup ref="combConfirm" type="dialog"> | 
|                 <uni-popup-dialog :type="msgType" cancelText="取消" confirmText="确认" :title="title" :content="content" | 
|                     @confirm="comb" @close="combClose"></uni-popup-dialog> | 
|             </uni-popup> | 
|         </view> | 
|         <!-- 确认重置 --> | 
|         <view> | 
|             <uni-popup ref="resetConfirm" type="dialog"> | 
|                 <uni-popup-dialog :type="msgType" cancelText="取消" confirmText="确认" :title="title" :content="content" | 
|                     @confirm="resetConfirm" @close="resetClose"></uni-popup-dialog> | 
|             </uni-popup> | 
|         </view> | 
|          | 
|         <view class="keyboard" :class="hidebg" mode="aspectFit" @click="hideKeyboard"> | 
|             <image src="@/static/img/keyboard1.png" style="height: 70%;width: 70%;"></image> | 
|         </view> | 
|     </view> | 
| </template> | 
|   | 
| <script> | 
|     export default { | 
|         data() { | 
|             return { | 
|                 baseUrl: '', | 
|                 token: '', | 
|                 barcode: '', | 
|                 orderNo: '', | 
|                 pickCode: '', | 
|                 pickCodeFocus: false, | 
|                 dataList: [], | 
|                 count: 0, | 
|                 rowNum: '', | 
|                 matnr: '', | 
|                 batch: '', | 
|                 weight: '', | 
|                 msgType1: 'success', | 
|                 msgType: 'success', | 
|                 messageText: '', | 
|                 title: '', | 
|                 content: '', | 
|                 barcodeFocus: true, | 
|                 matData: '', | 
|                 removeNum: 0, | 
|                 tempOrderInfo: {csocode: '',isoseq: ''}, | 
|                 hide: true, | 
|                 hidebg: 'kb-bgtr', | 
|                 containerCode: '' | 
|             } | 
|         }, | 
|         onLoad() { | 
|             // #ifdef APP | 
|             setInterval(()=>{ | 
|                 if (this.hide) { | 
|                     uni.hideKeyboard() | 
|                 } else { | 
|                      | 
|                 } | 
|             },20) | 
|             // #endif | 
|         }, | 
|         onBackPress() { | 
|             this.hide = false | 
|         }, | 
|         onShow() { | 
|             this.baseUrl = uni.getStorageSync('baseUrl'); | 
|             this.token = uni.getStorageSync('token'); | 
|         }, | 
|         methods: { | 
|             hideKeyboard() { | 
|                 this.hide = this.hide ? false : true | 
|                 if (this.hide) { | 
|                     this.hidebg = 'kb-bgtr' | 
|                 } else { | 
|                     this.hidebg = 'kb-bgfa' | 
|                 } | 
|             }, | 
|             // 过滤 | 
|             checkContainerCode(item) { | 
|                 if (item.containerCode.split('_')[1]) { | 
|                     item.containerCode = item.containerCode.split('_')[1] | 
|                 }  | 
|                 // item.containerCode = item.containerCode.split('_')[1] | 
|                 // this.barcode = this.barcode.split('_')[1] | 
|             }, | 
|             messageToggle(type) { | 
|                 this.msgType1 = type | 
|                 this.$refs.message.open() | 
|             }, | 
|             // barcode input 事件 | 
|             barcodeInput() { | 
|                 let _this = this  | 
|                 uni.request({ | 
|                     url: `${_this.baseUrl}/mobile/wrkdetl/auth`, | 
|                     data: { barcode: _this.barcode }, | 
|                     method: 'POST', | 
|                     header: { 'token': uni.getStorageSync('token') }, | 
|                     success(res) { | 
|                         res = res.data | 
|                         console.log(res); | 
|                         if (res.code === 200) { | 
|                             _this.messageText = "请拣选" | 
|                             _this.messageToggle('success') | 
|                             _this.barcodeFocus = false; | 
|                             setTimeout(() => { | 
|                                 _this.pickCodeFocus = true; | 
|                             }, 100); | 
|                         } else { | 
|                             _this.messageText = "暂无拣料信息" | 
|                             _this.messageToggle('warn') | 
|                             _this.barcodeFocus = false; | 
|                             setTimeout(() => { | 
|                                 _this.barcode = ''; | 
|                                 _this.barcodeFocus = true; | 
|                             }, 100); | 
|                         } | 
|                     } | 
|                 }) | 
|             }, | 
|             pickCodeInput() { | 
|                 this.pickCode = this.pickCode.split('_')[1] ? this.pickCode.split('_')[1] : this.pickCode.split('_')[0] | 
|                 for (let k of this.dataList) { | 
|                     if (this.pickCode == k.containerCode) { | 
|                         this.messageText = "条码重复" | 
|                         this.messageToggle('warn') | 
|                         this.pickCodeFocus = false; | 
|                         setTimeout(() => { | 
|                             this.pickCode = '' | 
|                             this.pickCodeFocus = true; | 
|                         }, 100); | 
|                         return | 
|                     } | 
|                 } | 
|                 this.add() | 
|             }, | 
|             add() { | 
|                 this.$refs.add.open() | 
|             }, | 
|             addConfirm() { | 
|                 let data = {containerCode: this.pickCode,anfme: this.count} | 
|                 this.dataList.push(data) | 
|                 this.pickCodeFocus = false; | 
|                 setTimeout(() => { | 
|                     this.pickCode = '' | 
|                     this.count = '' | 
|                     this.pickCodeFocus = true; | 
|                 }, 100); | 
|                  | 
|                 this.$refs.add.close() | 
|             }, | 
|             addClose() { | 
|                  | 
|                 this.pickCodeFocus = false; | 
|                 setTimeout(() => { | 
|                     this.pickCode = '' | 
|                     this.count = '' | 
|                     this.pickCodeFocus = true; | 
|                 }, 100); | 
|                 // this.pickCode = '' | 
|                 this.$refs.add.close() | 
|             }, | 
|             // 修改批号 | 
|             revise(item, i) { | 
|                 this.matnr = this.dataList[i].matnr | 
|                 this.containerCode = this.dataList[i].containerCode | 
|                 this.count = this.dataList[i].anfme | 
|                 this.batch = this.dataList[i].batch | 
|                 this.weight = this.dataList[i].weight | 
|                 this.rowNum = i | 
|                 this.eject() | 
|             }, | 
|             eject(type) { | 
|                 this.type = type | 
|                 this.$refs.revise.open(type) | 
|             }, | 
|             // 列表移除按钮 | 
|             remove(item, i, type) { | 
|                 this.removeNum  = i | 
|                 this.msgType = type | 
|                 this.title = '警告' | 
|                 this.content = '是否移除当前商品!' | 
|                 this.$refs.alertDialog.open(i) | 
|             }, | 
|             // 确认移除 | 
|             removeConfirm() { | 
|                 this.messageText = "移除成功" | 
|                 this.messageToggle('success') | 
|                 this.dataList.splice(this.removeNum, 1) | 
|             }, | 
|             // 取消移除 | 
|             removeClose() { | 
|                 this.$refs.alertDialog.close() | 
|             }, | 
|             reviseConfirm() { | 
|                 this.dataList[this.rowNum].containerCode = this.containerCode | 
|                 this.dataList[this.rowNum].anfme = this.count | 
|                 this.dataList[this.rowNum].batch = this.batch | 
|                 this.dataList[this.rowNum].weight = this.weight | 
|                 this.matnr = '' | 
|                 this.messageText = "修改成功" | 
|                 this.messageToggle('success') | 
|                 this.$refs.revise.close() | 
|             }, | 
|             reviseClose() { | 
|                 this.$refs.revise.close() | 
|             }, | 
|             changeValue(value) { | 
|                 this.count = value | 
|             }, | 
|             combConfirm(type) { | 
|                 this.msgType = type | 
|                 this.title = '警告' | 
|                 this.content = '是否现在拣选!' | 
|                 this.$refs.combConfirm.open() | 
|             }, | 
|             combClose() { | 
|                 this.$refs.combConfirm.close() | 
|             }, | 
|             comb() { | 
|                 uni.vibrateShort(); | 
|                 let that = this; | 
|                 if (that.barcode === '') { | 
|                     this.messageText = "请扫描托盘条码" | 
|                     this.messageToggle('error') | 
|                     // return; | 
|                 } | 
|                 if (that.dataList.length === 0) { | 
|                     this.messageText = "请添加商品列表" | 
|                     this.messageToggle('error') | 
|                     return; | 
|                 } | 
|                 for (var i = 0; i < that.dataList.length; i++) { | 
|                     if (that.dataList[i].anfme == 0 || that.dataList[i].anfme == '') { | 
|                         this.messageText = that.dataList[i].matnr + '拣选数量不能为0' | 
|                         this.messageToggle('error') | 
|                         return; | 
|                     } | 
|                 } | 
|                 // console.log(that.dataList); | 
|                 // return | 
|                 console.log(that.dataList); | 
|                 uni.request({ | 
|                     url: that.baseUrl + '/mobile/modify/wrkdetl/auth', | 
|                     data: JSON.stringify({ | 
|                         barcode: "80009991", | 
|                         params: that.dataList | 
|                     }), | 
|                     method: 'POST', | 
|                     header: { | 
|                         'token': uni.getStorageSync('token') | 
|                     }, | 
|                     success(result) { | 
|                         var res = result.data | 
|                         if (res.code === 200) { | 
|                             that.resst(); | 
|                             that.messageText = "拣选成功" | 
|                             that.messageToggle('success') | 
|                             const innerAudioContext = uni.createInnerAudioContext(); | 
|                             innerAudioContext.src = '/static/music/pakinOk.mp3'; | 
|                             innerAudioContext.play() | 
|                         } else if (res.code == 403) { | 
|                             that.messageText = res.msg | 
|                             that.messageToggle('error') | 
|                             setTimeout(() => { | 
|                                 uni.reLaunch({ | 
|                                     url: '../login/login' | 
|                                 }); | 
|                             }, 1000); | 
|                         } else { | 
|                             that.messageText = res.msg | 
|                             that.messageToggle('error') | 
|                         } | 
|                     } | 
|                 }); | 
|             }, | 
|             reset(type) { | 
|                 this.msgType = type | 
|                 this.title = '警告' | 
|                 this.content = '是否重置!' | 
|                 this.$refs.resetConfirm.open() | 
|             }, | 
|             // 确认重置 | 
|             resetConfirm() { | 
|                 this.dataList = [] | 
|                 this.barcode = '' | 
|                 this.pickCode = '' | 
|                 this.messageText = "重置完成" | 
|                 this.messageToggle('success') | 
|             }, | 
|             // 取消重置 | 
|             resetClose() { | 
|   | 
|             }, | 
|             // 清空 | 
|             resst() { | 
|                 this.dataList = [] | 
|                 this.barcode = '' | 
|                 this.orderNo = '' | 
|                 this.pickCode = '' | 
|                 this.barcodeFocuss() | 
|             }, | 
|         } | 
|     } | 
| </script> | 
|   | 
| <style> | 
|     @import url('../../../static/css/wms.css/wms.css'); | 
|   | 
|     .list:first-child { | 
|         margin-top: 260rpx; | 
|     } | 
|     .code { | 
|         width: 100%; | 
|         position: fixed; | 
|         min-height: 70rpx; | 
|         background-color: #FFF; | 
|         z-index: 10; | 
|     } | 
|   | 
|     .item { | 
|         display: flex; | 
|         align-items: center; | 
|         height: 70rpx; | 
|         margin-left: 20rpx; | 
|         border-bottom: 1px solid #DCDFE6; | 
|     } | 
|   | 
|     .item input { | 
|         height: 50rpx; | 
|         line-height: 50rpx; | 
|         /* font-family: PingFang SC; uniapp 默认字体不居中 */ | 
|         font-size: 36upx; | 
|         font-family: PingFang SC; | 
|         width: 55vw; | 
|   | 
|     } | 
|   | 
|     .code-decs { | 
|         width: 20vw; | 
|         font-size: 18px; | 
|         color: #303133; | 
|     } | 
|   | 
|     .item-right { | 
|         margin-left: auto; | 
|         margin-right: 20rpx; | 
|     } | 
|   | 
|     .mat-list-title { | 
|         height: 80rpx; | 
|         line-height: 80rpx; | 
|         width: 100%; | 
|         background-color: white; | 
|         position: fixed; | 
|         margin-top: 140rpx; | 
|         z-index: 9; | 
|         /* border-top: 1px solid #DCDFE6; */ | 
|         text-align: center; | 
|         box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.2); | 
|     } | 
| </style> |