fix:测试连接同步完善
parent
62f28a9563
commit
78ced28f2d
|
@ -3,7 +3,7 @@ import request from '@/utils/request'
|
||||||
// 查询数据源列表
|
// 查询数据源列表
|
||||||
export function listDetabase(query) {
|
export function listDetabase(query) {
|
||||||
return request({
|
return request({
|
||||||
url: '/detabase/detabase/list',
|
url: '/source/source/list',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params: query
|
params: query
|
||||||
})
|
})
|
||||||
|
@ -12,14 +12,14 @@ export function listDetabase(query) {
|
||||||
// 查询数据源详细
|
// 查询数据源详细
|
||||||
export function getDetabase(id) {
|
export function getDetabase(id) {
|
||||||
return request({
|
return request({
|
||||||
url: '/detabase/detabase/' + id,
|
url: '/source/source/' + id,
|
||||||
method: 'get'
|
method: 'get'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
//测试数据库连接
|
//测试数据库连接
|
||||||
export function testConnection(data) {
|
export function testConnection(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/detabase/detabase/testConnection',
|
url: '/source/source/testConnection/',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: data
|
data: data
|
||||||
})
|
})
|
||||||
|
@ -28,7 +28,7 @@ export function testConnection(data) {
|
||||||
|
|
||||||
export function selectDatabaseList(data) {
|
export function selectDatabaseList(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/detabase/detabase/selectDatabaseList',
|
url: '/source/source/selectDatabaseList',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: data
|
data: data
|
||||||
})
|
})
|
||||||
|
@ -37,7 +37,7 @@ export function selectDatabaseList(data) {
|
||||||
//查询数据库下表名
|
//查询数据库下表名
|
||||||
export function selectedDatabaseList(data) {
|
export function selectedDatabaseList(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/detabase/detabase/selectedDatabaseList',
|
url: '/source/source/selectedDatabaseList',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: data
|
data: data
|
||||||
})
|
})
|
||||||
|
@ -46,7 +46,7 @@ export function selectedDatabaseList(data) {
|
||||||
// 新增数据源
|
// 新增数据源
|
||||||
export function addDetabase(data) {
|
export function addDetabase(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/detabase/detabase',
|
url: '/source/source',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: data
|
data: data
|
||||||
})
|
})
|
||||||
|
@ -55,7 +55,7 @@ export function addDetabase(data) {
|
||||||
// 修改数据源
|
// 修改数据源
|
||||||
export function updateDetabase(data) {
|
export function updateDetabase(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/detabase/detabase/'+data.id,
|
url: '/source/source/'+data.id,
|
||||||
method: 'put',
|
method: 'put',
|
||||||
data: data
|
data: data
|
||||||
})
|
})
|
||||||
|
@ -64,7 +64,7 @@ export function updateDetabase(data) {
|
||||||
// 删除数据源
|
// 删除数据源
|
||||||
export function delDetabase(id) {
|
export function delDetabase(id) {
|
||||||
return request({
|
return request({
|
||||||
url: '/detabase/detabase/' + id,
|
url: '/source/source/' + id,
|
||||||
method: 'delete'
|
method: 'delete'
|
||||||
})
|
})
|
||||||
}
|
}
|
|
@ -107,7 +107,6 @@ import Hamburger from '@/components/Hamburger'
|
||||||
import Screenfull from '@/components/Screenfull'
|
import Screenfull from '@/components/Screenfull'
|
||||||
import SizeSelect from '@/components/SizeSelect'
|
import SizeSelect from '@/components/SizeSelect'
|
||||||
import Search from '@/components/HeaderSearch'
|
import Search from '@/components/HeaderSearch'
|
||||||
import {noticList, readNotic} from "@/api/system/notice";
|
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|
|
@ -87,7 +87,7 @@
|
||||||
icon="el-icon-plus"
|
icon="el-icon-plus"
|
||||||
size="mini"
|
size="mini"
|
||||||
@click="handleAdd"
|
@click="handleAdd"
|
||||||
v-hasPermi="['detabase:detabase:add']"
|
v-hasPermi="['source:source:add']"
|
||||||
>新增</el-button>
|
>新增</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
|
@ -98,7 +98,7 @@
|
||||||
size="mini"
|
size="mini"
|
||||||
:disabled="single"
|
:disabled="single"
|
||||||
@click="handleUpdate"
|
@click="handleUpdate"
|
||||||
v-hasPermi="['detabase:detabase:edit']"
|
v-hasPermi="['source:source:edit']"
|
||||||
>修改</el-button>
|
>修改</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
|
@ -109,7 +109,7 @@
|
||||||
size="mini"
|
size="mini"
|
||||||
:disabled="multiple"
|
:disabled="multiple"
|
||||||
@click="handleDelete"
|
@click="handleDelete"
|
||||||
v-hasPermi="['detabase:detabase:remove']"
|
v-hasPermi="['source:source:remove']"
|
||||||
>删除</el-button>
|
>删除</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
|
@ -119,7 +119,7 @@
|
||||||
icon="el-icon-download"
|
icon="el-icon-download"
|
||||||
size="mini"
|
size="mini"
|
||||||
@click="handleExport"
|
@click="handleExport"
|
||||||
v-hasPermi="['detabase:detabase:export']"
|
v-hasPermi="['source:source:export']"
|
||||||
>导出</el-button>
|
>导出</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
|
@ -149,20 +149,21 @@
|
||||||
type="text"
|
type="text"
|
||||||
icon="el-icon-edit"
|
icon="el-icon-edit"
|
||||||
@click="testContest(scope.row)"
|
@click="testContest(scope.row)"
|
||||||
|
v-hasPermi="['source:source:testConnection']"
|
||||||
>测试连接</el-button>
|
>测试连接</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
size="mini"
|
||||||
type="text"
|
type="text"
|
||||||
icon="el-icon-edit"
|
icon="el-icon-edit"
|
||||||
@click="handleUpdate(scope.row)"
|
@click="handleUpdate(scope.row)"
|
||||||
v-hasPermi="['detabase:detabase:edit']"
|
v-hasPermi="['source:source:edit']"
|
||||||
>修改</el-button>
|
>修改</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
size="mini"
|
||||||
type="text"
|
type="text"
|
||||||
icon="el-icon-delete"
|
icon="el-icon-delete"
|
||||||
@click="handleDelete(scope.row)"
|
@click="handleDelete(scope.row)"
|
||||||
v-hasPermi="['detabase:detabase:remove']"
|
v-hasPermi="['source:source:remove']"
|
||||||
>删除</el-button>
|
>删除</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
@ -332,10 +333,10 @@ import {
|
||||||
addDetabase,
|
addDetabase,
|
||||||
updateDetabase,
|
updateDetabase,
|
||||||
testConnection, selectDatabaseList
|
testConnection, selectDatabaseList
|
||||||
} from "@/api/detabase/detabase";
|
} from "@/api/source/source";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Detabase",
|
name: "source",
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
// 遮罩层
|
// 遮罩层
|
||||||
|
@ -516,7 +517,11 @@ export default {
|
||||||
console.log(params)
|
console.log(params)
|
||||||
testConnection(params).then(
|
testConnection(params).then(
|
||||||
res=>{
|
res=>{
|
||||||
this.$message.success(res.data)
|
if (res.code == 200) {
|
||||||
|
this.$message.success(res.data)
|
||||||
|
}else {
|
||||||
|
this.$message.success(res.msg)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
|
@ -571,9 +576,9 @@ export default {
|
||||||
},
|
},
|
||||||
/** 导出按钮操作 */
|
/** 导出按钮操作 */
|
||||||
handleExport() {
|
handleExport() {
|
||||||
this.download('detabase/detabase/export', {
|
this.download('source/source/export', {
|
||||||
...this.queryParams
|
...this.queryParams
|
||||||
}, `detabase_${new Date().getTime()}.xlsx`)
|
}, `source${new Date().getTime()}.xlsx`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
|
@ -13,36 +13,61 @@
|
||||||
v-for="(database, dbIndex) in item.databaseList"
|
v-for="(database, dbIndex) in item.databaseList"
|
||||||
:key="dbIndex"
|
:key="dbIndex"
|
||||||
:index="item.id + '-' + (dbIndex + 1)"
|
:index="item.id + '-' + (dbIndex + 1)"
|
||||||
|
class="custom-menu-item"
|
||||||
>
|
>
|
||||||
{{ database }}
|
<span>{{ database}}</span>
|
||||||
|
<el-select
|
||||||
|
clearable
|
||||||
|
v-model="select[dbIndex]"
|
||||||
|
style="margin-left: 10px"
|
||||||
|
class="custom-select"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in tableList"
|
||||||
|
:key="item"
|
||||||
|
:label="item"
|
||||||
|
:value="item">
|
||||||
|
{{item}}
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
</el-menu-item>
|
</el-menu-item>
|
||||||
</el-submenu>
|
</el-submenu>
|
||||||
</el-menu>
|
</el-menu>
|
||||||
</el-aside>
|
</el-aside>
|
||||||
|
|
||||||
<el-container>
|
<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-main>
|
||||||
<el-table :data="tableData">
|
<el-card style="height: 500px">
|
||||||
|
<el-container>
|
||||||
|
<el-header style="height: 200px">
|
||||||
|
<h1 style=" margin-top: -2px; font-size: 50px; text-align: center; width: 100%; font-weight: 600; line-height: 100px ">{{title}}--资产结构概述</h1>
|
||||||
|
|
||||||
<el-table-column prop="date" label="日期" width="140">
|
<el-row style="margin-top: -50px" justify="center">
|
||||||
</el-table-column>
|
<el-col :span="12">
|
||||||
<el-table-column prop="name" label="姓名" width="120">
|
<el-card style="width: 80%;" class="centered-card"></el-card>
|
||||||
</el-table-column>
|
</el-col>
|
||||||
<el-table-column prop="address" label="地址">
|
<el-col :span="12">
|
||||||
</el-table-column>
|
<el-card style="width: 80%;" class="centered-card"></el-card>
|
||||||
</el-table>
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
</el-header>
|
||||||
|
<el-container>
|
||||||
|
<el-aside width="200px">Aside</el-aside>
|
||||||
|
<el-container>
|
||||||
|
<el-main>Main</el-main>
|
||||||
|
<el-footer>Footer</el-footer>
|
||||||
|
</el-container>
|
||||||
|
</el-container>
|
||||||
|
</el-container>
|
||||||
|
<textarea v-model="selectSqlResp.sql" style="height: 400px;width: 100%">
|
||||||
|
|
||||||
|
</textarea>
|
||||||
|
<el-button type="primary" @click="selectSql">查询</el-button>
|
||||||
|
</el-card>
|
||||||
|
<el-card style="height: 100%">
|
||||||
|
|
||||||
|
</el-card>
|
||||||
</el-main>
|
</el-main>
|
||||||
</el-container>
|
</el-container>
|
||||||
</el-container>
|
</el-container>
|
||||||
|
@ -56,7 +81,7 @@ import {
|
||||||
selectedDatabase,
|
selectedDatabase,
|
||||||
selectedDatabaseList,
|
selectedDatabaseList,
|
||||||
selectedMenu
|
selectedMenu
|
||||||
} from "@/api/detabase/detabase";
|
} from "@/api/source/source";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Index',
|
name: 'Index',
|
||||||
|
@ -74,23 +99,49 @@ export default {
|
||||||
/*数据源查询条件*/
|
/*数据源查询条件*/
|
||||||
queryParams: {},
|
queryParams: {},
|
||||||
databaseList:[],
|
databaseList:[],
|
||||||
tableList:[]
|
tableList:[],
|
||||||
|
select:[],
|
||||||
|
selectSqlResp:{},
|
||||||
|
title:''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getList()
|
this.getList()
|
||||||
},
|
},
|
||||||
|
watch:{
|
||||||
|
"select":{
|
||||||
|
handler(val){
|
||||||
|
val.forEach(item=>{
|
||||||
|
if(item){
|
||||||
|
this.selectSqlResp.tableName=item
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
deep:true
|
||||||
|
}
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
selectSql(){
|
||||||
|
console.log(this.selectSqlResp)
|
||||||
|
},
|
||||||
/*选中标题*/
|
/*选中标题*/
|
||||||
handSubmenuTitle(item){
|
handSubmenuTitle(item){
|
||||||
|
this.title=item.name
|
||||||
let databaseConnect={};
|
let databaseConnect={};
|
||||||
|
item.databaseList=[]
|
||||||
databaseConnect.username=item.username;
|
databaseConnect.username=item.username;
|
||||||
databaseConnect.password=item.password;
|
databaseConnect.password=item.password;
|
||||||
databaseConnect.host=item.host;
|
databaseConnect.host=item.host;
|
||||||
databaseConnect.type=item.type;
|
databaseConnect.type=item.type;
|
||||||
selectDatabaseList(databaseConnect).then(
|
selectDatabaseList(databaseConnect).then(
|
||||||
res=>{
|
res=>{
|
||||||
item.databaseList=res.data
|
/*所有数据库*/
|
||||||
|
//item.databaseList=res.data
|
||||||
|
res.data.forEach(item1=>{
|
||||||
|
if(item1==item.databaseName){
|
||||||
|
item.databaseList.push(item1)
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
console.log(item)
|
console.log(item)
|
||||||
|
@ -137,6 +188,7 @@ export default {
|
||||||
password: item.password,
|
password: item.password,
|
||||||
type: item.type,
|
type: item.type,
|
||||||
connectionParam: item.connectionParam,
|
connectionParam: item.connectionParam,
|
||||||
|
databaseName: item.databaseName,
|
||||||
databaseList:[
|
databaseList:[
|
||||||
|
|
||||||
]
|
]
|
||||||
|
@ -150,6 +202,14 @@ export default {
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style>
|
<style>
|
||||||
|
|
||||||
|
.centered-card {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center; /* 水平居中 */
|
||||||
|
align-items: center; /* 垂直居中 */
|
||||||
|
flex-direction: column; /* 如果需要垂直堆叠内容 */
|
||||||
|
}
|
||||||
|
|
||||||
.el-header {
|
.el-header {
|
||||||
background-color: #B3C0D1;
|
background-color: #B3C0D1;
|
||||||
color: #333;
|
color: #333;
|
||||||
|
@ -159,4 +219,28 @@ export default {
|
||||||
.el-aside {
|
.el-aside {
|
||||||
color: #333;
|
color: #333;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.custom-menu-item {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom-select {
|
||||||
|
margin-left: 10px; /* 根据需要调整间距 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-header, .el-footer {
|
||||||
|
background-color: white;
|
||||||
|
color: #333;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.el-main {
|
||||||
|
background-color: #E9EEF3;
|
||||||
|
color: #333;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 160px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
|
@ -35,7 +35,7 @@ module.exports = {
|
||||||
proxy: {
|
proxy: {
|
||||||
// detail: https://cli.vuejs.org/config/#devserver-proxy
|
// detail: https://cli.vuejs.org/config/#devserver-proxy
|
||||||
[process.env.VUE_APP_BASE_API]: {
|
[process.env.VUE_APP_BASE_API]: {
|
||||||
target: `http://localhost:8081`,
|
target: `http://localhost:8080`,
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
pathRewrite: {
|
pathRewrite: {
|
||||||
['^' + process.env.VUE_APP_BASE_API]: ''
|
['^' + process.env.VUE_APP_BASE_API]: ''
|
||||||
|
|
Loading…
Reference in New Issue