3 lines
7.3 KiB
JavaScript
3 lines
7.3 KiB
JavaScript
import{d as X,n as Y,o as M,c as Z,a as y,b as a,w as o,e as ee,D as ae,q as le,k as r,r as n,G as te,g as E,H as oe,j as d,I as se,x as Q,m as ne,E as u,J as B,_ as re}from"./index-DIl-pxgT.js";import{g as ue,t as de,u as ie,c as pe,d as me,s as ce}from"./datasource-idO2fJD3.js";const fe={class:"page-container"},_e={class:"page-header"},ve={class:"search-bar card-shadow"},ge={class:"table-card card-shadow"},ye={class:"pagination-bar"},be=X({__name:"DataSource",setup(Ve){const k=r(!1),C=r([]),b=r(1),S=r(20),D=r(0),h=r(""),f=r(!1),V=r(!1),w=r(null),x=r(!1),U=r(),l=ne({name:"",source_type:"postgresql",host:"",port:5432,database_name:"",username:"",password:"",extra_params:""}),I={name:[{required:!0,message:"请输入名称",trigger:"blur"}],source_type:[{required:!0,message:"请选择类型",trigger:"change"}]};function N(s){return{postgresql:"PostgreSQL",mysql:"MySQL",oracle:"Oracle",sqlserver:"SQL Server",dm:"达梦"}[s]||s}async function v(){k.value=!0;try{const s=await ue({page:b.value,page_size:S.value,keyword:h.value||void 0});C.value=s.data||[],D.value=s.total||0}finally{k.value=!1}}function q(){b.value=1,v()}function P(){V.value=!1,w.value=null,l.name="",l.source_type="postgresql",l.host="",l.port=5432,l.database_name="",l.username="",l.password="",l.extra_params="",f.value=!0}function $(s){V.value=!0,w.value=s.id,l.name=s.name,l.source_type=s.source_type,l.host=s.host||"",l.port=s.port||5432,l.database_name=s.database_name||"",l.username=s.username||"",l.password="",f.value=!0}async function O(){try{const s=await de({...l});s.success?u.success(s.message):u.error(s.message)}catch(s){u.error((s==null?void 0:s.message)||"测试失败")}}async function T(){var e;if(await((e=U.value)==null?void 0:e.validate().catch(()=>!1))){x.value=!0;try{V.value&&w.value?(await ie(w.value,{...l}),u.success("更新成功")):(await pe({...l}),u.success("创建成功")),f.value=!1,v()}catch(_){u.error((_==null?void 0:_.message)||"操作失败")}finally{x.value=!1}}}async function J(s){try{await B.confirm("确认删除该数据源?相关元数据也将被删除","提示",{type:"warning"}),await me(s.id),u.success("删除成功"),v()}catch(e){e!=="cancel"&&u.error((e==null?void 0:e.message)||"删除失败")}}async function K(s){try{await B.confirm("确认同步该数据源的元数据?","提示",{type:"info"});const e=await ce(s.id);e.success?u.success(e.message):u.error(e.message)}catch(e){e!=="cancel"&&u.error((e==null?void 0:e.message)||"同步失败")}}return Y(v),(s,e)=>{const _=n("el-icon"),i=n("el-button"),c=n("el-input"),p=n("el-table-column"),z=n("el-tag"),R=n("el-table"),j=n("el-pagination"),m=n("el-form-item"),g=n("el-option"),A=n("el-select"),G=n("el-input-number"),H=n("el-form"),F=n("el-dialog"),W=te("loading");return M(),Z("div",fe,[y("div",_e,[e[14]||(e[14]=y("h2",{class:"page-title"},"数据源管理",-1)),a(i,{type:"primary",onClick:P},{default:o(()=>[a(_,null,{default:o(()=>[a(E(oe))]),_:1}),e[13]||(e[13]=d("新增数据源 ",-1))]),_:1})]),y("div",ve,[a(c,{modelValue:h.value,"onUpdate:modelValue":e[0]||(e[0]=t=>h.value=t),placeholder:"搜索数据源名称/主机",clearable:"",style:{width:"260px"},onKeyup:ee(q,["enter"])},{append:o(()=>[a(i,{onClick:q},{default:o(()=>[a(_,null,{default:o(()=>[a(E(se))]),_:1})]),_:1})]),_:1},8,["modelValue"])]),y("div",ge,[ae((M(),le(R,{data:C.value,stripe:"",size:"default"},{default:o(()=>[a(p,{prop:"name",label:"名称","min-width":"140"}),a(p,{prop:"source_type",label:"类型",width:"100"},{default:o(({row:t})=>[a(z,{size:"small"},{default:o(()=>[d(Q(N(t.source_type)),1)]),_:2},1024)]),_:1}),a(p,{prop:"host",label:"主机","min-width":"140"}),a(p,{prop:"port",label:"端口",width:"80"}),a(p,{prop:"database_name",label:"数据库","min-width":"120"}),a(p,{prop:"username",label:"用户名","min-width":"100"}),a(p,{prop:"status",label:"状态",width:"90"},{default:o(({row:t})=>[a(z,{type:t.status==="active"?"success":"danger",size:"small"},{default:o(()=>[d(Q(t.status==="active"?"正常":"异常"),1)]),_:2},1032,["type"])]),_:1}),a(p,{label:"操作",width:"260",fixed:"right"},{default:o(({row:t})=>[a(i,{type:"primary",link:"",size:"small",onClick:L=>$(t)},{default:o(()=>[...e[15]||(e[15]=[d("编辑",-1)])]),_:1},8,["onClick"]),a(i,{type:"primary",link:"",size:"small",onClick:L=>K(t)},{default:o(()=>[...e[16]||(e[16]=[d("同步元数据",-1)])]),_:1},8,["onClick"]),a(i,{type:"danger",link:"",size:"small",onClick:L=>J(t)},{default:o(()=>[...e[17]||(e[17]=[d("删除",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[W,k.value]]),y("div",ye,[a(j,{"current-page":b.value,"onUpdate:currentPage":e[1]||(e[1]=t=>b.value=t),"page-size":S.value,"onUpdate:pageSize":e[2]||(e[2]=t=>S.value=t),total:D.value,layout:"total, prev, pager, next",onChange:v},null,8,["current-page","page-size","total"])])]),a(F,{modelValue:f.value,"onUpdate:modelValue":e[12]||(e[12]=t=>f.value=t),title:V.value?"编辑数据源":"新增数据源",width:"560px","destroy-on-close":""},{footer:o(()=>[a(i,{onClick:e[11]||(e[11]=t=>f.value=!1)},{default:o(()=>[...e[18]||(e[18]=[d("取消",-1)])]),_:1}),a(i,{onClick:O},{default:o(()=>[...e[19]||(e[19]=[d("连接测试",-1)])]),_:1}),a(i,{type:"primary",loading:x.value,onClick:T},{default:o(()=>[...e[20]||(e[20]=[d("确定",-1)])]),_:1},8,["loading"])]),default:o(()=>[a(H,{ref_key:"formRef",ref:U,model:l,rules:I,"label-width":"100px"},{default:o(()=>[a(m,{label:"名称",prop:"name"},{default:o(()=>[a(c,{modelValue:l.name,"onUpdate:modelValue":e[3]||(e[3]=t=>l.name=t),placeholder:"请输入数据源名称"},null,8,["modelValue"])]),_:1}),a(m,{label:"类型",prop:"source_type"},{default:o(()=>[a(A,{modelValue:l.source_type,"onUpdate:modelValue":e[4]||(e[4]=t=>l.source_type=t),placeholder:"选择数据库类型",style:{width:"100%"}},{default:o(()=>[a(g,{label:"PostgreSQL",value:"postgresql"}),a(g,{label:"MySQL",value:"mysql"}),a(g,{label:"Oracle",value:"oracle"}),a(g,{label:"SQL Server",value:"sqlserver"}),a(g,{label:"达梦(DM)",value:"dm"})]),_:1},8,["modelValue"])]),_:1}),a(m,{label:"主机",prop:"host"},{default:o(()=>[a(c,{modelValue:l.host,"onUpdate:modelValue":e[5]||(e[5]=t=>l.host=t),placeholder:"IP或域名"},null,8,["modelValue"])]),_:1}),a(m,{label:"端口",prop:"port"},{default:o(()=>[a(G,{modelValue:l.port,"onUpdate:modelValue":e[6]||(e[6]=t=>l.port=t),min:1,max:65535,style:{width:"100%"}},null,8,["modelValue"])]),_:1}),a(m,{label:"数据库",prop:"database_name"},{default:o(()=>[a(c,{modelValue:l.database_name,"onUpdate:modelValue":e[7]||(e[7]=t=>l.database_name=t),placeholder:"数据库名称"},null,8,["modelValue"])]),_:1}),a(m,{label:"用户名",prop:"username"},{default:o(()=>[a(c,{modelValue:l.username,"onUpdate:modelValue":e[8]||(e[8]=t=>l.username=t),placeholder:"连接用户名"},null,8,["modelValue"])]),_:1}),a(m,{label:"密码",prop:"password"},{default:o(()=>[a(c,{modelValue:l.password,"onUpdate:modelValue":e[9]||(e[9]=t=>l.password=t),type:"password",placeholder:"连接密码","show-password":""},null,8,["modelValue"])]),_:1}),a(m,{label:"扩展参数"},{default:o(()=>[a(c,{modelValue:l.extra_params,"onUpdate:modelValue":e[10]||(e[10]=t=>l.extra_params=t),type:"textarea",rows:2,placeholder:"JSON格式额外连接参数"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])}}}),Se=re(be,[["__scopeId","data-v-e577ddaa"]]);export{Se as default};
|
|
//# sourceMappingURL=DataSource-w9SHXJa1.js.map
|