Fix: 修正产品规格参数显示问题

This commit is contained in:
2025-08-20 16:54:51 +08:00
parent 14152310b5
commit 8944054609
5 changed files with 123 additions and 93 deletions

View File

@ -1,19 +1,10 @@
<template>
<div class="spec-collapse">
<el-collapse v-for="(value, key) in data" :key="key" v-model="activeName">
<el-collapse-item :title="key" :name="key">
<el-collapse v-model="activeName">
<el-collapse-item v-for="item in data" :key="item.title" :title="item.title" :name="item.title">
<el-descriptions :column="1" border>
<el-descriptions-item v-for="(subValue, subKey) in value" :key="subKey" :label="String(subKey)">
<div v-if="isPrimitive(subValue)">
{{ subValue }}
</div>
<div v-else>
<ul>
<li v-for="(item, index) in subValue" :key="index">
{{ index }}: {{ item }}
</li>
</ul>
</div>
<el-descriptions-item v-for="subItem in item.items" :key="subItem.label" :label="subItem.label">
{{ subItem.value }}
</el-descriptions-item>
</el-descriptions>
</el-collapse-item>
@ -24,20 +15,13 @@
<script lang="ts" setup>
const props = defineProps({
data: {
type: Object,
type: Object as () => ProductionSpecGroup[],
required: true
}
})
const isPrimitive = (val: unknown): boolean => {
return (
typeof val === 'string' ||
typeof val === 'number' ||
typeof val === 'boolean' ||
val === null
)
}
// 默认全部展开
const activeName = ref<string[]>(Object.keys(props.data) || [])
const activeName = ref<string[]>(props.data.map((item: ProductionSpecGroup) => {
return item.title
}) || [])
</script>