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/MaterialCard.vue | 40 ++++++++++++++++++++++++++--------------
1 files changed, 26 insertions(+), 14 deletions(-)
diff --git a/src/views/productionManagement/productStructure/DetailNew/MaterialCard.vue b/src/views/productionManagement/productStructure/DetailNew/MaterialCard.vue
index 038d3e8..f0ac5a6 100644
--- a/src/views/productionManagement/productStructure/DetailNew/MaterialCard.vue
+++ b/src/views/productionManagement/productStructure/DetailNew/MaterialCard.vue
@@ -1,24 +1,31 @@
<template>
<div class="material-node">
<!-- 褰撳墠鑺傜偣鍗$墖 -->
- <div :class="['node-card', isRoot ? 'root-card' : 'child-card']">
+ <div :class="['node-card', isRoot ? 'root-card' : (row.nodeType === 'semiFinished' ? 'semi-finished-card' : 'child-card')]">
<div class="node-header">
<div class="node-label">
- <el-tag :type="isRoot ? '' : 'success'" size="small" effect="dark">
- {{ isRoot ? '鎴愬搧' : '鍘熸枡' }}
+ <el-tag :type="isRoot ? '' : (row.nodeType === 'semiFinished' ? 'warning' : 'success')" size="small" effect="dark">
+ {{ isRoot ? '鎴愬搧' : (row.nodeType === 'semiFinished' ? '鍗婃垚鍝�' : '鍘熸枡') }}
</el-tag>
<span class="node-title">{{ row.productName || '鏈�夋嫨浜у搧' }}</span>
<span v-if="row.model" class="node-sub">瑙勬牸: {{ row.model }}</span>
<span v-if="row.unit" class="node-sub">鍗曚綅: {{ row.unit }}</span>
</div>
<div class="node-actions">
- <el-button v-if="editable"
- type="primary"
- text
- size="small"
- @click="handleAdd">
- + 娣诲姞{{ isRoot ? '鍘熸枡' : '瀛愮骇鍘熸枡' }}
- </el-button>
+ <template v-if="editable && (isRoot || row.nodeType === 'semiFinished')">
+ <el-button type="primary"
+ text
+ size="small"
+ @click="handleAdd('semiFinished')">
+ + 娣诲姞鍗婃垚鍝�
+ </el-button>
+ <el-button type="primary"
+ text
+ size="small"
+ @click="handleAdd('rawMaterial')">
+ + 娣诲姞鍘熸枡
+ </el-button>
+ </template>
<el-button v-if="editable"
type="danger"
text
@@ -107,7 +114,7 @@
:editable="editable"
:process-options="processOptions"
@remove="(id:string) => $emit('remove', id)"
- @add="(id:string) => $emit('add', id)"
+ @add="(id:string, nodeType:string) => $emit('add', id, nodeType)"
@select-product="(tempId: string, data: any) => $emit('selectProduct', tempId, data)"
@process-change="(row: any, v: any) => $emit('processChange', row, v)"
@quantity-change="$emit('quantityChange')"
@@ -131,7 +138,7 @@
const emit = defineEmits<{
remove: [tempId: string]
- add: [tempId: string]
+ add: [tempId: string, nodeType: string]
selectProduct: [tempId: string, data: any]
processChange: [row: any, value: any]
quantityChange: []
@@ -143,8 +150,8 @@
emit('selectProduct', props.row.tempId, null)
}
-const handleAdd = () => {
- emit('add', props.row.tempId)
+const handleAdd = (nodeType: string) => {
+ emit('add', props.row.tempId, nodeType)
}
</script>
@@ -174,6 +181,11 @@
background-color: #f0f9eb;
}
+.semi-finished-card {
+ border-left: 4px solid #e6a23c;
+ background-color: #fdf6ec;
+}
+
.node-header {
display: flex;
align-items: center;
--
Gitblit v1.9.3