mira-app-server
Version:
Mira Server - standalone server application using mira-app-core
2 lines (1 loc) • 5.62 kB
JavaScript
import{am as E,bi as M,aT as x,aM as j,ae as V,aa as u,a$ as i,b5 as e,aj as a,bB as l,u as _,U as G,C as L,aG as O,b3 as v,ai as d,W as T,Y as $,Z as p,$ as q,ab as A,a0 as m,ac as U,i as F,aX as H,E as I,G as J,H as K,J as P,t as h,bC as W,bw as X,K as Y,aO as f}from"./index-BAS7XAoe.js";import{a as b}from"./admin-BnkG0Mjo.js";import{u as Z,_ as Q}from"./useConfirmDialog-D9KV7rp5.js";import{L as R,u as ee,n as ae}from"./index-CsJj9qiO.js";const le={class:"space-y-6"},se={class:"flex items-center justify-between"},te={class:"text-2xl font-bold"},ne={class:"rounded-md border"},oe={class:"flex gap-1"},ie={key:0,class:"space-y-4"},ue={class:"space-y-2"},de={class:"text-sm font-medium"},re={class:"space-y-2"},me={class:"text-sm font-medium"},ce={class:"space-y-2"},fe={class:"text-sm font-medium"},_e={class:"space-y-2"},ve={class:"text-sm font-medium"},be=E({__name:"index",setup(pe){const{t}=M(),{confirmDialog:y,requireConfirm:D}=Z(),g=x([]),C=x(!1),c=x(!1),n=x(null);async function k(){C.value=!0;try{const r=await b.list();g.value=Array.isArray(r.data)?r.data:[]}catch{v.error(t("common.failed"))}finally{C.value=!1}}function z(){n.value={username:"",email:"",password:"",role:"user"},c.value=!0}function B(r){n.value={id:r.id,username:r.username,email:r.email,password:"",role:r.role},c.value=!0}async function N(){if(n.value)try{n.value.id?await b.update(n.value.id,{username:n.value.username,email:n.value.email,role:n.value.role,...n.value.password?{password:n.value.password}:{}}):await b.create({username:n.value.username,email:n.value.email,password:n.value.password}),v.success(t("common.success")),c.value=!1,await k()}catch{v.error(t("common.failed"))}}async function S(r){if(await D())try{await b.delete(r),v.success(t("common.success")),await k()}catch{v.error(t("common.failed"))}}return j(k),(r,o)=>(f(),V("div",le,[u("div",se,[u("h1",te,i(e(t)("admin.title")),1),a(e(_),{onClick:z},{default:l(()=>[a(e(R),{class:"mr-2 size-4"}),d(" "+i(e(t)("admin.createAdmin")),1)]),_:1})]),u("div",ne,[a(e(G),null,{default:l(()=>[a(e(T),null,{default:l(()=>[a(e($),null,{default:l(()=>[a(e(p),null,{default:l(()=>[d(i(e(t)("common.name")),1)]),_:1}),a(e(p),null,{default:l(()=>[d(i(e(t)("admin.email")),1)]),_:1}),a(e(p),null,{default:l(()=>[d(i(e(t)("admin.role")),1)]),_:1}),a(e(p),null,{default:l(()=>[d(i(e(t)("common.createdAt")),1)]),_:1}),a(e(p),null,{default:l(()=>[d(i(e(t)("common.actions")),1)]),_:1})]),_:1})]),_:1}),a(e(q),null,{default:l(()=>[C.value?(f(),A(e($),{key:0},{default:l(()=>[a(e(m),{colspan:5,class:"py-8 text-center text-muted-foreground"},{default:l(()=>[d(i(e(t)("common.loading")),1)]),_:1})]),_:1})):g.value.length?U("",!0):(f(),A(e($),{key:1},{default:l(()=>[a(e(m),{colspan:5,class:"py-8 text-center text-muted-foreground"},{default:l(()=>[d(i(e(t)("common.noData")),1)]),_:1})]),_:1})),(f(!0),V(F,null,H(g.value,s=>(f(),A(e($),{key:s.id},{default:l(()=>[a(e(m),{class:"font-medium"},{default:l(()=>[d(i(s.username),1)]),_:2},1024),a(e(m),{class:"text-muted-foreground"},{default:l(()=>[d(i(s.email),1)]),_:2},1024),a(e(m),null,{default:l(()=>[a(e(I),{variant:s.role==="super"?"default":s.role==="admin"?"secondary":"outline"},{default:l(()=>[d(i(s.role==="super"?e(t)("admin.superAdmin"):s.role==="admin"?e(t)("admin.admin"):s.role),1)]),_:2},1032,["variant"])]),_:2},1024),a(e(m),{class:"text-muted-foreground"},{default:l(()=>{var w;return[d(i((w=s.createdAt)==null?void 0:w.slice(0,10)),1)]}),_:2},1024),a(e(m),null,{default:l(()=>[u("div",oe,[a(e(_),{variant:"ghost",size:"icon",onClick:w=>B(s)},{default:l(()=>[a(e(ee),{class:"size-4"})]),_:2},1032,["onClick"]),a(e(_),{variant:"ghost",size:"icon",onClick:w=>S(s.id)},{default:l(()=>[a(e(ae),{class:"size-4 text-destructive"})]),_:2},1032,["onClick"])])]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})]),a(e(L),{open:c.value,"onUpdate:open":o[5]||(o[5]=s=>c.value=s)},{default:l(()=>[a(e(J),null,{default:l(()=>[a(e(K),null,{default:l(()=>[a(e(P),null,{default:l(()=>{var s;return[d(i((s=n.value)!=null&&s.id?e(t)("admin.editAdmin"):e(t)("admin.createAdmin")),1)]}),_:1})]),_:1}),n.value?(f(),V("div",ie,[u("div",ue,[u("label",de,i(e(t)("common.name")),1),a(e(h),{modelValue:n.value.username,"onUpdate:modelValue":o[0]||(o[0]=s=>n.value.username=s)},null,8,["modelValue"])]),u("div",re,[u("label",me,i(e(t)("admin.email")),1),a(e(h),{modelValue:n.value.email,"onUpdate:modelValue":o[1]||(o[1]=s=>n.value.email=s),type:"email"},null,8,["modelValue"])]),u("div",ce,[u("label",fe,i(e(t)("auth.password")),1),a(e(h),{modelValue:n.value.password,"onUpdate:modelValue":o[2]||(o[2]=s=>n.value.password=s),type:"password",placeholder:n.value.id?"(leave empty to keep)":""},null,8,["modelValue","placeholder"])]),u("div",_e,[u("label",ve,i(e(t)("admin.role")),1),W(u("select",{"onUpdate:modelValue":o[3]||(o[3]=s=>n.value.role=s),class:"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-xs transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring"},o[9]||(o[9]=[u("option",{value:"super"},"Super Admin",-1),u("option",{value:"admin"},"Admin",-1),u("option",{value:"user"},"User",-1)]),512),[[X,n.value.role]])])])):U("",!0),a(e(Y),null,{default:l(()=>[a(e(_),{variant:"outline",onClick:o[4]||(o[4]=s=>c.value=!1)},{default:l(()=>[d(i(e(t)("common.cancel")),1)]),_:1}),a(e(_),{onClick:N},{default:l(()=>[d(i(e(t)("common.save")),1)]),_:1})]),_:1})]),_:1})]),_:1},8,["open"]),a(Q,O(e(y),{"onUpdate:open":o[6]||(o[6]=s=>e(y).open=s),onConfirm:o[7]||(o[7]=s=>e(y).resolve(!0)),onCancel:o[8]||(o[8]=s=>e(y).resolve(!1))}),null,16)]))}});export{be as default};