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,Ut as c,Z as l,at as u,et as d,hn as f,it as p,rt as m,yt as h}from"./editor-DJ72UhpY.js";import{Br as g,Er as _,kr as v}from"./vendor-BqxQPPIo.js";import{l as y}from"./index-BsmF42t4.js";import{t as b}from"./category-BqOiLN1V.js";var x={class:`space-y-4`},S={class:`flex justify-between items-center`},C={class:`flex gap-2`},w={class:`flex justify-end gap-2`},T=u({__name:`Categories`,setup(u){let T=b(),E=i(!1),D=i(!1),O=i(null),k=i(!1),A=i(null),j=c({name:``,slug:``,description:``}),M={name:[{required:!0,message:`请输入分类名称`,trigger:`blur`}],slug:[{required:!0,message:`请输入Slug`,trigger:`blur`},{pattern:/^[a-z0-9-]+$/,message:`Slug只能包含小写字母、数字和连字符`,trigger:`blur`}]};function N(){j.name=``,j.slug=``,j.description=``,O.value=null}function P(){D.value=!1,N(),E.value=!0}function F(e){D.value=!0,O.value=e.id,j.name=e.name,j.slug=e.slug,j.description=e.description||``,E.value=!0}async function I(e){try{await T.deleteCategory(e.id),y.success(`删除成功`)}catch(e){y.error(e.message||`删除失败`)}}async function L(){try{await A.value?.validate(),k.value=!0,D.value&&O.value?(await T.updateCategory(O.value,j),y.success(`更新成功`)):(await T.createCategory(j),y.success(`创建成功`)),E.value=!1,N()}catch(e){e.message&&y.error(e.message)}finally{k.value=!1}}return h(()=>{T.fetchCategories()}),(i,c)=>{let u=n(`el-icon`),h=n(`el-button`),y=n(`el-table-column`),b=n(`el-table`),O=n(`el-input`),N=n(`el-form-item`),R=n(`el-form`),z=n(`el-dialog`),B=t(`loading`);return s(),d(`div`,x,[l(`div`,S,[c[6]||=l(`h1`,{class:`text-2xl font-bold`},`分类管理`,-1),p(h,{type:`primary`,onClick:P},{default:r(()=>[p(u,{class:`mr-1`},{default:r(()=>[p(e(g))]),_:1}),c[5]||=m(` 新建分类 `,-1)]),_:1})]),a((s(),o(b,{data:e(T).categories||[],size:`small`,stripe:``},{default:r(()=>[p(y,{prop:`id`,label:`ID`,width:`60`}),p(y,{prop:`name`,label:`名称`}),p(y,{prop:`slug`,label:`Slug`}),p(y,{prop:`description`,label:`描述`,"show-overflow-tooltip":``}),p(y,{label:`创建时间`,width:`180`},{default:r(({row:e})=>[m(f(new Date(e.created_at).toLocaleString()),1)]),_:1}),p(y,{label:`操作`,width:`150`},{default:r(({row:t})=>[l(`div`,C,[p(h,{size:`small`,type:`primary`,onClick:e=>F(t)},{default:r(()=>[p(u,null,{default:r(()=>[p(e(v))]),_:1}),c[7]||=m(` 编辑 `,-1)]),_:1},8,[`onClick`]),p(h,{size:`small`,type:`danger`,onClick:e=>I(t)},{default:r(()=>[p(u,null,{default:r(()=>[p(e(_))]),_:1}),c[8]||=m(` 删除 `,-1)]),_:1},8,[`onClick`])])]),_:1})]),_:1},8,[`data`])),[[B,e(T).loading]]),p(z,{modelValue:E.value,"onUpdate:modelValue":c[4]||=e=>E.value=e,title:D.value?`编辑分类`:`新建分类`,width:`500px`},{footer:r(()=>[l(`div`,w,[p(h,{onClick:c[3]||=e=>E.value=!1},{default:r(()=>[...c[9]||=[m(`取消`,-1)]]),_:1}),p(h,{type:`primary`,loading:k.value,onClick:L},{default:r(()=>[...c[10]||=[m(` 保存 `,-1)]]),_:1},8,[`loading`])])]),default:r(()=>[p(R,{ref_key:`formRef`,ref:A,model:j,rules:M,"label-position":`left`,"label-width":`80`},{default:r(()=>[p(N,{label:`名称`,prop:`name`},{default:r(()=>[p(O,{modelValue:j.name,"onUpdate:modelValue":c[0]||=e=>j.name=e,placeholder:`分类名称`},null,8,[`modelValue`])]),_:1}),p(N,{label:`Slug`,prop:`slug`},{default:r(()=>[p(O,{modelValue:j.slug,"onUpdate:modelValue":c[1]||=e=>j.slug=e,placeholder:`URL别名technology`},null,8,[`modelValue`])]),_:1}),p(N,{label:`描述`,prop:`description`},{default:r(()=>[p(O,{modelValue:j.description,"onUpdate:modelValue":c[2]||=e=>j.description=e,type:`textarea`,placeholder:`分类描述`,rows:3},null,8,[`modelValue`])]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`,`title`])])}}});export{T as default};