import{_ as B,H as _,I as N,J as O,K as A,L as M,M as K,r as l,j as H,o as u,d as p,w as d,k as C,m as D,b as c,l as F,f as n,C as W,u as S,c as f,a as I,t as v,F as J,N as Q}from"./index-f87df9cc.js";import{d as $}from"./db-e07de7fa.js";import"./monaco-editor-f9caa2e2.js";const b=[{label:"mysql",value:"com.mysql.cj.jdbc.Driver",url:"jdbc:mysql://localhost:3306/bladex_report"},{label:"sqlServer",value:"com.microsoft.sqlserver.jdbc.SQLServerDriver",url:"jdbc:sqlserver://127.0.0.1:1433;DatabaseName=bladex"},{label:"postgreSql",value:"org.postgresql.Driver",url:"jdbc:postgresql://127.0.0.1:5432/bladex"},{label:"oracle",value:"oracle.jdbc.OracleDriver",url:"jdbc:oracle:thin:@127.0.0.1:1521:orcl"}],G={data(){return{search:{},loading:!1,isEdit:!1,form:{},page:{pageSize:10,currentPage:1,total:0},option:{height:"auto",calcHeight:360,header:!1,index:!0,copyBtn:!0,labelWidth:110,menuWidth:280,column:[{label:"名称",prop:"name",width:120,rules:[{required:!0,message:"请输入数据源名称",trigger:"blur"}]},{label:"类型",prop:"driverClass",type:"select",width:200,dicData:b,rules:[{required:!0,message:"请选择类型",trigger:"blur"}]},{label:"用户名",prop:"username",width:120,rules:[{required:!0,message:"请输入用户名",trigger:"blur"}]},{label:"密码",prop:"password",type:"password",hide:!0,rules:[{required:!0,message:"请输入密码",trigger:"blur"}]},{label:"连接地址",prop:"url",type:"textarea",overHidden:!0,span:24,rules:[{required:!0,message:"请输入连接地址",trigger:"blur"}]},{label:"备注",prop:"remark",span:24,minRows:3,hide:!0,type:"textarea"}]},data:[],publicPath:"/DataV/"}},components:{db:$},watch:{"form.driverClass"(e){if(this.isEdit){this.isEdit=!1;return}let t=b.find(o=>o.value==e)||{};this.form.url=t.url}},methods:{validData(e){return[0,1,2,3].includes(e)},getTypeLabel(e){return b.find(t=>t.value==e).label},handleEdit(e,t){this.$refs.crud.rowEdit(e,t)},rowSave(e,t,o){e.password=_.encryptAES(e.password),N(e).then(()=>{this.onLoad(),this.$message({type:"success",message:"操作成功!"}),t()}).catch(i=>{o()})},rowUpdate(e,t,o,i){if(this.validData(t)&&this.$website.isDemo)return this.$message.error(this.$website.isDemoTip),o(),!1;e.password=_.encryptAES(e.password),O(e).then(()=>{o(),this.onLoad(),this.$message({type:"success",message:"操作成功!"})}).catch(s=>{i()})},rowDel(e,t){if(this.validData(t)&&this.$website.isDemo)return this.$message.error(this.$website.isDemoTip),!1;this.$confirm("确定将选择数据删除?",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>A(e.id)).then(()=>{this.onLoad(),this.$message({type:"success",message:"操作成功!"})})},beforeOpen(e,t){["edit","view"].includes(t)?M(this.form.id).then(o=>{const i=o.data.data;this.form={...i,password:_.decryptAES(i.password)},e()}):e()},refreshChange(){this.onLoad()},handleTest(e){let t=!1;e&&(t=!0);const o=e||{...this.form,password:_.encryptAES(this.form.password)},i=()=>{Q({driverClass:o.driverClass,url:o.url,username:o.username,password:o.password}).then(s=>{s.data&&s.data.code==200?(this.$message.success(s.data&&s.data.msg||"连接成功"),t&&this.$refs.db.handleOpen(e.id)):this.$message.error(s.data&&s.data.msg||"连接失败,请检查相关配置参数")})};this.$refs.crud&&this.$refs.crud.validate&&!e?this.$refs.crud.validate((s,r,w)=>{if(s)r(),i();else return!1}):i()},onLoad(){this.loading=!0,K({name:this.search.name,current:this.page.currentPage,size:this.page.pageSize}).then(e=>{this.loading=!1;const t=e.data.data;let o=t.records;o.forEach(i=>i._menu=!1),this.page.total=t.total,this.data=o})},handleCurrentChange(e){this.page.currentPage=e,this.onLoad()},handleSizeChange(e){this.page.pageSize=e,this.onLoad()}}},X={class:"content__box content__nav"},Y=["src"],Z=n("div",null,[n("p",null,"创建数据源"),n("span",null,"多库查询 自由组合")],-1),ee={class:"content__page"},te={class:"list-search"},se={class:"content__box"},ae=["onMouseenter","onMouseleave"],ne={class:"content__info"},oe={class:"content__logo"},re=["src"],le={key:0,class:"content__menu"},ie={class:"content__start"},ce=["onClick"],de=["onClick"],ue={class:"content__main"},pe={class:"content__name"},_e={class:"content__status"};function he(e,t,o,i,s,r){const w=l("el-button"),k=l("avue-crud"),L=l("el-icon-search"),h=l("el-icon"),q=l("el-input"),x=l("el-pagination"),z=l("el-header"),E=l("el-icon-edit"),P=l("el-icon-delete"),j=l("svg-icon"),V=l("el-empty"),T=l("el-main"),R=l("db",!0),U=l("el-container"),y=H("loading");return u(),p(U,{class:"list"},{default:d(()=>[C((u(),p(k,D({ref:"crud",style:{display:"none"},option:s.option,data:s.data,page:s.page,"onUpdate:page":t[1]||(t[1]=a=>s.page=a),"before-open":r.beforeOpen,modelValue:s.form,"onUpdate:modelValue":t[2]||(t[2]=a=>s.form=a)},e.$loadingParams,{onRowUpdate:r.rowUpdate,onRowSave:r.rowSave,onRowDel:r.rowDel,onRefreshChange:r.refreshChange,onOnLoad:r.onLoad}),{"menu-form":d(()=>[c(w,{type:"primary",icon:"el-icon-connection",onClick:t[0]||(t[0]=a=>r.handleTest())},{default:d(()=>[F("测试连接")]),_:1})]),_:1},16,["option","data","page","before-open","modelValue","onRowUpdate","onRowSave","onRowDel","onRefreshChange","onOnLoad"])),[[y,s.loading]]),c(z,{class:"content__header"},{default:d(()=>[n("div",X,[n("div",{class:"content__add",onClick:t[3]||(t[3]=a=>e.$refs.crud.rowAdd())},[n("img",{src:`${s.publicPath}img/db.png`,height:"40px",alt:""},null,8,Y),Z]),n("div",ee,[n("div",te,[c(q,{modelValue:s.search.name,"onUpdate:modelValue":t[4]||(t[4]=a=>s.search.name=a),onKeyup:W(r.onLoad,["enter"]),placeholder:"请输入名称"},{suffix:d(()=>[c(h,{onClick:r.onLoad,class:"el-input__icon"},{default:d(()=>[c(L)]),_:1},8,["onClick"])]),_:1},8,["modelValue","onKeyup"])]),s.page.total>0?(u(),p(x,{key:0,layout:"total, prev, pager, next,jumper",background:"",size:"small",onSizeChange:r.handleSizeChange,onCurrentChange:r.handleCurrentChange,"page-size":s.page.pageSize,"current-page":s.page.currentPage,"onUpdate:currentPage":t[5]||(t[5]=a=>s.page.currentPage=a),total:s.page.total},null,8,["onSizeChange","onCurrentChange","page-size","current-page","total"])):S("",!0)])])]),_:1}),C((u(),p(T,D({class:"content"},e.$loadingParams),{default:d(()=>[n("div",se,[s.data.length>0?(u(!0),f(J,{key:0},I(s.data,(a,g)=>(u(),f("div",{class:"content__item",onMouseenter:m=>a._menu=!0,onMouseleave:m=>a._menu=!1,key:g},[n("div",ne,[n("div",oe,[n("img",{src:`${s.publicPath}img/${r.getTypeLabel(a.driverClass)}.png`,alt:""},null,8,re),n("span",null,v(a.url),1)]),a._menu?(u(),f("div",le,[n("div",ie,[n("div",{class:"content__btn",onClick:m=>r.handleEdit(a,g)},[c(h,null,{default:d(()=>[c(E)]),_:1})],8,ce),n("div",{class:"content__btn",onClick:m=>r.rowDel(a,g)},[c(h,null,{default:d(()=>[c(P)]),_:1})],8,de)])])):S("",!0)]),n("div",ue,[n("span",pe,v(a.name),1),n("span",_e,v(a.username),1)])],40,ae))),128)):(u(),p(V,{key:1,class:"content__empty",description:"暂无数据"},{image:d(()=>[c(j,{"icon-class":"empty"})]),_:1}))])]),_:1},16)),[[y,s.loading]]),c(R,{ref:"db"},null,512)]),_:1})}const ve=B(G,[["render",he]]);export{ve as default};