db模块数据库列表增加关键词搜索

其他细节调整
This commit is contained in:
diant
2023-06-05 18:19:28 +08:00
parent a95c1a2be1
commit 9e063e280c
6 changed files with 49 additions and 25 deletions

View File

@@ -1 +1 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon-db.png"><title>数据库文档管理</title><link href="css/chunk-vendors.2fa4c9b3.css" rel="preload" as="style"><link href="css/index.86db17fe.css" rel="preload" as="style"><link href="js/chunk-vendors.6270548d.js" rel="preload" as="script"><link href="js/index.00be211f.js" rel="preload" as="script"><link href="css/chunk-vendors.2fa4c9b3.css" rel="stylesheet"><link href="css/index.86db17fe.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but zyplayer-db-ui doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="js/chunk-vendors.6270548d.js"></script><script src="js/index.00be211f.js"></script></body></html>
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon-db.png"><title>数据库文档管理</title><link href="css/chunk-vendors.2fa4c9b3.css" rel="preload" as="style"><link href="css/index.25fc971a.css" rel="preload" as="style"><link href="js/chunk-vendors.6270548d.js" rel="preload" as="script"><link href="js/index.c186cdcd.js" rel="preload" as="script"><link href="css/chunk-vendors.2fa4c9b3.css" rel="stylesheet"><link href="css/index.25fc971a.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but zyplayer-db-ui doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="js/chunk-vendors.6270548d.js"></script><script src="js/index.c186cdcd.js"></script></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -27,9 +27,12 @@
<el-menu-item index="/data/transferData"><i class="el-icon-document-copy"></i>数据互导工具</el-menu-item>
</el-submenu>
</el-menu>
<el-tree :props="defaultProps" :data="databaseList" @node-click="handleNodeClick"
<el-input v-if="choiceDatasourceId" v-model="filterText" placeholder="输入关键字搜索数据库" ></el-input>
<el-tree v-if="choiceDatasourceId"
:props="defaultProps" :data="databaseList" @node-click="handleNodeClick"
ref="databaseTree" highlight-current empty-text=""
:default-expanded-keys="databaseExpandedKeys"
:filter-node-method="filterNode"
node-key="id" @node-expand="handleNodeExpand"
v-loading="databaseListLoading"
element-loading-text="数据库信息加载中"
@@ -90,6 +93,7 @@
export default {
data() {
return {
filterText: '',
isCollapse: false,
userSelfInfo: {},
// 数据源相关
@@ -106,6 +110,11 @@
rightAsideWidth: 300,
}
},
watch: {
filterText(val) {
this.$refs.databaseTree.filter(val);
}
},
computed: {
fullscreen () {
return this.$store.state.global.fullscreen;
@@ -160,7 +169,7 @@
this.loadDatabaseList(this.choiceDatasourceId, choiceSource.name);
},
handleNodeClick(node) {
console.log("点击节点:", node);
//console.log("点击节点:", node);
// 执行器里面点击库表不跳转页面
// if (this.$router.currentRoute.path == "/data/executor") {
// return;
@@ -175,7 +184,6 @@
},
handleNodeExpand(node) {
if (node.children.length > 0 && node.children[0].needLoad) {
console.log("加载节点:", node);
if (node.type == 1) {
this.loadGetTableList(node);
}
@@ -299,6 +307,31 @@
};
return false;
};
},
filterNode(value, data, node) {
if (node.level === 3&&node.data.needLoad) {
if(!node.parent){
return false;
}
let pnode = node.parent.data;
datasourceApi.tableList({sourceId: this.choiceDatasourceId, dbName: pnode.dbName}).then(json => {
let pathIndex = [];
let result = json.data || [];
for (let i = 0; i < result.length; i++) {
let item = {
id: pnode.host + "_" + pnode.dbName + "_" + result[i].tableName, host: pnode.host,
dbName: pnode.dbName, tableName: result[i].tableName, name: result[i].tableName, type: 2,
comment: result[i].tableComment
};
pathIndex.push(item);
}
pnode.children = pathIndex;
this.filterNode(value, data, node);
});
return false;
}
if (!value) return true;
return data.name.toLowerCase().indexOf(value.toLowerCase()) !== -1;
}
}
}

View File

