新增关注功能

This commit is contained in:
ember 2025-12-03 02:26:57 +08:00
parent 66d6613586
commit c5b791224b
32 changed files with 564 additions and 75 deletions

1
dist/css/152.6a5f2196.css vendored Normal file

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

1
dist/css/328.5b0ffb90.css vendored Normal file

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

1
dist/css/app.e5a7247c.css vendored Normal file

File diff suppressed because one or more lines are too long

2
dist/index.html vendored
View File

@ -1 +1 @@
<!doctype html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>NEU小站</title><script defer="defer" src="/js/chunk-vendors.908af258.js"></script><script defer="defer" src="/js/app.2c2c1614.js"></script><link href="/css/chunk-vendors.c52e575a.css" rel="stylesheet"><link href="/css/app.86c60691.css" rel="stylesheet"></head><body><noscript><strong>抱歉NEU小站无法在没有 JavaScript 的情况下正常工作。请启用 JavaScript 以继续。</strong></noscript><div id="app"></div></body></html> <!doctype html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>NEU小站</title><script defer="defer" src="/js/chunk-vendors.63c63273.js"></script><script defer="defer" src="/js/app.7dc19ff9.js"></script><link href="/css/chunk-vendors.c52e575a.css" rel="stylesheet"><link href="/css/app.e5a7247c.css" rel="stylesheet"></head><body><noscript><strong>抱歉NEU小站无法在没有 JavaScript 的情况下正常工作。请启用 JavaScript 以继续。</strong></noscript><div id="app"></div></body></html>

2
dist/js/152.1ed805ca.js vendored Normal file
View File

