This commit is contained in:
Iaatw
2026-05-08 13:39:01 +08:00
commit 6901a2071a
145 changed files with 420 additions and 0 deletions

View File

@@ -0,0 +1 @@
import{$t as e,Dt as t,Et as n,Ft as r,Gt as i,It as a,Q as o,St as s,Z as c,at as l,et as u,hn as d,it as f,rt as p,yt as m}from"./editor-DJ72UhpY.js";import{Br as h,Mr as g,Or as _,Sr as v,Vr as y,Yr as b,a as x,kr as S}from"./vendor-BqxQPPIo.js";import{t as C}from"./post-C2MqO86O.js";import{t as w}from"./category-BqOiLN1V.js";import{t as T}from"./tag-DZxWPK-P.js";import{t as E}from"./format-D0maeLNC.js";var D={class:`space-y-6`},O={class:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4`},k={class:`flex flex-wrap gap-4`},A=l({__name:`Dashboard`,setup(l){let A=x(),j=C(),M=w(),N=T(),P=i({posts:0,published:0,drafts:0,views:0}),F=i([]);function I(){A.push({name:`AdminPostCreate`})}async function L(){try{let e=await j.fetchAdminPosts({page:1,size:5});F.value=e.list||[],P.value.posts=e.total||0;let t=(await j.fetchAdminPosts({page:1,size:100})).list||[];P.value.published=t.filter(e=>`published_at`in e&&e.published_at).length,P.value.drafts=t.length-P.value.published,P.value.views=t.reduce((e,t)=>e+t.views,0),await M.fetchCategories(),await N.fetchTags()}catch(e){console.error(`加载数据失败:`,e)}}return m(L),(i,l)=>{let m=n(`el-icon`),x=n(`el-statistic`),C=n(`el-card`),w=n(`el-button`),T=n(`el-link`),M=n(`el-table-column`),N=n(`el-table`),L=t(`loading`);return s(),u(`div`,D,[l[7]||=c(`h1`,{class:`text-2xl font-bold`},`仪表盘`,-1),c(`div`,O,[f(C,null,{default:r(()=>[f(x,{title:`文章总数`,value:P.value.posts},{prefix:r(()=>[f(m,{class:`text-blue-500`},{default:r(()=>[f(e(_))]),_:1})]),_:1},8,[`value`])]),_:1}),f(C,null,{default:r(()=>[f(x,{title:`已发布`,value:P.value.published},{prefix:r(()=>[f(m,{class:`text-green-500`},{default:r(()=>[f(e(v))]),_:1})]),_:1},8,[`value`])]),_:1}),f(C,null,{default:r(()=>[f(x,{title:`草稿`,value:P.value.drafts},{prefix:r(()=>[f(m,{class:`text-orange-500`},{default:r(()=>[f(e(S))]),_:1})]),_:1},8,[`value`])]),_:1}),f(C,null,{default:r(()=>[f(x,{title:`总阅读量`,value:P.value.views},{prefix:r(()=>[f(m,{class:`text-purple-500`},{default:r(()=>[f(e(b))]),_:1})]),_:1},8,[`value`])]),_:1})]),f(C,null,{header:r(()=>[...l[2]||=[p(`快捷操作`,-1)]]),default:r(()=>[c(`div`,k,[f(w,{type:`primary`,onClick:I},{default:r(()=>[f(m,{class:`mr-1`},{default:r(()=>[f(e(h))]),_:1}),l[3]||=p(` 新建文章 `,-1)]),_:1}),f(w,{onClick:l[0]||=t=>e(A).push(`/admin/categories`)},{default:r(()=>[f(m,{class:`mr-1`},{default:r(()=>[f(e(g))]),_:1}),l[4]||=p(` 管理分类 `,-1)]),_:1}),f(w,{onClick:l[1]||=t=>e(A).push(`/admin/tags`)},{default:r(()=>[f(m,{class:`mr-1`},{default:r(()=>[f(e(y))]),_:1}),l[5]||=p(` 管理标签 `,-1)]),_:1})])]),_:1}),f(C,null,{header:r(()=>[...l[6]||=[p(`最近文章`,-1)]]),default:r(()=>[a((s(),o(N,{data:F.value,size:`small`},{default:r(()=>[f(M,{label:`标题`,"min-width":`200`},{default:r(({row:t})=>[f(T,{type:`primary`,onClick:n=>e(A).push(`/admin/posts/edit/${t.id}`)},{default:r(()=>[p(d(t.title),1)]),_:2},1032,[`onClick`])]),_:1}),f(M,{label:`分类`,width:`120`},{default:r(({row:e})=>[p(d(e.category?.name||`-`),1)]),_:1}),f(M,{prop:`views`,label:`阅读量`,width:`100`}),f(M,{label:`发布时间`,width:`180`},{default:r(({row:t})=>[p(d(t.published_at?e(E)(t.published_at):`-`),1)]),_:1})]),_:1},8,[`data`])),[[L,e(j).loading]])]),_:1})])}}});export{A as default};