<!--suppress ALL -->
<template>
<div>
<header class="intro-header">
<div class="container">
<el-row class="row">
<el-col class="24">
<div class="site-heading">
<h1>Journey Blog</h1>
<span class="subheading">journey 博客</span>
</div>
</el-col>
</el-row>
</div>
</header>
<div class="container" v-loading="loading">
<div class="row">
<div class="">
<el-row id="incomeNum" v-for="blog in BlogData" :key="blog.cid">
<el-col :span="14" :offset="5" class="post-preview">
<a :href="'localhost:80/blog/open/post/' + blog.cid ">
<h2 class="post-title">
{{ blog.title }}
</h2>
</a>
<p class="post-meta">作者:<a href="#">
{{ blog.author }}
</a> {{ blog.gtmCreate }}
</p>
<hr>
</el-col>
</el-row>
<div class="clearfix">
<p id="flagLoaded" style="display: none; text-align: center;">已全部加载</p>
<a id="flagLoad" style="display: none;" class="btn btn-secondary float-right" @click="loadData()"><el-button type="primary" round>更早 →</el-button></a>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import axios from 'axios'
import $ from 'jquery'
export default {
name: 'Blog_list',
data() {
return {
BlogData: '',
BlogDataCount: '',
limit: 10,
currentPage: 0,
total: '',
loading: true,
}
},
methods: {
getBlogList(limit,offset) {
axios.get(`http://localhost/blog/open/list?type=article&limit=${limit}&offset=${offset}`).then((res) => {
if(offset == 0){
this.BlogData = res.data.rows
}else{
let temparr = res.data.rows
temparr.forEach(blog => this.BlogData.push(blog))
/*for(let blog of temparr){
this.BlogData.push(blog)
}*/
}
this.total = res.data.total
$("#flagLoad").css("display","block");
this.currentPage++;
if (this.total <= this.currentPage * this.limit) {
$("#flagLoaded").css("display","block")
$("#flagLoad").css("display","none")
}
this.loading = false
}).catch((err) => {
console.log(err)
this.loading = true
this.$notify.error({
title: '错误',
message: '服务器访问出错'
})
})
},
loadData() {
this.loading = true
this.bindList(this.limit , this.currentPage * this.limit)
},
bindList(limit,offset) {
this.getBlogList(limit,offset)
}
},
mounted() {
this.getBlogList(10,0)
}
}
</script>
<style scoped lang="scss">
@import "src/styles/public.scss";
.container{
font-family: 'Lora', 'Times New Roman', serif;
.intro-header{
background-color: #808080;
background: url('../../assets/img/blog/home-bg.jpg') no-repeat center center;
background-size: auto auto;
background-attachment: scroll;
-webkit-background-size: cover;
-moz-background-size: cover;
background-size: cover;
-o-background-size: cover;
margin-bottom: 50px;
}
.post-preview{
text-align: left;
a{
text-decoration: none;
}
.post-title{
font-size: 36px;
margin-top: 30px;
margin-bottom: 10px;
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-weight: 800;
color: $grey;
text-underline: none;
&:hover{
color:$light-blue;
transition: all 0.8s;
-moz-transition: all 0.8s;
-o-transition: all 0.8s;
-webkit-transition: all 0.8s;
}
}
.post-meta{
color: #808080;
font-size: 18px;
font-style: italic;
margin-top: 0;
a{
font-style: italic;
text-decoration: none;
color: $grey;
font-family: 'Lora', 'Times New Roman', serif;
}
}
}
#flagLoaded{
font-weight: 700;
}
}
</style>