From 7a8389595aa621f7f58b09a0c982ffac03823b86 Mon Sep 17 00:00:00 2001
From: 647556386 <647556386@qq.com>
Date: 星期五, 09 一月 2026 15:51:09 +0800
Subject: [PATCH] 1
---
项目代码/WIDESEA_WMSClient/src/extension/inbound/extend/OrderStockTake.vue | 105 +++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 82 insertions(+), 23 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/inbound/extend/OrderStockTake.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/inbound/extend/OrderStockTake.vue"
index 5f1f0be..6d19fbd 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/inbound/extend/OrderStockTake.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/inbound/extend/OrderStockTake.vue"
@@ -61,6 +61,35 @@
</el-input>
</el-form-item>
+ <!-- 鏂板锛氱珯鍙伴�夋嫨涓嬫媺妗� -->
+ <el-form-item
+ label="鍥炲簱绔欏彴锛�"
+ name="station"
+ :rules="[
+ {
+ required: true,
+ message: '璇烽�夋嫨鍥炲簱绔欏彴',
+ trigger: 'blur',
+ },
+ ]"
+ class="form-item"
+ >
+ <el-select
+ v-model="selectedStation"
+ placeholder="璇烽�夋嫨鍥炲簱绔欏彴"
+ :disabled="!formData.boxNo.trim() || loading"
+ class="custom-input"
+ :class="{ 'has-value': selectedStation }"
+ >
+ <el-option
+ v-for="item in stations"
+ :key="item.key || item.value"
+ :label="item.label"
+ :value="item.value"
+ ></el-option>
+ </el-select>
+ </el-form-item>
+
<!-- 鏉$爜杈撳叆妗� -->
<el-form-item
label="鐩樼偣鏉$爜锛�"
@@ -130,7 +159,7 @@
>
<el-input
v-model.number="formData.actualQuantity"
- placeholder="璇疯緭鍏ュ疄闄呯洏鐐规暟閲忥紙澶т簬0锛�"
+ placeholder="璇疯緭鍏ュ疄闄呯洏鐐规暟閲�"
type="number"
clearable
@keydown.enter="handleStockTakeComplete"
@@ -147,7 +176,7 @@
type="info"
size="small"
@click="handleBoxReturn"
- :disabled="!formData.boxNo.trim() || loading"
+ :disabled="!formData.boxNo.trim() || !selectedStation || loading"
class="return-btn"
>
<Return /> 鏂欑鍥炲簱
@@ -185,10 +214,11 @@
<script setup>
import { ref, reactive, onMounted, nextTick, watch, defineEmits, computed } from "vue";
import { ElMessage, ElTag, ElMessageBox } from "element-plus";
-import { Search, Check, Return } from "@element-plus/icons-vue";
import VolBox from "@/components/basic/VolBox.vue";
import http from "@/api/http";
+// 鏂板锛氬紩鍏ョ珯鍙扮鐞嗗伐鍏凤紙鍜岀ず渚嬩唬鐮佷繚鎸佷竴鑷达級
+import { stationManager, STATION_STORAGE_KEY } from "@/../src/uitils/stationManager";
// 鍝嶅簲寮忓彉閲� - 鍗曟嵁鍙�
const orderNo = ref("");
@@ -206,6 +236,13 @@
});
const loading = ref(false);
const formRef = ref(null);
+
+// 鏂板锛氱珯鍙扮浉鍏冲搷搴斿紡鏁版嵁锛堜豢鐓хず渚嬩唬鐮侊級
+const stations = ref([
+ { label: "绔欏彴2", value: "2-1" },
+ { label: "绔欏彴3", value: "3-1" },
+]);
+const selectedStation = ref(stationManager.getStation() || ""); // 榛樿閫変腑缂撳瓨鐨勭珯鍙�
// 妯℃澘寮曠敤
const boxNoInputRef = ref(null);
@@ -233,6 +270,8 @@
formData.barcode = "";
formData.stockQuantity = "";
formData.actualQuantity = "";
+ // 鏂板锛氭枡绠卞彿娓呯┖鏃讹紝閲嶇疆绔欏彴閫夋嫨
+ selectedStation.value = stationManager.getStation() || "";
}
},
{ immediate: true }
@@ -258,6 +297,8 @@
formData.barcode = "";
formData.stockQuantity = "";
formData.actualQuantity = "";
+ // 鏂板锛氭墦寮�寮圭獥鏃堕噸缃珯鍙伴�夋嫨锛堥粯璁ゅ彇缂撳瓨鐨勭珯鍙帮級
+ selectedStation.value = stationManager.getStation() || "";
nextTick(() => {
boxNoInputRef.value?.focus();
});
@@ -293,15 +334,18 @@
}
};
-// 瀹為檯鐩樼偣鏁伴噺楠岃瘉锛堜紭鍖栵細鏈夊�兼椂楠岃瘉鍚堟硶鎬э級
+// 瀹為檯鐩樼偣鏁伴噺楠岃瘉锛氫粎楠岃瘉鏁板�间笉灏忎簬0
const validateActualQuantity = (rule, value, callback) => {
- if (value === null || value === undefined) {
- callback(new Error("璇疯緭鍏ュ疄闄呯洏鐐规暟閲�"));
- } else if (value <= 0) {
- callback(new Error("瀹為檯鐩樼偣鏁伴噺蹇呴』澶т簬0"));
- } else if (!Number.isInteger(value)) {
- callback(new Error("瀹為檯鐩樼偣鏁伴噺蹇呴』鏄暣鏁�"));
- } else {
+ // 绌哄�肩敱required瑙勫垯澶勭悊锛岃繖閲屽彧楠岃瘉鏁板�煎悎娉曟��
+ if (value === null || value === undefined || value === "") {
+ callback(); // 绌哄�间笉鍦ㄨ繖閲屾彁绀猴紝浜ょ粰required瑙勫垯
+ }
+ // 楠岃瘉鏁板�兼槸鍚﹀皬浜�0
+ else if (value < 0) {
+ callback(new Error("瀹為檯鐩樼偣鏁伴噺涓嶈兘灏忎簬0"));
+ }
+ // 楠岃瘉閫氳繃
+ else {
callback();
}
};
@@ -469,16 +513,21 @@
}
};
-// 鏂欑鍥炲簱鍔熻兘
+// 鏂欑鍥炲簱鍔熻兘锛堟牳蹇冧慨鏀癸細澧炲姞绔欏彴楠岃瘉 + 浼犲叆sourceAddress鍙傛暟锛�
const handleBoxReturn = async () => {
const boxNo = formData.boxNo.trim();
+ // 鏂板锛氶獙璇佺珯鍙版槸鍚﹂�夋嫨
if (!boxNo) {
ElMessage.warning("璇峰厛杈撳叆鎴栨壂鎻忔枡绠卞彿");
return;
}
+ if (!selectedStation.value) {
+ ElMessage.warning("璇烽�夋嫨鍥炲簱绔欏彴");
+ return;
+ }
try {
- await ElMessageBox.confirm(`纭畾灏嗘枡绠便��${boxNo}銆戝洖搴撳悧锛焋, "鍥炲簱纭", {
+ await ElMessageBox.confirm(`纭畾灏嗘枡绠便��${boxNo}銆戝洖搴撹嚦銆�${selectedStation.value}銆戠珯鍙板悧锛焋, "鍥炲簱纭", {
confirmButtonText: "纭畾",
cancelButtonText: "鍙栨秷",
type: "info",
@@ -489,19 +538,21 @@
loading.value = true;
+ // 鏂板锛氭嫾鎺ourceAddress鍙傛暟锛堢珯鍙版暟鎹級鍒版帴鍙h姹備腑
const res = await http.post(
`/api/TakeStockOrder/ReturnBox?boxNo=${encodeURIComponent(boxNo)}&orderNo=${encodeURIComponent(
orderNo.value
- )}`,
+ )}&sourceAddress=${encodeURIComponent(selectedStation.value)}`, // 鏂板sourceAddress鍙傛暟
"鏂欑鍥炲簱涓�..."
);
if (res.status) {
- ElMessage.success(`鏂欑銆�${boxNo}銆戝洖搴撴垚鍔燂紒`);
+ ElMessage.success(`鏂欑銆�${boxNo}銆戝洖搴撹嚦銆�${selectedStation.value}銆戠珯鍙版垚鍔燂紒`);
formData.boxNo = "";
formData.barcode = "";
formData.stockQuantity = "";
formData.actualQuantity = "";
+ selectedStation.value = stationManager.getStation() || ""; // 閲嶇疆绔欏彴閫夋嫨
nextTick(() => {
boxNoInputRef.value?.focus();
});
@@ -589,13 +640,15 @@
}
/* 鏈夊�兼椂闅愯棌鍗犱綅绗� + 浼樺寲杈规 */
-.custom-input.has-value :deep(.el-input__inner) {
+.custom-input.has-value :deep(.el-input__inner),
+.custom-input.has-value :deep(.el-select__wrapper) {
--el-input-placeholder-color: transparent; /* 闅愯棌鍗犱綅绗� */
border-color: #8cc5ff; /* 娴呰摑杈规锛屽尯鍒嗘棤鍊肩姸鎬� */
background-color: #ffffff;
}
-.custom-input :deep(.el-input__inner) {
+.custom-input :deep(.el-input__inner),
+.custom-input :deep(.el-select__wrapper) {
border-radius: 8px;
border-color: #e5f0fa;
transition: all 0.2s ease;
@@ -607,7 +660,8 @@
}
/* 鑱氱劍鏍峰紡浼樺寲 */
-.custom-input :deep(.el-input__inner:focus) {
+.custom-input :deep(.el-input__inner:focus),
+.custom-input :deep(.el-select__wrapper:focus) {
border-color: #409eff;
box-shadow: 0 0 0 3px rgba(64, 158, 255, 0.1);
background-color: #ffffff;
@@ -667,7 +721,8 @@
}
/* 鏈夊�兼椂鍗充娇楠岃瘉澶辫触锛屼篃涓嶆樉绀洪敊璇竟妗� */
-.custom-input.has-value :deep(.el-input__inner.el-input__inner--error) {
+.custom-input.has-value :deep(.el-input__inner.el-input__inner--error),
+.custom-input.has-value :deep(.el-select__wrapper.el-select__wrapper--error) {
border-color: #8cc5ff;
box-shadow: none;
}
@@ -808,22 +863,26 @@
}
/* 鍗犱綅绗︽牱寮� - 缁熶竴棰滆壊 */
-.el-input__inner::-webkit-input-placeholder {
+.el-input__inner::-webkit-input-placeholder,
+.el-select__placeholder {
color: #b3d8ff;
font-size: 13px;
}
-.el-input__inner::-moz-placeholder {
+.el-input__inner::-moz-placeholder,
+.el-select__placeholder {
color: #b3d8ff;
font-size: 13px;
}
-.el-input__inner:-ms-input-placeholder {
+.el-input__inner:-ms-input-placeholder,
+.el-select__placeholder {
color: #b3d8ff;
font-size: 13px;
}
-.el-input__inner::placeholder {
+.el-input__inner::placeholder,
+.el-select__placeholder {
color: #b3d8ff;
font-size: 13px;
}
--
Gitblit v1.9.3