Add rank-list

This commit is contained in:
the1812 2019-09-12 11:31:22 +08:00
parent 6eb20d37d5
commit f7a90c6ec1
12 changed files with 131 additions and 30 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -73,7 +73,7 @@
"i18n.min.css": "6B6A1C2F3E222CF1B686BF94F939B494471C979CC6A5F53CFBAC2F4E32048DD4", "i18n.min.css": "6B6A1C2F3E222CF1B686BF94F939B494471C979CC6A5F53CFBAC2F4E32048DD4",
"i18n.min.js": "7FCB933FD43C05A152B672D4BD721F3ECEBA6AD29648379947DAAFC403907B38", "i18n.min.js": "7FCB933FD43C05A152B672D4BD721F3ECEBA6AD29648379947DAAFC403907B38",
"i18n.zh-TW.min.js": "803F67270809E3258E2B302ADE542B12EF222C83EDC67FB8C68301C5F4E3A1CC", "i18n.zh-TW.min.js": "803F67270809E3258E2B302ADE542B12EF222C83EDC67FB8C68301C5F4E3A1CC",
"icon.vue.min.js": "B6162958FC6475DC94798AB6325A3F9C1FC8E1D29D45C5BB52821B4A223328A5", "icon.vue.min.js": "CE58414705A3B895ED015EA6CF3DD4FD3FC1FD30C20D5A19078CA3CB8D35ED89",
"icons.min.css": "CE45E84BCB125A434F3DE11F992BED59D39643B4A7314705809B285732615994", "icons.min.css": "CE45E84BCB125A434F3DE11F992BED59D39643B4A7314705809B285732615994",
"image-resolution.min.js": "0D9679DD7D7CF2709368FC4811F03CC0379EE7286432B98DB7AAB45227D20C76", "image-resolution.min.js": "0D9679DD7D7CF2709368FC4811F03CC0379EE7286432B98DB7AAB45227D20C76",
"image-viewer.min.css": "219E206912EC6FCB0E9F0EC447D19073272A959F66A782D9DF55522FD8A488B5", "image-viewer.min.css": "219E206912EC6FCB0E9F0EC447D19073272A959F66A782D9DF55522FD8A488B5",
@ -100,7 +100,7 @@
"override-navbar.min.js": "5EC6A7D1D2ADE38FEA0BDE3FBBDB5A4054A05FE2FC386FB3339CD9AD3AF7F4DE", "override-navbar.min.js": "5EC6A7D1D2ADE38FEA0BDE3FBBDB5A4054A05FE2FC386FB3339CD9AD3AF7F4DE",
"player-focus.min.js": "2C849315D6FE5968908ACC2F0CD6252C8D5988485B10C1FD09C96D2E397FD30D", "player-focus.min.js": "2C849315D6FE5968908ACC2F0CD6252C8D5988485B10C1FD09C96D2E397FD30D",
"player-shadow.min.js": "918D2127907BC2C164CB86BF7F9C2501CF3B9CD236FEEDE5155B9B5D932F3415", "player-shadow.min.js": "918D2127907BC2C164CB86BF7F9C2501CF3B9CD236FEEDE5155B9B5D932F3415",
"rank-list.vue.min.js": "51CC28C7D4FB94D69CE02602779DE2D0793791FA8D18B2DA94BC298B98FDCC40", "rank-list.vue.min.js": "4096020D70FA76765EB92D8B886C944F2C92961AA4C5DF22CC757446FA6AF233",
"remove-promotions.min.css": "FC6AA1EE75AFD8C82E8AFBC68FD898364AD8EB3720503B1A7A613CAB2B38C5EC", "remove-promotions.min.css": "FC6AA1EE75AFD8C82E8AFBC68FD898364AD8EB3720503B1A7A613CAB2B38C5EC",
"remove-promotions.min.js": "A10C64F78511BC75B9BBA2DFFEBF7FCC4C6C505EF2F75DC0C7AFEF3E162BEA1E", "remove-promotions.min.js": "A10C64F78511BC75B9BBA2DFFEBF7FCC4C6C505EF2F75DC0C7AFEF3E162BEA1E",
"remove-top-mask.min.js": "A15C1EC10D2E1A61845B1ADAE51860553F96427059E10443B1E53FAF48F45304", "remove-top-mask.min.js": "A15C1EC10D2E1A61845B1ADAE51860553F96427059E10443B1E53FAF48F45304",
@ -140,7 +140,7 @@
"tweets.min.css": "9015C1F165C91B9205ABBE4E8A3B5FA83DB1EB4B5CF2442846AF61E44FF178A8", "tweets.min.css": "9015C1F165C91B9205ABBE4E8A3B5FA83DB1EB4B5CF2442846AF61E44FF178A8",
"v-checkbox.vue.min.js": "A23C35D5627009A29FD396A024442A19E37DEE70674BF3CE0FA377D781ED2231", "v-checkbox.vue.min.js": "A23C35D5627009A29FD396A024442A19E37DEE70674BF3CE0FA377D781ED2231",
"v-dropdown.vue.min.js": "66C883695F6653412980050A23F7581557407A2859214BF0CAAEC7001D0B5DDB", "v-dropdown.vue.min.js": "66C883695F6653412980050A23F7581557407A2859214BF0CAAEC7001D0B5DDB",
"video-card.vue.min.js": "22685DF32E1B294F5BB13D91E05A941A2543F4DE8B168275AAE1D62FB717A781", "video-card.vue.min.js": "DD62BE9D26114092B7454CA42F30B3EF653C61A19695B1729BE1AF906B2957BD",
"video-info.min.js": "7234A74CA28A772A31E41BBD4925FC2B22C6701419ADFD511402C6A9D6D9E5FA", "video-info.min.js": "7234A74CA28A772A31E41BBD4925FC2B22C6701419ADFD511402C6A9D6D9E5FA",
"video-story.min.js": "F9D4D2D80997DF5F11BF0CFA4D389B77BDBF1566EA6002E47174B68B440F3C0D", "video-story.min.js": "F9D4D2D80997DF5F11BF0CFA4D389B77BDBF1566EA6002E47174B68B440F3C0D",
"view-cover.min.js": "C458AD430FB767111D2F8E1F63BF85C3047FC7FDDED82D00C0D8EEA9542BD945", "view-cover.min.js": "C458AD430FB767111D2F8E1F63BF85C3047FC7FDDED82D00C0D8EEA9542BD945",

