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