From d741e7a7ad7de5045e5c6b6145d9da1783cadecd Mon Sep 17 00:00:00 2001
From: heshaofeng <heshaofeng@hnkhzn.com>
Date: 星期二, 13 一月 2026 09:55:03 +0800
Subject: [PATCH] Merge branch 'htq20251215' of http://115.159.85.185:8098/r/ZhongRui/ALDbanyunxiangmu into htq20251215
---
项目代码/WIDESEA_WMSClient/src/extension/inbound/extend/TakeStockSelect.vue | 253 +++++++++++--------------------------------------
1 files changed, 59 insertions(+), 194 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/inbound/extend/TakeStockSelect.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/inbound/extend/TakeStockSelect.vue"
index f80b6ae..bc75900 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/inbound/extend/TakeStockSelect.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/inbound/extend/TakeStockSelect.vue"
@@ -1,81 +1,30 @@
<template>
<el-dialog
v-model="dialogVisible"
- title="鏉傛敹鏉傚彂骞宠处"
- width="1000px"
+ title="鏉傚彂骞宠处"
+ width="600px"
:close-on-click-modal="false"
:destroy-on-close="true"
@closed="handleDialogClosed"
>
<div class="reconciliation-container">
- <!-- 鍗曟嵁鍩烘湰淇℃伅 -->
- <div class="order-info">
- <div class="info-row">
- <span class="label">鍗曟嵁ID锛�</span>
- <span class="value">{{ currentRow.id || "-" }}</span>
- </div>
- <div class="info-row" v-if="selectedItem">
- <span class="label">宸查�夎鍗曪細</span>
- <span class="value selected-order">{{ selectedItem.id }}</span>
- </div>
+ <!-- 绉婚櫎鍗曟嵁ID灞曠ず锛屼粎淇濈暀鏉$爜杈撳叆妗� -->
+ <!-- 鏉$爜杈撳叆妗� -->
+ <div class="barcode-input-container">
+ <el-input
+ v-model="barcode"
+ placeholder="璇疯緭鍏�/鎵弿鏉$爜鍚庡钩璐�"
+ clearable
+ @keyup.enter="handleEnterConfirm"
+ class="barcode-input"
+ :disabled="loading"
+ />
</div>
- <!-- 鏁版嵁鍒楄〃灞曠ず -->
- <el-scrollbar height="400px" class="custom-scrollbar">
- <transition-group name="data-item-transition">
- <div
- class="data-item"
- v-for="(item, index) in displayData"
- :key="`${item.orderId}-${index}`"
- >
- <div class="radio-container">
- <el-radio
- v-model="selectedItem"
- :label="item"
- :value="item"
- @change="handleRadioChange(item)"
- ></el-radio>
- </div>
- <div class="data-detail">
- <div class="detail-row">
- <span class="label">璁㈠崟ID锛�</span>
- <span class="value">{{ item.id || "-" }}</span>
- </div>
- <div class="detail-row">
- <span class="label">鐗╂枡缂栫爜锛�</span>
- <span class="value">{{ item.materielCode || "-" }}</span>
- </div>
- <div class="detail-row">
- <span class="label">鐗╂枡鍚嶇О锛�</span>
- <span class="value">{{ item.materielName || "-" }}</span>
- </div>
- <div class="detail-row">
- <span class="label">鎵规鍙凤細</span>
- <span class="value">{{ item.batchNo || "-" }}</span>
- </div>
- <div class="detail-row">
- <span class="label">璁㈠崟鏁伴噺锛�</span>
- <span class="value">{{ item.orderQuantity || 0 }}</span>
- </div>
- <div class="detail-row">
- <span class="label">鍗曚綅锛�</span>
- <span class="value">{{ item.unit || "-" }}</span>
- </div>
- <div class="detail-row">
- <span class="label">渚涘簲鍟嗙紪鐮侊細</span>
- <span class="value">{{ item.supplyCode || "-" }}</span>
- </div>
- <div class="detail-row">
- <span class="label">浠撳簱缂栫爜锛�</span>
- <span class="value">{{ item.warehouseCode || "-" }}</span>
- </div>
- </div>
- </div>
- </transition-group>
- <div class="empty-tip" v-if="displayData.length === 0">
- <span>鏆傛棤鐩稿叧鏁版嵁</span>
- </div>
- </el-scrollbar>
+ <!-- 绌烘彁绀猴紙浠呮潯鐮佷负绌烘椂鏄剧ず锛� -->
+ <div class="empty-tip" v-if="!barcode && !loading">
+ <span>璇疯緭鍏ユ潯鐮佸悗杩涜骞宠处鎿嶄綔</span>
+ </div>
</div>
<template #footer>
@@ -83,7 +32,7 @@
<el-button
type="primary"
@click="handleConfirm"
- :disabled="!selectedItem"
+ :disabled="!barcode || loading"
:loading="loading"
>
{{ loading ? "骞宠处涓�..." : "纭骞宠处" }}
@@ -91,7 +40,7 @@
</template>
</el-dialog>
- <!-- 鎵撳嵃缁勪欢锛堝繀椤诲湪妯℃澘涓0鏄庯紝鎵嶈兘閫氳繃ref鑾峰彇锛� -->
+ <!-- 鎵撳嵃缁勪欢锛堜繚鐣欏師鏈夐�昏緫锛� -->
<printView ref="printViewRef" @parentcall="parentcall"></printView>
</template>
@@ -103,52 +52,50 @@
// 寮圭獥鏄剧ず鐘舵��
const dialogVisible = ref(false);
-// 褰撳墠閫変腑鐨勮鏁版嵁
-const currentRow = ref({});
-// 瑕佸睍绀虹殑鏁版嵁鍒楄〃
-const displayData = ref([]);
-// 閫変腑鐨勬暟鎹」
-const selectedItem = ref(null);
+// 鏉$爜杈撳叆妗嗗��
+const barcode = ref("");
// 鍔犺浇鐘舵��
const loading = ref(false);
-// 澹版槑鎵撳嵃缁勪欢鐨剅ef寮曠敤锛堝叧閿細鏇夸唬this.$refs.printView锛�
+// 鎵撳嵃缁勪欢ref寮曠敤
const printViewRef = ref(null);
-// 鎵撳紑寮圭獥鏂规硶锛堜緵鐖剁粍浠惰皟鐢級
-const open = (row, data) => {
- currentRow.value = row;
- displayData.value = data;
- selectedItem.value = null; // 閲嶇疆閫夋嫨
+// 鎵撳紑寮圭獥鏂规硶锛堟棤鍙傛暟锛屼緵鐖剁粍浠剁洿鎺ヨ皟鐢級
+const open = () => {
+ barcode.value = ""; // 姣忔鎵撳紑寮圭獥閲嶇疆鏉$爜
dialogVisible.value = true;
-};
-
-// 澶勭悊鍗曢�夋寜閽彉鍖�
-const handleRadioChange = (item) => {
- selectedItem.value = item;
};
// 寮圭獥鍏抽棴鏃剁殑澶勭悊
const handleDialogClosed = () => {
- selectedItem.value = null;
+ barcode.value = "";
loading.value = false;
};
-// 鐖剁粍浠惰皟鐢ㄧ殑鍥炶皟锛堝鏋減rintView闇�瑕侊級
+// 鐖剁粍浠惰皟鐢ㄧ殑鍥炶皟锛堜繚鐣欏師鏈夐�昏緫锛�
const parentcall = (params) => {
console.log("printView鍥炶皟鍙傛暟锛�", params);
};
-// 纭骞宠处鎿嶄綔
+// 鍥炶溅瑙﹀彂骞宠处锛堟壂鐮佹灙鑷姩鍥炶溅鏃惰皟鐢級
+const handleEnterConfirm = async () => {
+ if (!barcode.value) {
+ ElMessage.warning("璇疯緭鍏ユ潯鐮佸悗鍐嶆搷浣�");
+ return;
+ }
+ await handleConfirm();
+};
+
+// 纭骞宠处鎿嶄綔锛堟牳蹇冮�昏緫锛�
const handleConfirm = async () => {
- if (!selectedItem.value) {
- ElMessage.warning("璇烽�夋嫨涓�鏉℃暟鎹繘琛屽钩璐﹀鐞�");
+ if (!barcode.value) {
+ ElMessage.warning("璇疯緭鍏ユ潯鐮佽繘琛屽钩璐﹀鐞�");
return;
}
try {
// 纭鎻愮ず
await ElMessageBox.confirm(
- `纭畾瑕佸璁㈠崟 ${selectedItem.value.id} 杩涜骞宠处澶勭悊鍚楋紵`,
+ `纭畾瑕佸鏉$爜 ${barcode.value} 杩涜骞宠处澶勭悊鍚楋紵`,
"骞宠处纭",
{
confirmButtonText: "纭畾",
@@ -159,10 +106,9 @@
loading.value = true;
- // 璋冪敤骞宠处鎺ュ彛
+ // 璋冪敤骞宠处鎺ュ彛锛堜粎浼犻�抌arcode鍙傛暟锛�
const params = {
- id: currentRow.value.id, // 琛孖D
- orderId: selectedItem.value.id, // 閫夋嫨鐨勫崟鎹畂rderId
+ barcode: barcode.value,
};
const response = await axios.get(
@@ -172,21 +118,20 @@
}
);
- console.log("鎺ュ彛瀹屾暣杩斿洖鍊硷細", response); // 璋冭瘯鐢細鎵撳嵃瀹屾暣杩斿洖
-
- // 绗竴姝ワ細鏍¢獙鏈�澶栧眰鐘舵��
+ console.log("鎺ュ彛瀹屾暣杩斿洖鍊硷細", response); // 璋冭瘯鐢�
+
+ // 鏍¢獙鎺ュ彛杩斿洖鐘舵��
if (response.data?.status) {
ElMessage.success("骞宠处鎿嶄綔鎴愬姛");
- // 绗簩姝ワ細瑙f瀽姝g‘鐨剆cannedDetail灞傜骇锛堜笁灞俤ata锛�
- const thirdLayerData = response.data.data?.data; // 鍏抽敭淇锛氬彇绗笁灞俤ata
+ // 瑙f瀽杩斿洖鏁版嵁锛堜繚鐣欏師鏈夋墦鍗伴�昏緫锛�
+ const thirdLayerData = response.data.data?.data;
const scannedDetail = thirdLayerData?.scannedDetail;
- console.log("瑙f瀽鍚庣殑scannedDetail锛�", scannedDetail); // 璋冭瘯鐢細鎵撳嵃鐩爣鏁版嵁
+ console.log("瑙f瀽鍚庣殑scannedDetail锛�", scannedDetail);
- // 绗笁姝ワ細鍒ゆ柇鎵撳嵃鏉′欢
+ // 鍒ゆ柇鎵撳嵃鏉′欢骞惰Е鍙戞墦鍗�
if (scannedDetail?.isUnpacked && scannedDetail?.materialCodes?.length > 0) {
- // 纭繚鎵撳嵃缁勪欢瀹炰緥瀛樺湪
if (printViewRef.value) {
console.log("瑙﹀彂鎵撳嵃鏂规硶锛屽弬鏁帮細", scannedDetail.materialCodes);
printViewRef.value.open(scannedDetail.materialCodes);
@@ -197,21 +142,20 @@
ElMessage.info("鏃犻渶鎵撳嵃锛氭湭婊¤冻鎷嗗寘鏉′欢鎴栨棤鐗╂枡缂栫爜鏁版嵁");
}
- dialogVisible.value = false;
+ dialogVisible.value = false; // 骞宠处鎴愬姛鍚庡叧闂脊绐�
} else {
ElMessage.error(response.data?.message || "骞宠处鎿嶄綔澶辫触");
}
} catch (error) {
- // 瀹屽杽閿欒澶勭悊锛氬尯鍒嗙敤鎴峰彇娑堝拰鐪熷疄閿欒
+ // 鍖哄垎鐢ㄦ埛鍙栨秷鍜岀湡瀹為敊璇�
if (error === "cancel" || error === "close") {
ElMessage.info("宸插彇娑堝钩璐︽搷浣�");
return;
}
- // 鎵撳嵃閿欒鏃ュ織锛屾柟渚挎帓鏌�
console.error("骞宠处鎺ュ彛璋冪敤澶辫触锛�", error);
ElMessage.error(`骞宠处鎿嶄綔澶辫触锛�${error.message || "缃戠粶寮傚父"}`);
} finally {
- loading.value = false;
+ loading.value = false; // 鏃犺鎴愬姛澶辫触锛岀粨鏉熷姞杞界姸鎬�
}
};
@@ -222,103 +166,24 @@
</script>
<style scoped>
-/* 鏍峰紡閮ㄥ垎涓嶅彉锛岀渷鐣ラ噸澶嶄唬鐮� */
.reconciliation-container {
padding: 10px 0;
}
-.order-info {
- margin-bottom: 20px;
- padding: 10px;
- background: #f5f7fa;
- border-radius: 4px;
- display: flex;
- flex-wrap: wrap;
- gap: 20px;
+/* 鏉$爜杈撳叆妗嗘牱寮� */
+.barcode-input-container {
+ margin: 20px 0;
}
-.info-row {
- display: flex;
- align-items: center;
-}
-
-.label {
- font-weight: 600;
- color: #606266;
- margin-right: 5px;
- min-width: 80px;
- text-align: right;
-}
-
-.value {
- color: #303133;
-}
-
-.selected-order {
- color: #409eff;
- font-weight: 600;
-}
-
-.custom-scrollbar {
- border: 1px solid #e4e7ed;
- border-radius: 4px;
-}
-
-.data-item {
- display: flex;
- align-items: flex-start;
- padding: 15px;
- margin: 10px;
- background: #fff;
- border: 1px solid #e4e7ed;
- border-radius: 4px;
- transition: all 0.3s;
-}
-
-.data-item:hover {
- box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
-}
-
-.data-item.selected {
- border-color: #409eff;
- background-color: #f0f7ff;
-}
-
-.radio-container {
- margin-right: 12px;
- margin-top: 4px;
-}
-
-.data-detail {
- display: grid;
- grid-template-columns: repeat(2, 1fr);
- gap: 10px;
- flex: 1;
-}
-
-.detail-row {
- display: flex;
- align-items: center;
+.barcode-input {
+ width: 100%;
+ font-size: 16px;
+ height: 48px;
}
.empty-tip {
text-align: center;
padding: 50px 0;
color: #909399;
-}
-
-.data-item-transition-enter-from,
-.data-item-transition-leave-to {
- opacity: 0;
- transform: translateY(10px);
-}
-
-.data-item-transition-enter-active,
-.data-item-transition-leave-active {
- transition: all 0.3s ease;
-}
-
-:deep(.el-radio__label) {
- display: none;
}
</style>
\ No newline at end of file
--
Gitblit v1.9.3