Binary file not shown.

2
min/icon.vue.min.js vendored
View File

@ -1 +1 @@
(()=>{return(o,e)=>{const n=`<i class=be-icon :class=classes></i>`;e.applyStyleFromText(`@font-face{font-family:be-main-iconfont;src:url(//s1.hdslb.com/bfs/seed/jinkela/header/asserts/iconfont.ttf) format("truetype")}@font-face{font-family:be-extended-iconfont;src:url(//s1.hdslb.com/bfs/static/jinkela/video/asserts/iconfont.4bab144.ttf) format("truetype")}@font-face{font-family:be-home-iconfont;src:url(//s1.hdslb.com/bfs/static/jinkela/international-home/asserts/iconfont.ttf) format("truetype")}.be-icon{color:inherit;font-size:24px;font-style:normal}.be-icon.be-main-iconfont{font-family:be-main-iconfont!important}.be-icon.be-extended-iconfont{font-family:be-extended-iconfont!important}.be-icon.be-home-iconfont{font-family:be-home-iconfont!important}.be-icon.be-iconfont-logo::before{content:""}.be-icon.be-iconfont-lv0::before{content:"";color:#9a9a9a}.be-icon.be-iconfont-lv1::before{content:"";color:#646464}body.dark .be-icon.be-iconfont-lv0::before{color:#777}body.dark .be-icon.be-iconfont-lv1::before{color:#ddd}.be-icon.be-iconfont-lv2::before{content:"";color:#1bc861}.be-icon.be-iconfont-lv3::before{content:"";color:#22baea}.be-icon.be-iconfont-lv4::before{content:"";color:#eaa722}.be-icon.be-iconfont-lv5::before{content:"";color:#ff7631}.be-icon.be-iconfont-lv6::before{content:"";color:#ff3131}.be-icon.be-iconfont-profile::before{content:""}.be-icon.be-iconfont-posts::before{content:""}.be-icon.be-iconfont-wallet::before{content:""}.be-icon.be-iconfont-live-center::before{content:""}.be-icon.be-iconfont-order-center::before{content:""}.be-icon.be-iconfont-logout::before{content:""}.be-icon.be-iconfont-ok::before{content:""}.be-icon.be-iconfont-cancel::before{content:""}.be-icon.be-iconfont-bind-phone::before{content:""}.be-icon.be-iconfont-bind-email::before{content:""}.be-icon.be-iconfont-coin::before{content:""}.be-icon.be-iconfont-b-coin::before{content:""}.be-icon.be-iconfont-activity::before{content:""}.be-icon.be-iconfont-message::before{content:""}.be-icon.be-iconfont-favorite::before{content:""}.be-icon.be-iconfont-history::before{content:""}.be-icon.be-iconfont-vip::before{content:""}.be-icon.be-iconfont-play::before{content:""}.be-icon.be-iconfont-danmaku::before{content:""}.be-icon.be-iconfont-like::before{content:""}`,"icon-style");return{export:Object.assign({template:n},{props:{icon:String,type:String},computed:{classes(){if(this.icon===""||this.type===""){return[]}return[`be-iconfont-${this.icon}`,`be-${this.type}-iconfont`]}}})}}})(); (()=>{return(o,e)=>{const n=`<i class=be-icon :class=classes></i>`;e.applyStyleFromText(`@font-face{font-family:be-main-iconfont;src:url(//s1.hdslb.com/bfs/seed/jinkela/header/asserts/iconfont.ttf) format("truetype")}@font-face{font-family:be-extended-iconfont;src:url(//s1.hdslb.com/bfs/static/jinkela/video/asserts/iconfont.4bab144.ttf) format("truetype")}@font-face{font-family:be-home-iconfont;src:url(//s1.hdslb.com/bfs/static/jinkela/international-home/asserts/iconfont.ttf) format("truetype")}.be-icon{color:inherit;font-size:24px;font-style:normal}.be-icon.be-main-iconfont{font-family:be-main-iconfont!important}.be-icon.be-extended-iconfont{font-family:be-extended-iconfont!important}.be-icon.be-home-iconfont{font-family:be-home-iconfont!important}.be-icon.be-iconfont-logo::before{content:""}.be-icon.be-iconfont-lv0::before{content:"";color:#9a9a9a}.be-icon.be-iconfont-lv1::before{content:"";color:#646464}body.dark .be-icon.be-iconfont-lv0::before{color:#777}body.dark .be-icon.be-iconfont-lv1::before{color:#ddd}.be-icon.be-iconfont-lv2::before{content:"";color:#1bc861}.be-icon.be-iconfont-lv3::before{content:"";color:#22baea}.be-icon.be-iconfont-lv4::before{content:"";color:#eaa722}.be-icon.be-iconfont-lv5::before{content:"";color:#ff7631}.be-icon.be-iconfont-lv6::before{content:"";color:#ff3131}.be-icon.be-iconfont-profile::before{content:""}.be-icon.be-iconfont-posts::before{content:""}.be-icon.be-iconfont-wallet::before{content:""}.be-icon.be-iconfont-live-center::before{content:""}.be-icon.be-iconfont-order-center::before{content:""}.be-icon.be-iconfont-logout::before{content:""}.be-icon.be-iconfont-ok::before{content:""}.be-icon.be-iconfont-cancel::before{content:""}.be-icon.be-iconfont-bind-phone::before{content:""}.be-icon.be-iconfont-bind-email::before{content:""}.be-icon.be-iconfont-coin-outline::before{content:""}.be-icon.be-iconfont-coin::before{content:""}.be-icon.be-iconfont-b-coin::before{content:""}.be-icon.be-iconfont-activity::before{content:""}.be-icon.be-iconfont-message::before{content:""}.be-icon.be-iconfont-favorites-outline::before{content:""}.be-icon.be-iconfont-favorites::before{content:""}.be-icon.be-iconfont-history::before{content:""}.be-icon.be-iconfont-vip::before{content:""}.be-icon.be-iconfont-play::before{content:""}.be-icon.be-iconfont-danmaku::before{content:""}.be-icon.be-iconfont-like::before{content:""}.be-icon.be-iconfont-like-outline::before{content:""}.be-icon.be-iconfont-up::before{content:""}.be-icon.be-iconfont-up-outline::before{content:""}`,"icon-style");return{export:Object.assign({template:n},{props:{icon:String,type:String},computed:{classes(){if(this.icon===""||this.type===""){return[]}return[`be-iconfont-${this.icon}`,`be-${this.type}-iconfont`]}}})}}})();

