UNPKG

mira-app-server

Version:

Mira Server - standalone server application using mira-app-core

2 lines (1 loc) 5.68 kB
import{am as Z,bi as M,aT as d,a9 as z,bz as P,ae as o,aa as V,a$ as r,b5 as e,aj as l,bB as a,u as g,ab as c,_ as ee,U as I,ac as R,C as E,ai as n,i as _,aX as m,s as ae,W as N,Y as y,Z as p,$ as T,a0 as b,G as F,H as G,J as H,K as le,a7 as j,b3 as w,aO as u}from"./index-BAS7XAoe.js";import{u as te}from"./useLibrary-lubOK0Bg.js";import{_ as J}from"./Skeleton.vue_vue_type_script_setup_true_lang-CGBPTtq-.js";import{_ as se}from"./Textarea.vue_vue_type_script_setup_true_lang-DsmTjQmg.js";const ue={class:"space-y-6"},ne={class:"flex items-center justify-between"},oe={class:"text-2xl font-bold"},re={class:"flex gap-2"},de={key:1,class:"rounded-md border"},fe={key:2,class:"py-12 text-center text-muted-foreground"},ie={key:0,class:"mt-4 max-h-72 overflow-auto rounded-md border"},_e={class:"p-2 text-center text-sm text-muted-foreground"},me={key:0,class:"space-y-3 p-6"},ce={key:1,class:"max-h-96 overflow-auto"},ve={key:2,class:"py-8 text-center text-muted-foreground"},$e=Z({__name:"index",setup(ye){const{t:k}=M(),{selectedId:f}=te(),C=d([]),K=d([]),W=d([]),h=d(!1),L=d(!1),S=d(""),v=d([]),A=z(()=>v.value.length?Object.keys(v.value[0]):[]),D=d(!1),U=d(""),x=d([]),Q=z(()=>x.value.length?Object.keys(x.value[0]):[]),B=d(!1);async function O(){if(f.value){h.value=!0;try{const i=await j.get("/database/tables",{params:{libraryId:f.value}});C.value=Array.isArray(i.data)?i.data:[]}catch{w.error(k("common.failed"))}finally{h.value=!1}}}async function X(i){if(f.value){U.value=i.name,B.value=!0,D.value=!0;try{const t=await j.get(`/database/tables/${i.name}/data`,{params:{libraryId:f.value}});x.value=Array.isArray(t.data)?t.data:[]}catch{w.error(k("common.failed")),x.value=[]}finally{B.value=!1}}}async function Y(){var i,t;if(!S.value.trim()){w.warning("请输入SQL查询语句");return}try{const s=await j.post("/database/query",{sql:S.value,libraryId:f.value});v.value=Array.isArray(s.data)?s.data:[],w.success(`查询成功,返回 ${v.value.length} 条记录`)}catch(s){w.error(((t=(i=s.response)==null?void 0:i.data)==null?void 0:t.error)||"SQL执行失败")}}return P(f,()=>{C.value=[],K.value=[],W.value=[],O()},{immediate:!0}),(i,t)=>(u(),o("div",ue,[V("div",ne,[V("h1",oe,r(e(k)("database.title")),1),V("div",re,[l(e(g),{disabled:!e(f),onClick:O},{default:a(()=>[n(r(e(k)("common.refresh")),1)]),_:1},8,["disabled"]),l(e(g),{disabled:!e(f),onClick:t[0]||(t[0]=s=>{L.value=!0,v.value=[]})},{default:a(()=>t[5]||(t[5]=[n("SQL查询")])),_:1},8,["disabled"])])]),h.value?(u(),c(e(ee),{key:0},{default:a(()=>[l(e(ae),{class:"space-y-3 p-6"},{default:a(()=>[(u(),o(_,null,m(5,s=>l(e(J),{key:s,class:"h-8"})),64))]),_:1})]),_:1})):C.value.length?(u(),o("div",de,[l(e(I),null,{default:a(()=>[l(e(N),null,{default:a(()=>[l(e(y),null,{default:a(()=>[l(e(p),{class:"w-48"},{default:a(()=>t[6]||(t[6]=[n("表名")])),_:1}),l(e(p),null,{default:a(()=>t[7]||(t[7]=[n("结构")])),_:1}),l(e(p),{class:"w-24"},{default:a(()=>t[8]||(t[8]=[n("行数")])),_:1}),l(e(p),{class:"w-24"},{default:a(()=>t[9]||(t[9]=[n("操作")])),_:1})]),_:1})]),_:1}),l(e(T),null,{default:a(()=>[(u(!0),o(_,null,m(C.value,s=>(u(),c(e(y),{key:s.name},{default:a(()=>[l(e(b),{class:"font-mono"},{default:a(()=>[n(r(s.name),1)]),_:2},1024),l(e(b),{class:"max-w-md truncate text-muted-foreground"},{default:a(()=>[n(r(s.schema),1)]),_:2},1024),l(e(b),null,{default:a(()=>[n(r(s.rowCount),1)]),_:2},1024),l(e(b),null,{default:a(()=>[l(e(g),{size:"sm",variant:"outline",onClick:q=>X(s)},{default:a(()=>t[10]||(t[10]=[n("查看数据")])),_:2},1032,["onClick"])]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})])):e(f)?(u(),o("div",fe,r(e(k)("common.noData")),1)):R("",!0),l(e(E),{open:L.value,"onUpdate:open":t[3]||(t[3]=s=>L.value=s)},{default:a(()=>[l(e(F),{class:"max-w-4xl"},{default:a(()=>[l(e(G),null,{default:a(()=>[l(e(H),null,{default:a(()=>t[11]||(t[11]=[n("SQL 查询")])),_:1})]),_:1}),l(e(se),{modelValue:S.value,"onUpdate:modelValue":t[1]||(t[1]=s=>S.value=s),class:"font-mono text-sm",rows:6,placeholder:"请输入SQL查询语句..."},null,8,["modelValue"]),A.value.length?(u(),o("div",ie,[l(e(I),null,{default:a(()=>[l(e(N),null,{default:a(()=>[l(e(y),null,{default:a(()=>[(u(!0),o(_,null,m(A.value,s=>(u(),c(e(p),{key:s},{default:a(()=>[n(r(s),1)]),_:2},1024))),128))]),_:1})]),_:1}),l(e(T),null,{default:a(()=>[(u(!0),o(_,null,m(v.value,(s,q)=>(u(),c(e(y),{key:q},{default:a(()=>[(u(!0),o(_,null,m(A.value,$=>(u(),c(e(b),{key:$},{default:a(()=>[n(r(s[$]),1)]),_:2},1024))),128))]),_:2},1024))),128))]),_:1})]),_:1}),V("p",_e,"共 "+r(v.value.length)+" 条记录",1)])):R("",!0),l(e(le),null,{default:a(()=>[l(e(g),{variant:"outline",onClick:t[2]||(t[2]=s=>L.value=!1)},{default:a(()=>t[12]||(t[12]=[n("关闭")])),_:1}),l(e(g),{onClick:Y},{default:a(()=>t[13]||(t[13]=[n("执行")])),_:1})]),_:1})]),_:1})]),_:1},8,["open"]),l(e(E),{open:D.value,"onUpdate:open":t[4]||(t[4]=s=>D.value=s)},{default:a(()=>[l(e(F),{class:"max-w-5xl"},{default:a(()=>[l(e(G),null,{default:a(()=>[l(e(H),null,{default:a(()=>[n("表数据: "+r(U.value),1)]),_:1})]),_:1}),B.value?(u(),o("div",me,[(u(),o(_,null,m(3,s=>l(e(J),{key:s,class:"h-8"})),64))])):Q.value.length?(u(),o("div",ce,[l(e(I),null,{default:a(()=>[l(e(N),null,{default:a(()=>[l(e(y),null,{default:a(()=>[(u(!0),o(_,null,m(Q.value,s=>(u(),c(e(p),{key:s},{default:a(()=>[n(r(s),1)]),_:2},1024))),128))]),_:1})]),_:1}),l(e(T),null,{default:a(()=>[(u(!0),o(_,null,m(x.value,(s,q)=>(u(),c(e(y),{key:q},{default:a(()=>[(u(!0),o(_,null,m(Q.value,$=>(u(),c(e(b),{key:$},{default:a(()=>[n(r(s[$]),1)]),_:2},1024))),128))]),_:2},1024))),128))]),_:1})]),_:1})])):(u(),o("div",ve,"无数据"))]),_:1})]),_:1},8,["open"])]))}});export{$e as default};