From 7a512d442b2673662d4f642e79b0748d2f52f499 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期二, 14 一月 2025 10:02:04 +0800
Subject: [PATCH] 收货
---
代码管理/淮安PDA/pages/stash/pickingMat.vue | 577 ++++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 404 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..9d8df60 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,194 @@
<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.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" 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>
- <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,
+ Summmary: 0,
+ stockInfoDetail: []
}
},
onLoad(res) {
- //this.hideboard();
+ this.barcodefocus = false;
+ this.warehouseId = res.warehouseId;
+ if (this.warehouseId == 5) {
+ this.address = "8005"
+ }
+ this.istrue = false;
+ this.addressFocus = 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 +199,244 @@
})
})
},
+ 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('鎷i�夋垚鍔�!')
+ 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(() => {
- 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 +447,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