91206763创建于 2025年8月4日历史提交
<template>
    <!-- 轮播 -->
    <template v-if="magicType === 'carousel'"> 
        <model-carousel-content :value="form.content" :is-nest="true"></model-carousel-content>
    </template>
    <!-- 导航组 -->
    <template v-else-if="magicType === 'nav_group'"> 
        <model-nav-group-content :value="form.content" :is-nest="true"></model-nav-group-content>
    </template>
    <!-- 自定义 -->
    <template v-else-if="magicType === 'custom'"> 
        <model-custom-content :value="form.content" :is-subcomponent="true"></model-custom-content>
    </template>
    <!-- 商品魔方 -->
    <template v-else-if="magicType === 'goods_magic'"> 
       <model-goods-magic-content :value="form.content" :styles="form.style" :default-config="data_config" :is-nest="true"></model-goods-magic-content>
    </template>
    <!-- 图片魔方 -->
    <template v-else-if="magicType === 'img_magic'"> 
        <model-img-magic-content :value="form.content" :is-nest="true"></model-img-magic-content>
    </template>
    <!-- 热区 -->
    <template v-else-if="magicType === 'hot_zone'"> 
        <model-hot-zone-content :value="form.content" :is-nest="true"></model-hot-zone-content>
    </template>
    <!-- 文章列表 -->
    <template v-else-if="magicType === 'article_list'"> 
        <model-article-list-content :value="form.content" :styles="form.style" :default-config="data_config" :is-nest="true"></model-article-list-content>
    </template>
    <!-- 商品列表 -->
    <template v-else-if="magicType === 'goods_list'"> 
        <model-goods-list-content :value="form.content" :styles="form.style" :default-config="data_config" :is-nest="true"></model-goods-list-content>
    </template>
    <!-- 视频 -->
    <template v-else-if="magicType === 'video'"> 
        <model-video-content :value="form.content" :is-nest="true"></model-video-content>
    </template>
</template>

<script lang="ts" setup>
const props = defineProps({
    magicType: {
        type: String,
        default: '',
    },
    value: {
        type: Object,
        default: () => {},
    }
});

const data_config = reactive({
    // 图片不同风格下的圆角
    img_radius_0: 4,
    img_radius_1: 0,
});

const form = ref(props.value);
watch(() => props.value, (newVal) => {
    form.value = newVal;
}, {immediate: true, deep: true});
</script>