Files
template-10490/components/Index/Carousel.vue
2025-04-17 16:22:32 +08:00

90 lines
2.0 KiB
Vue

<template>
<div style="margin-top: 210px;" class="w-full bg-white mb-3 hidden-sm-and-down" v-if="ad">
<el-carousel :height="`${ad?.height || '500'}px`">
<el-carousel-item v-for="(item,index) in ad?.imageList" :key="index">
<div class="item relative flex justify-center items-center">
<el-image :src="item.url" fit="fill" class="w-full" :style="`height: ${ad?.height}px;`" />
<!-- fit: '' | 'fill' | 'contain' | 'cover' | 'none' | 'scale-down'-->
</div>
{{ad.height}}==
</el-carousel-item>
</el-carousel>
</div>
<!-- 移动端 -->
<div class="sm:hidden w-full bg-white mt-[38px] mb-3 hidden-sm-and-up" v-if="ad">
<el-carousel indicator-position="none" height="200">
<el-carousel-item v-for="(item,index) in ad?.imageList" :key="index">
<el-image :src="item.url" />
</el-carousel-item>
</el-carousel>
</div>
</template>
<script setup lang="ts">
import type {CompanyParam} from "~/api/system/company/model";
import type {CmsAd} from "~/api/cms/cmsAd/model";
import {getCmsAd, pageCmsAd} from "~/api/cms/cmsAd";
const props = withDefaults(
defineProps<{
config?: any;
list?: any[];
disabled?: boolean;
title?: string;
comments?: string;
}>(),
{
title: '卡片标题',
comments: '卡片描述'
}
);
const emit = defineEmits<{
(e: 'done'): void;
}>();
const ad = ref<CmsAd>();
const ad421 = ref<CmsAd>();
const ad422 = ref<CmsAd>();
// 搜索表单
const where = reactive<CompanyParam>({
keywords: ''
});
// 请求数据
const reload = async () => {
pageCmsAd({
type: 1,
lang: getLang()
}).then(res => {
console.log(res)
if(res){
ad.value = res.list[0];
}
})
getCmsAd(421).then(res => {
ad421.value = res;
});
getCmsAd(422).then(res => {
ad422.value = res;
});
}
watch(
() => props.config,
() => {
reload();
},
{immediate: true}
);
</script>
<style>
.hidden-sm-and-up .el-carousel{
height: 160px;
}
</style>