Files
chuanggao-website/client/dist/assets/NewsManage-B9SjfhGC.js
2026-05-12 16:53:18 +08:00

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?(m(),V(G,{key:0,src:b(xe)(l.coverImage),fit:"cover",class:"table-thumb"},null,8,["src"])):(m(),C("div",Ne,"无图"))]),_:1}),a(p,{prop:"titleZh",label:"标题","min-width":"200","show-overflow-tooltip":""}),a(p,{label:"分类",width:"100"},{default:t(({row:l})=>[r(x(W(l.categoryId)),1)]),_:1}),a(p,{prop:"author",label:"作者",width:"80"}),a(p,{label:"状态",width:"80"},{default:t(({row:l})=>[a(B,{type:l.status===1?"success":"info",size:"small"},{default:t(()=>[r(x(l.status===1?"已发布":"草稿"),1)]),_:2},1032,["type"])]),_:1}),a(p,{label:"置顶",width:"70"},{default:t(({row:l})=>[l.isTop===1?(m(),V(B,{key:0,type:"danger",size:"small"},{default:t(()=>[...e[20]||(e[20]=[r("置顶",-1)])]),_:1})):re("",!0)]),_:1}),a(p,{prop:"publishTime",label:"发布时间",width:"160"}),a(p,{label:"操作",width:"240",fixed:"right"},{default:t(({row:l})=>[a(i,{size:"small",icon:b(me),onClick:L=>q(l),text:""},{default:t(()=>[...e[21]||(e[21]=[r("编辑",-1)])]),_:1},8,["icon","onClick"]),a(i,{size:"small",onClick:L=>j(l),text:""},{default:t(()=>[r(x(l.status===1?"下线":"发布"),1)]),_:2},1032,["onClick"]),a(i,{size:"small",onClick:L=>A(l),text:""},{default:t(()=>[r(x(l.isTop===1?"取消置顶":"置顶"),1)]),_:2},1032,["onClick"]),a(i,{size:"small",icon:b(ve),type:"danger",onClick:L=>F(l),text:""},{default:t(()=>[...e[22]||(e[22]=[r("删除",-1)])]),_:1},8,["icon","onClick"])]),_:1})]),_:1},8,["data"])),[[ae,k.value]]),f("div",Te,[a(Q,{"current-page":U.value,"onUpdate:currentPage":e[3]||(e[3]=l=>U.value=l),"page-size":Z.value,"onUpdate:pageSize":e[4]||(e[4]=l=>Z.value=l),total:$.value,layout:"total, prev, pager, next",onCurrentChange:c},null,8,["current-page","page-size","total"])]),a(le,{modelValue:g.value,"onUpdate:modelValue":e[17]||(e[17]=l=>g.value=l),title:z.value,width:"780px","destroy-on-close":""},{footer:t(()=>[a(i,{onClick:e[16]||(e[16]=l=>g.value=!1)},{default:t(()=>[...e[23]||(e[23]=[r("取消",-1)])]),_:1}),a(i,{type:"primary",loading:E.value,onClick:J},{default:t(()=>[...e[24]||(e[24]=[r("保存",-1)])]),_:1},8,["loading"])]),default:t(()=>[a(ee,{"label-width":"100px"},{default:t(()=>[f("div",Ie,[a(d,{label:"标题(中文)",required:"",class:"dialog-col"},{default:t(()=>[a(y,{modelValue:o.value.titleZh,"onUpdate:modelValue":e[5]||(e[5]=l=>o.value.titleZh=l)},null,8,["modelValue"])]),_:1}),a(d,{label:"标题(英文)",class:"dialog-col"},{default:t(()=>[a(y,{modelValue:o.value.titleEn,"onUpdate:modelValue":e[6]||(e[6]=l=>o.value.titleEn=l)},null,8,["modelValue"])]),_:1})]),f("div",ze,[a(d,{label:"所属分类",required:"",class:"dialog-col"},{default:t(()=>[a(M,{modelValue:o.value.categoryId,"onUpdate:modelValue":e[7]||(e[7]=l=>o.value.categoryId=l),style:{width:"100%"}},{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"])]),_:1}),a(d,{label:"作者",class:"dialog-col"},{default:t(()=>[a(y,{modelValue:o.value.author,"onUpdate:modelValue":e[8]||(e[8]=l=>o.value.author=l)},null,8,["modelValue"])]),_:1})]),a(d,{label:"封面图"},{default:t(()=>[a(ge,{modelValue:o.value.coverImage,"onUpdate:modelValue":e[9]||(e[9]=l=>o.value.coverImage=l),"used-in":"news"},null,8,["modelValue"])]),_:1}),a(d,{label:"简介(中文)"},{default:t(()=>[a(y,{modelValue:o.value.summaryZh,"onUpdate:modelValue":e[10]||(e[10]=l=>o.value.summaryZh=l),type:"textarea",rows:2},null,8,["modelValue"])]),_:1}),a(d,{label:"正文(中文)"},{default:t(()=>[a(fe,{modelValue:o.value.contentZh,"onUpdate:modelValue":e[11]||(e[11]=l=>o.value.contentZh=l),height:400},null,8,["modelValue"])]),_:1}),f("div",Ee,[a(d,{label:"置顶",class:"dialog-col"},{default:t(()=>[a(S,{modelValue:o.value.isTop,"onUpdate:modelValue":e[12]||(e[12]=l=>o.value.isTop=l),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1}),a(d,{label:"推荐",class:"dialog-col"},{default:t(()=>[a(S,{modelValue:o.value.isRecommend,"onUpdate:modelValue":e[13]||(e[13]=l=>o.value.isRecommend=l),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})]),f("div",Me,[a(d,{label:"状态",class:"dialog-col"},{default:t(()=>[a(S,{modelValue:o.value.status,"onUpdate:modelValue":e[14]||(e[14]=l=>o.value.status=l),"active-value":1,"inactive-value":0,"active-text":"发布","inactive-text":"草稿"},null,8,["modelValue"])]),_:1}),a(d,{label:"排序",class:"dialog-col"},{default:t(()=>[a(Y,{modelValue:o.value.sortOrder,"onUpdate:modelValue":e[15]||(e[15]=l=>o.value.sortOrder=l),min:0},null,8,["modelValue"])]),_:1})])]),_:1})]),_:1},8,["modelValue","title"])])}}}),qe=pe(Se,[["__scopeId","data-v-951aff44"]]);export{qe as default};