From 7354151f37391cc27462bc9d787c79f624f6e50e Mon Sep 17 00:00:00 2001
From: 647556386 <647556386@qq.com>
Date: 星期五, 09 一月 2026 11:41:09 +0800
Subject: [PATCH] 盘点,单位转换优化

---
 项目代码/WIDESEA_WMSClient/src/extension/inbound/extend/TakeStockSelect.vue |  132 ++++++++++++++++++++++++++++----------------
 1 files changed, 84 insertions(+), 48 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 3607f6e..f80b6ae 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"
@@ -12,44 +12,46 @@
       <div class="order-info">
         <div class="info-row">
           <span class="label">鍗曟嵁ID锛�</span>
-          <span class="value">{{ currentRow.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.orderId }}</span>
+          <span class="value selected-order">{{ selectedItem.id }}</span>
         </div>
       </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="data-item"
+            v-for="(item, index) in displayData"
+            :key="`${item.orderId}-${index}`"
+          >
             <div class="radio-container">
-              <el-radio 
-                v-model="selectedItem" 
+              <el-radio
+                v-model="selectedItem"
                 :label="item"
                 :value="item"
                 @change="handleRadioChange(item)"
-              >
-                <!-- 鍗曢�夋寜閽殑鍐呭鐣欑┖锛屽彧鏄剧ず鍗曢�夋寜閽� -->
-              </el-radio>
+              ></el-radio>
             </div>
             <div class="data-detail">
               <div class="detail-row">
                 <span class="label">璁㈠崟ID锛�</span>
-                <span class="value">{{ item.orderId || '-' }}</span>
+                <span class="value">{{ item.id || "-" }}</span>
               </div>
               <div class="detail-row">
                 <span class="label">鐗╂枡缂栫爜锛�</span>
-                <span class="value">{{ item.materielCode || '-' }}</span>
+                <span class="value">{{ item.materielCode || "-" }}</span>
               </div>
               <div class="detail-row">
                 <span class="label">鐗╂枡鍚嶇О锛�</span>
-                <span class="value">{{ item.materielName || '-' }}</span>
+                <span class="value">{{ item.materielName || "-" }}</span>
               </div>
               <div class="detail-row">
                 <span class="label">鎵规鍙凤細</span>
-                <span class="value">{{ item.batchNo || '-' }}</span>
+                <span class="value">{{ item.batchNo || "-" }}</span>
               </div>
               <div class="detail-row">
                 <span class="label">璁㈠崟鏁伴噺锛�</span>
@@ -57,15 +59,15 @@
               </div>
               <div class="detail-row">
                 <span class="label">鍗曚綅锛�</span>
-                <span class="value">{{ item.unit || '-' }}</span>
+                <span class="value">{{ item.unit || "-" }}</span>
               </div>
               <div class="detail-row">
                 <span class="label">渚涘簲鍟嗙紪鐮侊細</span>
-                <span class="value">{{ item.supplyCode || '-' }}</span>
+                <span class="value">{{ item.supplyCode || "-" }}</span>
               </div>
               <div class="detail-row">
                 <span class="label">浠撳簱缂栫爜锛�</span>
-                <span class="value">{{ item.warehouseCode || '-' }}</span>
+                <span class="value">{{ item.warehouseCode || "-" }}</span>
               </div>
             </div>
           </div>
@@ -78,23 +80,26 @@
 
     <template #footer>
       <el-button @click="dialogVisible = false">鍏抽棴</el-button>
-      <el-button 
-        type="primary" 
+      <el-button
+        type="primary"
         @click="handleConfirm"
         :disabled="!selectedItem"
         :loading="loading"
       >
-        {{ loading ? '骞宠处涓�...' : '纭骞宠处' }}
+        {{ loading ? "骞宠处涓�..." : "纭骞宠处" }}
       </el-button>
     </template>
   </el-dialog>
+  
+  <!-- 鎵撳嵃缁勪欢锛堝繀椤诲湪妯℃澘涓0鏄庯紝鎵嶈兘閫氳繃ref鑾峰彇锛� -->
+  <printView ref="printViewRef" @parentcall="parentcall"></printView>
 </template>
 
 <script setup>
-import { ref } from 'vue';
-import { ElMessage, ElMessageBox } from 'element-plus';
-// 鏍规嵁鎮ㄧ殑瀹為檯椤圭洰寮曞叆璇锋眰鏂规硶锛岃繖閲屼娇鐢╝xios浣滀负绀轰緥
-import axios from 'axios';
+import { ref } from "vue";
+import printView from "@/extension/outbound/extend/printView.vue";
+import { ElMessage, ElMessageBox } from "element-plus";
+import axios from "axios";
 
 // 寮圭獥鏄剧ず鐘舵��
 const dialogVisible = ref(false);
@@ -106,6 +111,8 @@
 const selectedItem = ref(null);
 // 鍔犺浇鐘舵��
 const loading = ref(false);
+// 澹版槑鎵撳嵃缁勪欢鐨剅ef寮曠敤锛堝叧閿細鏇夸唬this.$refs.printView锛�
+const printViewRef = ref(null);
 
 // 鎵撳紑寮圭獥鏂规硶锛堜緵鐖剁粍浠惰皟鐢級
 const open = (row, data) => {
@@ -126,55 +133,83 @@
   loading.value = false;
 };
 
