From 4e62fd388119141405e33ecc28cad2638617603f Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期六, 25 四月 2026 17:22:14 +0800
Subject: [PATCH] 天津宝东 1.修改生产流程
---
src/views/productionManagement/productionOrder/components/MaterialDetailDialog.vue | 94 +++++++++++++++++++----------------------------
1 files changed, 38 insertions(+), 56 deletions(-)
diff --git a/src/views/productionManagement/productionOrder/components/MaterialDetailDialog.vue b/src/views/productionManagement/productionOrder/components/MaterialDetailDialog.vue
index 9c50fc8..2379076 100644
--- a/src/views/productionManagement/productionOrder/components/MaterialDetailDialog.vue
+++ b/src/views/productionManagement/productionOrder/components/MaterialDetailDialog.vue
@@ -2,47 +2,29 @@
<div>
<el-dialog v-model="dialogVisible" title="棰嗘枡璇︽儏" width="1400px" @close="handleClose">
<el-table v-loading="materialDetailLoading" :data="materialDetailTableData" border row-key="id">
- <el-table-column label="宸ュ簭鍚嶇О" prop="processName" min-width="180" />
<el-table-column label="鍘熸枡鍚嶇О" prop="materialName" min-width="160" />
<el-table-column label="鍘熸枡鍨嬪彿" prop="materialModel" min-width="180" />
- <el-table-column label="闇�姹傛暟閲�" prop="requiredQty" min-width="110" />
+ <el-table-column label="鍘熺焊闇�瑕侀噺" prop="basePaperQty" min-width="120" />
+ <el-table-column label="绾哥闇�瑕侀噺" prop="cartonQty" min-width="120" />
+ <el-table-column label="濉戞枡琚嬫暟閲�" prop="plasticBagQty" min-width="120" />
<el-table-column label="璁¢噺鍗曚綅" prop="unit" width="100" />
- <el-table-column label="棰嗙敤鏁伴噺" prop="pickQty" min-width="110" />
- <el-table-column label="琛ユ枡鏁伴噺" min-width="120">
- <template #default="{ row }">
- <el-button type="primary" link @click="handleViewSupplementRecord(row)">
- {{ row.supplementQty ?? 0 }}
- </el-button>
- </template>
- </el-table-column>
+ <el-table-column label="鍘熺焊棰嗙敤鏁伴噺" prop="basePaperPickQty" min-width="120" />
+ <el-table-column label="绾哥棰嗙敤鏁伴噺" prop="cartonPickQty" min-width="120" />
+ <el-table-column label="濉戞枡琚嬮鐢ㄦ暟閲�" prop="plasticBagPickQty" min-width="120" />
<el-table-column label="閫�鏂欐暟閲�" prop="returnQty" min-width="110" />
<el-table-column label="瀹為檯鏁伴噺" prop="actualQty" min-width="110" />
</el-table>
<template #footer>
<span class="dialog-footer">
- <el-button
- type="warning"
- :loading="materialReturnConfirming"
- :disabled="!canOpenReturnSummary"
- @click="openReturnSummaryDialog"
- >
- 閫�鏂欑‘璁�
- </el-button>
+<!-- <el-button-->
+<!-- type="warning"-->
+<!-- :loading="materialReturnConfirming"-->
+<!-- :disabled="!canOpenReturnSummary"-->
+<!-- @click="openReturnSummaryDialog"-->
+<!-- >-->
+<!-- 閫�鏂欑‘璁�-->
+<!-- </el-button>-->
<el-button @click="dialogVisible = false">鍙栨秷</el-button>
- </span>
- </template>
- </el-dialog>
-
- <el-dialog v-model="supplementRecordDialogVisible" title="琛ユ枡璁板綍" width="800px">
- <el-table v-loading="supplementRecordLoading" :data="supplementRecordTableData" border row-key="id">
- <el-table-column label="琛ユ枡鏁伴噺" prop="supplementQty" min-width="120" />
- <el-table-column label="琛ユ枡浜�" prop="supplementUserName" min-width="120" />
- <el-table-column label="琛ユ枡鏃ユ湡" prop="supplementTime" min-width="160" />
- <el-table-column label="琛ユ枡鍘熷洜" prop="supplementReason" min-width="200" />
- </el-table>
- <template #footer>
- <span class="dialog-footer">
- <el-button @click="supplementRecordDialogVisible = false">鍏抽棴</el-button>
</span>
</template>
</el-dialog>
@@ -68,7 +50,7 @@
<script setup>
import { computed, ref, watch } from "vue";
import { ElMessage } from "element-plus";
-import { listMaterialPickingDetail, listMaterialSupplementRecord, confirmMaterialReturn } from "@/api/productionManagement/productionOrder.js";
+import { listMaterialPickingDetail, confirmMaterialReturn } from "@/api/productionManagement/productionOrder.js";
const props = defineProps({
modelValue: { type: Boolean, default: false },
@@ -84,24 +66,37 @@
const materialDetailLoading = ref(false);
const materialDetailTableData = ref([]);
const materialReturnConfirming = ref(false);
-const supplementRecordDialogVisible = ref(false);
-const supplementRecordLoading = ref(false);
-const supplementRecordTableData = ref([]);
const returnSummaryDialogVisible = ref(false);
const returnSummaryList = ref([]);
+const getPickQty = item => {
+ const directPick = Number(item.pickQty ?? NaN);
+ if (Number.isFinite(directPick)) return directPick;
+ return (
+ Number(item.basePaperPickQty || 0) +
+ Number(item.cartonPickQty || 0) +
+ Number(item.plasticBagPickQty || 0)
+ );
+};
const calcReturnQty = item =>
- Number(item.pickQty || 0) + Number(item.supplementQty || 0) - Number(item.actualQty || 0);
-const canOpenReturnSummary = computed(() =>
- materialDetailTableData.value.some(item => calcReturnQty(item) > 0)
-);
+ getPickQty(item) - Number(item.actualQty || 0);
+const normalizeList = (res) => {
+ if (Array.isArray(res?.data)) return res.data;
+ if (Array.isArray(res?.data?.records)) return res.data.records;
+ if (Array.isArray(res?.records)) return res.records;
+ return [];
+};
+const canOpenReturnSummary = computed(() => {
+ const list = Array.isArray(materialDetailTableData.value) ? materialDetailTableData.value : [];
+ return list.some(item => calcReturnQty(item) > 0);
+});
const loadDetailList = async () => {
if (!props.orderRow?.id) return;
materialDetailLoading.value = true;
materialDetailTableData.value = [];
try {
- const res = await listMaterialPickingDetail({ orderId: props.orderRow.id });
- materialDetailTableData.value = res.data || [];
+ const res = await listMaterialPickingDetail({ productOrderId: props.orderRow.id });
+ materialDetailTableData.value = normalizeList(res);
} finally {
materialDetailLoading.value = false;
}
@@ -118,19 +113,6 @@
const handleClose = () => {
materialDetailTableData.value = [];
-};
-
-const handleViewSupplementRecord = async row => {
- if (!row?.id) return;
- supplementRecordDialogVisible.value = true;
- supplementRecordLoading.value = true;
- supplementRecordTableData.value = [];
- try {
- const res = await listMaterialSupplementRecord({ materialDetailId: row.id });
- supplementRecordTableData.value = res.data || [];
- } finally {
- supplementRecordLoading.value = false;
- }
};
const buildReturnSummary = () => {
@@ -154,7 +136,7 @@
const openReturnSummaryDialog = async () => {
if (!canOpenReturnSummary.value) {
- ElMessage.warning("閫�鏂欐暟閲�=棰嗙敤鏁伴噺+琛ユ枡鏁伴噺-瀹為檯鏁伴噺锛屼笖闇�澶т簬0");
+ ElMessage.warning("閫�鏂欐暟閲�=棰嗙敤鏁伴噺-瀹為檯鏁伴噺锛屼笖闇�澶т簬0");
return;
}
returnSummaryList.value = buildReturnSummary();
--
Gitblit v1.9.3