From bb99f0e984da3ce086a2b3ffce2f17ea3097652b Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期五, 21 八月 2026 16:07:32 +0800
Subject: [PATCH] fix: 需求总量计算错误
---
src/views/productionManagement/processRoute/processRouteItem/index.vue | 76 ++++++++++----------------------------
1 files changed, 20 insertions(+), 56 deletions(-)
diff --git a/src/views/productionManagement/processRoute/processRouteItem/index.vue b/src/views/productionManagement/processRoute/processRouteItem/index.vue
index 41e2109..befab45 100644
--- a/src/views/productionManagement/processRoute/processRouteItem/index.vue
+++ b/src/views/productionManagement/processRoute/processRouteItem/index.vue
@@ -343,7 +343,7 @@
:step="1"
controls-position="right"
style="width: 100%"
- @change="handleUnitQuantityChange"
+ @change="handleUnitQuantityChange(row)"
:disabled="!bomDataValue.isEdit || bomDataValue.dataList.some(item => (item).tempId === row.tempId)" />
</el-form-item>
</template>
@@ -1196,52 +1196,6 @@
});
};
- const toQuantityNumber = value => {
- const numberValue = Number(value);
- if (!Number.isFinite(numberValue)) {
- return 0;
- }
- return Number(numberValue.toFixed(4));
- };
-
- const syncDemandedQuantityTree = (items, parentDemandedQuantity = null) => {
- items.forEach(item => {
- if (parentDemandedQuantity !== null) {
- item.demandedQuantity = toQuantityNumber(
- parentDemandedQuantity * toQuantityNumber(item.unitQuantity)
- );
- }
-
- if (Array.isArray(item.children) && item.children.length > 0) {
- syncDemandedQuantityTree(
- item.children,
- toQuantityNumber(item.demandedQuantity)
- );
- }
- });
- };
-
- const recalculateDemandedQuantities = () => {
- if (pageType.value !== "order") {
- return;
- }
-
- const rootDemandedQuantity = routeInfo.value.quantity;
- if (
- rootDemandedQuantity === undefined ||
- rootDemandedQuantity === null ||
- rootDemandedQuantity === ""
- ) {
- syncDemandedQuantityTree(bomDataValue.value.dataList);
- return;
- }
-
- syncDemandedQuantityTree(
- bomDataValue.value.dataList,
- toQuantityNumber(rootDemandedQuantity)
- );
- };
-
const processChange = value => {
processOptions.value.forEach(item => {
if (item.id == value) {
@@ -1266,6 +1220,24 @@
}
}
return null;
+ };
+
+ const toQuantityNumber = value => {
+ const numberValue = Number(value);
+ if (!Number.isFinite(numberValue)) {
+ return 0;
+ }
+ return Number(numberValue.toFixed(4));
+ };
+
+ const handleUnitQuantityChange = row => {
+ if (pageType.value !== "order") {
+ return;
+ }
+
+ row.demandedQuantity = toQuantityNumber(
+ toQuantityNumber(row.unitQuantity) * toQuantityNumber(routeInfo.value.quantity)
+ );
};
const handleBomProcessChange = (row, value) => {
@@ -1301,7 +1273,6 @@
);
bomDataValue.value.dataList = data || [];
normalizeTreeData(bomDataValue.value.dataList);
- recalculateDemandedQuantities();
} catch (err) {
console.error("鑾峰彇BOM鏁版嵁澶辫触锛�", err);
}
@@ -1397,10 +1368,6 @@
});
};
- const handleUnitQuantityChange = () => {
- recalculateDemandedQuantities();
- };
-
const addchildItem = (item, tempId) => {
if (item.tempId === tempId) {
if (!item.children) {
@@ -1424,7 +1391,6 @@
unit: "",
tempId: new Date().getTime(),
});
- recalculateDemandedQuantities();
return true;
}
if (item.children && item.children.length > 0) {
@@ -1461,7 +1427,6 @@
children: [],
tempId: new Date().getTime(),
});
- recalculateDemandedQuantities();
return;
}
addchildItem(item, tempId);
@@ -1556,7 +1521,6 @@
console.log(bomDataValue.value.dataList, "bomDataValue.value.dataList");
normalizeTreeData(bomDataValue.value.dataList);
- recalculateDemandedQuantities();
const valid = validateAllBom();
if (valid) {
@@ -1859,4 +1823,4 @@
line-height: 1.5;
word-break: break-all;
}
-</style>
\ No newline at end of file
+</style>
--
Gitblit v1.9.3