@ -0,0 +1,2 @@
"use strict";(self["webpackChunknewfront"]=self["webpackChunknewfront"]||[]).push([[152],{7152:function(a,n,t){t.r(n),t.d(n,{default:function(){return z}});t(4114);var s=t(6768),e=t(4232);const i={class:"ranking-page"},r={class:"container"},o={key:0,class:"loading-container"},l={key:1,class:"error-container"},c={key:2,class:"ranking-content"},k={key:0,class:"my-ranking-block"},u={class:"my-rank-content"},d={class:"my-rank-text"},g={class:"value-wrapper"},v={key:0,class:"value unranked"},p={key:1,class:"value ranked"},h={class:"my-rank-tip"},y={key:0,class:"my-rank-opt-out-tip"},m={class:"ranking-list"},P={class:"rank-badge"},b={key:0,class:"medal-icon"},C={key:1,class:"rank-number"},L={class:"user-info-wrapper"},f={class:"contribution-stats"},E={class:"stat-box"},X={class:"stat-value"},w={key:1,class:"pagination"},_=["disabled"],I={class:"page-info"},R=["disabled"];function A(a,n,t,A,q,x){const F=(0,s.g2)("NavBar"),N=(0,s.g2)("UserMeta");return(0,s.uX)(),(0,s.CE)("div",i,[(0,s.bF)(F),(0,s.Lk)("div",r,[n[9]||(n[9]=(0,s.Fv)('<div class="ranking-header" data-v-381c5470><h1 class="page-title" data-v-381c5470>🏆 投稿排行榜</h1><p class="page-subtitle" data-v-381c5470>感谢每一位为 NEU 小站贡献优质内容的创作者❤️</p><div class="ranking-notice" data-v-381c5470><i class="info-icon" data-v-381c5470></i><span data-v-381c5470>本榜单每小时更新一次,综合考量投稿数量、投稿质量及有效浏览量计算得出。</span></div></div>',1)),q.loading?((0,s.uX)(),(0,s.CE)("div",o,n[4]||(n[4]=[(0,s.Lk)("div",{class:"spinner"},null,-1),(0,s.Lk)("p",null,"正在加载排行榜...",-1)]))):q.error?((0,s.uX)(),(0,s.CE)("div",l,[(0,s.Lk)("p",null,(0,e.v_)(q.error),1),(0,s.Lk)("button",{onClick:n[0]||(n[0]=a=>x.fetchRanking(q.currentPage)),class:"retry-btn"},"重试")])):((0,s.uX)(),(0,s.CE)("div",c,[null!==q.myPosition&&void 0!==q.myPosition?((0,s.uX)(),(0,s.CE)("div",k,[(0,s.Lk)("div",u,[(0,s.Lk)("div",d,[n[5]||(n[5]=(0,s.Lk)("span",{class:"label"},"我的当前排名",-1)),(0,s.Lk)("div",g,[-1===q.myPosition?((0,s.uX)(),(0,s.CE)("span",v,"未上榜")):((0,s.uX)(),(0,s.CE)("span",p,"NO."+(0,e.v_)(q.myPosition),1))])]),(0,s.Lk)("div",h,(0,e.v_)(-1===q.myPosition?"您暂未上榜哦~":"太厉害了,感谢您的贡献~"),1)]),-1!==q.myPosition?((0,s.uX)(),(0,s.CE)("div",y,[n[6]||(n[6]=(0,s.eW)(" 您可以在")),(0,s.Lk)("span",{class:"link-text",onClick:n[1]||(n[1]=n=>a.$router.push("/user-center"))},"【个人中心】"),n[7]||(n[7]=(0,s.eW)("—【我的投稿记录】处自愿选择是否加入排行榜。 "))])):(0,s.Q3)("",!0)])):(0,s.Q3)("",!0),(0,s.Lk)("div",m,[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(q.rankingData,((a,t)=>((0,s.uX)(),(0,s.CE)("div",{key:a.userId,class:(0,e.C4)(["ranking-item",x.getRankClass(a.rank)])},[(0,s.Lk)("div",P,[a.rank<=3?((0,s.uX)(),(0,s.CE)("span",b,(0,e.v_)(x.getMedalIcon(a.rank)),1)):((0,s.uX)(),(0,s.CE)("span",C,(0,e.v_)(a.rank),1))]),(0,s.Lk)("div",L,[(0,s.bF)(N,{id:a.userId},null,8,["id"])]),(0,s.Lk)("div",f,[(0,s.Lk)("div",E,[n[8]||(n[8]=(0,s.Lk)("span",{class:"stat-label"},"投稿数量",-1)),(0,s.Lk)("span",X,(0,e.v_)(a.contributionCount),1)])])],2)))),128))]),q.totalPages>1?((0,s.uX)(),(0,s.CE)("div",w,[(0,s.Lk)("button",{class:"page-btn",disabled:1===q.currentPage,onClick:n[2]||(n[2]=a=>x.changePage(q.currentPage-1))}," 上一页 ",8,_),(0,s.Lk)("span",I,(0,e.v_)(q.currentPage)+" / "+(0,e.v_)(q.totalPages),1),(0,s.Lk)("button",{class:"page-btn",disabled:q.currentPage===q.totalPages,onClick:n[3]||(n[3]=a=>x.changePage(q.currentPage+1))}," 下一页 ",8,R)])):(0,s.Q3)("",!0)]))])])}var q=t(8545),x=t(7732),F=t(4373),N=t(8704),$={name:"RankingView",components:{NavBar:q.A,UserMeta:x.A},data(){return{rankingData:[],loading:!0,error:null,currentPage:1,totalPages:0,limit:20,myPosition:null}},mounted(){const a=parseInt(this.$route.query.page)||1;this.fetchRanking(a),document.title="投稿排行榜 - NEU 小站"},watch:{"$route.query.page"(a){const n=parseInt(a)||1;n!==this.currentPage&&this.fetchRanking(n)}},methods:{async fetchRanking(a){this.loading=!0,this.error=null;try{const n=N.A.get("token"),t={};n&&(t["Authorization"]=n);const s=await F.A.get("https://newfront.xn--xhq44jb2fzpc.com/ranking",{params:{page:a,limit:this.limit},headers:t}),{data:e,totalPages:i,page:r,my_position:o}=s.data;this.rankingData=e,this.totalPages=i,this.currentPage=r,this.myPosition=o,window.scrollTo({top:0,behavior:"smooth"})}catch(n){console.error("Failed to fetch ranking:",n),this.error="获取排行榜数据失败,请稍后重试"}finally{this.loading=!1}},changePage(a){a>=1&&a<=this.totalPages&&this.$router.push({query:{...this.$route.query,page:a}})},getRankClass(a){return 1===a?"rank-gold":2===a?"rank-silver":3===a?"rank-bronze":""},getMedalIcon(a){const n=["🥇","🥈","🥉"];return n[a-1]||""}}},M=t(1241);const U=(0,M.A)($,[["render",A],["__scopeId","data-v-381c5470"]]);var z=U}}]);
//# sourceMappingURL=152.1ed805ca.js.map

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More