Files
ostandari/components/CategoryGallerySection.vue
2024-10-21 10:22:26 +03:30

116 lines
3.8 KiB
Vue

<template>
<section class="s4">
<div class="row">
<div class="col-12 gallery-btn">
<div class="mt-2 view-link">
<button
@click="setChangeInPage({...$route.query,galleryType: 'image',page: 1})"
class="btn bigBtn btn-primary"
:class="galleryType === 'image' && 'btn-active'"
>
<span>عکس</span>
</button>
</div>
<div class="mt-2 view-link">
<button
@click="setChangeInPage({...$route.query, galleryType: 'video',page: 1})"
class="btn bigBtn btn-primary"
:class="galleryType === 'video' && 'btn-active'"
>
<span>فیلم</span>
</button>
</div>
<div class="mt-2 view-link">
<button
@click="setChangeInPage({...$route.query,galleryType: 'graphic',page: 1})"
class="btn bigBtn btn-primary"
:class="galleryType === 'graphic' && 'btn-active'"
>
<span>گرافیک</span>
</button>
</div>
</div>
</div>
<!-- <div class="favorites view-gallery" v-if="media.favorites.length">-->
<div class="favorites view-gallery">
<LineTxt label="چندرسانه ای"/>
<div class="sectionStyle" v-if="media.favorites.length">
<div id="mediaFavorites">
<div class="slide" v-for="(item,index) in media.favorites" :key="item._id + 1" :class="index && 'hide'">
<nuxt-link :to="url(item._id)" :title="item.title" class="view-item">
<img :src="item.cover" :alt="item.title">
<div class="title">
<h3>{{ item.title }}</h3>
</div>
</nuxt-link>
</div>
</div>
</div>
</div>
<div class="items">
<!-- <LineTxt v-if="galleryType === 'image'" :label="` تصاویر ${category.category.title}`"/>-->
<!-- <LineTxt v-if="galleryType === 'video'" :label="` فیلم های ${category.category.title}`"/>-->
<!-- <LineTxt v-if="galleryType === 'graphic'" :label="` گرافیک های ${category.category.title}`"/>-->
<div class="sectionStyle" v-if="media.all.docs.length">
<div class="view-gallery">
<div class="row">
<div class="col-12 col-md-3 mb-3" v-for="item in media.all.docs" :key="item._id">
<nuxt-link class="view-item" :to="url(item._id)" :title="item.title">
<img :src="item.thumbCover" :alt="item.title">
<div class="title">
<h5>{{ item.title }}</h5>
</div>
</nuxt-link>
</div>
</div>
</div>
</div>
<div class="not-found" v-else>
<p>موردی وجود ندارد!</p>
</div>
</div>
<div class="paginate">
<div class="row">
<div class="col-12">
<el-pagination
layout="next, pager, prev"
v-if="media.all.totalPages > 1"
class="el-pagination"
@current-change="pageNumber"
:current-page="Number($route.query.page)"
:page-count="Number(media.all.totalPages)"
>
</el-pagination>
</div>
</div>
</div>
</section>
</template>
<script>
if (process.client) require("slick-carousel")
export default {
props: ['setChangeInPage', 'galleryType', 'media', 'category', 'pageNumber', 'url'],
mounted() {
$(document).ready(() => {
$("#mediaFavorites").on('init', function () {
$('#mediaFavorites .slide').removeClass('hide')
})
$("#mediaFavorites").slick({
dots: true,
slidesToShow: 1,
rtl: true,
autoplay: true,
autoplaySpeed: 3000,
speed: 1000,
arrows: false,
infinite: false,
pauseOnHover: true
})
})
}
}
</script>