2 lines
8.5 KiB
JavaScript
2 lines
8.5 KiB
JavaScript
|
|
import{d as te,o as oe,b as C,e as f,m as a,z as t,p as b,U as se,x as ne,s as ue,y as V,r as u,C as n,T as ie,g as m,j as r,F as D,h as O,Z as de,t as x,k as re,V as me,W as ve,X as ce,J as v,_ as pe}from"./index-eVF4AHSu.js";import{R as fe}from"./RichEditor-DD1hYfzj.js";import{M as ge}from"./MediaSelector-DyRQc9ag.js";import{a as _e,f as ye,b as be,p as Ve,t as we,e as he,g as Ce}from"./news-s98KrhM0.js";import{r as xe}from"./media-BgGGvhcR.js";import"./upload-C79x1DTb.js";import"./pagination-BgSlm-mj.js";const ke={class:"news-manage"},Ue={class:"page-header"},Ze={class:"filter-bar"},Ne={key:1,class:"table-thumb-placeholder"},Te={class:"pagination-bar"},Ie={class:"dialog-row"},ze={class:"dialog-row"},Ee={class:"dialog-row"},Me={class:"dialog-row"},Se=te({__name:"NewsManage",setup(Le){const k=u(!1),R=u([]),_=u([]),$=u(0),U=u(1),Z=u(20),N=u(void 0),T=u(void 0),I=u(""),g=u(!1),z=u("新增新闻"),w=u(null),E=u(!1),o=u({categoryId:0,titleZh:"",titleEn:"",coverImage:"",summaryZh:"",summaryEn:"",contentZh:"",contentEn:"",author:"",source:"",isTop:0,isRecommend:0,status:0,sortOrder:0});async function c(){k.value=!0;try{const s=await _e({categoryId:N.value,status:T.value,keyword:I.value||void 0,page:U.value,size:Z.value});R.value=s.records,$.value=s.total}catch(s){console.warn("fetchNewsList failed:",s)}finally{k.value=!1}}async function P(){try{_.value=await ye()}catch{}}oe(()=>{P(),c()});function K(){var s;w.value=null,z.value="新增新闻",o.value={categoryId:((s=_.value[0])==null?void 0:s.id)??0,titleZh:"",titleEn:"",coverImage:"",summaryZh:"",contentZh:"",author:"",status:0,isTop:0,isRecommend:0,sortOrder:0},g.value=!0}function q(s){w.value=s.id,z.value="编辑新闻",o.value={...s},g.value=!0}async function F(s){try{await ce.confirm(`确定删除新闻「${s.titleZh}」?`,"确认删除",{type:"warning"}),await be(s.id),v.success("删除成功"),await c()}catch{}}async function j(s){const e=s.status===1?0:1;try{await Ve(s.id,e),s.status=e,v.success(e===1?"已发布":"已下线")}catch{v.error("操作失败")}}async function A(s){const e=s.isTop===1?0:1;try{await we(s.id,e),s.isTop=e,v.success(e===1?"已置顶":"已取消置顶")}catch{v.error("操作失败")}}async function J(){if(!o.value.titleZh||!o.value.categoryId){v.warning("请填写新闻标题和分类");return}E.value=!0;try{w.value?(await he(w.value,o.value),v.success("更新成功")):(await Ce(o.value),v.success("创建成功")),g.value=!1,await c()}catch(s){v.error(s instanceof Error?s.message:"操作失败")}finally{E.value=!1}}function W(s){var e;return((e=_.value.find(i=>i.id===s))==null?void 0:e.nameZh)||String(s)}return(s,e)=>{const i=n("el-button"),h=n("el-option"),M=n("el-select"),X=n("el-icon"),y=n("el-input"),G=n("el-image"),p=n("el-table-column"),B=n("el-tag"),H=n("el-table"),Q=n("el-pagination"),d=n("el-form-item"),S=n("el-switch"),Y=n("el-input-number"),ee=n("el-form"),le=n("el-dialog"),ae=ie("loading");return m(),C("div",ke,[f("div",Ue,[e[19]||(e[19]=f("h2",{class:"page-title"},"新闻管理",-1)),a(i,{type:"primary",icon:b(se),onClick:K},{default:t(()=>[...e[18]||(e[18]=[r("新增新闻",-1)])]),_:1},8,["icon"])]),f("div",Ze,[a(M,{modelValue:N.value,"onUpdate:modelValue":e[0]||(e[0]=l=>N.value=l),placeholder:"选择分类",clearable:"",onChange:c,style:{width:"160px"}},{default:t(()=>[(m(!0),C(D,null,O(_.value,l=>(m(),V(h,{key:l.id,label:l.nameZh,value:l.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),a(M,{modelValue:T.value,"onUpdate:modelValue":e[1]||(e[1]=l=>T.value=l),placeholder:"状态",clearable:"",onChange:c,style:{width:"120px"}},{default:t(()=>[a(h,{label:"已发布",value:1}),a(h,{label:"草稿",value:0})]),_:1},8,["modelValue"]),a(y,{modelValue:I.value,"onUpdate:modelValue":e[2]||(e[2]=l=>I.value=l),placeholder:"搜索新闻标题...",clearable:"",onChange:c,onKeyup:ne(c,["enter"]),style:{width:"240px"}},{prefix:t(()=>[a(X,null,{default:t(()=>[a(b(de))]),_:1})]),_:1},8,["modelValue"])]),ue((m(),V(H,{data:R.value,class:"admin-table"},{default:t(()=>[a(p,{label:"封面",width:"90"},{default:t(({row:l})=>[l.coverImage?
|