2024-04-15 14:31:13 +08:00
|
|
|
<script>
|
|
|
|
|
export default {
|
|
|
|
|
name: "AiDvTabs",
|
|
|
|
|
model: {
|
|
|
|
|
prop: "active",
|
|
|
|
|
event: "input"
|
|
|
|
|
},
|
|
|
|
|
props: {
|
|
|
|
|
active: String,
|
|
|
|
|
config: Object,
|
|
|
|
|
values: Object
|
|
|
|
|
},
|
|
|
|
|
computed: {
|
2024-04-15 15:35:57 +08:00
|
|
|
layers: {
|
|
|
|
|
set(settings) {
|
|
|
|
|
console.log(settings)
|
|
|
|
|
},
|
|
|
|
|
get() {
|
|
|
|
|
const v = this
|
|
|
|
|
const tab = v.config?.tabs[v.active]
|
|
|
|
|
const values = v.values[tab.label]?.data || {}
|
|
|
|
|
return tab.comps?.map(e => ({dataType: "staticData", ...e, staticData: Array.isArray(values) ? values : values[e.label]}))?.filter(e => e.type) || []
|
|
|
|
|
}
|
2024-04-15 14:31:13 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<template>
|
|
|
|
|
<section class="AiDvTabs">
|
2024-04-15 15:35:57 +08:00
|
|
|
<ai-dv-render class="fill" v-for="(e,i) in layers" :key="i" :data="layers[i]" :index="i"/>
|
2024-04-15 14:31:13 +08:00
|
|
|
</section>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
|
|
.AiDvTabs {
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
2024-04-15 15:35:57 +08:00
|
|
|
gap: 16px;
|
|
|
|
|
height: 100%;
|
2024-04-15 14:31:13 +08:00
|
|
|
}
|
|
|
|
|
</style>
|