From 83c8b72bcb359a87d06e43442a7b1d1a2f7ce25b Mon Sep 17 00:00:00 2001
From: zhangwencui <1064582902@qq.com>
Date: 星期二, 28 四月 2026 11:14:52 +0800
Subject: [PATCH] change
---
src/views/productionManagement/productionOrder/components/MaterialDetailDialog.vue | 72 ++++++++++++++++++++++++++++-------
1 files changed, 57 insertions(+), 15 deletions(-)
diff --git a/src/views/productionManagement/productionOrder/components/MaterialDetailDialog.vue b/src/views/productionManagement/productionOrder/components/MaterialDetailDialog.vue
index a83ff6a..e9b2646 100644
--- a/src/views/productionManagement/productionOrder/components/MaterialDetailDialog.vue
+++ b/src/views/productionManagement/productionOrder/components/MaterialDetailDialog.vue
@@ -35,16 +35,30 @@
<el-button type="primary"
link
@click="handleViewSupplementRecord(row)">
- {{ row.supplementQty ?? 0 }}
+ {{ row.feedingQty ?? 0 }}
</el-button>
</template>
</el-table-column>
<el-table-column label="閫�鏂欐暟閲�"
- prop="returnQty"
- min-width="110" />
+ min-width="110">
+ <template #default="{ row }">
+ {{ row.returnQty ?? 0 }}
+ </template>
+ </el-table-column>
<el-table-column label="瀹為檯鏁伴噺"
- prop="actualQty"
- min-width="110" />
+ min-width="140">
+ <template #default="{ row }">
+ <el-input-number v-model="row.actualQty"
+ :min="0"
+ :precision="3"
+ :step="1"
+ controls-position="right"
+ placeholder="杈撳叆瀹為檯鏁伴噺"
+ style="width: 100%;"
+ :disabled="row.returned"
+ @change="val => handleActualQtyChange(row, val)" />
+ </template>
+ </el-table-column>
</el-table>
<template #footer>
<span class="dialog-footer">
@@ -66,7 +80,7 @@
border
row-key="id">
<el-table-column label="琛ユ枡鏁伴噺"
- prop="supplementQty"
+ prop="pickQuantity"
min-width="120" />
<el-table-column label="琛ユ枡浜�"
prop="supplementUserName"
@@ -75,7 +89,7 @@
prop="supplementTime"
min-width="160" />
<el-table-column label="琛ユ枡鍘熷洜"
- prop="supplementReason"
+ prop="feedingReason"
min-width="200" />
</el-table>
<template #footer>
@@ -121,7 +135,7 @@
import {
listMaterialPickingDetail,
listMaterialSupplementRecord,
- confirmMaterialReturn,
+ updateMaterialPickingLedger,
} from "@/api/productionManagement/productionOrder.js";
const props = defineProps({
@@ -145,10 +159,12 @@
const returnSummaryList = ref([]);
const calcReturnQty = item =>
Number(item.pickQuantity || 0) +
- Number(item.supplementQty || 0) -
+ Number(item.feedingQty || 0) -
Number(item.actualQty || 0);
const canOpenReturnSummary = computed(() =>
- materialDetailTableData.value.some(item => calcReturnQty(item) > 0)
+ materialDetailTableData.value.some(
+ item => item.returned !== true && calcReturnQty(item) > 0
+ )
);
const loadDetailList = async () => {
@@ -157,7 +173,13 @@
materialDetailTableData.value = [];
try {
const res = await listMaterialPickingDetail(props.orderRow.id);
- materialDetailTableData.value = res.data || [];
+ materialDetailTableData.value = (res.data || []).map(item => ({
+ ...item,
+ actualQty:
+ item.actualQty ??
+ Number(item.pickQuantity || 0) + Number(item.feedingQty || 0),
+ returnQty: item.returnQty ?? 0,
+ }));
} finally {
materialDetailLoading.value = false;
}
@@ -176,6 +198,10 @@
materialDetailTableData.value = [];
};
+ const handleActualQtyChange = (row, val) => {
+ row.returnQty = calcReturnQty(row);
+ };
+
const handleViewSupplementRecord = async row => {
if (!row?.id) return;
supplementRecordDialogVisible.value = true;
@@ -183,7 +209,8 @@
supplementRecordTableData.value = [];
try {
const res = await listMaterialSupplementRecord({
- materialDetailId: row.id,
+ pickId: row.id,
+ productionOrderId: props.orderRow.id,
});
supplementRecordTableData.value = res.data || [];
} finally {
@@ -225,9 +252,24 @@
if (!props.orderRow?.id) return;
materialReturnConfirming.value = true;
try {
- await confirmMaterialReturn({
- orderId: props.orderRow.id,
- returnSummaryList: returnSummaryList.value,
+ await updateMaterialPickingLedger({
+ productionOrderId: props.orderRow.id,
+ productionOrderPickDto: materialDetailTableData.value.map(item => ({
+ id: item.id,
+ technologyOperationId: item.technologyOperationId,
+ operationName: item.operationName,
+ bom: item.bom === true,
+ productModelId: item.productModelId,
+ demandedQuantity: item.demandedQuantity,
+ unit: item.unit,
+ pickQuantity: item.pickQuantity,
+ batchNo: item.batchNo,
+ feedingQty: item.feedingQty,
+ returnQty: item.returnQty,
+ actualQty: item.actualQty,
+ feedingReason: item.feedingReason,
+ returned: true,
+ })),
});
returnSummaryDialogVisible.value = false;
dialogVisible.value = false;
--
Gitblit v1.9.3