1 line
7.8 KiB
JavaScript
1 line
7.8 KiB
JavaScript
import{$ as e,H as t,L as n,P as r,V as i,Wt as a,_ as o,d as s,et as c,f as l,i as u,lt as d,p as f,st as p,u as m,v as h,z as g}from"./runtime-core.esm-bundler-DbRZbT7v.js";import{l as _,o as v,s as y}from"./index-3YculFMX.js";import"./request-DD5g7hLU.js";import{n as b,t as x}from"./kb-CR5OwwPK.js";var S={class:`p-6 space-y-4`},C={class:`bg-white rounded-2xl border border-gray-100 shadow-sm p-4 flex items-center flex-wrap gap-3`},w={class:`bg-white rounded-2xl border border-gray-100 shadow-sm`},T={class:`flex items-center justify-between px-5 py-4 border-b border-gray-50`},E={class:`px-2`},ee={class:`px-5 py-3 border-t border-gray-50`},D={__name:`index`,setup(D){let O=d([]),k=d(0),A=d(!1),j=d(!1),M=d(!1),N=d([]),P=p({keyword:``,category_id:``,status:``,visibility:``}),F=p({page:1,per_page:20}),I=d(null),L=p({id:null,title:``,category_id:``,content:``,visibility:1,cover_image:``}),R=d(!1),z={title:[{required:!0,message:`请输入文章标题`,trigger:`blur`}]},B={0:`草稿`,1:`待审核`,2:`已发布`,3:`已下架`},V={0:`info`,1:`warning`,2:`success`,3:`danger`},H={1:`内部`,2:`公开`};async function U(){try{let e=await b.getList({per_page:200});N.value=e.data?.list||e.data?.data||[]}catch{N.value=[]}}async function W(){A.value=!0;try{let e=await x.getList({...P,...F});O.value=e.data?.list||e.data?.data||[],k.value=e.data?.total||0}finally{A.value=!1}}function G(){F.page=1,W()}function K(){Object.assign(P,{keyword:``,category_id:``,status:``,visibility:``}),G()}function q(){R.value=!1,Object.assign(L,{id:null,title:``,category_id:``,content:``,visibility:1,cover_image:``}),j.value=!0}async function J(e){R.value=!0,Object.assign(L,{id:e.id,title:e.title,category_id:e.category_id||``,content:e.content||``,visibility:e.visibility||1,cover_image:e.cover_image||``}),j.value=!0}async function Y(){I.value&&await I.value.validate(async e=>{if(e){M.value=!0;try{R.value?(await x.update(L.id,L),y.success(`更新成功`)):(await x.create(L),y.success(`创建成功`)),j.value=!1,W()}finally{M.value=!1}}})}async function X(e){await v.confirm(`确定删除文章「${e.title}」吗?`,`删除确认`,{type:`warning`}),await x.delete(e.id),y.success(`删除成功`),W()}async function Z(e){await v.confirm(`确定发布文章「${e.title}」吗?`,`发布确认`,{type:`info`}),await x.publish(e.id),y.success(`发布成功`),W()}async function Q(e){await v.confirm(`确定下架文章「${e.title}」吗?`,`下架确认`,{type:`warning`}),await x.offline(e.id),y.success(`下架成功`),W()}function te(e){F.page=e,W()}function ne(e){F.per_page=e,F.page=1,W()}return r(()=>{U(),W()}),(r,d)=>{let p=i(`el-input`),v=i(`el-option`),y=i(`el-select`),b=i(`el-button`),x=i(`el-table-column`),D=i(`el-tag`),U=i(`el-table`),W=i(`el-pagination`),$=i(`el-form-item`),re=i(`el-form`),ie=i(`el-dialog`),ae=t(`loading`);return n(),f(`div`,S,[m(`div`,C,[h(p,{modelValue:P.keyword,"onUpdate:modelValue":d[0]||=e=>P.keyword=e,placeholder:`标题搜索`,style:{width:`180px`},clearable:``,onKeydown:_(G,[`enter`])},null,8,[`modelValue`]),h(y,{modelValue:P.category_id,"onUpdate:modelValue":d[1]||=e=>P.category_id=e,placeholder:`分类`,clearable:``,style:{width:`150px`}},{default:e(()=>[(n(!0),f(u,null,g(N.value,e=>(n(),s(v,{key:e.id,label:e.name,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`]),h(y,{modelValue:P.status,"onUpdate:modelValue":d[2]||=e=>P.status=e,placeholder:`状态`,clearable:``,style:{width:`120px`}},{default:e(()=>[(n(),f(u,null,g(B,(e,t)=>h(v,{key:t,label:e,value:Number(t)},null,8,[`label`,`value`])),64))]),_:1},8,[`modelValue`]),h(y,{modelValue:P.visibility,"onUpdate:modelValue":d[3]||=e=>P.visibility=e,placeholder:`可见范围`,clearable:``,style:{width:`120px`}},{default:e(()=>[(n(),f(u,null,g(H,(e,t)=>h(v,{key:t,label:e,value:Number(t)},null,8,[`label`,`value`])),64))]),_:1},8,[`modelValue`]),h(b,{type:`primary`,onClick:G},{default:e(()=>[...d[13]||=[o(`查询`,-1)]]),_:1}),h(b,{onClick:K},{default:e(()=>[...d[14]||=[o(`重置`,-1)]]),_:1})]),m(`div`,w,[m(`div`,T,[d[16]||=m(`div`,{class:`flex items-center gap-3`},[m(`span`,{class:`font-medium text-gray-700`},`文章列表`)],-1),h(b,{type:`primary`,onClick:q},{default:e(()=>[...d[15]||=[o(`新增文章`,-1)]]),_:1})]),m(`div`,E,[c((n(),s(U,{data:O.value,style:{width:`100%`}},{default:e(()=>[h(x,{prop:`title`,label:`标题`,"min-width":`200`}),h(x,{label:`分类`,width:`120`,align:`center`},{default:e(({row:e})=>[o(a(e.category?.name||`-`),1)]),_:1}),h(x,{label:`作者`,width:`100`,align:`center`},{default:e(({row:e})=>[o(a(e.author?.name||`-`),1)]),_:1}),h(x,{label:`可见范围`,width:`100`,align:`center`},{default:e(({row:t})=>[h(D,{type:t.visibility===1?`warning`:`success`,size:`small`},{default:e(()=>[o(a(H[t.visibility]||`-`),1)]),_:2},1032,[`type`])]),_:1}),h(x,{label:`状态`,width:`90`,align:`center`},{default:e(({row:t})=>[h(D,{type:V[t.status],size:`small`},{default:e(()=>[o(a(B[t.status]||`-`),1)]),_:2},1032,[`type`])]),_:1}),h(x,{prop:`views`,label:`浏览`,width:`70`,align:`center`}),h(x,{prop:`likes`,label:`点赞`,width:`70`,align:`center`}),h(x,{prop:`published_at`,label:`发布时间`,"min-width":`160`}),h(x,{label:`操作`,width:`220`,fixed:`right`,align:`center`},{default:e(({row:t})=>[t.status<=1?(n(),s(b,{key:0,size:`small`,type:`primary`,text:``,onClick:e=>J(t)},{default:e(()=>[...d[17]||=[o(`编辑`,-1)]]),_:1},8,[`onClick`])):l(``,!0),t.status<=1?(n(),s(b,{key:1,size:`small`,type:`danger`,text:``,onClick:e=>X(t)},{default:e(()=>[...d[18]||=[o(`删除`,-1)]]),_:1},8,[`onClick`])):l(``,!0),t.status<2?(n(),s(b,{key:2,size:`small`,type:`success`,text:``,onClick:e=>Z(t)},{default:e(()=>[...d[19]||=[o(`发布`,-1)]]),_:1},8,[`onClick`])):l(``,!0),t.status===2?(n(),s(b,{key:3,size:`small`,type:`warning`,text:``,onClick:e=>Q(t)},{default:e(()=>[...d[20]||=[o(`下架`,-1)]]),_:1},8,[`onClick`])):l(``,!0)]),_:1})]),_:1},8,[`data`])),[[ae,A.value]])]),m(`div`,ee,[h(W,{"current-page":F.page,"onUpdate:currentPage":d[4]||=e=>F.page=e,"page-size":F.per_page,"onUpdate:pageSize":d[5]||=e=>F.per_page=e,total:k.value,"page-sizes":[10,20,50],layout:`total,sizes,prev,pager,next,jumper`,background:``,onCurrentChange:te,onSizeChange:ne},null,8,[`current-page`,`page-size`,`total`])])]),h(ie,{modelValue:j.value,"onUpdate:modelValue":d[12]||=e=>j.value=e,title:R.value?`编辑文章`:`新增文章`,width:`600px`,"destroy-on-close":``},{footer:e(()=>[h(b,{onClick:d[11]||=e=>j.value=!1},{default:e(()=>[...d[21]||=[o(`取消`,-1)]]),_:1}),h(b,{type:`primary`,loading:M.value,onClick:Y},{default:e(()=>[...d[22]||=[o(`确定`,-1)]]),_:1},8,[`loading`])]),default:e(()=>[h(re,{ref_key:`formRef`,ref:I,model:L,rules:z,"label-width":`90px`},{default:e(()=>[h($,{label:`文章标题`,prop:`title`},{default:e(()=>[h(p,{modelValue:L.title,"onUpdate:modelValue":d[6]||=e=>L.title=e,placeholder:`请输入文章标题`},null,8,[`modelValue`])]),_:1}),h($,{label:`所属分类`},{default:e(()=>[h(y,{modelValue:L.category_id,"onUpdate:modelValue":d[7]||=e=>L.category_id=e,placeholder:`请选择分类`,clearable:``,style:{width:`100%`}},{default:e(()=>[(n(!0),f(u,null,g(N.value,e=>(n(),s(v,{key:e.id,label:e.name,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1}),h($,{label:`文章内容`},{default:e(()=>[h(p,{modelValue:L.content,"onUpdate:modelValue":d[8]||=e=>L.content=e,type:`textarea`,rows:10,placeholder:`请输入文章内容`},null,8,[`modelValue`])]),_:1}),h($,{label:`可见范围`},{default:e(()=>[h(y,{modelValue:L.visibility,"onUpdate:modelValue":d[9]||=e=>L.visibility=e,style:{width:`100%`}},{default:e(()=>[(n(),f(u,null,g(H,(e,t)=>h(v,{key:t,label:e,value:Number(t)},null,8,[`label`,`value`])),64))]),_:1},8,[`modelValue`])]),_:1}),h($,{label:`封面图片`},{default:e(()=>[h(p,{modelValue:L.cover_image,"onUpdate:modelValue":d[10]||=e=>L.cover_image=e,placeholder:`请输入封面图片URL`},null,8,[`modelValue`])]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`,`title`])])}}};export{D as default}; |