import{_ as P}from"./DD3DYCFV.js";import{_ as C}from"./CEZ6bhbz.js";import{u as $,r as B,w as M,c as p,a as c,b as n,d as N,e as T,f as t,t as y,F as h,g as k,o as i,h as A,n as S}from"./C9RGyKra.js";import{u as V}from"./BaqMP3vu.js";const F={ref:"topSentinel",class:"scroll-sentinel","aria-hidden":"true"},q={class:"news-container"},z={class:"news-list"},E={key:0,class:"error-message"},H={key:0,class:"pagination"},I=["disabled"],L={class:"page-numbers"},j=["onClick"],G=["disabled"],f=10,W={__name:"news",async setup(J){let d,g;$({title:"北京工业大学耿丹学院数字技术学院 - 学院新闻"});const o=B(1),{data:w,status:b,error:m}=([d,g]=M(()=>V("news-page",()=>$fetch("/api/news",{query:{per_page:100}}))),d=await d,g(),d),_=p(()=>w.value?.posts||[]),u=p(()=>Math.ceil(_.value.length/f)),x=p(()=>{if(b.value==="pending"&&_.value.length===0)return Array(10).fill(0).map((l,r)=>({id:`skeleton-${r}`,isSkeleton:!0}));const a=(o.value-1)*f,e=a+f;return _.value.slice(a,e)}),D=p(()=>{const a=[];let l=Math.max(1,o.value-Math.floor(2.5));const r=Math.min(u.value,l+5-1);r-l<4&&(l=Math.max(1,r-5+1));for(let s=l;s<=r;s++)a.push(s);return a}),v=a=>{a<1||a>u.value||(o.value=a,window.scrollTo({top:0,behavior:"smooth"}))};return(a,e)=>{const l=P,r=C;return i(),c("div",null,[n("div",F,null,512),e[4]||(e[4]=n("div",{class:"title-bar"},[n("h1",null,"新闻资讯")],-1)),n("div",q,[n("div",z,[t(m)?(i(),c("div",E,y(t(m)),1)):(i(!0),c(h,{key:1},k(t(x),s=>(i(),A(l,{key:s.id,post:s},null,8,["post"]))),128))]),t(b)!=="pending"&&!t(m)&&t(u)>=1?(i(),c("div",H,[n("button",{class:"page-btn prev-btn",onClick:e[0]||(e[0]=s=>v(t(o)-1)),disabled:t(o)===1,"aria-label":"上一页"},[...e[2]||(e[2]=[n("i",{class:"arrow-left"},null,-1)])],8,I),n("div",L,[(i(!0),c(h,null,k(t(D),s=>(i(),c("button",{key:s,class:S(["page-btn",{active:s===t(o)}]),onClick:K=>v(s)},y(s),11,j))),128))]),n("button",{class:"page-btn next-btn",onClick:e[1]||(e[1]=s=>v(t(o)+1)),disabled:t(o)===t(u),"aria-label":"下一页"},[...e[3]||(e[3]=[n("i",{class:"arrow-right"},null,-1)])],8,G)])):T("",!0)]),N(r,{"sentinel-selector":".scroll-sentinel"})])}}};export{W as default};
