From f29f358f589f5b1c2589c07b65845650be7aafef Mon Sep 17 00:00:00 2001
From: 647556386 <647556386@qq.com>
Date: 星期一, 08 十二月 2025 21:21:08 +0800
Subject: [PATCH] 代码优化
---
项目代码/WIDESEA_WMSClient/src/extension/outbound/extend/NoStockOut.vue | 405 +++++++++++++++++++++++++--------------------------------
1 files changed, 181 insertions(+), 224 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/NoStockOut.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/NoStockOut.vue"
index d058411..7e80215 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/NoStockOut.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/NoStockOut.vue"
@@ -9,56 +9,49 @@
class="custom-vol-box"
>
<div>
- <!-- 鍗曟嵁閫夋嫨鍖哄煙锛堝彲杈撳叆鎼滅储锛� -->
- <el-form :inline="true" :model="orderForm" style="margin-bottom: 20px; align-items: flex-end;">
- <el-form-item label="鍑哄簱鍗曟嵁:" name="outboundOrderId">
- <el-select
- v-model="orderForm.outboundOrderId"
- placeholder="璇烽�夋嫨鎴栨壂鎻忓嚭搴撳崟鎹彿"
+ <!-- 鍗曟嵁杈撳叆鍖哄煙锛堟敮鎸佹壂鐮侊級 -->
+ <el-form
+ :inline="true"
+ :model="orderForm"
+ style="margin-bottom: 20px; align-items: flex-end;"
+ @submit.prevent
+ >
+ <el-form-item label="鍑哄簱鍗曟嵁:" name="outboundOrderNo">
+ <el-input
+ v-model="orderForm.outboundOrderNo"
+ placeholder="璇疯緭鍏ユ垨鎵弿鍑哄簱鍗曟嵁鍙�"
clearable
style="width: 220px; margin-right: 10px;"
- @change="handleOrderChange"
- @visible-change="handleOutboundVisibleChange"
- :loading="loading"
- filterable
- :filter-method="filterOutboundOrders"
- @input="handleOutboundScanInput"
- ref="outboundSelectRef"
- >
- <el-option
- v-for="order in filteredOutboundOrders"
- :key="order.id"
- :label="order.orderNo"
- :value="order.id"
- ></el-option>
- </el-select>
+ @input="handleOutboundInput"
+ @keyup.enter="(e) => {
+ e.stopPropagation(); // 闃绘浜嬩欢鍐掓场
+ e.preventDefault(); // 闃绘榛樿琛屼负
+ focusBarcodeInputDirectly();
+ }"
+ ref="outboundInputRef"
+ ></el-input>
</el-form-item>
- <el-form-item label="閲囪喘鍗曟嵁:" name="purchaseOrderId">
- <el-select
- v-model="orderForm.purchaseOrderId"
- placeholder="璇烽�夋嫨鎴栨壂鎻忛噰璐崟鎹彿"
+ <el-form-item label="閲囪喘鍗曟嵁:" name="purchaseOrderNo">
+ <el-input
+ v-model="orderForm.purchaseOrderNo"
+ placeholder="鎵爜鏉$爜鍚庤嚜鍔ㄥ~鍏�"
clearable
style="width: 220px; margin-right: 10px;"
- @change="handleOrderChange"
- @visible-change="handlePurchaseVisibleChange"
- :loading="loading"
- filterable
- :filter-method="filterPurchaseOrders"
- @input="handlePurchaseScanInput"
- ref="purchaseSelectRef"
- >
- <el-option
- v-for="order in filteredPurchaseOrders"
- :key="order.id"
- :label="order.orderNo"
- :value="order.id"
- ></el-option>
- </el-select>
+ @input="handlePurchaseInput"
+ readonly
+ ref="purchaseInputRef"
+ ></el-input>
</el-form-item>
</el-form>
<!-- 涓婃柟杈撳叆妗� -->
- <el-form :inline="true" :model="formData" ref="formRef" style="margin-bottom: 20px; align-items: flex-end;">
+ <el-form
+ :inline="true"
+ :model="formData"
+ ref="formRef"
+ style="margin-bottom: 20px; align-items: flex-end;"
+ @submit.prevent
+ >
<el-form-item
label="鎵弿鏉$爜:"
style="width: 80%"
@@ -69,10 +62,10 @@
ref="barcodeInputRef"
v-model="formData.barcode"
placeholder="璇蜂娇鐢ㄦ壂鐮佹灙鎵弿鏉$爜锛屾垨鎵嬪姩杈撳叆"
- @keyup.enter="handleScan"
+ @keydown.enter="debouncedHandleScan"
autofocus
class="custom-input"
- :disabled="!orderForm.outboundOrderId || !orderForm.purchaseOrderId"
+ :disabled="!orderForm.outboundOrderNo || loading"
></el-input>
</el-form-item>
<el-form-item>
@@ -81,7 +74,7 @@
size="small"
@click="handleScan"
class="custom-button"
- :disabled="!orderForm.outboundOrderId || !orderForm.purchaseOrderId || loading"
+ :disabled="!orderForm.outboundOrderNo || loading"
>
<Search /> 纭鎵弿
</el-button>
@@ -109,7 +102,7 @@
</div>
</transition-group>
<div class="empty-tip" v-if="scannedBarcodes.length === 0">
- <span>鏆傛棤鎵弿璁板綍锛岃鍏堥�夋嫨鍗曟嵁鍚庢壂鎻忔潯鐮�</span>
+ <span>鏆傛棤鎵弿璁板綍锛岃鍏堣緭鍏ュ嚭搴撳崟鎹悗鎵弿鏉$爜</span>
</div>
</el-scrollbar>
</div>
@@ -123,12 +116,22 @@
type="primary"
size="small"
@click="submit"
- :disabled="scannedBarcodes.length === 0 || !orderForm.outboundOrderId || !orderForm.purchaseOrderId || loading"
+ :disabled="scannedBarcodes.length === 0 || !orderForm.outboundOrderNo || !orderForm.purchaseOrderNo || loading"
class="submit-btn"
>
<Check /> 鎻愪氦鍑哄簱
</el-button>
- <el-button type="text" size="small" @click="showDetailBox = false" class="cancel-btn" :disabled="loading">
+ <el-button
+ type="text"
+ size="small"
+ @click="(e) => {
+ e.stopPropagation();
+ e.preventDefault();
+ showDetailBox = false;
+ }"
+ class="cancel-btn"
+ :disabled="loading"
+ >
鍙栨秷
</el-button>
</div>
@@ -138,8 +141,9 @@
</template>
<script setup>
-import { ref, reactive, onMounted, nextTick } from 'vue';
+import { ref, reactive, onMounted, nextTick, watch } from 'vue';
import { ElMessage } from 'element-plus';
+import { Search, Check } from '@element-plus/icons-vue';
import VolBox from "@/components/basic/VolBox.vue";
import http from '@/api/http';
@@ -147,210 +151,114 @@
// 鍝嶅簲寮忔暟鎹�
const showDetailBox = ref(false);
const orderForm = reactive({
- outboundOrderId: "",
- purchaseOrderId: ""
+ outboundOrderNo: "",
+ purchaseOrderNo: ""
});
const formData = reactive({
barcode: "",
});
const scannedBarcodes = ref([]);
-const outboundOrders = ref([]);
-const purchaseOrders = ref([]);
-const filteredOutboundOrders = ref([]);
-const filteredPurchaseOrders = ref([]);
const loading = ref(false);
+// 鏂板锛氬瓨鍌ㄩ娆℃壂鎻忕殑閲囪喘鍗曞彿锛堢敤浜庝竴鑷存�ф牎楠岋級
+const firstPurchaseOrderNo = ref(null);
// 妯℃澘寮曠敤
const formRef = ref(null);
const barcodeInputRef = ref(null);
-const outboundSelectRef = ref(null); // 鏂板锛氬嚭搴撳崟select鐨剅ef
-const purchaseSelectRef = ref(null); // 鏂板锛氶噰璐崟select鐨剅ef
+const outboundInputRef = ref(null);
+const purchaseInputRef = ref(null);
-// 鐢ㄤ簬闃叉杈撳叆浜嬩欢鍜宑hange浜嬩欢鍐茬獊鐨勯攣
-const isProcessingScan = ref(false);
-
-// 缁勪欢鎸傝浇鏃跺垵濮嬪寲杩囨护鍚庣殑鍒楄〃
+// 缁勪欢鎸傝浇鏃惰仛鐒﹀埌鍑哄簱鍗曡緭鍏ユ
onMounted(() => {
- filteredOutboundOrders.value = [...outboundOrders.value];
- filteredPurchaseOrders.value = [...purchaseOrders.value];
+ nextTick(() => {
+ outboundInputRef.value?.focus();
+ });
});
+
+// 鐩戝惉鎵弿鍒楄〃锛岃嫢涓虹┖鍒欓噸缃娆¢噰璐崟鍙�
+watch(scannedBarcodes, (newVal) => {
+ if (newVal.length === 0) {
+ firstPurchaseOrderNo.value = null;
+ orderForm.purchaseOrderNo = ""; // 鍚屾娓呯┖閲囪喘鍗曡緭鍏ユ
+ }
+}, { deep: true });
+
+// 绠�鍗曢槻鎶栧嚱鏁帮紙鏃犻渶渚濊禆lodash锛�
+const debounce = (fn, delay = 100) => {
+ let timer = null;
+ return (...args) => {
+ if (timer) clearTimeout(timer);
+ timer = setTimeout(() => {
+ fn.apply(this, args);
+ }, delay);
+ };
+};
// 鎵撳紑寮圭獥
const open = () => {
showDetailBox.value = true;
scannedBarcodes.value = [];
formData.barcode = "";
- orderForm.outboundOrderId = "";
- orderForm.purchaseOrderId = "";
+ orderForm.outboundOrderNo = "";
+ orderForm.purchaseOrderNo = "";
+ // 閲嶇疆棣栨閲囪喘鍗曞彿
+ firstPurchaseOrderNo.value = null;
nextTick(() => {
- barcodeInputRef.value?.focus();
+ outboundInputRef.value?.focus();
});
};
-// 鍔犺浇鍑哄簱鍗曟嵁鍒楄〃
-const loadOutboundOrders = async () => {
- if (outboundOrders.value.length > 0) return;
- try {
- loading.value = true;
- const res = await http.get("/api/OutboundPicking/GetAvailablePickingOrders");
-
- if (res.code === 0) {
- outboundOrders.value = res.data.map(orderNo => ({
- id: orderNo,
- orderNo: orderNo
- }));
- filteredOutboundOrders.value = [...outboundOrders.value];
- } else {
- ElMessage.error("鍔犺浇鍑哄簱鍗曟嵁澶辫触锛�" + (res.message || '鏈煡閿欒'));
- }
- } catch (error) {
- ElMessage.error("鍔犺浇鍑哄簱鍗曟嵁寮傚父锛�" + error.message);
- } finally {
- loading.value = false;
+// 鍑哄簱鍗曡緭鍏ュ鐞嗭紙鎵爜鎴栨墜鍔ㄨ緭鍏ワ級
+const handleOutboundInput = (value) => {
+ if (value && value.trim()) {
+ // 鍑哄簱鍗曞彿鏍煎紡楠岃瘉閫昏緫锛堟寜闇�淇濈暀锛�
}
};
-// 鍔犺浇閲囪喘鍗曟嵁鍒楄〃
-const loadPurchaseOrders = async () => {
- if (purchaseOrders.value.length > 0) return;
- try {
- loading.value = true;
- const res = await http.get("/api/OutboundPicking/GetAvailablePurchaseOrders");
-
- if (res.status === true) {
- purchaseOrders.value = res.data.map(orderNo => ({
- id: orderNo,
- orderNo: orderNo
- }));
- filteredPurchaseOrders.value = [...purchaseOrders.value];
- } else {
- ElMessage.error("鍔犺浇閲囪喘鍗曟嵁澶辫触锛�" + (res.message || '鏈煡閿欒'));
- }
- } catch (error) {
- ElMessage.error("鍔犺浇閲囪喘鍗曟嵁寮傚父锛�" + error.message);
- } finally {
- loading.value = false;
+// 閲囪喘鍗曡緭鍏ュ鐞嗭紙鎵爜鎴栨墜鍔ㄨ緭鍏ワ級
+const handlePurchaseInput = (value) => {
+ if (value && value.trim()) {
+ // 閲囪喘鍗曞彿鏍煎紡楠岃瘉閫昏緫锛堟寜闇�淇濈暀锛�
}
};
-// 鍑哄簱鍗曟嵁杩囨护鏂规硶
-const filterOutboundOrders = (value) => {
- if (!value) {
- filteredOutboundOrders.value = [...outboundOrders.value];
- } else {
- const lowerValue = value.toLowerCase();
- filteredOutboundOrders.value = outboundOrders.value.filter(order =>
- order.orderNo.toLowerCase().includes(lowerValue)
- );
- }
-};
-
-// 閲囪喘鍗曟嵁杩囨护鏂规硶
-const filterPurchaseOrders = (value) => {
- if (!value) {
- filteredPurchaseOrders.value = [...purchaseOrders.value];
- } else {
- const lowerValue = value.toLowerCase();
- filteredPurchaseOrders.value = purchaseOrders.value.filter(order =>
- order.orderNo.toLowerCase().includes(lowerValue)
- );
- }
-};
-
-// 鍑哄簱鍗曟嵁涓嬫媺妗嗘樉绀�/闅愯棌鏃惰Е鍙�
-const handleOutboundVisibleChange = (visible) => {
- if (visible) {
- loadOutboundOrders();
- } else {
- // 褰撲笅鎷夋鍏抽棴鏃讹紝濡傛灉鏄壂鎻忔搷浣滃鑷寸殑锛屾竻绌鸿緭鍏ユ
- if (isProcessingScan.value) {
- nextTick(() => {
- outboundSelectRef.value?.clearInput();
- isProcessingScan.value = false;
- });
- }
- }
-};
-
-// 閲囪喘鍗曟嵁涓嬫媺妗嗘樉绀�/闅愯棌鏃惰Е鍙�
-const handlePurchaseVisibleChange = (visible) => {
- if (visible) {
- loadPurchaseOrders();
- } else {
- // 褰撲笅鎷夋鍏抽棴鏃讹紝濡傛灉鏄壂鎻忔搷浣滃鑷寸殑锛屾竻绌鸿緭鍏ユ
- if (isProcessingScan.value) {
- nextTick(() => {
- purchaseSelectRef.value?.clearInput();
- isProcessingScan.value = false;
- });
- }
- }
-};
-
-// 鍗曟嵁閫夋嫨鍙樺寲鏃惰Е鍙�
-const handleOrderChange = () => {
- // 濡傛灉鏄墜鍔ㄩ�夋嫨锛屽垯涓嶆竻绌鸿緭鍏ユ
- isProcessingScan.value = false;
-
- scannedBarcodes.value = [];
- nextTick(() => {
+// 鐩存帴璺宠浆鍒版潯鐮佽緭鍏ユ锛堟棤闇�鍏堝~閲囪喘鍗曪級
+const focusBarcodeInputDirectly = () => {
+ if (orderForm.outboundOrderNo.trim()) {
barcodeInputRef.value?.focus();
- });
-};
-
-/**
- * 澶勭悊鍑哄簱鍗曟壂鎻忚緭鍏�
- * @param {string} scanText - 鎵弿鏋緭鍏ョ殑鏂囨湰
- */
-const handleOutboundScanInput = async (scanText) => {
- // 閬垮厤澶勭悊绌哄瓧绗︿覆鎴栫敱change浜嬩欢瑙﹀彂鐨勫唴閮ㄦ搷浣�
- if (!scanText || isProcessingScan.value) return;
-
- // 鏌ユ壘瀹屽叏鍖归厤鐨勮鍗�
- const matchedOrder = outboundOrders.value.find(order => order.orderNo === scanText);
-
- if (matchedOrder) {
- isProcessingScan.value = true; // 鏍囪涓烘鍦ㄥ鐞嗘壂鎻�
- // 鎵嬪姩璧嬪��
- orderForm.outboundOrderId = matchedOrder.id;
- ElMessage.success(`鎴愬姛閫夋嫨鍑哄簱鍗曪細${matchedOrder.orderNo}`);
-
- // 寤惰繜鑱氱劍鍒颁笅涓�涓緭鍏ユ锛岀‘淇濊祴鍊煎畬鎴�
- setTimeout(() => {
- purchaseSelectRef.value?.focus();
- }, 100);
- }
- // 濡傛灉娌℃湁鍖归厤椤癸紝涓嶅仛浠讳綍浜嬶紝璁〆l-select淇濇寔杩囨护鐘舵�侊紝鐢ㄦ埛鍙互鎵嬪姩閫夋嫨
-};
-
-/**
- * 澶勭悊閲囪喘鍗曟壂鎻忚緭鍏�
- * @param {string} scanText - 鎵弿鏋緭鍏ョ殑鏂囨湰
- */
-const handlePurchaseScanInput = async (scanText) => {
- if (!scanText || isProcessingScan.value) return;
-
- const matchedOrder = purchaseOrders.value.find(order => order.orderNo === scanText);
-
- if (matchedOrder) {
- isProcessingScan.value = true; // 鏍囪涓烘鍦ㄥ鐞嗘壂鎻�
- orderForm.purchaseOrderId = matchedOrder.id;
- ElMessage.success(`鎴愬姛閫夋嫨閲囪喘鍗曪細${matchedOrder.orderNo}`);
-
- setTimeout(() => {
- barcodeInputRef.value?.focus();
- }, 100);
+ } else {
+ ElMessage.warning("璇峰厛杈撳叆鏈夋晥鐨勫嚭搴撳崟鎹彿");
}
};
+/**
+ * 鏍规嵁鏉$爜鏌ヨ閲囪喘鍗曟帴鍙o紙瀹屽叏瀵归綈绀轰緥璇锋眰鏍煎紡锛�
+ * @param {string} barcode 鏉$爜
+ * @returns {Promise<string>} 閲囪喘鍗曞彿
+ */
+const getPurchaseOrderByBarcode = async (barcode) => {
+ // 瀹屽叏鎸夌収绀轰緥鏍煎紡锛歶rl鎷兼帴鍙傛暟 + 绗簩涓弬鏁颁紶鎻愮ず鏂囨湰
+ const res = await http.post(`/api/OutboundPicking/GetPurchaseOrderByBarcode?barCode=${encodeURIComponent(barcode)}`, "鏌ヨ閲囪喘鍗曚腑...");
-// 鎵弿鏉$爜澶勭悊
+ if (res.status !== true) {
+ throw new Error(res.message || "鏌ヨ閲囪喘鍗曞け璐�");
+ }
+ if (!res.data?.purchaseOrderNo) {
+ throw new Error("鏈煡璇㈠埌璇ユ潯鐮佸搴旂殑閲囪喘鍗�");
+ }
+ return res.data.purchaseOrderNo;
+};
+
+// 鎵弿鏉$爜鏍稿績閫昏緫
const handleScan = async () => {
if (!formRef.value) return;
+ // 楠岃瘉鏉$爜蹇呭~
await formRef.value.validateField('barcode');
const barcode = formData.barcode.trim();
-
+ const outboundOrderNo = orderForm.outboundOrderNo.trim();
+
+ // 妫�鏌ユ潯鐮佹槸鍚﹀凡鎵弿
if (scannedBarcodes.value.some(item => item.barcode === barcode)) {
ElMessage.warning(`鏉$爜 ${barcode} 宸叉壂鎻忚繃锛岃鍕块噸澶嶆壂鎻廯);
formData.barcode = "";
@@ -360,40 +268,86 @@
try {
loading.value = true;
- const res = await http.post("/api/OutboundPicking/BarcodeValidate", {
- outOder: orderForm.outboundOrderId,
- inOder: orderForm.purchaseOrderId,
+
+ // 姝ラ1锛氫粎浼犳潯鐮佹煡璇㈤噰璐崟锛堜娇鐢ㄧず渚嬫牸寮忕殑璇锋眰锛�
+ const purchaseOrderNo = await getPurchaseOrderByBarcode(barcode);
+
+ // 鏍稿績鏍¢獙锛氶噰璐崟涓�鑷存�ф鏌�
+ if (firstPurchaseOrderNo.value) {
+ // 闈為娆℃壂鎻忥紝鏍¢獙閲囪喘鍗曞彿鏄惁涓�鑷�
+ if (purchaseOrderNo !== firstPurchaseOrderNo.value) {
+ throw new Error(`褰撳墠鏉$爜瀵瑰簲鐨勯噰璐崟銆�${purchaseOrderNo}銆戜笌棣栨鎵弿鐨勯噰璐崟銆�${firstPurchaseOrderNo.value}銆戜笉涓�鑷达紝绂佹鎵弿锛乣);
+ }
+ } else {
+ // 棣栨鎵弿锛岃褰曢噰璐崟鍙�
+ firstPurchaseOrderNo.value = purchaseOrderNo;
+ }
+
+ // 璧嬪�奸噰璐崟鍒拌緭鍏ユ
+ orderForm.purchaseOrderNo = purchaseOrderNo;
+ ElMessage.success(`鎴愬姛鏌ヨ鍒伴噰璐崟锛�${purchaseOrderNo}`);
+
+ // 姝ラ2锛氳皟鐢ㄥ師鏈夋潯鐮侀獙璇佹帴鍙o紙濡傞渶瀵归綈鏍煎紡鍙悓姝ヤ慨鏀癸紝姝ゅ淇濈暀鍘熸湁鏍煎紡锛�
+ const validateRes = await http.post("/api/OutboundPicking/BarcodeValidate", {
+ outOder: outboundOrderNo,
+ inOder: purchaseOrderNo,
barCode: barcode
});
- if (res.status === true) {
+ if (validateRes.status === true) {
scannedBarcodes.value.push({ barcode });
ElMessage.success("鎵弿鎴愬姛");
formData.barcode = "";
} else {
- ElMessage.error("鎵弿澶辫触锛�" + (res.message || '楠岃瘉澶辫触'));
+ ElMessage.error("鎵弿澶辫触锛�" + (validateRes.message || '鏉$爜楠岃瘉澶辫触'));
}
} catch (error) {
- ElMessage.error("鎵弿楠岃瘉寮傚父锛�" + error.message);
+ // 鎹曡幏閲囪喘鍗曚笉涓�鑷寸瓑閿欒骞舵彁绀�
+ ElMessage.error(error.message);
+ // 娓呯┖褰撳墠杈撳叆妗嗭紝鑱氱劍鏉$爜杈撳叆妗�
+ formData.barcode = "";
+ nextTick(() => barcodeInputRef.value?.focus());
} finally {
loading.value = false;
- nextTick(() => barcodeInputRef.value?.focus());
+ // 寮哄埗鑱氱劍鏉$爜杈撳叆妗嗭紝閬垮厤鐒︾偣璺冲埌寮圭獥澶�
+ nextTick(() => {
+ if (barcodeInputRef.value) {
+ barcodeInputRef.value.focus();
+ // 娓呯┖杈撳叆妗嗛�変腑鐘舵�侊紙鎵爜鏋彲鑳芥畫鐣欓�変腑锛�
+ if (barcodeInputRef.value.input) {
+ barcodeInputRef.value.input.select = () => {};
+ }
+ }
+ });
}
};
+
+// 甯﹂槻鎶栧拰浜嬩欢鎷︽埅鐨勬壂鎻忓鐞嗭紙閫傞厤鎵爜鏋級
+const debouncedHandleScan = debounce(async (e) => {
+ // 闃绘浜嬩欢鍐掓场鍜岄粯璁よ涓�
+ e.stopPropagation();
+ e.preventDefault();
+ await handleScan();
+}, 100);
// 绉婚櫎鍗曟潯鎵弿璁板綍
const removeItem = async (index, barcode) => {
try {
loading.value = true;
const res = await http.post("/api/OutboundPicking/DeleteBarcode", {
- outOder: orderForm.outboundOrderId,
- inOder: orderForm.purchaseOrderId,
+ outOder: orderForm.outboundOrderNo,
+ inOder: orderForm.purchaseOrderNo,
barCode: barcode
});
if (res.status === true) {
scannedBarcodes.value.splice(index, 1);
ElMessage.success("鍒犻櫎鎴愬姛");
+ // 鑻ュ垹闄ゅ悗鏃犳潯鐮侊紝鑷姩閲嶇疆棣栨閲囪喘鍗曞彿鍜岄噰璐崟杈撳叆妗�
+ if (scannedBarcodes.value.length === 0) {
+ firstPurchaseOrderNo.value = null;
+ orderForm.purchaseOrderNo = "";
+ }
} else {
ElMessage.error("鍒犻櫎澶辫触锛�" + (res.message || '鍒犻櫎澶辫触'));
}
@@ -416,14 +370,17 @@
try {
loading.value = true;
const res = await http.post("/api/OutboundPicking/NoStockOutSubmit", {
- OutOderSubmit: orderForm.outboundOrderId,
- InOderSubmit: orderForm.purchaseOrderId,
+ OutOderSubmit: orderForm.outboundOrderNo,
+ InOderSubmit: orderForm.purchaseOrderNo,
BarCodeSubmit: barcodes
});
if (res.status === true) {
ElMessage.success("鍑哄簱鎻愪氦鎴愬姛");
showDetailBox.value = false;
+ // 鎻愪氦鎴愬姛鍚庨噸缃姸鎬�
+ firstPurchaseOrderNo.value = null;
+ scannedBarcodes.value = [];
} else {
ElMessage.error("鍑哄簱鎻愪氦澶辫触锛�" + (res.message || '鎻愪氦澶辫触'));
}
--
Gitblit v1.9.3