<template> <!-- 首页大的轮播图 --> <div class="swiper" v-if="imagelist"> <el-carousel :interval="5000" arrow="always" height="405px" indicator-class="custom-indicator" class="custom-carousel" @change="handleIndicatorChange"> <el-carousel-item v-for="(item, index) in imagelist" :key="index"> <NuxtLink :to="`/newsDetail/${item.id}`" :title="item.title"> <img :src="item.imgurl" :alt="item.title"> <span>{{ item.title }}</span> </NuxtLink> </el-carousel-item> <template #indicator="{ index }"> <button :class="{ 'active-indicator': currentIndex === index }">{{ index + 1 }}</button> </template> </el-carousel> </div> </template> <script setup> import { ElCarousel, ElCarouselItem } from 'element-plus' //获取焦点图数据 start----------------------------------------> const imagelist = ref("") async function getModelData1() { const mkdata = await requestDataPromise('/web/getWebsiteArticlett', { method: 'GET', query: { 'pageSize': 5, 'level': 2, 'placeid': 0 }, }); if(mkdata.code == 200){ imagelist.value = mkdata.data; }else{ console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->") console.log("错误位置:获取首页轮播图") console.log("后端错误反馈:",mkdata.message) console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->") } } getModelData1() // let imagelist = ref([]) // async function getModelData1() { // const { data: mkdata, error: mkdataError } = requestData('/web/getWebsiteArticlett', { // method: 'GET', // query: { // 'pageSize': 5, // 'level': 2, // 'placeid': 0 // }, // }); // if (mkdataError.value) { // //console.error('模块1数据上部分请求失败!', mkdataError.value); // } else { // if (mkdata.value) { // //console.log('模块1数据上部分请求成功!', mkdata.value.data); // imagelist.value = mkdata.value.data; // } // } // } // getModelData1() //获取焦点图数据 end----------------------------------------> let currentIndex = ref(0) let handleIndicatorChange = (val) => { currentIndex.value = val } </script> <style lang="less" scoped> .swiper { width: 720px; height: 405px; position: relative; img { width: 720px; height: 405px; } span { display: inline-block; width: 720px; height: 118px; padding-top: 20px; padding-left: 23px; box-sizing: border-box; position: absolute; top: 0; left: 0; font-family: Source Han Sans, Source Han Sans; font-weight: 800; font-size: 24px; color: #FFFFFF; background: linear-gradient(to bottom, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0)); } } .el-carousel { // 左右箭头按钮 .el-carousel__arrow--right :deep(.class-name), .el-carousel__arrow--left :deep(.class-name) { width: 68px; height: 68px; } //左右箭头图片 /deep/.el-icon svg { height: 1em; width: 1em; background-color: transparent; } /deep/.el-carousel__arrow { border-radius: 0; background-color: transparent; } /deep/.el-carousel__arrow i { font-size: 68px !important; } /deep/ .el-carousel__indicators { // 指示器 left: unset; transform: unset; right: 41%; } /deep/ .el-carousel__button { // 指示器按钮 width: 20px; height: 20px; border-radius: 50%; border: none; opacity: 1; background-color: #FFFFFF; } /deep/ .is-active .el-carousel__button { // 指示器激活按钮 background: #46D333; } /deep/ .el-carousel__container { height: 100%; } /deep/.custom-indicators { position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%); } // 将指示器的所有样式都不显示 // /deep/.el-carousel__indicators { // display: none; // } } </style>