2025-06-30 09:38:03 +08:00

2 lines
3.3 KiB
JavaScript

import{M as k}from"./monaco-editor-f9caa2e2.js";import{_ as C,L as E,U as b,r as c,o as i,d as f,w as _,f as a,c as m,F as v,a as g,n as T,b as u,t as p,l as j,u as x}from"./index-f87df9cc.js";const O={components:{MonacoEditor:k},data(){return{form:{},data:[],box:!1,id:null,sql:"",selectTable:"",tableList:[],columnList:[]}},computed:{option(){let t=[],e=this.data[0];return e&&Object.keys(e).forEach(o=>{t.push({label:o,prop:o,overHidden:!0})}),{height:300,menu:!1,header:!1,column:t}}},methods:{getSql(t){return{id:this.id,sql:t}},handleOpen(t){this.id=t,this.data=[],this.sql="",this.selectTable="",this.tableList=[],this.columnList=[],E(t).then(e=>{this.form=e.data.data,this.handleGetTable(),this.box=!0})},handleRun(){this.data=[];let t=this.getSql(this.sql);b(t).then(e=>{let o=e.data.data||[];this.data=o})},handleGetColumn(t){this.selectTable=t.name;let e={"com.mysql.cj.jdbc.Driver":`SHOW COLUMNS FROM ${this.selectTable}`,"com.microsoft.sqlserver.jdbc.SQLServerDriver":"","org.postgresql.Driver":`SELECT column_name, data_type, is_nullable, column_default FROM information_schema.columns WHERE table_name ='${this.selectTable}'`,"oracle.jdbc.OracleDriver":""},o=this.getSql(e[this.form.driverClass]);b(o).then(r=>{let l=r.data.data;this.columnList=l.map(n=>({name:n.column_name,type:n.column_type}))}),this.sql=`select * from ${this.selectTable} limit 0,10`,this.handleRun()},handleGetTable(){let t={"com.mysql.cj.jdbc.Driver":"SHOW TABLES","com.microsoft.sqlserver.jdbc.SQLServerDriver":"","org.postgresql.Driver":"SELECT tablename FROM pg_catalog.pg_tables WHERE schemaname='public';","oracle.jdbc.OracleDriver":""},e=this.getSql(t[this.form.driverClass]);b(e).then(o=>{let r=o.data.data,l=[];r.forEach(n=>{Object.keys(n).forEach(d=>{l.push({name:n[d]})})}),this.tableList=l})}}},D={class:"db__box"},V={class:"db__table"},R=a("div",{class:"db__title"},"数据表",-1),M=["onClick"],B={class:"db__column"},F=a("div",{class:"db__title"},"数据字段",-1),H={class:"db__content"},N={class:"db__input"},w={class:"db__result"};function G(t,e,o,r,l,n){const d=c("el-tooltip"),q=c("monaco-editor"),y=c("el-button"),L=c("avue-crud"),S=c("el-dialog");return i(),f(S,{title:"数据库测试连接",class:"avue-dialog db","destroy-on-close":"","append-to-body":"","close-on-click-modal":!1,"modal-append-to-body":"",modelValue:l.box,"onUpdate:modelValue":e[1]||(e[1]=s=>l.box=s),width:"90%"},{default:_(()=>[a("div",D,[a("ul",V,[R,(i(!0),m(v,null,g(l.tableList,(s,h)=>(i(),m("li",{class:T({"is-active":s.name==l.selectTable}),key:h,onClick:U=>n.handleGetColumn(s)},[u(d,{effect:"dark",content:s.name,placement:"right"},{default:_(()=>[a("span",null,p(s.name),1)]),_:2},1032,["content"])],10,M))),128))]),a("ul",B,[F,(i(!0),m(v,null,g(l.columnList,(s,h)=>(i(),m("li",{key:h},[u(d,{effect:"dark",content:s.name,placement:"right"},{default:_(()=>[a("span",null,p(s.name),1)]),_:2},1032,["content"]),a("span",null,p(s.type),1)]))),128))]),a("div",H,[a("div",N,[u(q,{modelValue:l.sql,"onUpdate:modelValue":e[0]||(e[0]=s=>l.sql=s),language:"sql",height:"200"},null,8,["modelValue"]),u(y,{type:"primary",icon:"el-icon-thumb",class:"db__run",onClick:n.handleRun},{default:_(()=>[j("运行")]),_:1},8,["onClick"])]),a("div",w,[l.data.length!=!1?(i(),f(L,{key:0,style:{width:"100%"},option:n.option,data:l.data},null,8,["option","data"])):x("",!0)])])])]),_:1},8,["modelValue"])}const z=C(O,[["render",G]]);export{z as d};