+// 鐖剁粍浠惰皟鐢ㄧ殑鍥炶皟锛堝鏋減rintView闇�瑕侊級
+const parentcall = (params) => {
+  console.log("printView鍥炶皟鍙傛暟锛�", params);
+};
+
 // 纭骞宠处鎿嶄綔
 const handleConfirm = async () => {
   if (!selectedItem.value) {
-    ElMessage.warning('璇烽�夋嫨涓�鏉℃暟鎹繘琛屽钩璐﹀鐞�');
+    ElMessage.warning("璇烽�夋嫨涓�鏉℃暟鎹繘琛屽钩璐﹀鐞�");
     return;
   }
 
   try {
     // 纭鎻愮ず
     await ElMessageBox.confirm(
-      `纭畾瑕佸璁㈠崟 ${selectedItem.value.orderId} 杩涜骞宠处澶勭悊鍚楋紵`,
-      '骞宠处纭',
+      `纭畾瑕佸璁㈠崟 ${selectedItem.value.id} 杩涜骞宠处澶勭悊鍚楋紵`,
+      "骞宠处纭",
       {
-        confirmButtonText: '纭畾',
-        cancelButtonText: '鍙栨秷',
-        type: 'warning',
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        type: "warning",
       }
     );
 
     loading.value = true;
-    
+
     // 璋冪敤骞宠处鎺ュ彛
     const params = {
       id: currentRow.value.id, // 琛孖D
-      orderId: selectedItem.value.orderId // 閫夋嫨鐨勫崟鎹畂rderId
+      orderId: selectedItem.value.id, // 閫夋嫨鐨勫崟鎹畂rderId
     };
 
-    // 鏍规嵁鎮ㄧ殑鎺ュ彛瀹為檯鎯呭喌璋冩暣璇锋眰鏂瑰紡
-    const response = await axios.get('/api/TakeStockOrder/DocumentReconciliation', {
-      params: params // GET璇锋眰浼犲弬
-      // 濡傛灉鏄疨OST璇锋眰锛屽彲浠ヨ繖鏍峰啓锛�
-      // data: params
-    });
+    const response = await axios.get(
+      "/api/TakeStockOrder/DocumentReconciliation",
+      {
+        params: params,
+      }
+    );
 
-    if (response.status) {
-      ElMessage.success('骞宠处鎿嶄綔鎴愬姛');
-      dialogVisible.value = false;
+    console.log("鎺ュ彛瀹屾暣杩斿洖鍊硷細", response); // 璋冭瘯鐢細鎵撳嵃瀹屾暣杩斿洖
+    
+    // 绗竴姝ワ細鏍¢獙鏈�澶栧眰鐘舵��
+    if (response.data?.status) {
+      ElMessage.success("骞宠处鎿嶄綔鎴愬姛");
       
-      // 鍙互閫氳繃emit閫氱煡鐖剁粍浠跺埛鏂拌〃鏍�
-      // emit('refresh-table');
+      // 绗簩姝ワ細瑙f瀽姝g‘鐨剆cannedDetail灞傜骇锛堜笁灞俤ata锛�
+      const thirdLayerData = response.data.data?.data; // 鍏抽敭淇锛氬彇绗笁灞俤ata
+      const scannedDetail = thirdLayerData?.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);
+        } else {
+          ElMessage.warning("鎵撳嵃缁勪欢鏈姞杞藉畬鎴愶紝璇锋鏌ョ粍浠跺紩鐢�");
+        }
+      } else {
+        ElMessage.info("鏃犻渶鎵撳嵃锛氭湭婊¤冻鎷嗗寘鏉′欢鎴栨棤鐗╂枡缂栫爜鏁版嵁");
+      }
+      
+      dialogVisible.value = false;
     } else {
+      ElMessage.error(response.data?.message || "骞宠处鎿嶄綔澶辫触");
     }
   } catch (error) {
-    // 濡傛灉鏄敤鎴峰彇娑堟搷浣滐紝涓嶆樉绀洪敊璇俊鎭�
-    if (error === 'cancel' || error === 'close') {
+    // 瀹屽杽閿欒澶勭悊锛氬尯鍒嗙敤鎴峰彇娑堝拰鐪熷疄閿欒
+    if (error === "cancel" || error === "close") {
+      ElMessage.info("宸插彇娑堝钩璐︽搷浣�");
       return;
     }
-    
-    ElMessage.error('骞宠处鎿嶄綔澶辫触锛岃绋嶅悗閲嶈瘯');
+    // 鎵撳嵃閿欒鏃ュ織锛屾柟渚挎帓鏌�
+    console.error("骞宠处鎺ュ彛璋冪敤澶辫触锛�", error);
+    ElMessage.error(`骞宠处鎿嶄綔澶辫触锛�${error.message || "缃戠粶寮傚父"}`);
   } finally {
     loading.value = false;
   }
@@ -182,11 +217,12 @@
 
 // 鏆撮湶鏂规硶缁欑埗缁勪欢
 defineExpose({
-  open
+  open,
 });
 </script>
 
 <style scoped>
+/* 鏍峰紡閮ㄥ垎涓嶅彉锛岀渷鐣ラ噸澶嶄唬鐮� */
 .reconciliation-container {
   padding: 10px 0;
 }
@@ -219,7 +255,7 @@
 }
 
 .selected-order {
-  color: #409EFF;
+  color: #409eff;
   font-weight: 600;
 }
 
@@ -244,7 +280,7 @@
 }
 
 .data-item.selected {
-  border-color: #409EFF;
+  border-color: #409eff;
   background-color: #f0f7ff;
 }
 

--
Gitblit v1.9.3