| | |
| | | <input v-model="code" placeholder="扫码 / 输入" name="input"> |
| | | </view> |
| | | </form> |
| | | |
| | | <view class="margin-top"> |
| | | <uni-table ref="table" border stripe emptyText="暂无更多数据" rowKey=""> |
| | | <view class="cu-bar search bg-white"> |
| | | <view class="search-form round"> |
| | | <text class="cuIcon-search"></text> |
| | | <input :adjust-position="false" type="text" placeholder="产品代号" confirm-type="search" v-model="size" @input="searchSize()"></input> |
| | | </view> |
| | | </view> |
| | | <uni-table ref="table" border stripe emptyText="暂无更多数据" type="selection" @selection-change="selectionChange"> |
| | | <uni-tr> |
| | | <uni-th align="center" width="90">序号</uni-th> |
| | | <uni-th align="center" width="90">数量</uni-th> |
| | | <uni-th align="center" width="90">组托数量</uni-th> |
| | | <uni-th align="center" width="90">产品代号</uni-th> |
| | | <uni-th align="center" width="90">产品编码</uni-th> |
| | | <uni-th align="center" width="90">产品名称</uni-th> |
| | | <uni-th align="center" width="90">产品ID</uni-th> |
| | | <uni-th align="center" width="200">组托数量</uni-th> |
| | | <uni-th align="center" width="90">序号</uni-th> |
| | | <uni-th align="center" width="90">批号</uni-th> |
| | | |
| | | |
| | | </uni-tr> |
| | | <uni-tr v-for="(item, index) in matData" :key="index"> |
| | | <uni-td align="center">{{item.seqNo}}</uni-td> |
| | | <uni-td align="center">{{item.count}}</uni-td> |
| | | <uni-td align="center">{{item.matName}}</uni-td> |
| | | <uni-td align="center">{{item.matNo}}</uni-td> |
| | | <uni-td align="center">{{item.qty}}</uni-td> |
| | | <uni-td align="center"> |
| | | <button class="uni-button" size="mini" type="primary" @click="confirm(index,item)">修改</button> |
| | | <button class="uni-button" size="mini" type="warn" @click="remove(index,item)">删除</button> |
| | | <button class ="cu-btn bg-orange margin-xs" @click="confirm(index,item)">{{item.count}}</button> |
| | | <!-- <button class="uni-button" size="mini" type="warn" @click="remove(index,item)">删除</button> --> |
| | | </uni-td> |
| | | <uni-td align="center">{{item.size}}</uni-td> |
| | | <uni-td align="center">{{item.matNo}}</uni-td> |
| | | <uni-td align="center">{{item.matName}}</uni-td> |
| | | <uni-td align="center">{{item.seqNo}}</uni-td> |
| | | <uni-td align="center">{{item.itemBatch}}</uni-td> |
| | | |
| | | </uni-tr> |
| | | </uni-table> |
| | | </view> |
| | | <view> |
| | | <button class="cu-btn bg-yellow pda-btn" @click="comb()">组托</button> |
| | | <button class="cu-btn bg-grey pda-btn" @click="reset">重置</button> |
| | | <view class="flex solid-bottom padding justify-start"> |
| | | <button class ="cu-btn bg-red margin-xs" @click="delTable">批量删除</button> |
| | | <button class ="cu-btn bg-cyan margin-xs" @click="clearSel">清空选择</button> |
| | | <button class ="cu-btn bg-olive margin-xs" @click="reSelection">反选</button> |
| | | </view> |
| | | <view style="height: 200rpx;"> |
| | | <!-- 空白层 --> |
| | | </view> |
| | | <view class="cu-bar foot input"> |
| | | <view class="flex solid-bottom padding justify-start"> |
| | | <button class="cu-btn bg-yellow lg margin-xs" style="width: 250rpx;" @click="comb()">组 托</button> |
| | | <button class="cu-btn bg-grey lg margin-xs" @click="reset">重 置</button> |
| | | </view> |
| | | </view> |
| | | |
| | | <view> |
| | | <!-- 提示信息弹窗 --> |
| | | <uni-popup ref="message" type="message"> |
| | |
| | | <view> |
| | | <!-- 输入框示例 --> |
| | | <uni-popup ref="inputDialog" type="dialog"> |
| | | <uni-popup-dialog ref="inputClose" mode="input" title="组托数量" |
| | | placeholder="请输入组托数量" @confirm="dialogInputConfirm"> |
| | | <uni-popup-dialog ref="inputClose" mode="input" title="组托数量" @confirm="dialogInputConfirm"> |
| | | <uni-number-box :min="minCount" :max="maxCount" v-model="value" /> |
| | | </uni-popup-dialog> |
| | | |
| | | </uni-popup> |
| | | </view> |
| | | <view> |
| | | <!-- 提示窗示例 --> |
| | | <uni-popup ref="alertDialog" type="dialog"> |
| | | <uni-popup-dialog :type="msgType" title="警告" :content="message" @confirm="dialogConfirm" |
| | | @close="dialogClose"></uni-popup-dialog> |
| | | </uni-popup> |
| | | </view> |
| | | </view> |
| | |
| | | return { |
| | | billNo:'', |
| | | code:'', |
| | | matData:[], |
| | | matData:[], // 主要数据表 |
| | | type: '', |
| | | msgType: '', |
| | | messageText: '', |
| | | minCount:1, |
| | | minCount:0, |
| | | maxCount:1, |
| | | rowNum:'', |
| | | value:'', |
| | | couChange:true, |
| | | |
| | | baseIP:'', |
| | | basePORT:'', |
| | | selectArr : [], |
| | | selectedIndexs:[], |
| | | size:'', |
| | | message:'123' |
| | | |
| | | } |
| | | }, |
| | | |
| | | mounted(){ |
| | | const UIP = uni.getStorageSync('UIP'); |
| | | this.baseIP = UIP; |
| | | const UPORT = uni.getStorageSync('UPORT'); |
| | | this.basePORT = UPORT |
| | | }, |
| | | methods: { |
| | | reset:function() { |
| | | this.billNo = ''; |
| | | this.code = ''; |
| | | }, |
| | | messageToggle(type) { |
| | | this.msgType = type |
| | | this.messageText = '提取失败' |
| | | this.$refs.message.open() |
| | | }, |
| | | // 多选 |
| | | selectionChange(e) { |
| | | // 获取选中状态 |
| | | this.selectedIndexs = e.detail.index |
| | | this.selectedIndexs.sort(function(a,b){ |
| | | return a-b |
| | | });// 重新排序(升序) |
| | | }, |
| | | |
| | | // 全选 |
| | | // 批量删除的方法 |
| | | toggleSelection(rows) { |
| | | if (rows) { |
| | | this.$refs["table"].toggleAllSelection(rows); |
| | | } else { |
| | | this.$refs["table"].clearSelection(); |
| | | } |
| | | }, |
| | | //批量删除 |
| | | delTable() { |
| | | // 实现全选删除和多选删除 |
| | | let len = this.selectedIndexs.length |
| | | for (let i = len-1; i >= 0; i--) { |
| | | this.matData.splice(this.selectedIndexs[i],1) // splice删除数组会改变原数组,所以需要逆向删除 |
| | | } |
| | | this.$refs["table"].clearSelection(); // 清空选择 |
| | | |
| | | // 根据通知单号查询物料详情 |
| | | find(){ |
| | | let billNo = this.billNo |
| | | let that = this |
| | | if(this.billNo.length === 0){ |
| | | }, |
| | | // 反选 |
| | | reSelection(){ |
| | | this.toggleSelection(this.selectedIndexs) |
| | | }, |
| | | // 清空 |
| | | clearSel() { |
| | | this.toggleSelection() |
| | | }, |
| | | // 搜索产品代号 |
| | | searchSize() { |
| | | let billNo = this.billNo |
| | | let size = this.size; |
| | | let that = this |
| | | uni.request({ |
| | | url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + "/mobile/bill/query/auth", |
| | | header: { |
| | | 'content-type':'application/x-www-form-urlencoded', |
| | | 'token':uni.getStorageSync('token')}, |
| | | data: { |
| | | billNo: billNo, |
| | | size:size |
| | | }, |
| | | method: 'POST', |
| | | success(res){ |
| | | if(res.data.code === 200){ |
| | | if(res.data.data != null){ |
| | | that.addTableData(res.data.data) |
| | | }else if(res.data.code === 403){ |
| | | |
| | | }else { |
| | | |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | // var str = '' |
| | | // var tempData = [] |
| | | // str = val.detail.value; |
| | | // tempData = this.tableData |
| | | // for (var i = 0; i < tempData.length; i++) { |
| | | // var size = tempData[i].size |
| | | // if (str != '') { |
| | | // if (str === size) { |
| | | // tempData =[] |
| | | // tempData.push(this.matData[i]) |
| | | // break |
| | | // } |
| | | // } |
| | | // } |
| | | // this.tableData = tempData |
| | | // this.matData = tempData |
| | | }, //SA290475 SH3102081 |
| | | // 重置 |
| | | reset:function() { |
| | | this.billNo = ''; |
| | | this.code = ''; |
| | | this.matData = []; |
| | | |
| | | this.size = ''; |
| | | this.toggleSelection() |
| | | }, |
| | | messageToggle(type) { |
| | | this.msgType = type |
| | | this.messageText = '提取失败' |
| | | this.$refs.message.open() |
| | | }, |
| | | |
| | | // 根据通知单号查询物料详情 |
| | | find(){ |
| | | let billNo = this.billNo |
| | | let size = this.size |
| | | let that = this |
| | | if(this.billNo.length === 0){ |
| | | return |
| | | } |
| | | if(billNo.indexOf('=')>-1){ |
| | | billNo = billNo.split(",")[0].split("=")[1]; |
| | | } |
| | | if(billNo.length===0){ |
| | | return |
| | | } |
| | | this.matData = [] |
| | | uni.request({ |
| | | url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + "/mobile/bill/query/auth", |
| | | header: { |
| | | 'content-type':'application/x-www-form-urlencoded', |
| | | 'token':uni.getStorageSync('token')}, |
| | | data: { |
| | | billNo: billNo, |
| | | size:size |
| | | }, |
| | | method: 'POST', |
| | | success(res){ |
| | | console.log(res) |
| | | if(res.data.code === 200){ |
| | | if(res.data.data != null){ |
| | | that.addTableData(res.data.data) |
| | | }else if(res.data.code === 403){ |
| | | |
| | | }else { |
| | | |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | addTableData(data){ |
| | | this.matData=[]; |
| | | |
| | | for(var i=0;i<data.length;i++){ |
| | | var toPush = true; |
| | | for(var j=0;j<this.matData.length;j++){ |
| | | if(data[i].matNo ===this.matData[j].matNo ){ |
| | | this.matData[j].count = Number(this.matData[j].count) + Number(data[i].count); |
| | | toPush = false; |
| | | } |
| | | } |
| | | if(toPush) { |
| | | this.matData.push(data[i]); |
| | | |
| | | } |
| | | } |
| | | }, |
| | | |
| | | // 修改数量 |
| | | confirm(index,item){ |
| | | this.couChange=false |
| | | this.$refs.inputDialog.open() |
| | | this.maxCount = item.qty |
| | | this.rowNum = index |
| | | this.value = this.minCount |
| | | }, |
| | | // 修改数量弹窗 |
| | | dialogInputConfirm() { |
| | | this.matData[this.rowNum].count = this.value |
| | | this.messageToggle('success') |
| | | this.messageText = '修改成功' |
| | | }, |
| | | // 删除 |
| | | remove(index,item){ |
| | | this.matData.splice(index,1) |
| | | this.messageToggle('success') |
| | | this.messageText = '删除成功' |
| | | }, |
| | | // 组托 |
| | | comb(){ |
| | | let that = this |
| | | let barcode = that.code |
| | | let billNo = this.billNo |
| | | if(billNo.length === 0){ |
| | | that.messageToggle('error') |
| | | that.messageText = '入库单号为空' |
| | | return; |
| | | } |
| | | if(barcode.length === 0){ |
| | | that.messageToggle('error') |
| | | that.messageText = '请输入托盘码' |
| | | return; |
| | | } |
| | | if (barcode.length !== 8) { |
| | | that.messageToggle('error') |
| | | that.messageText = '托盘码必须为8位' |
| | | return; |
| | | } |
| | | if(that.couChange){ |
| | | that.messageToggle('error') |
| | | that.messageText = '请先确认入库数量' |
| | | return; |
| | | } |
| | | |
| | | for (var i = 0; i < that.matData.length; i++) { |
| | | console.log(that.value) |
| | | console.log(that.matData[i].qty) |
| | | var sad = that.matData[i].qty - that.value |
| | | console.log(sad) |
| | | if (sad <= 5 && sad > 0) { |
| | | this.$refs.alertDialog.open() |
| | | that.message = '产品代号' + that.matData[i].size + '剩余待组托数量少于5,是否继续组托' |
| | | return |
| | | } |
| | | if(billNo.indexOf('=')>-1){ |
| | | billNo = billNo.split(",")[0].split("=")[1]; |
| | | console.log(billNo) |
| | | } |
| | | if(billNo.length===0){ |
| | | return |
| | | } |
| | | this.matData = [] |
| | | uni.request({ |
| | | url:that.baseUrl+ "/mobile/bill/query/auth", |
| | | header: { |
| | | 'content-type':'application/x-www-form-urlencoded', |
| | | 'token': localStorage.getItem('token')}, |
| | | data: { |
| | | billNo: billNo |
| | | }, |
| | | method: 'POST', |
| | | success(res){ |
| | | if(res.data.code === 200){ |
| | | if(res.data.data != null){ |
| | | that.addTableData(res.data.data) |
| | | }else if(res.data.code === 403){ |
| | | |
| | | }else { |
| | | |
| | | } else { |
| | | uni.request({ |
| | | url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + "/mobile/comb/auth", |
| | | header: {'token':uni.getStorageSync('token')}, |
| | | data:{ |
| | | barcode:barcode, |
| | | combMats:that.matData, |
| | | billNo: billNo, |
| | | }, |
| | | method:'POST', |
| | | success(res) { |
| | | |
| | | if(res.data.code === 200){ |
| | | that.reset() |
| | | that.matData = [] |
| | | that.messageToggle('success') |
| | | that.messageText = '组托成功' |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | addTableData(data){ |
| | | for(var i=0;i<data.length;i++){ |
| | | var toPush = true; |
| | | for(var j=0;j<this.matData.length;j++){ |
| | | if(data[i].matNo ===this.matData[j].matNo ){ |
| | | this.matData[j].count = Number(this.matData[j].count) + Number(data[i].count); |
| | | toPush = false; |
| | | } |
| | | } |
| | | if(toPush) { |
| | | this.matData.push(data[i]); |
| | | } |
| | | }) |
| | | } |
| | | |
| | | }, |
| | | } |
| | | |
| | | // 修改数量 |
| | | confirm(index,item){ |
| | | this.couChange=false |
| | | this.$refs.inputDialog.open() |
| | | this.maxCount = item.count |
| | | this.rowNum = index |
| | | this.value = this.maxCount |
| | | }, |
| | | // 修改数量弹窗 |
| | | dialogInputConfirm() { |
| | | this.matData[this.rowNum].count = this.value |
| | | this.messageToggle('success') |
| | | this.messageText = '修改成功' |
| | | }, |
| | | // 删除 |
| | | remove(index,item){ |
| | | this.matData.splice(index,1) |
| | | this.messageToggle('success') |
| | | this.messageText = '删除成功' |
| | | }, |
| | | comb(){ |
| | | let that = this |
| | | let barcode = that.code |
| | | let billNo = this.billNo |
| | | if(billNo.length === 0){ |
| | | that.messageToggle('error') |
| | | that.messageText = '入库单号为空' |
| | | return; |
| | | } |
| | | if(barcode.length === 0){ |
| | | that.messageToggle('error') |
| | | that.messageText = '请输入托盘码' |
| | | return; |
| | | } |
| | | if (barcode.length !== 8) { |
| | | that.messageToggle('error') |
| | | that.messageText = '托盘码必须为8位' |
| | | return; |
| | | } |
| | | if(that.couChange){ |
| | | that.messageToggle('error') |
| | | that.messageText = '请先确认入库数量' |
| | | return; |
| | | } |
| | | uni.request({ |
| | | url:that.baseUrl+ "/mobile/comb/auth", |
| | | header: {'token': localStorage.getItem('token')}, |
| | | data:{ |
| | | barcode:barcode, |
| | | combMats:that.matData, |
| | | billNo: billNo, |
| | | }, |
| | | method:'POST', |
| | | success(res) { |
| | | |
| | | if(res.data.code === 200){ |
| | | that.reset() |
| | | that.matData = [] |
| | | that.messageToggle('success') |
| | | that.messageText = '组托成功' |
| | | } |
| | | }, |
| | | // 确定组托 |
| | | dialogConfirm() { |
| | | console.log(1) |
| | | let that = this |
| | | let barcode = that.code |
| | | let billNo = this.billNo |
| | | console.log(that.matData) |
| | | for (var i = 0; i < that.matData.length; i++) { |
| | | that.matData[i].oveFlag = 1 |
| | | } |
| | | console.log(that.matData) |
| | | uni.request({ |
| | | url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + "/mobile/comb/auth", |
| | | header: {'token':uni.getStorageSync('token')}, |
| | | data:{ |
| | | barcode:barcode, |
| | | combMats:that.matData, |
| | | billNo: billNo, |
| | | }, |
| | | method:'POST', |
| | | success(res) { |
| | | |
| | | if(res.data.code === 200){ |
| | | that.reset() |
| | | that.matData = [] |
| | | that.messageToggle('success') |
| | | that.messageText = '组托成功' |
| | | } |
| | | }) |
| | | }, |
| | | } |
| | | }) |
| | | }, |
| | | // 取消组托 |
| | | dialogClose() { |
| | | console.log('取消组托了') |
| | | } |
| | | }, |
| | | onShow() { |
| | | // const query = uni.createSelectorQuery() |
| | | // console.log(prototype.placeholder) |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | |
| | | .delTable { |
| | | margin-left:0; |
| | | margin-right: auto; |
| | | width: 200rpx; |
| | | height: 80rpx; |
| | | font-size: 30upx; |
| | | font-weight: bold; |
| | | } |
| | | </style> |