@@ -284,27 +284,22 @@ export default {
this.autoFillDialogVisible = true;
let thatClassName = this.newDatasource.driverClassName;
if (thatClassName === 'com.mysql.jdbc.Driver') {
//this.urlPlaceholder = "例jdbc:mysql://127.0.0.1:3306/user_info?useUnicode=true&characterEncoding=utf8";
this.autoFillForm.port = "3306";
} else if (thatClassName === 'net.sourceforge.jtds.jdbc.Driver') {
//this.urlPlaceholder = "例jdbc:jtds:sqlserver://127.0.0.1:1433;DatabaseName=user_info;socketTimeout=60;";
this.autoFillForm.port = "1433";
this.initDatabaseNameShow = true;
this.autoFillForm.initDatabaseName = "master";
} else if (thatClassName === 'oracle.jdbc.driver.OracleDriver') {
//this.urlPlaceholder = "例jdbc:oracle:thin:@127.0.0.1:1521/user_info";
this.autoFillForm.port = "1521";
this.oracleServerNameShow = true;
this.autoFillForm.serverName = "ORCL";
} else if (thatClassName === 'org.postgresql.Driver') {
//this.urlPlaceholder = "例jdbc:postgresql://127.0.0.1:5432/user_info";
this.autoFillForm.port = "5432";
this.initDatabaseNameShow = true;
this.autoFillForm.initDatabaseName = "postgres";
} else if (thatClassName === 'org.apache.hive.jdbc.HiveDriver') {
//this.urlPlaceholder = "例jdbc:hive2://127.0.0.1:21050/user_info;auth=noSasl";
this.autoFillForm.port = "21050";
} else if (thatClassName === 'dm.jdbc.driver.DmDriver') {
//this.urlPlaceholder = "例jdbc:dm://127.0.0.1:5236?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=utf-8";
this.autoFillForm.port = "5236";
}
},
@@ -319,22 +314,16 @@ export default {
let serverName = this.autoFillForm.serverName;
let initDatabaseName = this.autoFillForm.initDatabaseName;
if (thatClassName === 'com.mysql.jdbc.Driver') {
//this.urlPlaceholder = "例jdbc:mysql://127.0.0.1:3306/user_info?useUnicode=true&characterEncoding=utf8";
this.newDatasource.sourceUrl = "jdbc:mysql://" + hostIp + ":" + port;
} else if (thatClassName === 'net.sourceforge.jtds.jdbc.Driver') {
//this.urlPlaceholder = "例jdbc:jtds:sqlserver://127.0.0.1:1433;DatabaseName=user_info;socketTimeout=60;";
this.newDatasource.sourceUrl = "jdbc:jtds:sqlserver://" + hostIp + ":" + port +";DatabaseName=" + initDatabaseName;
} else if (thatClassName === 'oracle.jdbc.driver.OracleDriver') {
//this.urlPlaceholder = "例jdbc:oracle:thin:@127.0.0.1:1521/user_info";
this.newDatasource.sourceUrl = "jdbc:oracle:thin:@" + hostIp + ":" + port + "/" + serverName;
} else if (thatClassName === 'org.postgresql.Driver') {
//this.urlPlaceholder = "例jdbc:postgresql://127.0.0.1:5432/user_info";
this.newDatasource.sourceUrl = "jdbc:postgresql://" + hostIp + ":" + port+"/" + initDatabaseName;
} else if (thatClassName === 'org.apache.hive.jdbc.HiveDriver') {
//this.urlPlaceholder = "例jdbc:hive2://127.0.0.1:21050/user_info;auth=noSasl";
this.newDatasource.sourceUrl = "jdbc:hive2://" + hostIp + ":" + port;
} else if (thatClassName === 'dm.jdbc.driver.DmDriver') {
//this.urlPlaceholder = "例jdbc:dm://127.0.0.1:5236?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=utf-8";
this.newDatasource.sourceUrl = "jdbc:dm://" + hostIp + ":" + port;
}
} else {
@@ -440,21 +429,23 @@ export default {
});
},
driverClassNameChange() {
if (this.newDatasource.driverClassName == 'com.mysql.jdbc.Driver') {
let thatClassName = this.newDatasource.driverClassName;
if (thatClassName === 'com.mysql.jdbc.Driver') {
this.urlPlaceholder = "例jdbc:mysql://127.0.0.1:3306/user_info?useUnicode=true&characterEncoding=utf8";
} else if (this.newDatasource.driverClassName == 'net.sourceforge.jtds.jdbc.Driver') {
} else if (thatClassName === 'net.sourceforge.jtds.jdbc.Driver') {
this.urlPlaceholder = "例jdbc:jtds:sqlserver://127.0.0.1:1433;DatabaseName=user_info;socketTimeout=60;";
} else if (this.newDatasource.driverClassName == 'oracle.jdbc.driver.OracleDriver') {
this.urlPlaceholder = "例jdbc:oracle:thin:@127.0.0.1:1521/user_info";
} else if (this.newDatasource.driverClassName == 'org.postgresql.Driver') {
} else if (thatClassName === 'oracle.jdbc.driver.OracleDriver') {
this.urlPlaceholder = "例jdbc:oracle:thin:@127.0.0.1:1521/serverName";
} else if (thatClassName === 'org.postgresql.Driver') {
this.urlPlaceholder = "例jdbc:postgresql://127.0.0.1:5432/user_info";
} else if (this.newDatasource.driverClassName == 'org.apache.hive.jdbc.HiveDriver') {
} else if (thatClassName === 'org.apache.hive.jdbc.HiveDriver') {
this.urlPlaceholder = "例jdbc:hive2://127.0.0.1:21050/user_info;auth=noSasl";
} else if (this.newDatasource.driverClassName == 'dm.jdbc.driver.DmDriver') {
} else if (thatClassName === 'dm.jdbc.driver.DmDriver') {
this.urlPlaceholder = "例jdbc:dm://127.0.0.1:5236?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=utf-8";
}
this.sourceUrlDisabled = false;
this.oracleServerNameShow = false;
this.initDatabaseNameShow = false;
},
handleCurrentChange(to) {
this.currentPage = to;