From a70034659894cf2c3cd88584cd3e424f3203c8e5 Mon Sep 17 00:00:00 2001 From: dengjunjie <dengjunjie@hnkhzn.com> Date: 星期二, 24 十二月 2024 17:05:49 +0800 Subject: [PATCH] 添加PDA拣选完成 --- 代码管理/淮安PDA/pages/stash/pickingMat.vue | 496 +++++++++++++++++++++++++++++++++++------------------- 1 files changed, 323 insertions(+), 173 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/pickingMat.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/pickingMat.vue" index 53ba37b..bcc6231 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/pickingMat.vue" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/pickingMat.vue" @@ -1,96 +1,162 @@ <template> <view> - <view class="header"> - <uni-forms label-width="120"> - <uni-forms-item label="鎵樼洏鏉$爜"> - <uni-easyinput type="text" @input="inputChange()" v-model="value" placeholder="璇锋壂鐮�" ref='midInput' - :focus="true" /> - </uni-forms-item> - <uni-forms-item> - <button @click="submit" type="primary" size="default" style="margin-top: 2%;">鎷i�夊畬鎴�</button> - </uni-forms-item> - </uni-forms> + <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;">鎷i�夊畬鎴�</button> + </uni-forms-item> + </uni-forms> + <uni-list> + <uni-list-item direction="column" v-for="item in matInfos" :key="item.sn"> + <template v-slot:body> + <view class="uni-list-box"> + <!-- <uni-icons type="trash" size="22" style="position: absolute;right: 5%;" + @click="deleteList(item.sn)"> + </uni-icons> --> + <view class="uni-content"> + <view class="uni-title-sub uni-ellipsis-2">鍗曟嵁缂栧彿锛歿{item.orderNo}}</view> + <view class="uni-note">鎵樼洏缂栧彿锛歿{item.palletCode}}</view> + <view class="uni-note">鐗╂枡鎵规锛歿{item.batchNo}}</view> + <view class="uni-note">鐗╂枡缂栫爜锛歿{item.materielCode}}</view> + <view class="uni-note">鐗╂枡鍚嶇О锛歿{item.materielName}}</view> + <view class="uni-note">鍗曟嵁鏁伴噺锛歿{item.orderQuantity}}</view> + <view class="uni-note">鍘熷搴撳瓨锛歿{item.originalQuantity}}</view> + <view class="uni-note">鍒嗛厤搴撳瓨锛歿{item.assignQuantity}}</view> + <view class="uni-note">鍓╀綑搴撳瓨锛歿{item.originalQuantity-item.assignQuantity}}</view> + </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" 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> - <uni-list class="footer"> - <uni-list-item direction="column" v-if="value2"> - <label>{{value2}}</label> - </uni-list-item> - <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 matInfo" :key="index"> - <template v-slot:body> - <view class="uni-list-box"> - <view class="uni-content"> - <view class="uni-title-sub uni-ellipsis-2" style="font-size: 1.1em;">鐗╂枡缂栫爜锛歿{item.matCode}} - </view> - <view class="uni-title-sub uni-ellipsis-2" style="font-size: 1.1em;">鐗╂枡鍚嶇О锛歿{item.matName}} - </view> - <view class="uni-title-sub uni-ellipsis-2" style="font-size: 1.1em;">鏁伴噺锛歿{item.matQty}} - </view> - </view> - </view> - </template> - </uni-list-item> - </uni-list> - <u-toast ref="uToast" /> </view> </template> <script> + // const SixUniTts = uni.requireNativePlugin("SmallSix-SixUniTts") export default { data() { return { - value: "", - matInfo: [], - value2: "", - matTotal:[] + items: ['鎷i��', '鍏ュ簱'], //'鎷i�夌粍鐩�', + 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, } }, onLoad(res) { - //this.hideboard(); + this.barcodefocus = false; + this.warehouseId = res.warehouseId; + this.istrue = false; }, methods: { - submit() { - if (this.value.length == 0) { + 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: "璇锋壂鐮�", + 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 - } + 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/StockOperate/ReleaseAllBox', param).then(resdt => { - if (resdt.status) { - uni.$showMsg('瑙g洏鎴愬姛!') - this.value = ""; - this.matInfo = []; + this.$u.post('/api/Task/RequestInboundTask', postData).then(res => { + if (res.status) { + uni.$showMsg(res.message); + this.inboundBarcode = ""; + this.address = ""; + setTimeout(() => { + this.addressFocus = false; + }, 200); } else { this.$refs.uToast.show({ - title: resdt.message, + title: res.message, type: "error" }) } @@ -101,47 +167,195 @@ }) }) }, + inputChangebarcode3() { + this.addressFocus = false; + this.$nextTick(function(x) { + if (this.inboundBarcode != '') { + this.addressFocus = true; + } + }) + }, + 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) { + uni.$showMsg('鎷i�夋垚鍔�!') + this.barcode = ""; + this.matInfos = []; + } else { + this.$refs.uToast.show({ + title: res.message, + type: "error" + }) + } + }) + }, inputChange(e) { this.$nextTick(() => { - if (this.value.length == 0) { - return; - } - var matInfo = this.value.split('|'); - this.matInfo = []; + this.istrue = false; + var matInfo = this.materialsns.split('|'); 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.matTotal = res.data.stockTotal; - } else { - this.$refs.uToast.show({ - title: res.message, - type: "error" + 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.$u.post('/api/StockOperate/GetStockInfoByBarcode', { + 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.value + "barcode": this.barcode, + "warehouseId": this.warehouseId, } - }).then(res => { - if (res.status) { - this.matInfo = res.data.stockInfo; - this.matTotal = res.data.stockTotal; - // console.log(res.data); - // console.log(this.matTotal); + }; + this.$u.post('/api/OutStockLockInfo/GetStockOutboundOrder', postData).then(res => { + this.matInfos = []; + if (res != null) { + this.matInfos = res } else { this.$refs.uToast.show({ - title: res.message, + 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; } }) }, @@ -152,86 +366,22 @@ <style lang="scss"> @import '@/common/uni-ui.scss'; - page { - display: flex; - flex-direction: column; - box-sizing: border-box; - background-color: #efeff4; - min-height: 100%; - height: auto; - } - - .tips { - color: #67c23a; - font-size: 14px; - line-height: 40px; - text-align: center; - background-color: #f0f9eb; - height: 0; - opacity: 0; - transform: translateY(-100%); - transition: all 0.3s; - } - - .tips-ani { - transform: translateY(0); - height: 40px; - opacity: 1; - } - .content { - width: 100%; display: flex; - } - - .list-picture { - width: 100%; - height: 145px; - } - - .thumb-image { - width: 100%; - height: 100%; - } - - .ellipsis { - display: flex; - overflow: hidden; - } - - .uni-ellipsis-1 { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - } - - .uni-ellipsis-2 { - overflow: hidden; - text-overflow: ellipsis; - display: -webkit-box; - -webkit-line-clamp: 2; - -webkit-box-orient: vertical; - } - - .customcss { - display: flex; - position: fixed; - width: 100%; - top: 10px; - text-align: center; - z-index: 999; - left: 30px; - height: 20%; - } - - .footer { - // padding-top: 30%; - } - - .header { - width: 100%; height: 150px; - background-color: #ffffff; - padding: 20rpx 40rpx; + } + + .content-text { + font-size: 14px; + color: #666; + } + + .itemstyle { + margin-top: 20px; + margin-left: 5%; + } + + .headerstyle { + width: 90%; } </style> \ No newline at end of file -- Gitblit v1.9.3