From 3a770819f22efdc0ecb0ba57de0ac64f08421c55 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期四, 13 十一月 2025 16:54:20 +0800
Subject: [PATCH] 波次拣货功能优化
---
pages/listing/matnrPalletising.vue | 261 +++++++++++++++++++++++-----------------------------
1 files changed, 116 insertions(+), 145 deletions(-)
diff --git a/pages/listing/matnrPalletising.vue b/pages/listing/matnrPalletising.vue
index 5469911..24551eb 100644
--- a/pages/listing/matnrPalletising.vue
+++ b/pages/listing/matnrPalletising.vue
@@ -1,31 +1,32 @@
<template>
<view class="has-foot">
<view>
-
- <form>
- <view class="cu-form-group margin-top">
- <view class="title">瀹瑰櫒鍙�</view>
- <input placeholder="璇锋壂鎻忓鍣ㄥ彿" v-model="container" focus></input>
- <text class='cuIcon-search text-blue' @click="getList"></text>
- </view>
- <view class="cu-form-group">
- <view class="title">鐗╂枡缂栫爜</view>
- <input placeholder="璇锋壂鎻忕墿鏂欑紪鐮�" v-model="matnrCode"></input>
- <text class='cuIcon-search text-blue' @click="search"></text>
+ <form>
+ <view class="cu-form-group margin-top">
+ <view class="title">瀹瑰櫒鍙�</view>
+ <input placeholder="璇锋壂鎻忓鍣ㄥ彿" v-model="container" focus></input>
+ <text class='cuIcon-search text-blue' @click="getList"></text>
+ </view>
+ <view class="cu-form-group">
+ <view class="title">鐗╂枡缂栫爜</view>
+ <input placeholder="璇锋壂鎻忕墿鏂欑紪鐮�" v-model="matnrCode"></input>
+ <text class='cuIcon-search text-blue' @click="search"></text>
+ </view>
+ <view class="cu-form-group">
+ <view class="title">绁ㄥ彿</view>
+ <input placeholder="璇锋壂鎻忕幇鍝佺エ鍙�" v-model="fieldsIndex"></input>
+ <text class='cuIcon-search text-blue' @click="search"></text>
+ </view>
+ <view class="cu-form-group">
+ <view class="title">ASN鍗曞彿</view>
+ <input placeholder="璇疯緭鍏SN鍗曞彿" v-model="asnCode"></input>
+ </view>
+ </form>
+ <view class="flex solid-bottom padding-sm justify-between">
+ <view class="text-blue">鐗╂枡鎬荤被锛歿{list.length}}</view>
+ <view class="text-blue">缁勭洏鎬绘暟锛歿{allCount}}</view>
</view>
- <view class="cu-form-group">
- <view class="title">ASN鍗曞彿</view>
- <input placeholder="璇疯緭鍏SN鍗曞彿" v-model="asnCode"></input>
- </view>
- </form>
-
- <view class="flex solid-bottom padding-sm justify-between">
- <view class="text-blue">鐗╂枡鎬荤被:{{list.length}}</view>
- <view class="text-blue">缁勭洏鎬绘暟:{{allCount}}</view>
</view>
-
- </view>
-
<view class="padding-lr margin-top-sm">
<block v-for="(item, index) in list" :key="index">
<view class="cu-list det menu sm-border margin-bottom-sm " :class="[item.trackCode===barcode&&'act']"
@@ -36,7 +37,7 @@
{{index+1}}
</view>
<view class="text-blue">
- 缂栫爜:
+ 缂栫爜锛�
{{`${item.matnrCode}`}}
</view>
</view>
@@ -46,15 +47,21 @@
</view>
<view class="cu-item">
<view class="content">
- <text class="text-black">ASN:</text>
+ <text class="text-black">鐗╂枡缂栫爜锛�</text>
+ <text class="text-grey ">{{item.maktx}}</text>
+ </view>
+ </view>
+ <view class="cu-item">
+ <view class="content">
+ <text class="text-black">鍗曞彿锛�</text>
</view>
<view class="action">
<text class="text-grey ">{{item.asnCode}}</text>
</view>
- </view>
+ </view>
<view class="cu-item">
<view class="content">
- <text class="text-black">渚涘簲鍟嗘壒娆�:</text>
+ <text class="text-black">渚涘簲鍟嗘壒娆★細</text>
</view>
<view class="action">
<text class="text-grey ">{{item.splrBatch}}</text>
@@ -62,10 +69,7 @@
</view>
<view class="cu-item">
<view class="content">
- <text class="text-black">璐ㄦ鐘舵��:</text>
- </view>
- <view class="action">
- <text class="text-grey ">{{item.isptResult$}}</text>
+ <text class="text-black">绁ㄥ彿锛�<text class="text-grey ">{{item.crushNo}}</text></text>
</view>
</view>
<!-- <view class="cu-item">
@@ -79,31 +83,30 @@
<view class="cu-item">
<view class="content">
- <text class="text-black">搴撳瓨鍗曚綅: <text class="text-grey ">{{item.stockUnit}}</text></text>
+ <text class="text-black">搴撳瓨鍗曚綅锛� <text class="text-grey ">{{item.stockUnit}}</text></text>
</view>
<view class="content">
- <text class="text-black">鏀惰揣鏁伴噺: <text class="text-grey ">{{item.anfme}}</text></text>
+ <text class="text-black">鏀惰揣鏁伴噺锛� <text class="text-grey ">{{item.anfme}}</text></text>
</view>
<view class="content">
- <text class="text-black">宸蹭笂鏋舵暟閲�: <text
+ <text class="text-black">宸蹭笂鏋舵暟閲忥細 <text
class="text-grey ">{{item.workQty + item.qty}}</text></text>
</view>
</view>
<view class="cu-item">
<view class="content">
- <text class="text-black">鍙粍鐩樻暟閲�: <text
- class="text-grey ">{{item.anfme - item.workQty}}</text></text>
+ <text class="text-black">鍙粍鐩樻暟閲忥細<text
+ class="text-grey ">{{item.anfme - item.workQty - item.qty}}</text></text>
</view>
-
</view>
- <view class="cu-item">
+ <view class="cu-item">
<view class="content">
<view class="cu-form-group padding-lr-0">
<view class="title text-blue"><text
- class="text-red text-xl vertical-middle">*</text>缁勭洏鏁伴噺:
+ class="text-red text-xl vertical-middle">*</text>缁勭洏鏁伴噺锛�
</view>
- <uni-number-box style="width: 70%;" :max="max" v-model="item.receiptQty"
- :step='1'></uni-number-box>
+ <uni-number-box style="width: 70%;" :min="0" :max="max" :decimal="2" :step="0.01"
+ v-model="item.receiptQty"></uni-number-box>
</view>
</view>
</view>
@@ -137,112 +140,82 @@
range: [],
asnCode: '',
repeatClick: false,
- isconfirm: false,
- matnrCode:'',
+ fieldsIndex: null,
+ isconfirm: false,
+ matnrCode: '',
max: 99999999,
}
},
computed: {
...mapState('user', ['dynamicFields']),
allCount() {
- return this.list.reduce((acc, row) => +row.anfme + acc, 0) || 0
+ return this.list.reduce((acc, row) => + (row.anfme + acc).toFixed(2), 0) || 0
}
},
mounted() {},
- methods: {
+ methods: {
async search() {
const find = this.list.find(el => el.trackCode === this.barcode);
find ? this.scrollTo() : this.getDet();
-
},
getDet() {
let that = this;
- uni.navigateTo({
- url: "../listing/itemSelect",
- success: function(res) {
- // 閫氳繃eventChannel鍚戣鎵撳紑椤甸潰浼犻�佹暟鎹� 鍚戝彟澶栦竴涓〉闈紶閫掑�肩殑
- res.eventChannel.emit('data', {
- matnrCode: that.matnrCode,
- asnCode: that.asnCode
- })
- },
- events: {
- // 涓烘寚瀹氫簨浠舵坊鍔犱竴涓洃鍚櫒锛岃幏鍙栬鎵撳紑椤甸潰浼犻�佸埌褰撳墠椤甸潰鐨勬暟鎹� 鍙﹀涓�涓〉闈紶杩囨潵鐨�
- backData: function(data) {
- that.showBackData(data.data)
- },
- },
-
-
- });
+ let param = {
+ matnrCode: that.matnrCode.trim(),
+ asnCode: that.asnCode.trim(),
+ fieldsIndex: that.fieldsIndex.trim()
+ }
+ that.getDetl(param);
},
- // async getDet() {
- // let that = this;
- // const {
- // code,
- // data,
- // msg
- // } = await request('/asnOrderItem/trackCode', {
- // matnrCode: that.matnrCode,
- // asnCode: that.asnCode
- // }, "post")
- // if (code === 200) {
- // data.map(item => {
- // item.receiptQty = 0;
- // item.selected = false;
- // })
- // // for (var i = 0; i < data.length; i++) {
- // // data[i].receiptQty =1;
- // // data[i].selected = false;
- // // }
- // if(data !== [] || data !== null){
- // uni.navigateTo({
- // url: "../listing/itemSelect",
- // success: function(res) {
- // // 閫氳繃eventChannel鍚戣鎵撳紑椤甸潰浼犻�佹暟鎹� 鍚戝彟澶栦竴涓〉闈紶閫掑�肩殑
- // res.eventChannel.emit('data', {
- // item: data
- // })
- // },
- // events: {
- // // 涓烘寚瀹氫簨浠舵坊鍔犱竴涓洃鍚櫒锛岃幏鍙栬鎵撳紑椤甸潰浼犻�佸埌褰撳墠椤甸潰鐨勬暟鎹� 鍙﹀涓�涓〉闈紶杩囨潵鐨�
- // backData: function(data) {
- // that.showBackData(data.data)
- // },
- // },
-
-
- // });
-
- // }
-
- // // this.list = data
- // } else {
- // uni.showToast({
- // title: msg,
- // icon: "none",
- // position: 'top'
- // })
- // }
- // },
+
+ async getDetl(req) {
+ let that = this;
+ // uni.showLoading({
+ // title: '鍔犺浇涓�...'
+ // })
+ const { code, data, msg } = await request('/asnOrderItem/trackCode', {
+ matnrCode: that.matnrCode,
+ asnCode: that.asnCode,
+ code: that.asnCode,
+ fieldsIndex: that.fieldsIndex,
+ batch: req.batch
+ }, "post")
+ if (code === 200) {
+ for (var i = 0; i < data.length; i++) {
+ data[i].receiptQty = data[i].anfme - data[i].workQty;
+ data[i].crushNo = that.fieldsIndex;
+ data[i].selected = true;
+ }
+ that.fieldsIndex = null;
+ that.showBackData(data)
+ } else {
+ uni.showToast({
+ title: msg,
+ icon: "none",
+ position: 'top'
+ })
+ }
+ // uni.hideLoading();
+ },
+
async getList() {
- if(this.container === '' || this.container === null){
+ if (this.container === '' || this.container === null) {
uni.showToast({
title: "瀹瑰櫒鐮佷负绌�",
icon: "none",
position: 'top'
})
- return ;
+ return;
}
- const {
- code,
- data,
- msg
- } = await request('/asnOrderItem/container', {
+ const { code, data, msg } = await request('/asnOrderItem/container', {
barcode: this.container
})
if (code === 200) {
- this.list = data
+ uni.showToast({
+ title: msg,
+ icon: "success",
+ position: 'top'
+ })
} else {
uni.showToast({
title: msg,
@@ -251,11 +224,11 @@
})
}
},
- showBackData(data){
- let status ;
- data.map(item => {
+ showBackData(data) {
+ let status;
+ data.map(item => {
this.list.push(item)
- })
+ })
let oldLength = this.list.length
this.list = this.list.filter((item, index, self) =>
self.findIndex(i => (
@@ -263,23 +236,21 @@
)) === index && item.isptResult === self[0].isptResult
);
let newLength = this.list.length
-
- if(oldLength > newLength){
+
+ if (oldLength > newLength) {
this.showMsg("鏂版槑缁嗚杩囨护锛岃妫�鏌ョ姸鎬�")
-
}
-
},
- showMsg(msg){
+ showMsg(msg) {
setTimeout(function() {
- uni.showToast({
- icon: "none",
- position: 'top',
- title: msg,
- duration:2000,
- })
+ uni.showToast({
+ icon: "none",
+ position: 'top',
+ title: msg,
+ duration: 2000,
+ })
}, 200);
-
+
},
scrollTo() {
const ref = this.$refs[`${this.barcode}ref`][0];
@@ -309,28 +280,28 @@
this.isconfirm = false
},
async confirm() {
- if(this.container === '' || this.container === null){
+ if (this.container === '' || this.container === null) {
uni.showToast({
title: "瀹瑰櫒鐮佷负绌�",
icon: "none",
position: 'top'
})
- return ;
+ return;
}
- if(this.list.length ===0 || this.list === null){
+ if (this.list.length === 0 || this.list === null) {
uni.showToast({
title: "鏈坊鍔犳槑缁�",
icon: "none",
position: 'top'
})
- return ;
+ return;
}
- this.repeatClick = true
+ this.repeatClick = true
const newArr = this.list.map(item => {
-
+
return {
...item,
- anfme: item.anfme === null ? 0 : +item.anfme,
+ anfme: item.anfme === null ? 0 : +item.anfme,
};
});
@@ -340,7 +311,7 @@
msg
} = await request('/waitPakin/merge', {
items: newArr,
- barcode: this.container,
+ barcode: this.container,
})
if (code === 200) {
uni.showToast({
--
Gitblit v1.9.1