"use strict";(self["webpackChunknewfront"]=self["webpackChunknewfront"]||[]).push([[368],{4853:function(e,a,t){t.d(a,{A:function(){return g}});var s=t(6768),l=t(4232);const i={key:0,class:"loading-container"},c={class:"loading-content"},o={class:"loading-text"};function n(e,a,t,n,r,h){return t.visible?((0,s.uX)(),(0,s.CE)("div",i,[a[1]||(a[1]=(0,s.Lk)("div",{class:"loading-overlay"},null,-1)),(0,s.Lk)("div",c,[a[0]||(a[0]=(0,s.Lk)("div",{class:"loading-spinner"},[(0,s.Lk)("div",{class:"spinner"})],-1)),(0,s.Lk)("div",o,(0,l.v_)(t.text),1)])])):(0,s.Q3)("",!0)}var r={name:"Loading",props:{visible:{type:Boolean,default:!1},text:{type:String,default:"加载中..."}}},h=t(1241);const d=(0,h.A)(r,[["render",n],["__scopeId","data-v-032dd7a4"]]);var g=d},7368:function(e,a,t){t.r(a),t.d(a,{default:function(){return ce}});var s=t(6768),l=t(5130),i=t(4232);const c={class:"search-view"},o={class:"container"},n={class:"search-panel"},r={class:"search-form"},h={class:"form-group"},d={class:"hot-search"},g={class:"hot-tags"},u=["onClick"],p={class:"advanced-search"},k={class:"advanced-options"},v={class:"form-group"},m={class:"radio-group"},f={class:"form-group"},L={class:"tags-selector"},b=["onClick"],P={key:0,class:"no-tags"},C={class:"form-group"},y={class:"checkbox-group"},S=["checked"],w=["checked"],T=["checked"],E={class:"form-actions"},X={key:0,class:"search-results"},A={class:"results-header"},_={key:0},x={key:1},z={key:0,class:"results-list simple-mode"},F=["onClick"],R={class:"article-title"},N={key:1,class:"results-list detailed-mode"},I=["onClick"],U={class:"article-header"},j={class:"article-title"},K={class:"article-badges"},Q={key:0,class:"badge top"},W={key:1,class:"badge highlight"},$={key:2,class:"badge official"},q={class:"article-meta"},D={class:"article-section"},V={class:"article-date"},B={class:"article-tags"},O=["onClick"],J={key:2,class:"pagination"},G=["disabled"],H={class:"page-info"},M=["disabled"],Y={key:1,class:"loading-container"};function Z(e,a,t,Z,ee,ae){const te=(0,s.g2)("Navbar"),se=(0,s.g2)("Loading");return(0,s.uX)(),(0,s.CE)("div",c,[(0,s.bF)(te),(0,s.Lk)("div",o,[(0,s.Lk)("div",n,[a[25]||(a[25]=(0,s.Lk)("h1",{class:"search-title"},"内容检索",-1)),(0,s.Lk)("div",r,[(0,s.Lk)("div",h,[a[13]||(a[13]=(0,s.Lk)("label",null,"标题或内容:",-1)),(0,s.bo)((0,s.Lk)("input",{type:"text","onUpdate:modelValue":a[0]||(a[0]=e=>ee.searchParams.content=e),placeholder:"搜索标题或内容",onKeyup:a[1]||(a[1]=(0,l.jR)((e=>ae.performSearch(1)),["enter"]))},null,544),[[l.Jo,ee.searchParams.content]])]),(0,s.Lk)("div",d,[a[14]||(a[14]=(0,s.Lk)("h3",null,"近期热搜",-1)),(0,s.Lk)("div",g,[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(ee.hotSearchTags,((e,a)=>((0,s.uX)(),(0,s.CE)("div",{key:a,class:"hot-tag",onClick:a=>ae.quickSearch(e)},(0,i.v_)(e),9,u)))),128))])]),(0,s.Lk)("div",p,[(0,s.Lk)("div",{class:"advanced-toggle",onClick:a[2]||(a[2]=(...e)=>ae.toggleAdvanced&&ae.toggleAdvanced(...e))},[a[15]||(a[15]=(0,s.Lk)("span",null,"高级筛选",-1)),(0,s.Lk)("i",{class:(0,i.C4)(["toggle-icon",{expanded:ee.showAdvanced}])},(0,i.v_)(ee.showAdvanced?"▲":"▼"),3)]),(0,s.bo)((0,s.Lk)("div",k,[(0,s.Lk)("div",v,[a[19]||(a[19]=(0,s.Lk)("label",null,"板块:",-1)),(0,s.Lk)("div",m,[(0,s.Lk)("label",null,[(0,s.bo)((0,s.Lk)("input",{type:"radio","onUpdate:modelValue":a[3]||(a[3]=e=>ee.searchParams.section=e),value:null},null,512),[[l.XL,ee.searchParams.section]]),a[16]||(a[16]=(0,s.eW)(" 全部 "))]),(0,s.Lk)("label",null,[(0,s.bo)((0,s.Lk)("input",{type:"radio","onUpdate:modelValue":a[4]||(a[4]=e=>ee.searchParams.section=e),value:0},null,512),[[l.XL,ee.searchParams.section]]),a[17]||(a[17]=(0,s.eW)(" 攻略指南 "))]),(0,s.Lk)("label",null,[(0,s.bo)((0,s.Lk)("input",{type:"radio","onUpdate:modelValue":a[5]||(a[5]=e=>ee.searchParams.section=e),value:1},null,512),[[l.XL,ee.searchParams.section]]),a[18]||(a[18]=(0,s.eW)(" 资源共享 "))])])]),(0,s.Lk)("div",f,[a[20]||(a[20]=(0,s.Lk)("label",null,"标签:",-1)),(0,s.Lk)("div",L,[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(ee.allTags,(e=>((0,s.uX)(),(0,s.CE)("div",{key:e.id,class:(0,i.C4)(["tag-item",{selected:ee.selectedTags.includes(e.id)}]),onClick:a=>ae.toggleTag(e.id)},(0,i.v_)(e.name),11,b)))),128)),0===ee.allTags.length?((0,s.uX)(),(0,s.CE)("div",P,"加载标签中...")):(0,s.Q3)("",!0)])]),(0,s.Lk)("div",C,[a[24]||(a[24]=(0,s.Lk)("label",null,"附加筛选:",-1)),(0,s.Lk)("div",y,[(0,s.Lk)("label",null,[(0,s.Lk)("input",{type:"checkbox",checked:1===ee.searchParams.top,onChange:a[6]||(a[6]=e=>ae.toggleFilter("top",e.target.checked))},null,40,S),a[21]||(a[21]=(0,s.eW)(" 置顶 "))]),(0,s.Lk)("label",null,[(0,s.Lk)("input",{type:"checkbox",checked:1===ee.searchParams.highlight,onChange:a[7]||(a[7]=e=>ae.toggleFilter("highlight",e.target.checked))},null,40,w),a[22]||(a[22]=(0,s.eW)(" 优质 "))]),(0,s.Lk)("label",null,[(0,s.Lk)("input",{type:"checkbox",checked:1===ee.searchParams.official,onChange:a[8]||(a[8]=e=>ae.toggleFilter("official",e.target.checked))},null,40,T),a[23]||(a[23]=(0,s.eW)(" 官方内容 "))])])])],512),[[l.aG,ee.showAdvanced]])]),(0,s.Lk)("div",E,[(0,s.Lk)("button",{class:"search-btn",onClick:a[9]||(a[9]=e=>ae.performSearch(1))},"搜索"),(0,s.Lk)("button",{class:"reset-btn",onClick:a[10]||(a[10]=(...e)=>ae.resetSearch&&ae.resetSearch(...e))},"重置")])])]),ee.loading?((0,s.uX)(),(0,s.CE)("div",Y,[(0,s.bF)(se,{visible:!0,text:"搜索中,请稍候..."})])):((0,s.uX)(),(0,s.CE)("div",X,[(0,s.Lk)("div",A,[ee.totalResults>0?((0,s.uX)(),(0,s.CE)("h2",_,"找到 "+(0,i.v_)(ee.totalResults)+" 条结果",1)):((0,s.uX)(),(0,s.CE)("h2",x,"未找到符合条件的结果"))]),0===ee.searchParams.mode?((0,s.uX)(),(0,s.CE)("div",z,[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(ee.searchResults,(e=>((0,s.uX)(),(0,s.CE)("div",{key:e.id,class:"result-item simple",onClick:a=>ae.viewArticle(e.id)},[(0,s.Lk)("div",R,(0,i.v_)(e.title),1)],8,F)))),128))])):((0,s.uX)(),(0,s.CE)("div",N,[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(ee.searchResults,(e=>((0,s.uX)(),(0,s.CE)("div",{key:e.id,class:"result-item detailed",onClick:a=>ae.viewArticle(e.id)},[(0,s.Lk)("div",U,[(0,s.Lk)("h3",j,(0,i.v_)(e.title),1),(0,s.Lk)("div",K,[e.top?((0,s.uX)(),(0,s.CE)("span",Q,"置顶")):(0,s.Q3)("",!0),e.highlight?((0,s.uX)(),(0,s.CE)("span",W,"优质")):(0,s.Q3)("",!0),e.official?((0,s.uX)(),(0,s.CE)("span",$,"官方")):(0,s.Q3)("",!0)])]),(0,s.Lk)("div",q,[(0,s.Lk)("span",D,(0,i.v_)(e.section),1),(0,s.Lk)("span",V,"更新: "+(0,i.v_)(ae.formatDate(e.updated_at)),1)]),(0,s.Lk)("div",B,[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(e.tags,(e=>((0,s.uX)(),(0,s.CE)("div",{key:e.id,class:"tag",onClick:(0,l.D$)((a=>ae.searchByTag(e.id)),["stop"])},(0,i.v_)(e.name),9,O)))),128))])],8,I)))),128))])),ee.totalPages>0?((0,s.uX)(),(0,s.CE)("div",J,[(0,s.Lk)("button",{class:"page-btn",disabled:ee.currentPage<=1,onClick:a[11]||(a[11]=e=>ae.performSearch(ee.currentPage-1))}," 上一页 ",8,G),(0,s.Lk)("div",H,(0,i.v_)(ee.currentPage)+" / "+(0,i.v_)(ee.totalPages),1),(0,s.Lk)("button",{class:"page-btn",disabled:ee.currentPage>=ee.totalPages,onClick:a[12]||(a[12]=e=>ae.performSearch(ee.currentPage+1))}," 下一页 ",8,M)])):(0,s.Q3)("",!0)]))])])}t(4114),t(8111),t(1701);var ee=t(3070),ae=t(4853),te=t(6253),se={name:"SearchView",components:{Navbar:ee.A,Loading:ae.A},data(){return{searchParams:{content:"",section:null,mode:1,pageSize:10,top:null,highlight:null,official:null},allTags:[],selectedTags:[],hotSearchTags:["数值分析","大学物理","高数","概率论","线性代数","毛概"],showAdvanced:!1,searchResults:[],totalResults:0,totalPages:0,currentPage:1,loading:!1,initialized:!1}},created(){document.title="内容检索 - NEU小站",this.loadTags();const e=this.$route.query;if(e.content&&(this.searchParams.content=e.content),void 0!==e.section&&(this.searchParams.section=Number(e.section)),void 0!==e.mode&&(this.searchParams.mode=Number(e.mode)),void 0!==e.top&&(this.searchParams.top="1"===e.top),void 0!==e.highlight&&(this.searchParams.highlight="1"===e.highlight),void 0!==e.official&&(this.searchParams.official="1"===e.official),e.page&&(this.currentPage=Number(e.page)),e.pageSize&&(this.searchParams.pageSize=Number(e.pageSize)),e.tags)try{const a=e.tags.split(",").map((e=>Number(e)));this.selectedTags=a}catch(a){console.error("解析标签参数失败",a)}(e.content||void 0!==e.section||e.tags)&&((void 0!==e.section||e.tags||void 0!==e.top||void 0!==e.highlight||void 0!==e.official)&&(this.showAdvanced=!0),setTimeout((()=>{this.performSearch(this.currentPage)}),300))},methods:{toggleAdvanced(){this.showAdvanced=!this.showAdvanced},quickSearch(e){this.resetSearch(),this.searchParams.content=e,this.performSearch(1)},async loadTags(){try{const e=await fetch("https://newfront.东北大学.com/search/tags?sort=name");if(!e.ok)throw new Error("加载标签失败");const a=await e.json();this.allTags=a.tags||[]}catch(e){console.error("获取标签失败:",e),te.A.alert("加载标签失败,请刷新页面重试","错误")}},toggleTag(e){const a=this.selectedTags.indexOf(e);-1===a?this.selectedTags.push(e):this.selectedTags.splice(a,1)},toggleFilter(e,a){this.searchParams[e]=a?1:null},async performSearch(e=1){const a=!!this.searchParams.content,t=null!==this.searchParams.section,s=this.selectedTags.length>0;if(a||t||s){this.loading=!0,this.currentPage=e;try{const e={...this.searchParams,page:this.currentPage};null!==e.top&&(e.top=e.top?1:0),null!==e.highlight&&(e.highlight=e.highlight?1:0),null!==e.official&&(e.official=e.official?1:0),this.selectedTags.length>0&&(e.tags=this.selectedTags),this.updateUrlParams(e);const a=await fetch("https://newfront.东北大学.com/search/general",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!a.ok){const e=await a.json().catch((()=>({})));throw new Error(e.message||"搜索请求失败")}const t=await a.json();this.searchResults=t.articles||[],this.totalResults=t.total||0,this.totalPages=t.totalPages||0,this.currentPage=t.page||1}catch(l){console.error("搜索失败:",l),te.A.alert(l.message||"搜索失败,请稍后重试","错误")}finally{this.loading=!1,this.initialized=!0}}else te.A.alert("请至少提供一个搜索条件(关键词、板块或标签)","提示")},resetSearch(){this.searchParams={content:"",section:null,mode:1,pageSize:10,top:null,highlight:null,official:null},this.selectedTags=[],this.searchResults=[],this.totalResults=0,this.totalPages=0,this.currentPage=1,this.$router.replace({query:{}})},searchByTag(e){this.resetSearch(),this.selectedTags=[e],this.showAdvanced=!0,this.performSearch(1)},viewArticle(e){this.$router.push(`/article/${e}`)},updateUrlParams(e){const a={};e.content&&(a.content=e.content),null!==e.section&&(a.section=e.section),1!==e.mode&&(a.mode=e.mode),10!==e.pageSize&&(a.pageSize=e.pageSize),e.page&&e.page>1&&(a.page=e.page),null!==e.top&&(a.top=e.top),null!==e.highlight&&(a.highlight=e.highlight),null!==e.official&&(a.official=e.official),this.selectedTags.length>0&&(a.tags=this.selectedTags.join(",")),this.$router.replace({query:a},(()=>{}),(()=>{}))},formatDate(e){if(!e)return"";const a=new Date(e);return a.toLocaleDateString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit"})}}},le=t(1241);const ie=(0,le.A)(se,[["render",Z],["__scopeId","data-v-336de950"]]);var ce=ie}}]); //# sourceMappingURL=368.658f248e.js.map