fix:测试连接同步完善

etl-ui
2812875475 2024-04-21 20:21:15 +08:00 committed by 031026
parent 62f28a9563
commit 78ced28f2d
5 changed files with 133 additions and 45 deletions

View File

@ -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'
}) })
} }

View File

@ -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 {

View File

@ -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`)
} }
} }
}; };

View File

@ -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>

View File

@ -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]: ''