nebula/components/archive/list.vue

88 lines
2.9 KiB
Vue
Raw Normal View History

2020-06-19 17:37:45 +08:00
<template>
2020-06-20 00:36:35 +08:00
<el-row class="wrapper">
<el-col :xs="24" :sm="24" :xl="24" style="margin: 0 auto;">
2020-06-22 17:13:42 +08:00
<el-col v-for="article in articles.articles" :key="article.idArticle" style="padding-bottom: 1rem;">
2020-06-20 00:36:35 +08:00
<el-card>
<div class="card-body d-flex flex-column">
<el-link @click="onRouter('article',article.articleLink)" :underline="false" style="margin-bottom: .5rem;">
<h4 v-html="article.articleTitle"></h4>
</el-link>
<el-tag
style="margin-left: 0.5rem;"
v-for="tag in article.tags"
:key="tag.idTag"
size="mini"
effect="plain">
{{ tag.tagTitle }}
</el-tag>
<div class="text-muted article-summary-md">{{ article.articlePreviewContent }}</div>
<el-row class="pt-5">
<el-col :xs="3" :sm="1" :xl="1" class="mr-3">
2020-08-02 00:25:44 +08:00
<el-avatar v-if="article.articleAuthorAvatarUrl" size="medium"
:src="article.articleAuthorAvatarUrl"></el-avatar>
<el-avatar v-else size="medium"
2020-08-02 23:55:08 +08:00
src="https://static.rymcu.com/article/1578475481946.png"></el-avatar>
2020-06-20 00:36:35 +08:00
</el-col>
<el-col :xs="20" :sm="20" :xl="20">
<div>
2020-08-02 00:25:44 +08:00
<el-link @click="onRouter('user', article.articleAuthorName)" :underline="false" class="text-default">
{{ article.articleAuthorName }}
</el-link>
2020-06-20 00:36:35 +08:00
<small class="d-block text-muted">{{ article.timeAgo }}</small>
</div>
</el-col>
<el-col class="text-right">
2020-08-02 00:25:44 +08:00
<el-link :underline="false" title="总浏览数"><i class="el-icon-s-data"></i><span style="color: red;">{{ article.articleViewCount }}</span>
</el-link>
2020-06-20 00:36:35 +08:00
</el-col>
</el-row>
</div>
</el-card>
</el-col>
<el-col>
<div class="vertical-container text-center">
2020-06-22 17:13:42 +08:00
<el-pagination v-show="articles.pagination.total > 10" v-model="articles.pagination"
2020-06-20 00:36:35 +08:00
layout="prev, pager, next"
2020-06-22 17:13:42 +08:00
:current-page="articles.pagination.currentPage"
:total="articles.pagination.total"
2020-06-20 00:36:35 +08:00
@current-change="currentChange">
</el-pagination>
</div>
</el-col>
</el-col>
</el-row>
2020-06-19 17:37:45 +08:00
</template>
<script>
2020-06-22 17:13:42 +08:00
export default {
name: "ArticleList",
props: {
articles: {
type: Object
2020-06-20 00:36:35 +08:00
}
},
methods: {
2020-06-22 17:13:42 +08:00
currentChange(page) {
this.$emit('currentChange', page);
},
onRouter(name, data) {
if ("article" === name) {
this.$router.push({
path: data
})
} else {
this.$router.push(
{
path: '/user/' + data
}
)
}
2020-06-20 00:36:35 +08:00
}
2020-06-19 17:37:45 +08:00
}
2020-06-22 17:13:42 +08:00
}
2020-06-19 17:37:45 +08:00
</script>
<style scoped>
</style>