View File

@ -1 +1 @@
(()=>{return(t,r)=>{const e=`<div class=rank-list>wryyyy</div>`;return{export:Object.assign({template:e},{})}}})(); (()=>{return(a,t)=>{const i=`<div class=rank-days-list><div class=loading v-if=loading><i class="mdi mdi-18px mdi-loading mdi-spin"></i>加载中...</div><div class=cards v-else-if=cards.length><video-card v-for="card of cards":key=card.id :data=card></video-card></div><div class=empty v-else>空空如也哦 = ̄ω ̄=</div></div>`;t.applyStyleFromText(`.rank-days-list .cards{display:flex;flex-wrap:wrap;align-items:center}`,"rank-list-style");return{export:Object.assign({template:i},{components:{VideoCard:()=>t.importAsync("video-card.vue")},props:["rankDays"],data(){return{cards:[],loading:true}},async mounted(){try{const a=await Ajax.getJsonWithCredentials(`https://api.bilibili.com/x/web-interface/ranking/index?day=${this.rankDays}`);const{getWatchlaterList:i}=await t.importAsync("watchlater-api");const e=await i();if(a.code!==0){throw new Error(a.message)}this.cards=a.data.map(a=>{return{id:a.aid,aid:parseInt(a.aid),title:a.title,upID:a.mid,upName:a.author,coverUrl:a.pic.replace("http://","https://"),description:a.description,durationText:a.duration,playCount:formatCount(a.play),coins:formatCount(a.coins),favorites:formatCount(a.favorites),watchlater:e.includes(a.aid)}})}catch(a){Toast.error(a.message,"排行",3e3)}finally{this.loading=false}}})}}})();

