PageSourceSearch

https://www.ieduonline.cn/_nuxt/6AE_KanO.js

js ieduonline.cn collected 2026-10-06 14:18:12 UTC 6,036 bytes, 1 lines download raw bytes

1import{d as q,c as $,u as z,o as G,z as H,f as i,s as l,q as N,j as r,g as s,t as u,F as P,r as I,m as W,p as m,G as v,D as X,y as d,e as n,h as J,O as K,A as Q}from"./CxjwaSEV.js";import{U as R}from"./38TlXwE5.js";import{u as Y}from"./XP0B5cuS.js";import{u as Z,a as ss,b as ts}from"./DuAX-GCl.js";import"./Bu7hayz2.js";const es={class:"sp-head"},ls=["disabled"],os={key:1,class:"sp-banner bad"},as={key:2,class:"sp-banner info"},ns={key:3,class:"sp-empty"},is={key:4,class:"sp-empty"},us={key:5,class:"sp-table"},rs={key:0,class:"sp-td-sub"},ds={key:1,class:"sp-td-sub bad"},ps={class:"sp-td-time"},cs=["onClick"],ms=["onClick"],vs={class:"sp-modal-box"},fs={key:0,class:"sp-banner bad"},bs={class:"sp-field"},gs={class:"sp-field"},hs={class:"sp-field"},_s={class:"sp-field"},ys={class:"sp-grid"},ks={class:"sp-field"},ws={class:"sp-field"},Cs={class:"sp-modal-ops"},xs=["disabled"],Ts=["disabled"],Ss=q({__name:"news",setup($s){const{can:U}=Y(),g=$(()=>U("self_edit"));z({title:"新闻动态 - 学校门户"});const{restore:E}=Z(),{request:h,guarded:V}=ss(),{confirmDialog:j}=K(),{school:p,restore:A}=ts(),w=d(!0),_=d(""),y=d([]),f=d(!1),k=d(null),b=d(!1),c=d(""),a=X({id:0,title:"",cover_url:"",summary:"",content:"",author:"",source:""}),B={draft:"草稿",pending:"待审核",published:"已发布",rejected:"已驳回"},D={draft:"sp-tag-muted",pending:"sp-tag-warn",published:"sp-tag-ok",rejected:"sp-tag-bad"},F=o=>B[String(o||"")]||String(o||"—"),L=o=>D[String(o||"")]||"sp-tag-muted",x=$(()=>y.value.filter(o=>o.status==="pending").length);async function C(){if(!p.value)return;w.value=!0,_.value="";const o=await V(()=>h("GET",`/school-portal/schools/${p.value.id}/news`));o&&(y.value=o),w.value=!1}function T(o){f.value=!0,k.value=o||null,c.value="",Object.assign(a,{id:o?.id||0,title:o?.title||"",cover_url:o?.cover_url||"",summary:o?.summary||"",content:o?.content||"",author:o?.author||"",source:o?.source||""})}async function S(o){if(c.value="",!a.title.trim()){c.value="请填写新闻标题";return}b.value=!0;try{const t={...a,save_status:o?"publish":"draft"};
1k.value?await h("PUT",`/school-portal/schools/${p.value.id}/news/${k.value.id}`,t):await h("POST",`/school-portal/schools/${p.value.id}/news`,t),f.value=!1,await C()}catch(t){c.value=t?.data?.message||t?.message||"保存失败"}finally{b.value=!1}}async function M(o){if(await j(`确认删除新闻「${o.title}」?删除后前台不再展示。`,{title:"删除新闻",okText:"确认删除",danger:!0}))try{await h("DELETE",`/school-portal/schools/${p.value.id}/news/${o.id}`),await C()}catch(e){_.value=e?.data?.message||e?.message||"删除失败"}}return G(()=>{if(E(),A(),!p.value){H("/school-portal");return}C()}),(o,t)=>(n(),i("div",null,[l(g)?r("",!0):(n(),N(R,{key:0,feature:"self_edit"})),s("div",es,[t[11]||(t[11]=s("div",null,[s("h1",null,"新闻动态"),s("p",{class:"sp-sub"},"提交后经平台审核通过,展示在微官网「学校动态」与全站「择校资讯」")],-1)),s("button",{class:"sp-btn",disabled:!l(g),onClick:t[0]||(t[0]=e=>T())},"+ 发布新闻",8,ls)]),l(_)?(n(),i("p",os,u(l(_)),1)):r("",!0),l(x)?(n(),i("p",as," 有 "+u(l(x))+" 条内容正在等待平台审核,审核通过后自动展示在前台,无需重复提交。 ",1)):r("",!0),l(w)?(n(),i("div",ns,"加载中…")):l(y).length?(n(),i("table",us,[t[12]||(t[12]=s("thead",null,[s("tr",null,[s("th",null,"标题"),s("th",{style:{width:"90px"}},"状态"),s("th",{style:{width:"80px"}},"浏览"),s("th",{style:{width:"110px"}},"发布时间"),s("th",{style:{width:"170px"}},"操作")])],-1)),s("tbody",null,[(n(!0),i(P,null,I(l(y),e=>(n(),i("tr",{key:e.id},[s("td",null,[s("strong",null,u(e.title),1),e.summary?(n(),i("span",rs,u(e.summary.slice(0,40))+"…",1)):r("",!0),e.status==="rejected"&&e.review_reason?(n(),i("span",ds," 驳回原因:"+u(e.review_reason),1)):r("",!0)]),s("td",null,[s("span",{class:J(["sp-tag",L(e.status)])},u(F(e.status)),3)]),s("td",null,u(e.view_count??0),1),s("td",ps,u(e.published_at?String(e.published_at).slice(0,10):"—"),1),s("td",null,[s("button",{class:"sp-mini",onClick:O=>T(e)},"编辑",8,cs),s("button",{class:"sp-mini danger",onClick:O=>M(e)},"删除",8,ms)])]))),128))])])):(n(),i("div",is,"还没有发布过新闻,点右上角发布第一条")),l(f)?(n(),i("div",{key:6,class:"sp-modal",onClick:t[10]||(t[10]=W(e=>f.value=!1,["self"]))},[s("div",vs,[s("h3",null,u(l(k)?"编辑新闻":"发布新闻"),1),l(c)?(n(),i("p",fs,u(l(c)),1)):r("",!0),s("label",bs,[t[13]||(t[13]=s("span",null,"标题 *",-1)),m(s("input",{"onUpdate:modelValue":t[1]||(t[1]=e=>l(a).title=e),maxlength:"200"},null,512),[[v,l(a).title]])]),s("label",gs,[t[14]||(t[14]=s("span",null,"封面图地址(可选)",-1)),m(s("input",{"onUpdate:modelValue":t[2]||(t[2]=e=>l(a).cover_url=e),placeholder:"https://…"},null,512),[[v,l(a).cover_url]])]),s("label",hs,[t[15]||(t[15]=s("span",null,"摘要(可选,列表页展示)",-1)),m(s("textarea",{"onUpdate:modelValue":t[3]||(t[3]=e=>l(a).summary=e),rows:"2",maxlength:"500"},null,512),[[v,l(a).summary]])]),s("label",_s,[t[16]||(t[16]=s("span",null,"正文",-1)),m(s("textarea",{"onUpdate:modelValue":t[4]||(t[4]=e=>l(a).content=e),rows:"9",placeholder:"支持基础 HTML(p / h3 / ul / img 等)"},null,512),[[v,l(a).content]])]),s("div",ys,[s("label",ks,[t[17]||(t[17]=s("span",null,"作者(可选)",-1)),m(s("input",{"onUpdate:modelValue":t[5]||(t[5]=e=>l(a).author=e)},null,512),[[v,l(a).author]])]),s("label",ws,[t[18]||(t[18]=s("span",null,"来源(可选)",-1)),m(s("input",{"onUpdate:modelValue":t[6]||(t[6]=e=>l(a).source=e)},null,512),[[v,l(a).source]])])]),s("div",Cs,[s("button",{class:"sp-btn-ghost",onClick:t[7]||(t[7]=e=>f.value=!1)},"取消"),s("button",{class:"sp-btn-ghost",disabled:l(b)||!l(g),onClick:t[8]||(t[8]=e=>S(!1))},"存草稿",8,xs),s("button",{class:"sp-btn",disabled:l(b)||!l(g),onClick:t[9]||(t[9]=e=>S(!0))},u(l(b)?"提交中…":"提交审核"),9,Ts)])])])):r("",!0)]))}}),Bs=Q(Ss,[["__scopeId","data-v-8620d60c"]]);export{Bs as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.