Files
ijmuv-blog-release/frontend/assets/Categories-CbXWlFg9.js
2026-05-08 13:39:01 +08:00

1 line
3.7 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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};