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