You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
179 lines
5.0 KiB
179 lines
5.0 KiB
<template>
|
|
<!-- eslint-disable vue/no-use-v-if-with-v-for,vue/no-confusing-v-for-v-if -->
|
|
<div class="highlight-exhibitions">
|
|
<div class="computer hidden-sm-and-down">
|
|
<Block :title="$t('Highlight Exhibitions')" :arrow="true" @rightArrowOnClick="handleRightArrowClick"
|
|
@leftArrowOnClick="handleLeftArrowClick" :carousel="carousel" :carouselPagesNum="carouselPagesNum">
|
|
<v-carousel v-model="carousel" hide-delimiter-background :show-arrows="false" class="px-0 mb-5">
|
|
<v-carousel-item v-for="p in carouselPagesNum" :key="p">
|
|
<v-container class="container-1366 pb-0">
|
|
<v-row>
|
|
<v-col class="pt-0 pb-5" cols="6" v-for="index in 6" :key="index">
|
|
<HightlightExhibitionsCard :item="exhibitions[index - 1 + (p - 1) * 6]"
|
|
v-if="index - 1 + (p - 1) * 6 < exhibitions.length" />
|
|
</v-col>
|
|
</v-row>
|
|
</v-container>
|
|
</v-carousel-item>
|
|
</v-carousel>
|
|
</Block>
|
|
</div>
|
|
|
|
<div class="tablet d-none d-sm-flex d-md-none">
|
|
<v-container class="py-0">
|
|
<v-row class="row1 mb-7 mt-10 ml-7" no-gutters>
|
|
<v-col class="primary--text tw-body-1">
|
|
{{ $t("Highlight Exhibitions") }}
|
|
</v-col>
|
|
</v-row>
|
|
<v-sheet class="ml-7 mr-0 pl-0" max-width="3000" v-if="exhibitions">
|
|
<v-slide-group center-active class="ml-0 pl-0">
|
|
<v-slide-item v-for="index in Math.ceil(exhibitions.length / 5)" :key="index" class="me-7">
|
|
<div>
|
|
<HightlightExhibitionsCard v-for="item in 5" :key="item" :item="exhibitions[(index - 1) * 5 + item - 1]"
|
|
v-if="(index - 1) * 5 + item - 1 < exhibitions.length" class="mb-5" />
|
|
</div>
|
|
</v-slide-item>
|
|
</v-slide-group>
|
|
</v-sheet>
|
|
</v-container>
|
|
</div>
|
|
<div class="phone hidden-sm-and-up">
|
|
<v-container class="main-container">
|
|
<div class="mb-7 mt-10 primary--text tw-text-[18px]">
|
|
{{ $t("Highlight Exhibitions") }}
|
|
</div>
|
|
|
|
<v-row class="myGrid myGrid__2 Grid__column_gap__20 Grid__row_gap__20 mx-0">
|
|
<v-col class="pa-0" v-for="(item, index) in exhibitions" :key="index" v-if="index < 6">
|
|
<HighlightExhibitionsCardMobile :item="item"></HighlightExhibitionsCardMobile>
|
|
</v-col>
|
|
</v-row>
|
|
|
|
<v-spacer class="d-flex justify-center">
|
|
<v-btn :to="localePath('/exhibition')" v-if="exhibitions.length > 5"
|
|
class="text-capitalize mt-10 px-10 mx-auto rounded-xl" outlined>
|
|
{{ $t("see more") }}
|
|
</v-btn>
|
|
</v-spacer>
|
|
</v-container>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import HightlightExhibitionsCard from "~/components/home/HightlightExhibitionsCard.vue";
|
|
import HighlightExhibitionsCardMobile from "~/components/home/HighlightExhibitionsCardMobile.vue";
|
|
import Block from "~/components/home/Block.vue";
|
|
|
|
export default {
|
|
components: {
|
|
HightlightExhibitionsCard,
|
|
HighlightExhibitionsCardMobile,
|
|
Block,
|
|
},
|
|
async fetch({ $axios, i18n }) {
|
|
let langQuery = "?lang=" + i18n.localeProperties["langQuery"] + "&";
|
|
// return await $axios
|
|
// .get("/trending/exhibitions" + langQuery)
|
|
// .then((res) => {
|
|
// console.log("asyncDatares");
|
|
// console.log(res);
|
|
// return { exhibitions: res.data.exhibitions };
|
|
// })
|
|
// .catch((err) => {
|
|
// console.error(err);
|
|
// });
|
|
},
|
|
data() {
|
|
return {
|
|
carousel: 0,
|
|
carouselPagesNum: 3,
|
|
exhibitions: [],
|
|
};
|
|
},
|
|
async mounted() {
|
|
let langQuery = "?lang=" + this.$i18n.localeProperties["langQuery"] + "&";
|
|
// await this.$axios
|
|
// .get("/trending/exhibitions" + langQuery)
|
|
// .then((res) => {
|
|
// this.exhibitions = res.data.exhibitions;
|
|
// })
|
|
// .catch((err) => {
|
|
// console.error(err);
|
|
// });
|
|
// this.$nextTick(() => {
|
|
// this.carouselPagesNum = Math.ceil(this.exhibitions.length / 6);
|
|
// if (this.exhibitions.length > 18) {
|
|
// this.exhibitions = this.exhibitions.slice(0, 18);
|
|
// }
|
|
// });
|
|
},
|
|
methods: {
|
|
// handleRightArrowClick(title_) {
|
|
// if (title_ == "Highlight Exhibitions") {
|
|
// this.carousel += 1;
|
|
// }
|
|
// },
|
|
handleRightArrowClick() {
|
|
if (this.carousel != 1) {
|
|
this.carousel++;
|
|
}
|
|
},
|
|
handleLeftArrowClick() {
|
|
if (this.carousel != 0) {
|
|
this.carousel--;
|
|
}
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.row1 {
|
|
position: relative;
|
|
}
|
|
|
|
.right-arrow {
|
|
position: absolute;
|
|
top: 20%;
|
|
right: -20px;
|
|
}
|
|
|
|
.arrow {
|
|
border: 1px solid;
|
|
padding: 10px 15px;
|
|
border-radius: 10px;
|
|
width: 50px;
|
|
}
|
|
|
|
.text {
|
|
text-align: center;
|
|
}
|
|
|
|
.little-text {
|
|
font-size: 5px;
|
|
}
|
|
|
|
.v-btn--outlined {
|
|
border: thin solid #000;
|
|
}
|
|
|
|
.my-card {
|
|
border-radius: 10px !important;
|
|
}
|
|
|
|
.keep-width {
|
|
min-width: 608px;
|
|
}
|
|
|
|
.to-right {
|
|
width: 44px !important;
|
|
}
|
|
|
|
:deep() {
|
|
.v-carousel__controls {
|
|
display: none;
|
|
}
|
|
}
|
|
</style>
|