View File

@ -1 +1 @@
(()=>{return(e,i)=>{const t=`<a class=video-card target=_blank :href="'https://www.bilibili.com/av' + aid"><div class=cover-container><dpi-img class=cover :src=coverUrl :size="{height: 120, width: 200}"></dpi-img><div class=duration>{{durationText}}</div><div class=watchlater @click.stop.prevent=toggleWatchlater()><i class=mdi :class="{'mdi-clock-outline': !watchlater, 'mdi-check-circle': watchlater}"></i>{{watchlater ? '已添加' : '稍后再看'}}</div></div><h1 class=title :title=title>{{title}}</h1><div class=topics v-if="topics && topics.length"><a class=topic v-for="topic of topics":key=topic.id target=_blank :href="'https://t.bilibili.com/topic/name/' + topic.name + '/feed'">#{{topic.name}}#</a></div><pre class="description single-line":title=description v-else>{{description}}</pre><a class=up :class="{'no-face': !upFaceUrl}"target=_blank :href="'https://space.bilibili.com/' + upID"><dpi-img v-if=upFaceUrl class=face :src=upFaceUrl :size=24></dpi-img><icon v-else icon=up type=extended></icon><div class=name :title=upName>{{upName}}</div></a><div class=stats><template v-if=like><icon type=extended icon=like></icon>{{like}}</template><icon type=extended icon=play></icon>{{playCount}}<template v-if=danmakuCount><icon type=extended icon=danmaku></icon>{{danmakuCount}}</template></div></a>`;i.applyStyleFromText(`.video-card{display:grid;grid-template-columns:200px 1fr;grid-template-rows:3fr 2fr 3fr;grid-template-areas:"cover title" "cover description" "cover up";height:var(--card-height);width:var(--card-width);color:#000;border-radius:16px;box-shadow:0 2px 6px 0 #0002;margin-right:var(--card-margin);margin-bottom:var(--card-margin)}body.dark .video-card{background-color:#282828;color:#fff}.video-card>*{justify-self:self-start;align-self:center}.video-card:hover{transform:scale(1.02);transition:.1s cubic-bezier(.39,.58,.57,1)}.video-card:hover .duration,.video-card:hover .watchlater{opacity:1}.video-card .duration,.video-card .watchlater{opacity:0}.video-card .cover-container{grid-area:cover;position:relative}.video-card .cover-container .cover{border-radius:16px 0 0 16px;object-fit:cover}.video-card .cover-container>:not(.cover){position:absolute}.video-card .cover-container .duration,.video-card .cover-container .watchlater{bottom:6px;padding:4px 8px;background-color:#000a;color:#fff;border-radius:14px;height:24px}.video-card .cover-container .duration .mdi,.video-card .cover-container .watchlater .mdi{font-size:12pt;line-height:1;margin-right:4px}.video-card .cover-container .duration{left:6px}.video-card .cover-container .watchlater{right:6px;display:flex;align-items:center;padding-left:4px}.video-card .title{grid-area:title;font-size:12pt;font-weight:700;color:inherit;padding:0 12px;white-space:nowrap;overflow:hidden;justify-self:stretch;text-overflow:ellipsis}.video-card .topics{grid-area:description;display:flex;align-items:center;margin-left:12px}.video-card .topics .topic{color:inherit;padding:4px 8px;background-color:#8882;margin-right:8px;border-radius:14px}.video-card .description{grid-area:description;color:inherit;overflow:auto;align-self:stretch;justify-self:stretch;margin:0 12px;white-space:pre-wrap;line-height:1.5;scrollbar-width:none!important}.video-card .description::-webkit-scrollbar{width:0!important}.video-card .description.single-line{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.video-card .stats,.video-card .up{grid-area:up}.video-card .up{margin-left:12px;display:flex;align-items:center;padding:2px;background-color:#8882;border-radius:14px;color:inherit}.video-card .up .face{border-radius:50%}.video-card .up .name{margin:0 8px}.video-card .up:hover .name{color:var(--theme-color)}.video-card .stats{justify-self:self-end;margin-right:12px;display:flex;align-items:center;opacity:.5}.video-card .stats .be-icon{font-size:12pt;margin:0 4px 0 12px}`,"video-card-style");return{export:Object.assign({template:t},{props:["data"],components:{"dpi-img":()=>i.importAsync("dpi-img.vue"),Icon:()=>i.importAsync("icon.vue")},data(){return{...this.data}},methods:{async toggleWatchlater(){try{this.watchlater=!this.watchlater;const{toggleWatchlater:e}=await i.importAsync("watchlater-api");e(this.aid.toString(),this.watchlater)}catch(e){this.watchlater=!this.watchlater;Toast.error(e.message,"稍后再看操作失败",3e3)}}}})}}})(); (()=>{return(e,i)=>{const t=`<a class=video-card target=_blank :href="'https://www.bilibili.com/av' + aid"><div class=cover-container><dpi-img class=cover :src=coverUrl :size="{height: 120, width: 200}"></dpi-img><div class=duration>{{durationText}}</div><div class=watchlater @click.stop.prevent=toggleWatchlater()><i class=mdi :class="{'mdi-clock-outline': !watchlater, 'mdi-check-circle': watchlater}"></i>{{watchlater ? '已添加' : '稍后再看'}}</div></div><h1 class=title :title=title>{{title}}</h1><div class=topics v-if="topics && topics.length"><a class=topic v-for="topic of topics":key=topic.id target=_blank :href="'https://t.bilibili.com/topic/name/' + topic.name + '/feed'">#{{topic.name}}#</a></div><pre class="description single-line":title=description v-else>{{description}}</pre><a class=up :class="{'no-face': !upFaceUrl}"target=_blank :href="'https://space.bilibili.com/' + upID"><dpi-img v-if=upFaceUrl class=face :src=upFaceUrl :size=24></dpi-img><icon v-else icon=up type=extended></icon><div class=name :title=upName>{{upName}}</div></a><div class=stats><template v-if=like><icon type=extended icon=like-outline></icon>{{like}}</template><template v-if=coins><icon type=home icon=coin-outline></icon>{{coins}}</template><template v-if=favorites><icon type=home icon=favorites-outline></icon>{{favorites}}</template><icon type=extended icon=play></icon>{{playCount}}<template v-if=danmakuCount><icon type=extended icon=danmaku></icon>{{danmakuCount}}</template></div></a>`;i.applyStyleFromText(`.video-card{display:grid;grid-template-columns:200px 1fr;grid-template-rows:3fr 2fr 3fr;grid-template-areas:"cover title" "cover description" "cover up";height:var(--card-height);width:var(--card-width);color:#000;border-radius:16px;box-shadow:0 2px 6px 0 #0002;margin-right:var(--card-margin);margin-bottom:var(--card-margin)}body.dark .video-card{background-color:#282828;color:#fff}.video-card>*{justify-self:self-start;align-self:center}.video-card:hover{transform:scale(1.02);transition:.1s cubic-bezier(.39,.58,.57,1)}.video-card:hover .duration,.video-card:hover .watchlater{opacity:1}.video-card .duration,.video-card .watchlater{opacity:0}.video-card .cover-container{grid-area:cover;position:relative}.video-card .cover-container .cover{border-radius:16px 0 0 16px;object-fit:cover}.video-card .cover-container>:not(.cover){position:absolute}.video-card .cover-container .duration,.video-card .cover-container .watchlater{bottom:6px;padding:4px 8px;background-color:#000a;color:#fff;border-radius:14px;height:24px}.video-card .cover-container .duration .mdi,.video-card .cover-container .watchlater .mdi{font-size:12pt;line-height:1;margin-right:4px}.video-card .cover-container .duration{left:6px}.video-card .cover-container .watchlater{right:6px;display:flex;align-items:center;padding-left:4px}.video-card .title{grid-area:title;font-size:12pt;font-weight:700;color:inherit;padding:0 12px;white-space:nowrap;overflow:hidden;justify-self:stretch;text-overflow:ellipsis}.video-card .topics{grid-area:description;display:flex;align-items:center;margin-left:12px}.video-card .topics .topic{color:inherit;padding:4px 8px;background-color:#8882;margin-right:8px;border-radius:14px}.video-card .description{grid-area:description;color:inherit;overflow:auto;align-self:stretch;justify-self:stretch;margin:0 12px;white-space:pre-wrap;line-height:1.5;scrollbar-width:none!important}.video-card .description::-webkit-scrollbar{width:0!important}.video-card .description.single-line{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.video-card .stats,.video-card .up{grid-area:up}.video-card .up{margin-left:12px;display:flex;align-items:center;padding:2px;background-color:#8882;border-radius:14px;color:inherit}.video-card .up.no-face{background-color:transparent;padding:0}.video-card .up.no-face .be-icon{font-size:14pt;opacity:.75}.video-card .up .face{border-radius:50%}.video-card .up .name{margin:0 8px}.video-card .up:hover .name{color:var(--theme-color)}.video-card .stats{justify-self:self-end;margin-right:12px;display:flex;align-items:center;opacity:.5}.video-card .stats .be-icon{font-size:12pt;margin:0 4px 0 12px}.video-card .stats .be-icon.be-iconfont-favorites-outline{font-size:14pt}.video-card .stats .be-icon.be-iconfont-coin-outline{font-size:11pt}`,"video-card-style");return{export:Object.assign({template:t},{props:["data"],components:{"dpi-img":()=>i.importAsync("dpi-img.vue"),Icon:()=>i.importAsync("icon.vue")},data(){return{upFaceUrl:"",danmakuCount:"",like:"",coins:"",favorites:"",dynamic:"",topics:[],...this.data}},methods:{async toggleWatchlater(){try{this.watchlater=!this.watchlater;const{toggleWatchlater:e}=await i.importAsync("watchlater-api");e(this.aid.toString(),this.watchlater)}catch(e){this.watchlater=!this.watchlater;Toast.error(e.message,"稍后再看操作失败",3e3)}}}})}}})();

