-
-
Notifications
You must be signed in to change notification settings - Fork 65
/
tag.js
145 lines (129 loc) · 5.52 KB
/
tag.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
window.onload = function() { //避免爆代码
var click = 0; //初始化加载次数
var paged = 1; //获取当前页数
var incate = window.cate_id;
var tag_name = window.tag_name;
var post_count = window.post_count;
/* 展现内容(避免爆代码) */
$('.article-list').css('opacity', '1');
$('.top1').html(tag_name);
$('.top2').html('标签文章数 : '+ post_count);
$('.cat-real').attr('style', 'display:inline-block');
/* 展现内容(避免爆代码) */
new Vue({ //axios获取顶部信息
el: '#grid-cell',
data() {
return {
site_url: window.site_url,
exclude_option: window.cate_exclude_option,
cate_exclude: window.cate_exclude,
exclude_params: '',
pages: window.index_p,
cate_fre: window.cate_fre,
cate_wor: window.cate_fre,
posts: null,
posts_id_sticky: '0',
cates: null,
des: null,
loading: true, //v-if判断显示占位符
loading_des: true,
errored: true,
loading_css: 'loading-line'
}
},
mounted() {
//分类排除参数获取
if(this.cate_exclude == 'true'){
this.exclude_params = '?exclude=' + this.exclude_option;
}
//获取分类
axios.get(this.site_url + '/wp-json/wp/v2/categories' + this.exclude_params)
.then(response => {
this.des = response.data;
}).then(() => {
this.loading_des = false;
});
/*
* 获取文章列表
* 得到顶置文章后拼接其余文章
*/
//获取顶置文章
axios.get(this.site_url + '/wp-json/wp/v2/posts?sticky=1&tags=' + incate)
.then(res_sticky => {
this.posts = res_sticky.data;
//获取顶置文章 IDs 以在获取其余文章时排除
for(var s = 0;s< this.posts.length; ++s){
this.posts_id_sticky += (',' + this.posts[s].id);
}
axios.get(this.site_url + '/wp-json/wp/v2/posts?sticky=0&tags=' + incate + '&exclude='+ this.posts_id_sticky + '&per_page=' + this.pages + '&page=' + paged)
.then(res_normal => {
//拼接其余文章
this.posts = this.posts.concat(res_normal.data);
})
})
.catch(e => {
this.errored = false
})
.then(() => {
this.loading = false;
paged++; //加载完1页后累加页数
//加载完文章列表后监听滑动事件
$(window).scroll(function() {
var scrollTop = $(window).scrollTop();
var scrollHeight = $('.bottom').offset().top - 500;
if (scrollTop >= scrollHeight) {
if (click == 0) { //接近底部加载一次新文章
$('#scoll_new_list').click();
click++; //加载次数计次
}
}
});
})
},
methods: { //定义方法
new_page: function() { //加载下一页文章列表
axios.get(this.site_url + '/wp-json/wp/v2/posts?sticky=0&exclude='+ this.posts_id_sticky + 'per_page='+ this.pages +'&page=' + paged + '&tags=' + incate)
.then(response => {
if (!!response.data.length && response.data.length !== 0) { //判断是否最后一页
$('#view-text').html('- 文章列表 -');
this.posts.push.apply(this.posts, response.data); //拼接在上一页之后
click = 0;
paged++;
} else {
this.loading_css = '';
$('#view-text').html('- 全部文章 -');
$('.bottom h5').html('暂无更多文章了 O__O "…').css({
'background': '#fff',
'color': '#999'
});
}
}).catch(e => {
this.loading_css = '';
$('#view-text').html('- 所有文章 -');
$('.bottom h5').html('暂无更多文章了 O__O "…').css({
'background': '#fff',
'color': '#999'
});
})
}
},
filters: {
link_page: function(cate_id) {
if (cate_id == this.cate_fre) {
return '添加于 ';
} else if (cate_id == this.cate_wor) {
return '创造于 ';
} else {
return '';
}
},
link_style: function(cate_id) {
if (cate_id == this.cate_fre || cate_id == this.cate_wor){
return 'display: flex';
} else {
return '';
}
}
}
});
}