数据库列表
parent
294d6702fa
commit
62f28a9563
|
@ -34,6 +34,15 @@ export function selectDatabaseList(data) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//查询数据库下表名
|
||||||
|
export function selectedDatabaseList(data) {
|
||||||
|
return request({
|
||||||
|
url: '/detabase/detabase/selectedDatabaseList',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// 新增数据源
|
// 新增数据源
|
||||||
export function addDetabase(data) {
|
export function addDetabase(data) {
|
||||||
return request({
|
return request({
|
||||||
|
|
|
@ -0,0 +1,162 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<el-container style="height: 80%; border: 1px solid #eee">
|
||||||
|
<el-aside width="400px" style="background-color: rgb(238, 241, 246)">
|
||||||
|
<el-menu @select="handleSelectdata">
|
||||||
|
<el-submenu
|
||||||
|
v-for="(item, index) in menuList"
|
||||||
|
:key="index"
|
||||||
|
:index="item.id"
|
||||||
|
>
|
||||||
|
<span slot="title" @click="handSubmenuTitle(item)">{{ item.name }}</span>
|
||||||
|
<el-menu-item
|
||||||
|
v-for="(database, dbIndex) in item.databaseList"
|
||||||
|
:key="dbIndex"
|
||||||
|
:index="item.id + '-' + (dbIndex + 1)"
|
||||||
|
>
|
||||||
|
{{ database }}
|
||||||
|
</el-menu-item>
|
||||||
|
</el-submenu>
|
||||||
|
</el-menu>
|
||||||
|
</el-aside>
|
||||||
|
|
||||||
|
<el-container>
|
||||||
|
<el-header style="text-align: right; font-size: 12px">
|
||||||
|
<el-dropdown>
|
||||||
|
<i class="el-icon-setting" style="margin-right: 15px"></i>
|
||||||
|
<el-dropdown-menu slot="dropdown">
|
||||||
|
<el-dropdown-item>查看</el-dropdown-item>
|
||||||
|
<el-dropdown-item>新增</el-dropdown-item>
|
||||||
|
<el-dropdown-item>删除</el-dropdown-item>
|
||||||
|
</el-dropdown-menu>
|
||||||
|
</el-dropdown>
|
||||||
|
<span>王小虎</span>
|
||||||
|
</el-header>
|
||||||
|
|
||||||
|
<el-main>
|
||||||
|
<el-table :data="tableData">
|
||||||
|
|
||||||
|
<el-table-column prop="date" label="日期" width="140">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="name" label="姓名" width="120">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="address" label="地址">
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</el-main>
|
||||||
|
</el-container>
|
||||||
|
</el-container>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
listDetabase,
|
||||||
|
selectDatabaseList,
|
||||||
|
selectedDatabase,
|
||||||
|
selectedDatabaseList,
|
||||||
|
selectedMenu
|
||||||
|
} from "@/api/detabase/detabase";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'Index',
|
||||||
|
data() {
|
||||||
|
const item = {
|
||||||
|
date: '2016-05-02',
|
||||||
|
name: '王小虎',
|
||||||
|
address: '上海市普陀区金沙江路 1518 弄'
|
||||||
|
};
|
||||||
|
return {
|
||||||
|
tableData: Array(20).fill(item),
|
||||||
|
menuList:[
|
||||||
|
|
||||||
|
],
|
||||||
|
/*数据源查询条件*/
|
||||||
|
queryParams: {},
|
||||||
|
databaseList:[],
|
||||||
|
tableList:[]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
/*选中标题*/
|
||||||
|
handSubmenuTitle(item){
|
||||||
|
let databaseConnect={};
|
||||||
|
databaseConnect.username=item.username;
|
||||||
|
databaseConnect.password=item.password;
|
||||||
|
databaseConnect.host=item.host;
|
||||||
|
databaseConnect.type=item.type;
|
||||||
|
selectDatabaseList(databaseConnect).then(
|
||||||
|
res=>{
|
||||||
|
item.databaseList=res.data
|
||||||
|
}
|
||||||
|
)
|
||||||
|
console.log(item)
|
||||||
|
},
|
||||||
|
/*选中下拉*/
|
||||||
|
handleSelectdata(key){
|
||||||
|
console.log(key)
|
||||||
|
const [menuId, databaseIndex] = key.split('-').map(Number);
|
||||||
|
console.log(menuId, databaseIndex)
|
||||||
|
const selectedMenu = this.menuList.find(item => item.id == menuId);
|
||||||
|
console.log(selectedMenu)
|
||||||
|
if (selectedMenu) {
|
||||||
|
const selectedDatabase = selectedMenu.databaseList[databaseIndex - 1];
|
||||||
|
console.log(selectedDatabase);
|
||||||
|
//根据selectedDatabase 名字 找下面包含的表
|
||||||
|
let databaseConnect={};
|
||||||
|
databaseConnect.username=selectedMenu.username;
|
||||||
|
databaseConnect.password=selectedMenu.password;
|
||||||
|
databaseConnect.host=selectedMenu.host;
|
||||||
|
databaseConnect.port=selectedMenu.port;
|
||||||
|
databaseConnect.type=selectedMenu.type;
|
||||||
|
databaseConnect.tableName=selectedDatabase
|
||||||
|
|
||||||
|
console.log(databaseConnect)
|
||||||
|
selectedDatabaseList(databaseConnect).then(
|
||||||
|
res=>{
|
||||||
|
this.tableList=res.data
|
||||||
|
console.log(res.data)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
/** 查询数据源列表 */
|
||||||
|
getList() {
|
||||||
|
this.loading = true;
|
||||||
|
listDetabase(this.queryParams).then(response => {
|
||||||
|
const menuListWithStringIds = response.data.rows.map(item => ({
|
||||||
|
...item, // 复制对象的其他属性
|
||||||
|
id: String(item.id),
|
||||||
|
name: item.name,
|
||||||
|
host: item.host,
|
||||||
|
port: item.port,
|
||||||
|
username: item.username,
|
||||||
|
password: item.password,
|
||||||
|
type: item.type,
|
||||||
|
connectionParam: item.connectionParam,
|
||||||
|
databaseList:[
|
||||||
|
|
||||||
|
]
|
||||||
|
}));
|
||||||
|
|
||||||
|
this.menuList=menuListWithStringIds
|
||||||
|
console.log(this.menuList)
|
||||||
|
});
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
.el-header {
|
||||||
|
background-color: #B3C0D1;
|
||||||
|
color: #333;
|
||||||
|
line-height: 60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-aside {
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
</style>
|
Loading…
Reference in New Issue