This commit is contained in:
JenniferW 2025-06-13 11:09:16 +08:00
parent 22a03522b1
commit 847be510a3
2 changed files with 67 additions and 16 deletions

View File

@ -152,25 +152,29 @@ export const productTreeData = [
code: "D351200000018",
label: "D351200000018,动车组联轴节(鼓形齿式)",
replaceable: true,
image: '/src/assets/images/cars/1_2_1.jpg'
image: '/src/assets/images/cars/1_2_1.jpg',
children: []
},
{
code: "D312000000013",
label: "D312000000013,齿轮箱组成",
replaceable: true,
image: '/src/assets/images/cars/1_2_1_1.jpg'
image: '/src/assets/images/cars/1_2_1_1.jpg',
children: []
},
{
code: "D311101000008",
label: "D311101000008,动力车轮组成(带喷漆)",
replaceable: false,
image: '/src/assets/images/cars/1_2_1_1.jpg'
image: '/src/assets/images/cars/1_2_1_1.jpg',
children: []
},
{
code: "D311299000016",
label: "D311299000016,动力车轴(带喷漆)",
replaceable: false,
image: '/src/assets/images/cars/1_2_1_1_1.jpg'
image: '/src/assets/images/cars/1_2_1_1_1.jpg',
children: []
}
]
},
@ -178,25 +182,29 @@ export const productTreeData = [
code: "D311303000007",
label: "D311303000007,后挡圈",
replaceable: false,
image: '/src/assets/images/cars/1_1_2.jpg'
image: '/src/assets/images/cars/1_1_2.jpg',
children: []
},
{
code: "3627401100024",
label: "3627401100024,O形橡胶密封圈",
replaceable: false,
image: '/src/assets/images/cars/1_2.jpg'
image: '/src/assets/images/cars/1_2.jpg',
children: []
},
{
code: "3627401100023",
label: "3627401100023,O形橡胶密封圈",
replaceable: false,
image: '/src/assets/images/cars/1_2_1.jpg'
image: '/src/assets/images/cars/1_2_1.jpg',
children: []
},
{
code: "D311300000020",
label: "D311300000020,轴箱轴承",
replaceable: false,
image: '/src/assets/images/cars/1_2_1_1.jpg'
image: '/src/assets/images/cars/1_2_1_1.jpg',
children: []
}
]
},
@ -204,19 +212,22 @@ export const productTreeData = [
code: "D325000000013",
label: "D325000000013,左轴箱组成",
replaceable: false,
image: '/src/assets/images/cars/2.jpg'
image: '/src/assets/images/cars/2.jpg',
children: []
},
{
code: "D325000000014",
label: "D325000000014,右轴箱组成",
replaceable: false,
image: '/src/assets/images/cars/3.jpg'
image: '/src/assets/images/cars/3.jpg',
children: []
},
{
code: "D326000000037",
label: "D326000000037,左轴端装置",
replaceable: false,
image: '/src/assets/images/cars/4.jpg'
image: '/src/assets/images/cars/4.jpg',
children: []
}
]
}
@ -229,7 +240,8 @@ export const replacePartsMap = {
code: "D351200000002",
label: "D351200000002,动车组联轴节(鼓形齿式)",
replaceable: true,
image: '/src/assets/images/cars/1_1_1.jpg'
image: '/src/assets/images/cars/1_1_1.jpg',
children: []
}
],
"D312000000013": [
@ -237,13 +249,15 @@ export const replacePartsMap = {
code: "D312000000014",
label: "D312000000014,齿轮箱组成",
replaceable: true,
image: '/src/assets/images/cars/1_2_1.jpg'
image: '/src/assets/images/cars/1_2_1.jpg',
children: []
},
{
code: "312000000015",
label: "D312000000015齿轮箱组成",
replaceable: true,
image: '/src/assets/images/cars/4.jpg'
image: '/src/assets/images/cars/4.jpg',
children: []
}
]
};

View File

@ -186,9 +186,32 @@
</ul>
</template>
<template v-else>
<ul class="custom-tree no-arrow">
<li
v-for="thirdLevel in thirdLevelsWithoutChildren"
:key="thirdLevel.code"
:class="[
'tree-node',
selectedNode &&
selectedNode.code === thirdLevel.code
? 'active'
: '',
]"
@click="handleNodeClick(thirdLevel)"
>
<span>{{ thirdLevel.label }}</span>
<el-button
v-if="thirdLevel.replaceable"
type="primary"
link
@click.stop="openReplaceDialog(thirdLevel)"
>替换</el-button
>
</li>
</ul>
<el-collapse v-model="collapseActiveNames" accordion>
<el-collapse-item
v-for="thirdLevel in activeSecondLevelItem.children"
v-for="thirdLevel in thirdLevelsWithChildren"
:key="thirdLevel.code"
:name="thirdLevel.code"
>
@ -213,7 +236,7 @@
>
</span>
</template>
<ul v-if="thirdLevel.children">
<ul>
<li
v-for="fourthLevel in thirdLevel.children"
:key="fourthLevel.code"
@ -532,6 +555,20 @@ const allThirdLevelNoChildren = computed(() => {
);
});
//
const thirdLevelsWithoutChildren = computed(() => {
return (activeSecondLevelItem.value?.children || []).filter(
(item) => !item.children || item.children.length === 0
);
});
//
const thirdLevelsWithChildren = computed(() => {
return (activeSecondLevelItem.value?.children || []).filter(
(item) => item.children && item.children.length > 0
);
});
function selectFirstNode() {
const thirdLevels = activeSecondLevelItem.value?.children || [];
if (thirdLevels.length > 0) {