Files
ostandari/pages/_portal/archive/index.vue
T
2024-10-21 10:22:26 +03:30

106 lines
3.2 KiB
Vue

<template>
<div class="archive-page">
<div class="container">
<LineTxt label="آرشیو"/>
<!-- <div class="col-12 col-md-3 mb-3 stretch" v-for="item in archive.docs" :key="item._id" v-if="archive.docs.length">-->
<!-- <div class="news-card justifyBetween">-->
<!-- <img :src="item.thumbCover" :alt="item.title">-->
<!-- <h2>{{ item.title }}</h2>-->
<!-- <nuxt-link :to="{name: 'portal-news-details',params: {portal: currentPortal,details: item.title}}">-->
<!-- <div class="whole-wrapper">-->
<!-- <span class="whole-wrapper-date">{{-->
<!-- jData2(item.customDate) + ' ' + jData(item.customDate)-->
<!-- }}</span>-->
<!-- <span class="whole-wrapper-title"> ادامه مطلب<i class="fas fa-chevron-left"></i></span>-->
<!-- </div>-->
<!-- </nuxt-link>-->
<!-- </div>-->
<!-- </div>-->
<div class="row align-items-stretch">
<template v-if="archive.docs.length">
<NewsBox v-for="item in archive.docs" :key="item._id" :item="item"/>
</template>
<div class="not-found" v-else>
<p>موردی وجود ندارد!</p>
</div>
</div>
<div class="paginate">
<div class="row">
<div class="col-12">
<el-pagination
layout="prev, pager, next"
v-if="archive.totalPages > 1"
class="el-pagination"
@current-change="pageNumber"
:current-page="Number($route.query.page)"
:page-count="Number(archive.totalPages)"
>
</el-pagination>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import moment from "moment-jalaali";
export default {
data() {
return {
archive: null
}
},
computed: {
currentPortal() {
return this.$route.params.portal
},
pageQuery() {
return this.$route.query.page
},
query() {
return this.$route.query
}
},
watch: {
pageQuery(newVal, oldVal) {
this.$nuxt.refresh()
}
},
methods: {
jData(data) {
return moment(data).locale('fa').format('LL')
},
jData2(data) {
return moment(data).locale('fa').fromNow()
},
pageNumber(val) {
if(this.query.flag === 'all')
this.$router.push({name: 'portal-archive', params: {portal: this.currentPortal}, query: {flag: 'all' ,page: val}})
else
this.$router.push({name: 'portal-archive', params: {portal: this.currentPortal}, query: {flag: 'category', catId: this.query.catId ,page: val}})
},
},
async asyncData({$axios, error, params, query}) {
const portalQuery = params.portal
try {
const archive = await $axios.get(`/api/public/getNews?flag=${query.flag}&catId=${query.catId || ''}&portal=${portalQuery}&page=${query.page}`)
return {
archive: archive.data
}
} catch (e) {
error({status: 500, message: "مشکلی پیش آمده است!"})
}
}
}
</script>