| <template> | 
|     <view> | 
|         <view class="square-2"> | 
|             <view class="square-title"> | 
|                 <view class="title-sign"><view class="sign"></view></view> | 
|                 <view class="title-text"><text>库位号码</text></view> | 
|             </view> | 
|             <view class="square-content"> | 
|                 <view class="content-input"> | 
|                     <input type="text" v-model="locNo" placeholder="扫码 / 输入" @input="searchLocNo" placeholder-style="line-height:  85rpx;"> | 
|                     <uni-icons type="closeempty" size="20" color="#dadada" @click="removeLocNo"></uni-icons> | 
|                 </view> | 
|             </view> | 
|         </view> | 
|         <view class="square-2"> | 
|             <view class="square-title"> | 
|                 <view class="title-sign"><view class="sign"></view></view> | 
|                 <view class="title-text"><text>出库口</text></view> | 
|                  | 
|             </view> | 
|                 <view class="content-combox"> | 
|                     <uni-combox  emptyTips="暂无数据"  | 
|                         :candidates="sites" v-model="siteId"  @click="staNoSelect()" placeholder="请选择出库站点"> | 
|                     </uni-combox> | 
|                 </view> | 
|         </view> | 
|          | 
|         <view class="square-1"> | 
|             <view class="square-title"> | 
|                 <view class="title-sign"><view class="sign"></view></view> | 
|                 <view class="title-text"><text>商品列表</text></view> | 
|             </view> | 
|              | 
|         </view> | 
|          | 
|         <view class="square-none" v-show="matList.length === 0"> | 
|             <view class="v-show">暂无更多数据...</view> | 
|         </view> | 
|          | 
|         <checkbox-group @change="checkbox"> | 
|             <view v-for="(item,index) in matList" :key="index" class="data-list bg-false" :class="'bg-'+item.checked" > | 
|                 <!-- <label class="left-check-box"> | 
|                     <checkbox :value="item.id+''" :checked="item.checked" style="display: block;" /> | 
|                 </label> --> | 
|                 <view class="data-list-left"> | 
|                     <view class="matnr"><text style="width: 700rpx;">编码:{{item.matnr}}</text></view> | 
|                     <view><text style="width: 700rpx;">品名:{{item.maktx}}</text></view> | 
|                     <view><text style="width: 700rpx;">批号:{{item.batch}}</text></view> | 
|                     <view> | 
|                         <text style="width: 700rpx;">数量:{{item.anfme}}</text> | 
|                     </view> | 
|                 </view> | 
|                 <view class="data-list-right"> | 
|                     <!-- <label><uni-icons type="compose" size="20" color="#a5a5a5" @click="revise(item,index)"></uni-icons></label> --> | 
|                     <!-- list中删除键 --> | 
|                     <!-- <label><uni-icons type="trash" size="25" color="#a5a5a5" @click="remove(item,index)"></uni-icons></label> --> | 
|                 </view> | 
|             </view> | 
|         </checkbox-group> | 
|       <!--  <view style="margin-top: 10px;"> | 
|             <uni-table ref="table" border stripe emptyText="暂无更多数据"> | 
|                 <uni-tr> | 
|                     <uni-th align="center" width="50">出库数量</uni-th> | 
|                     <uni-th align="center" width="70">产品ID</uni-th> | 
|                     <uni-th align="center" width="80">产品代号</uni-th> | 
|                     <uni-th align="center" width="70">产品名称</uni-th> | 
|                 </uni-tr> | 
|                 <uni-tr v-for="(item, index) in matList" :key="index"> | 
|                     <uni-td align="center">{{item.qty}}</uni-td> | 
|                     <uni-td align="center">{{item.matNo}}</uni-td> | 
|                     <uni-td align="center">{{item.size}}</uni-td> | 
|                     <uni-td align="center">{{item.matName}}</uni-td> | 
|                 </uni-tr> | 
|             </uni-table> | 
|         </view> --> | 
|          | 
|         <!-- 底部按钮 --> | 
|         <view class="footer flex justify-around"> | 
|             <!-- 底部全选 反选按钮 --> | 
|             <!-- <label class="label-btn" style="width: 170rpx;"> | 
|                 <checkbox :checked="check" @click="allChecked()">{{checkText}}</checkbox> | 
|             </label> | 
|             <label class="label-btn" style="width: 100rpx;"> | 
|                 <text  @click="reChecked()">反选</text> | 
|             </label> --> | 
|              | 
|             <label class="label-btn" style="width: 150rpx;"> | 
|                 <button class="cu-btn" @click="resst()">重置</button> | 
|             </label> | 
|             <label class="label-btn"> | 
|                 <button class="cu-btn bg-blue " @click="outbound()">启动出库</button> | 
|             </label> | 
|         </view> | 
|          | 
|     </view> | 
| </template> | 
|   | 
| <script> | 
|     export default { | 
|         data() { | 
|             return { | 
|                 locNo: null, | 
|                 matList: [], | 
|                 sites: [], | 
|                 siteId: '' | 
|             } | 
|         }, | 
|         mounted(){ | 
|             const UIP = uni.getStorageSync('UIP'); | 
|             this.baseIP = UIP; | 
|             const UPORT = uni.getStorageSync('UPORT'); | 
|             this.basePORT = UPORT; | 
|             this.staNoSelect(); | 
|         }, | 
|         methods: { | 
|             // 清空单号搜索框 | 
|             removeLocNo() { | 
|                 this.locNo = null | 
|             }, | 
|             searchLocNo() { | 
|                 let that = this; | 
|                 uni.request({ | 
|                     url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + "/locDetl/list/auth", | 
|                     header: { | 
|                         'content-type':"application/x-www-form-urlencoded", | 
|                         'token':uni.getStorageSync('token') | 
|                         }, | 
|                     data: { | 
|                         curr:1, | 
|                         limit:10, | 
|                         // typeCode:1, | 
|                         loc_no: that.locNo | 
|                     }, | 
|                     method:"POST", | 
|                     success(result) { | 
|                         console.log(result) | 
|                         let res = result.data | 
|                         if (res.code === 200 ) { | 
|                             that.matList = res.data.records | 
|                             that.staNoSelect() | 
|                         } else if (res.code == 403) { | 
|                             uni.showToast({title: res.msg, icon: "none", position: 'top'}) | 
|                             setTimeout(() => { | 
|                                 uni.reLaunch({ | 
|                                     url: '../login/login' | 
|                                 }); | 
|                             }, 1000); | 
|                         } else { | 
|                             uni.showToast({title: res.msg, icon: "none",position: 'top'}) | 
|                         } | 
|                     }, | 
|                 }) | 
|             }, | 
|             staNoSelect() { | 
|                 let that = this; | 
|                 uni.request({ | 
|                     url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + "/available/take/site", | 
|                     header: {'token':uni.getStorageSync('token')}, | 
|                     success(result) { | 
|                         let res = result.data | 
|                         if (res.code === 200 ) { | 
|                             that.sites = []; | 
|                             for (var i = 0; i < res.data.length; i++) { | 
|                                 that.sites.push(res.data[i].desc) | 
|                             } | 
|                         } else if (res.code == 403) { | 
|                             uni.showToast({title: res.msg, icon: "none", position: 'top'}) | 
|                             setTimeout(() => { | 
|                                 uni.reLaunch({ | 
|                                     url: '../login/login' | 
|                                 }); | 
|                             }, 1000); | 
|                         } else { | 
|                             uni.showToast({title: res.msg, icon: "none",position: 'top'}) | 
|                         } | 
|                     } | 
|                 }) | 
|             }, | 
|             outbound() { | 
|                 let that = this | 
|                 if (that.matList.length === 0) { | 
|                     uni.showToast({title: "请选择出库口", icon: "none",position: 'top'}) | 
|                 } else { | 
|                     if (that.siteId == '') { | 
|                         uni.showToast({title: "请选择出库口", icon: "none",position: 'top'}) | 
|                         return; | 
|                     } | 
|                 }; | 
|                 var staNo = that.siteId.substring(0,3) | 
|                 var locDetls = []; | 
|                 that.matList.forEach(function(elem) { | 
|                     console.log(elem) | 
|                     locDetls.push({locNo:elem.locNo,matnr:elem.matnr, batch: elem.batch, count: elem.anfme,}); | 
|                 }); | 
|                 let param = { | 
|                     outSite: staNo, | 
|                     locDetls: locDetls | 
|                 } | 
|                 uni.request({ | 
|                     url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + "/plate/out/start", | 
|                     header: { | 
|                         'token':uni.getStorageSync('token')}, | 
|                     data: JSON.stringify(param), | 
|                     method:"POST", | 
|                     success(result) { | 
|                         console.log(result) | 
|                         if (result.data.code === 200) { | 
|                             uni.showToast({title: result.data.msg, icon: "none",position: 'top'}) | 
|                             that.resst() | 
|                         } else { | 
|                             uni.showToast({title: result.data.msg, icon: "none",position: 'top'}) | 
|                         } | 
|                     } | 
|                 }) | 
|             }, | 
|             resst() { | 
|                 this.billNo = ''; | 
|                 this.matList = []; | 
|                 this.siteId = ''; | 
|             } | 
|         } | 
|     } | 
| </script> | 
|   | 
| <style> | 
|     .pda-btn1 { | 
|         margin-left:260rpx; | 
|         margin-right: auto; | 
|         margin-top: 150rpx; | 
|         width: 200rpx; | 
|         height: 80rpx; | 
|         font-size: 30upx; | 
|         font-weight: bold; | 
|     } | 
|     .combox { | 
|         width: 200px; | 
|         padding: 12px; | 
|     } | 
|     .bg-false { | 
|         background-color: #FFFFFF; | 
|     } | 
|     .bg-true { | 
|         background-color: #ebebeb; | 
|     } | 
|     .data-list { | 
|         border-bottom: 1px solid #d8d8d8; | 
|         height: 180rpx; | 
|         width: 94%; | 
|         margin: 15rpx auto 15rpx auto; | 
|         border-radius: 20rpx; | 
|     } | 
|     .data-list:first-child { | 
|         margin-top: 20rpx; | 
|     } | 
|     .data-list:last-child { | 
|         margin-bottom: 160rpx; | 
|     } | 
|     /* .data-list-left { | 
|         display: inline-block; | 
|         float: left; | 
|         text-align: center; | 
|         width: 100rpx; | 
|         height: 180rpx; | 
|         line-height: 180rpx; | 
|     } */  | 
|     .left-check-box { | 
|         display: inline-block; | 
|         /* background-color: #1E9FFF; */ | 
|         float: left; | 
|         height: 100%; | 
|         width: 100rpx; | 
|         text-align: center; | 
|         line-height: 170rpx; | 
|     } | 
|     .data-list-left { | 
|         /* background-color: #ffff7f; */ | 
|         display: inline-block; | 
|         float: left; | 
|         height: 180rpx; | 
|         width: 500rpx; | 
|         color: #676767; | 
|         text-indent: 20rpx; | 
|     } | 
|     .matnr { | 
|         padding-top: 10rpx; | 
|     } | 
|     .data-list-right { | 
|         /* background-color: #55ffff; */ | 
|         display: inline-block; | 
|         float: right; | 
|         width: 100rpx; | 
|         height: 180rpx; | 
|         line-height: 180rpx; | 
|     } | 
|     .data-list-right label { | 
|         display: inline-block; | 
|         float: left; | 
|         width: 100rpx; | 
|         height: 180rpx; | 
|     } | 
|     .revise-box { | 
|         width: 500rpx; | 
|         height: 500rpx; | 
|     } | 
|     .revise-box-top { | 
|         width: 100%; | 
|         height: 100rpx; | 
|         background-color: #fff; | 
|         padding: 10rpx; | 
|     } | 
|     .changeBox { | 
|         width: 100%; | 
|         height: 100rpx; | 
|         line-height: 120rpx; | 
|         text-align: center; | 
|         background-color: #FFF; | 
|         margin-top: 20rpx; | 
|         border-bottom: 1px solid #e3e3e3; | 
|     } | 
|     .text-box { | 
|         width: 100%; | 
|         height: 100rpx; | 
|         line-height: 120rpx; | 
|         text-align: center; | 
|         /* padding-left: 120rpx; */ | 
|         background-color: #FFF; | 
|         margin-top: 20rpx; | 
|         border-bottom: 1px solid #e3e3e3; | 
|     } | 
|     .changeBox .num-box { | 
|         display:  inline-block; | 
|         float: left; | 
|     } | 
|     .changeBox button { | 
|         float: left; | 
|     } | 
|     .revise-box-buttom { | 
|         position: absolute; | 
|         width: 100%; | 
|         height: 100rpx; | 
|         line-height: 100rpx; | 
|         background-color: #FFFFFF; | 
|         bottom: 0; | 
|         text-align: center; | 
|     } | 
| </style> |