@@ -7,36 +7,35 @@ export default {
77 return tagColorArr [ index ]
88 } ,
99 _filterPostData ( posts , isTimeline ) {
10- const stickyArr = [ ]
1110 posts = posts . filter ( item => {
1211 const { title, frontmatter : { home, date, publish, sticky } } = item
13- if ( sticky ) {
14- stickyArr . unshift ( item )
15- return false
16- }
1712 return isTimeline === true
1813 ? ! ( home == true || title == undefined || date === undefined || publish === false )
1914 : ! ( home == true || title == undefined || publish === false )
2015 } )
21- this . _sortstickyArr ( stickyArr )
22- return stickyArr . concat ( posts )
23- } ,
24- _sortstickyArr ( posts ) {
25- if ( posts . length > 0 ) {
26- posts . sort ( ( a , b ) => {
27- return b . sticky - a . sticky
28- } )
29- }
16+ return posts
3017 } ,
3118 _sortPostData ( posts ) {
3219 posts . sort ( ( a , b ) => {
33- return this . _getTimeNum ( b ) - this . _getTimeNum ( a )
20+ let aSticky = a . frontmatter . sticky , bSticky = b . frontmatter . sticky ;
21+ if ( aSticky && bSticky ) {
22+ return aSticky == bSticky ? this . _compareTime ( a , b ) : ( aSticky - bSticky )
23+ } else if ( aSticky && ! bSticky ) {
24+ return - 1 ;
25+ } else if ( ! aSticky && bSticky ) {
26+ return 1 ;
27+ }
28+ return this . _compareTime ( a , b )
3429 } )
3530 } ,
3631 // 获取时间的数字类型
3732 _getTimeNum ( date ) {
3833 return parseInt ( new Date ( date . frontmatter . date ) . getTime ( ) )
3934 } ,
35+ // 比对时间
36+ _compareTime ( a , b ) {
37+ return this . _getTimeNum ( b ) - this . _getTimeNum ( a )
38+ } ,
4039 // 获取博客数据
4140 _getPostData ( ) {
4241 return new Promise ( resolve => {
@@ -51,9 +50,9 @@ export default {
5150 return [ ...allData , ...currnetData . pages ]
5251 } , [ ] )
5352
54- _sortPostData ( posts )
5553 posts = _filterPostData ( posts )
56-
54+ _sortPostData ( posts )
55+
5756 this . $themeConfig . posts = posts
5857 resolve ( posts )
5958 }
@@ -77,4 +76,4 @@ export default {
7776 sessionStorage . setItem ( 'currentPage' , JSON . stringify ( { page, path } ) )
7877 }
7978 }
80- }
79+ }
0 commit comments