From 6ef3449ab07299b34f7ad1e6e4c3d3da4b3d2d1b Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 11 六月 2026 10:57:18 +0800
Subject: [PATCH] pro 1.bom样式添加半成品
---
src/views/productionManagement/productStructure/DetailNew/index.vue | 21 +++++++++++++++------
1 files changed, 15 insertions(+), 6 deletions(-)
diff --git a/src/views/productionManagement/productStructure/DetailNew/index.vue b/src/views/productionManagement/productStructure/DetailNew/index.vue
index 33b31f7..1262c80 100644
--- a/src/views/productionManagement/productStructure/DetailNew/index.vue
+++ b/src/views/productionManagement/productStructure/DetailNew/index.vue
@@ -31,6 +31,9 @@
<el-tag type="" size="small" effect="dark">鎴愬搧</el-tag>
<span style="margin:0 4px">鈫� 鏈�涓婂眰锛堜骇鍑虹墿锛�</span>
<el-divider direction="vertical" />
+ <el-tag type="warning" size="small" effect="dark">鍗婃垚鍝�</el-tag>
+ <span style="margin:0 4px">锛堝彲缁х画灞曞紑锛�</span>
+ <el-divider direction="vertical" />
<span style="margin:0 4px">鏈�涓嬪眰锛堟姇鍏ョ墿锛夆啋</span>
<el-tag type="success" size="small" effect="dark">鍘熸枡</el-tag>
</div>
@@ -47,7 +50,7 @@
:editable="dataValue.isEdit"
:process-options="dataValue.processOptions"
@remove="(id: string) => removeItem(id)"
- @add="(id: string) => addChildItem(id)"
+ @add="(id: string, nodeType: string) => addChildItem(id, nodeType)"
@select-product="(tempId: string, _data: any) => { dataValue.currentRowName = tempId; dataValue.showProductDialog = true }"
@process-change="(row: any, v: any) => handleProcessChange(row, v)"
@quantity-change="handleUnitQuantityChange"
@@ -183,12 +186,17 @@
item.operationName = processName;
};
- const normalizeTreeData = (items: any[]) => {
+ const normalizeTreeData = (items: any[], depth: number = 0) => {
items.forEach((item: any) => {
item.tempId = item.tempId || item.id || `${Date.now()}_${Math.random()}`;
syncProcessOperationFields(item);
+ if (depth > 0 && !item.nodeType) {
+ item.nodeType = Array.isArray(item.children) && item.children.length > 0
+ ? 'semiFinished'
+ : 'rawMaterial';
+ }
if (Array.isArray(item.children) && item.children.length > 0) {
- normalizeTreeData(item.children);
+ normalizeTreeData(item.children, depth + 1);
}
});
};
@@ -520,7 +528,7 @@
});
};
- const newChildNode = (parentItem: any) => ({
+ const newChildNode = (parentItem: any, nodeType: string = 'rawMaterial') => ({
parentId: parentItem.id || "",
parentTempId: parentItem.tempId || "",
productName: "",
@@ -534,6 +542,7 @@
unitQuantity: 1,
demandedQuantity: 0,
unit: "",
+ nodeType,
children: [],
tempId: new Date().getTime(),
});
@@ -542,12 +551,12 @@
dataValue.dataList.push(newChildNode({ id: "", tempId: "" }));
};
- const addChildItem = (parentTempId: string) => {
+ const addChildItem = (parentTempId: string, nodeType: string = 'rawMaterial') => {
const addToItem = (items: any[]): boolean => {
for (const item of items) {
if (item.tempId === parentTempId) {
if (!item.children) item.children = [];
- item.children.push(newChildNode(item));
+ item.children.push(newChildNode(item, nodeType));
recalculateDemandedQuantities();
return true;
}
--
Gitblit v1.9.3