import{B as v,_ as P,r as y,o as S,c as j,a as c,b as e,w as n,d,e as F,g as w,h as r,j as H,k as C,t as h,m as u,E as g}from"./index-CKlvOJnw.js";async function L(){const{data:i}=await v.get("/announcements");return i}async function q(i){const{data:s}=await v.post("/announcements",i);return s}async function G(i){const{data:s}=await v.post(`/announcements/${i}/activate`);return s}async function J(i){const{data:s}=await v.post(`/announcements/${i}/deactivate`);return s}async function K(i){const{data:s}=await v.delete(`/announcements/${i}`);return s}const O={class:"page-stack"},Q={class:"app-page-title"},R={class:"actions"},W={class:"table-wrap"},X=["title"],Y={class:"actions"},Z={__name:"AnnouncementsPage",setup(i){const s=y(""),_=y(""),b=y(!1),x=y([]);async function m(){b.value=!0;try{x.value=await L()}catch{x.value=[]}finally{b.value=!1}}function B(){s.value="",_.value=""}async function T(o){const t=s.value.trim(),l=_.value.trim();if(!t||!l){u.error("标题和内容不能为空");return}try{const f=await q({title:t,content:l,is_active:!!o});if(!f?.success){u.error(f?.error||"保存失败");return}u.success("保存成功"),B(),await m()}catch{}}async function A(o){await g.alert(o.content||"",o.title||"公告",{confirmButtonText:"关闭",dangerouslyUseHTMLString:!1})}async function D(o){try{await g.confirm("确定启用该公告吗?启用后将自动停用其他公告。","启用公告",{confirmButtonText:"启用",cancelButtonText:"取消",type:"warning"})}catch{return}try{const t=await G(o.id);if(!t?.success){u.error(t?.error||"启用失败");return}u.success("已启用"),await m()}catch{}}async function z(o){try{await g.confirm("确定停用该公告吗?","停用公告",{confirmButtonText:"停用",cancelButtonText:"取消",type:"warning"})}catch{return}try{const t=await J(o.id);if(!t?.success){u.error(t?.error||"停用失败");return}u.success("已停用"),await m()}catch{}}async function E(o){try{await g.confirm("确定删除该公告吗?删除后无法恢复。","删除公告",{confirmButtonText:"删除",cancelButtonText:"取消",type:"error"})}catch{return}try{const t=await K(o.id);if(!t?.success){u.error(t?.error||"删除失败");return}u.success("已删除"),await m()}catch{}}return S(m),(o,t)=>{const l=d("el-button"),f=d("el-input"),V=d("el-form-item"),M=d("el-form"),$=d("el-card"),p=d("el-table-column"),N=d("el-tag"),U=d("el-table"),I=F("loading");return w(),j("div",O,[c("div",Q,[t[5]||(t[5]=c("h2",null,"公告管理",-1)),c("div",null,[e(l,{onClick:m},{default:n(()=>[...t[4]||(t[4]=[r("刷新",-1)])]),_:1})])]),e($,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:n(()=>[t[9]||(t[9]=c("h3",{class:"section-title"},"创建公告",-1)),e(M,{"label-width":"90px"},{default:n(()=>[e(V,{label:"公告标题"},{default:n(()=>[e(f,{modelValue:s.value,"onUpdate:modelValue":t[0]||(t[0]=a=>s.value=a),placeholder:"请输入公告标题",maxlength:"100","show-word-limit":""},null,8,["modelValue"])]),_:1}),e(V,{label:"公告内容"},{default:n(()=>[e(f,{modelValue:_.value,"onUpdate:modelValue":t[1]||(t[1]=a=>_.value=a),type:"textarea",rows:5,placeholder:"请输入公告内容(将以弹窗形式展示)",maxlength:"2000","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1}),c("div",R,[e(l,{type:"primary",onClick:t[2]||(t[2]=a=>T(!0))},{default:n(()=>[...t[6]||(t[6]=[r("发布并启用",-1)])]),_:1}),e(l,{onClick:t[3]||(t[3]=a=>T(!1))},{default:n(()=>[...t[7]||(t[7]=[r("保存但不启用",-1)])]),_:1}),e(l,{onClick:B},{default:n(()=>[...t[8]||(t[8]=[r("清空",-1)])]),_:1})]),t[10]||(t[10]=c("div",{class:"help"}," 说明:启用公告后,用户登录进入系统将弹窗提示;用户可选择“当次关闭”或“永久关闭本次公告”。 ",-1))]),_:1}),e($,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:n(()=>[t[15]||(t[15]=c("h3",{class:"section-title"},"公告列表",-1)),c("div",W,[H((w(),C(U,{data:x.value,style:{width:"100%"}},{default:n(()=>[e(p,{prop:"id",label:"ID",width:"80"}),e(p,{label:"标题","min-width":"240"},{default:n(({row:a})=>[c("span",{class:"ellipsis",title:a.title},h(a.title),9,X)]),_:1}),e(p,{label:"状态",width:"120"},{default:n(({row:a})=>[e(N,{type:a.is_active?"success":"info",effect:"light"},{default:n(()=>[r(h(a.is_active?"启用":"停用"),1)]),_:2},1032,["type"])]),_:1}),e(p,{prop:"created_at",label:"创建时间",width:"180"}),e(p,{label:"操作",width:"260",fixed:"right"},{default:n(({row:a})=>[c("div",Y,[e(l,{size:"small",onClick:k=>A(a)},{default:n(()=>[...t[11]||(t[11]=[r("查看",-1)])]),_:1},8,["onClick"]),a.is_active?(w(),C(l,{key:0,size:"small",onClick:k=>z(a)},{default:n(()=>[...t[12]||(t[12]=[r("停用",-1)])]),_:1},8,["onClick"])):(w(),C(l,{key:1,type:"success",size:"small",onClick:k=>D(a)},{default:n(()=>[...t[13]||(t[13]=[r("启用",-1)])]),_:1},8,["onClick"])),e(l,{type:"danger",size:"small",onClick:k=>E(a)},{default:n(()=>[...t[14]||(t[14]=[r("删除",-1)])]),_:1},8,["onClick"])])]),_:1})]),_:1},8,["data"])),[[I,b.value]])])]),_:1})])}}},et=P(Z,[["__scopeId","data-v-a7b3418e"]]);export{et as default};