outstock_nuxt3/components/blogs/BlogStandardArea.vue

77 lines
1.9 KiB
Vue
Raw Permalink Normal View History

2023-08-01 11:11:43 +00:00
<template>
<section class="blog__area pt-100 pb-100">
<div class="container">
<div class="row">
<div v-if="left_side" class="col-xl-3 col-lg-4">
<blog-sidebar />
</div>
<div :class="`col-xl-${left_side?'9':'8'} col-lg-8`">
<div class="blog__wrapper">
<blog-standard-item
v-for="(blog, i) in filteredRows.slice(
pageStart,
pageStart + countOfPage
)"
:key="i"
:blog="blog"
/>
<div class="row">
<div class="col-xl-12">
<pagination
:items="blogData.filter((b) => b.blog === 'blog-standard')"
:count-of-page="3"
@paginatedData="paginatedData"
/>
</div>
</div>
</div>
</div>
<div v-if="!left_side" class="col-xl-3 col-lg-4 offset-xl-1">
<blog-sidebar />
</div>
</div>
</div>
</section>
</template>
<script lang="ts">
import { defineComponent } from "vue";
import blogData from "~~/mixins/blogData";
import BlogSidebar from "../common/sidebar/BlogSidebar.vue";
import Pagination from "~~/ui/Pagination.vue";
import BlogType from "~~/types/blogType";
import BlogStandardItem from "./BlogStandardItem.vue";
export default defineComponent({
components: { BlogSidebar, Pagination, BlogStandardItem },
props:{
left_side:{
type:Boolean,
default:false,
}
},
data() {
return {
filteredRows: [] as BlogType[],
pageStart: 0 as number,
countOfPage: 9 as number,
};
},
mixins: [blogData],
methods: {
paginatedData(
filteredRows: BlogType[],
pageStart: number,
countOfPage: number
) {
this.filteredRows = filteredRows;
this.pageStart = pageStart;
this.countOfPage = countOfPage;
},
},
setup() {
return {};
},
});
</script>