import { defineComponent, toRefs, reactive, onMounted, ref } from 'vue' import classes from './index.module.less' import { Swiper, SwiperSlide } from 'swiper/vue' import { Navigation, Pagination, Scrollbar, A11y, Autoplay } from 'swiper' import request from '@/helpers/request' import bannerArrow from './images/bannerArrow.png' import bannerArrowAcitive from './images/bannerArrowAcitive.png' import { useRouter } from 'vue-router' export default defineComponent({ name: 'banner', props: { title: { type: String, default: '' } }, components: { Swiper, SwiperSlide }, setup(props, conent) { const state = reactive({ title: props.title, modules: [Navigation, Pagination, Scrollbar, Autoplay,A11y ], bannerList: [], leftHover: false, rightHover: false }) const router = useRouter() const onSwiper = swiper => { // console.log(swiper) } const onSlideChange = () => { // console.log('slide change') } const getBannerList = async () => { try { const res = await request.get('/api-website/open/banner/list', { data: {} }) state.bannerList = res.data } catch (e) { console.log(e) } } const gotoBannerInfo = (item: any) => { if (item.linkUrl.indexOf('http') != -1) { window.open(item.linkUrl) } else { router.push({ path: item.linkUrl }) } } onMounted(() => { getBannerList() }) return () => ( <>
{state.bannerList.map((item: any) => { return ( <> { gotoBannerInfo(item) }} /> ) })}
{ state.leftHover = true }} onMouseout={() => { state.leftHover = false }} >
{ state.rightHover = true }} onMouseout={() => { state.rightHover = false }} >
) } })