newfront/dist/js/556.fbabd7eb.js
2025-12-25 18:32:52 +08:00

2 lines
10 KiB
JavaScript

"use strict";(self["webpackChunknewfront"]=self["webpackChunknewfront"]||[]).push([[556],{556:function(e,t,a){a.r(t),a.d(t,{default:function(){return $}});var s=a(6768),i=a(4232),l=a(5130);const c={class:"resource-view"},r={class:"container"},n={class:"view-tabs"},o={key:0,class:"recent-resources"},g={key:1,class:"all-resources"},d={class:"filters-container"},h={class:"tag-selection college-category"},u={class:"tag-header"},k={class:"tag-controls"},C={class:"tags-container"},p=["onClick"],v={key:0,class:"check-icon"},y={class:"tag-selection resource-category"},T={class:"tag-header"},f={class:"tag-controls"},P={class:"tags-container"},L=["onClick"],b={key:0,class:"check-icon"};function m(e,t,a,m,E,w){const X=(0,s.g2)("NavBar"),S=(0,s.g2)("CardList");return(0,s.uX)(),(0,s.CE)("div",c,[(0,s.bF)(X),(0,s.Lk)("div",r,[t[8]||(t[8]=(0,s.Lk)("h1",{class:"page-title"},"资源共享",-1)),t[9]||(t[9]=(0,s.Lk)("div",{class:"intro-card"},[(0,s.Lk)("p",{class:"intro-text"}," 为鼓励大家积极投稿,本站投稿者可获得东币奖励,以及专属访问密码以访问本站加密资源,感谢支持~ ")],-1)),(0,s.Lk)("div",n,[(0,s.Lk)("div",{class:(0,i.C4)(["tab-item",{active:"recent"===E.activeTab}]),onClick:t[0]||(t[0]=e=>w.switchTab("recent"))}," 🔥 近期热门 ",2),(0,s.Lk)("div",{class:(0,i.C4)(["tab-item",{active:"all"===E.activeTab}]),onClick:t[1]||(t[1]=e=>w.switchTab("all"))}," 📚 所有资源 ",2)]),"recent"===E.activeTab?((0,s.uX)(),(0,s.CE)("div",o,[(0,s.bF)(S,{apiEndpoint:"/search/recent",mode:0,pageSize:30,showPagination:!1})])):(0,s.Q3)("",!0),"all"===E.activeTab?((0,s.uX)(),(0,s.CE)("div",g,[(0,s.Lk)("div",{class:"filter-control",onClick:t[2]||(t[2]=(...e)=>w.toggleFilterPanel&&w.toggleFilterPanel(...e))},[t[5]||(t[5]=(0,s.Lk)("h2",{class:"filter-title"},"筛选",-1)),(0,s.Lk)("span",{class:(0,i.C4)(["toggle-icon",{"is-active":!E.filtersCollapsed}])},"▼",2)]),(0,s.bo)((0,s.Lk)("div",d,[(0,s.Lk)("div",h,[(0,s.Lk)("div",u,[t[6]||(t[6]=(0,s.Lk)("h2",{class:"tag-title"},"按学院筛选",-1)),(0,s.Lk)("div",k,[(0,s.Lk)("button",{class:"tag-control-btn",onClick:t[3]||(t[3]=(...e)=>w.clearCollegeTags&&w.clearCollegeTags(...e))},"清除")])]),(0,s.Lk)("div",C,[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(E.collegeTags,(e=>((0,s.uX)(),(0,s.CE)("div",{key:e.id,class:(0,i.C4)(["tag-chip",{active:E.selectedCollegeTags.includes(e.id)}]),onClick:t=>w.toggleCollegeTag(e.id)},[(0,s.eW)((0,i.v_)(e.name)+" ",1),E.selectedCollegeTags.includes(e.id)?((0,s.uX)(),(0,s.CE)("span",v,"✓")):(0,s.Q3)("",!0)],10,p)))),128))])]),(0,s.Lk)("div",y,[(0,s.Lk)("div",T,[t[7]||(t[7]=(0,s.Lk)("h2",{class:"tag-title"},"按资源类别",-1)),(0,s.Lk)("div",f,[(0,s.Lk)("button",{class:"tag-control-btn",onClick:t[4]||(t[4]=(...e)=>w.clearCategoryTags&&w.clearCategoryTags(...e))},"清除")])]),(0,s.Lk)("div",P,[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(E.categoryTags,(e=>((0,s.uX)(),(0,s.CE)("div",{key:e.id,class:(0,i.C4)(["tag-chip",{active:E.selectedCategoryTags.includes(e.id)}]),onClick:t=>w.toggleCategoryTag(e.id)},[(0,s.eW)((0,i.v_)(e.name)+" ",1),E.selectedCategoryTags.includes(e.id)?((0,s.uX)(),(0,s.CE)("span",b,"✓")):(0,s.Q3)("",!0)],10,L)))),128))])])],512),[[l.aG,!E.filtersCollapsed]]),(0,s.bF)(S,{searchParams:w.searchParams,mode:1,pageSize:12},null,8,["searchParams"])])):(0,s.Q3)("",!0)])])}a(4114),a(8111),a(2489);var E=a(513),w=a(7650),X={name:"ResourceView",components:{NavBar:E.A,CardList:w.A},data(){return{activeTab:"recent",filtersCollapsed:!0,selectedCollegeTags:[],selectedCategoryTags:[],collegeTags:[],categoryTags:[],loadingTags:!1,tagLoadingError:null}},created(){document.title="资源共享 - NEU小站",this.fetchSelectionTags(),this.$route.query.articlePage&&(this.activeTab="all")},computed:{searchParams(){const e={section:1},t=[...this.selectedCollegeTags,...this.selectedCategoryTags];return t.length>0&&(e.tags=t),e}},methods:{switchTab(e){this.activeTab=e},async fetchSelectionTags(){this.loadingTags=!0,this.tagLoadingError=null;try{const e="https://newfront.xn--xhq44jb2fzpc.com/search/selection-tag",t=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({area_ids:[1,2]})});if(!t.ok){const e=await t.json();throw new Error(e.message||`HTTP error! status: ${t.status}`)}const a=await t.json();this.collegeTags=a["1"]||[],this.categoryTags=a["2"]||[]}catch(e){console.error("获取筛选标签失败:",e),this.tagLoadingError="无法加载筛选标签,请稍后重试。",this.collegeTags=[],this.categoryTags=[]}finally{this.loadingTags=!1}},toggleFilterPanel(){this.filtersCollapsed=!this.filtersCollapsed},toggleCollegeTag(e){this.selectedCollegeTags.includes(e)?this.selectedCollegeTags=this.selectedCollegeTags.filter((t=>t!==e)):this.selectedCollegeTags.push(e)},toggleCategoryTag(e){this.selectedCategoryTags.includes(e)?this.selectedCategoryTags=this.selectedCategoryTags.filter((t=>t!==e)):this.selectedCategoryTags.push(e)},clearCollegeTags(){this.selectedCollegeTags=[]},clearCategoryTags(){this.selectedCategoryTags=[]}}},S=a(1241);const _=(0,S.A)(X,[["render",m],["__scopeId","data-v-7a312f48"]]);var $=_},7650:function(e,t,a){a.d(t,{A:function(){return I}});var s=a(6768),i=a(4232);const l={class:"card-list-container"},c={key:0,class:"card-grid"},r=["onClick"],n={class:"card-content"},o={class:"card-title"},g={class:"card-tags"},d={key:0,class:"article-tag official"},h={key:1,class:"article-tag highlight"},u={key:2,class:"article-tag top"},k={class:"card-meta"},C={class:"card-section"},p={class:"card-date"},v={class:"card-tags-list"},y={key:0,class:"no-data"},T={key:1,class:"table-container"},f={class:"articles-table"},P=["onClick"],L={class:"rank-cell"},b={class:"title-cell"},m={class:"title-content"},E={class:"article-title"},w={key:0,class:"no-data"},X={key:2,class:"loading"},S={key:3,class:"pagination"},_=["disabled"],$={class:"page-info"},A=["disabled"];function F(e,t,a,F,Q,q){return(0,s.uX)(),(0,s.CE)("div",l,[1===a.mode?((0,s.uX)(),(0,s.CE)("div",c,[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(Q.articles,(e=>((0,s.uX)(),(0,s.CE)("div",{key:e.id,class:"card",onClick:t=>q.viewArticle(e.id)},[(0,s.Lk)("div",n,[(0,s.Lk)("h3",o,(0,i.v_)(e.title),1),(0,s.Lk)("div",g,[e.official?((0,s.uX)(),(0,s.CE)("span",d,"官方")):(0,s.Q3)("",!0),e.highlight?((0,s.uX)(),(0,s.CE)("span",h,"优质")):(0,s.Q3)("",!0),e.top?((0,s.uX)(),(0,s.CE)("span",u,"置顶")):(0,s.Q3)("",!0)]),(0,s.Lk)("div",k,[(0,s.Lk)("span",C,(0,i.v_)(e.section||"资源共享"),1),(0,s.Lk)("span",p,"更新于 "+(0,i.v_)(q.formatDate(e.updated_at)),1)]),(0,s.Lk)("div",v,[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(e.tags,(e=>((0,s.uX)(),(0,s.CE)("span",{key:e.id,class:"card-tag"},(0,i.v_)(e.name),1)))),128))])])],8,r)))),128)),0!==Q.articles.length||Q.loading?(0,s.Q3)("",!0):((0,s.uX)(),(0,s.CE)("div",y," 暂无符合条件的文章 "))])):((0,s.uX)(),(0,s.CE)("div",T,[(0,s.Lk)("table",f,[(0,s.Lk)("tbody",null,[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(Q.articles,((e,t)=>((0,s.uX)(),(0,s.CE)("tr",{key:e.id,onClick:t=>q.viewArticle(e.id)},[(0,s.Lk)("td",L,[(0,s.Lk)("span",{class:(0,i.C4)(["rank-num",q.getRankClass(t)])},(0,i.v_)((Q.currentPage-1)*a.pageSize+t+1),3)]),(0,s.Lk)("td",b,[(0,s.Lk)("div",m,[(0,s.Lk)("span",E,(0,i.v_)(e.title),1)])])],8,P)))),128))])]),0!==Q.articles.length||Q.loading?(0,s.Q3)("",!0):((0,s.uX)(),(0,s.CE)("div",w," 暂无符合条件的文章 "))])),Q.loading?((0,s.uX)(),(0,s.CE)("div",X,t[2]||(t[2]=[(0,s.Lk)("div",{class:"loading-spinner"},null,-1),(0,s.Lk)("span",null,"正在加载...",-1)]))):(0,s.Q3)("",!0),a.showPagination&&Q.totalPages>1&&!Q.loading?((0,s.uX)(),(0,s.CE)("div",S,[(0,s.Lk)("button",{disabled:1===Q.currentPage,onClick:t[0]||(t[0]=e=>q.changePage(Q.currentPage-1)),class:"pagination-btn"}," 上一页 ",8,_),(0,s.Lk)("span",$,(0,i.v_)(Q.currentPage)+" / "+(0,i.v_)(Q.totalPages),1),(0,s.Lk)("button",{disabled:Q.currentPage===Q.totalPages,onClick:t[1]||(t[1]=e=>q.changePage(Q.currentPage+1)),class:"pagination-btn"}," 下一页 ",8,A)])):(0,s.Q3)("",!0)])}a(4114);var Q={name:"CardList",props:{searchParams:{type:Object,default:()=>({})},mode:{type:Number,default:1},pageSize:{type:Number,default:12},apiEndpoint:{type:String,default:"/search/general"},showPagination:{type:Boolean,default:!0}},data(){return{articles:[],currentPage:1,totalPages:0,total:0,loading:!1}},watch:{searchParams:{handler(){if(!this.showPagination)return this.currentPage=1,void this.fetchArticles();const e=parseInt(this.$route.query.articlePage)||1;1!==e?this.$router.push({query:{...this.$route.query,articlePage:1}}):(this.currentPage=1,this.fetchArticles())},deep:!0},"$route.query.articlePage"(e){if(!this.showPagination)return;const t=parseInt(e)||1;t!==this.currentPage&&(this.currentPage=t,this.fetchArticles())}},created(){if(this.showPagination){const e=parseInt(this.$route.query.articlePage)||1;this.currentPage=e}else this.currentPage=1},mounted(){this.fetchArticles()},methods:{async fetchArticles(){this.loading=!0;try{const e="https://newfront.xn--xhq44jb2fzpc.com",t=this.apiEndpoint.startsWith("/")?this.apiEndpoint:`/${this.apiEndpoint}`,a=`${e}${t}`,s=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...this.searchParams,mode:this.mode,page:this.currentPage,pageSize:this.pageSize})});if(!s.ok)throw new Error("获取文章失败");const i=await s.json();this.articles=i.articles,this.totalPages=i.totalPages,this.total=i.total}catch(e){console.error("获取文章数据失败:",e),this.articles=[]}finally{this.loading=!1}},getSectionName(e){return 0===e?"攻略指南":"资源共享"},formatDate(e){if(!e)return"";const t=new Date(e);return t.toLocaleDateString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit"})},changePage(e){e>=1&&e<=this.totalPages&&(this.$router.push({query:{...this.$route.query,articlePage:e}}),window.scrollTo({top:0,behavior:"smooth"}))},viewArticle(e){this.$router.push(`/article/${e}`)},getRankClass(e){const t=(this.currentPage-1)*this.pageSize+e+1;return 1===t?"rank-1":2===t?"rank-2":3===t?"rank-3":""}}},q=a(1241);const z=(0,q.A)(Q,[["render",F],["__scopeId","data-v-34572a42"]]);var I=z}}]);
//# sourceMappingURL=556.fbabd7eb.js.map