View File

@ -116,9 +116,12 @@ export default {
&.be-iconfont-bind-email::before { &.be-iconfont-bind-email::before {
content: '\E735'; content: '\E735';
} }
&.be-iconfont-coin::before { &.be-iconfont-coin-outline::before {
content: '\E734'; content: '\E734';
} }
&.be-iconfont-coin::before {
content: '\E6E4';
}
&.be-iconfont-b-coin::before { &.be-iconfont-b-coin::before {
content: '\E736'; content: '\E736';
} }
@ -128,9 +131,12 @@ export default {
&.be-iconfont-message::before { &.be-iconfont-message::before {
content: '\E731'; content: '\E731';
} }
&.be-iconfont-favorite::before { &.be-iconfont-favorites-outline::before {
content: '\E730'; content: '\E730';
} }
&.be-iconfont-favorites::before {
content: '\E6E1';
}
&.be-iconfont-history::before { &.be-iconfont-history::before {
content: '\E72F'; content: '\E72F';
} }
@ -146,5 +152,14 @@ export default {
&.be-iconfont-like::before { &.be-iconfont-like::before {
content: '\E6E0'; content: '\E6E0';
} }
&.be-iconfont-like-outline::before {
content: '\E63A';
}
&.be-iconfont-up::before {
content: '\E723';
}
&.be-iconfont-up-outline::before {
content: '\E741';
}
} }
</style> </style>

View File

@ -1,18 +1,72 @@
<template> <template>
<div class="rank-list"> <div class="rank-days-list">
<!-- <div class="loading" v-if="loading"> <div class="loading" v-if="loading">
<i class="mdi mdi-18px mdi-loading mdi-spin"></i>加载中... <i class="mdi mdi-18px mdi-loading mdi-spin"></i>加载中...
</div> </div>
<div class="cards" v-else-if="cards.length"> <div class="cards" v-else-if="cards.length">
<video-card v-for="card of cards" :key="card.id" :data="card"></video-card>
</div> </div>
<div class="empty" v-else>空空如也哦 =ω=</div> --> <div class="empty" v-else>空空如也哦 =ω=</div>
wryyyy
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { VideoCardInfo } from '../video-card.vue'
export default { export default {
components: {
VideoCard: () => import('../video-card.vue')
},
props: ['rankDays'],
data() {
return {
cards: [] as VideoCardInfo[],
loading: true,
}
},
async mounted() {
try {
const json = await Ajax.getJsonWithCredentials(
`https://api.bilibili.com/x/web-interface/ranking/index?day=${this.rankDays}`
)
const { getWatchlaterList } = await import(
'../../../video/watchlater-api'
)
const watchlaterList = (await getWatchlaterList()) as number[]
if (json.code !== 0) {
throw new Error(json.message)
}
this.cards = json.data.map(
(card: any): VideoCardInfo => {
return {
id: card.aid,
aid: parseInt(card.aid),
title: card.title,
upID: card.mid,
upName: card.author,
coverUrl: card.pic.replace('http://', 'https://'),
description: card.description,
durationText: card.duration,
playCount: formatCount(card.play),
coins: formatCount(card.coins),
favorites: formatCount(card.favorites),
watchlater: watchlaterList.includes(card.aid)
}
}
)
} catch (error) {
Toast.error(error.message, '排行', 3000)
} finally {
this.loading = false
}
}
} }
</script> </script>
<style lang="scss">
.rank-days-list {
.cards {
display: flex;
flex-wrap: wrap;
align-items: center;
}
}
</style>

View File

@ -31,9 +31,17 @@
</a> </a>
<div class="stats"> <div class="stats">
<template v-if="like"> <template v-if="like">
<Icon type="extended" icon="like"></Icon> <Icon type="extended" icon="like-outline"></Icon>
{{like}} {{like}}
</template> </template>
<template v-if="coins">
<Icon type="home" icon="coin-outline"></Icon>
{{coins}}
</template>
<template v-if="favorites">
<Icon type="home" icon="favorites-outline"></Icon>
{{favorites}}
</template>
<Icon type="extended" icon="play"></Icon> <Icon type="extended" icon="play"></Icon>
{{playCount}} {{playCount}}
<template v-if="danmakuCount"> <template v-if="danmakuCount">
@ -61,6 +69,7 @@ export interface VideoCardInfo {
dynamic?: string dynamic?: string
like?: string like?: string
coins?: string coins?: string
favorites?: string
timestamp?: number timestamp?: number
time?: Date time?: Date
topics?: { topics?: {
@ -77,6 +86,13 @@ export default {
}, },
data() { data() {
return { return {
upFaceUrl: '',
danmakuCount: '',
like: '',
coins: '',
favorites: '',
dynamic: '',
topics: [],
...this.data ...this.data
} as VideoCardInfo } as VideoCardInfo
}, },
@ -84,7 +100,9 @@ export default {
async toggleWatchlater() { async toggleWatchlater() {
try { try {
this.watchlater = !this.watchlater this.watchlater = !this.watchlater
const { toggleWatchlater: toggle } = await import('../../video/watchlater-api') const { toggleWatchlater: toggle } = await import(
'../../video/watchlater-api'
)
toggle(this.aid.toString(), this.watchlater) toggle(this.aid.toString(), this.watchlater)
} catch (error) { } catch (error) {
this.watchlater = !this.watchlater this.watchlater = !this.watchlater
@ -224,6 +242,14 @@ export default {
background-color: #8882; background-color: #8882;
border-radius: 14px; border-radius: 14px;
color: inherit; color: inherit;
&.no-face {
background-color: transparent;
padding: 0;
.be-icon {
font-size: 14pt;
opacity: 0.75;
}
}
.face { .face {
border-radius: 50%; border-radius: 50%;
} }
@ -243,6 +269,12 @@ export default {
.be-icon { .be-icon {
font-size: 12pt; font-size: 12pt;
margin: 0 4px 0 12px; margin: 0 4px 0 12px;
&.be-iconfont-favorites-outline {
font-size: 14pt;
}
&.be-iconfont-coin-outline {
font-size: 11pt;
}
} }
} }
} }