alarm 模块 db overview 页面,新增和编辑表单增加驱动类和数据源地址字段

皆苦参数调整
增加test 测试功能
This commit is contained in:
任珮宇 2023-11-14 15:38:41 +08:00
parent 5487cf3289
commit 0423207abf

View File

@ -89,59 +89,60 @@
]"
/>
</a-form-item>
<a-form-item label="DB Type">
<a-form-item label="Type">
<j-dict-select-tag
placeholder="Please select a database type"
dict-code="database_type"
@change="handleDbTypeChange"
v-decorator="[
'type',
'dbType',
{
rules: [{ required: true, message: 'Please select a DB Type!' }],
initialVale: this.formVal.type,
initialVale: this.formVal.dbType,
},
]"
/>
</a-form-item>
<a-form-item label="DB Port">
<a-form-item label="Drive">
<a-input-number
v-decorator="[
'port',
'dbDriver',
{
rules: [{ required: true, message: 'Please input port!' }],
initialVale: this.formVal.port,
initialVale: this.formVal.dbDriver,
},
]"
/>
</a-form-item>
<a-form-item label="Ip Address">
<a-form-item label="Url">
<a-input
v-decorator="[
'ipAddress',
'dbUrl',
{
rules: [{ required: true, message: 'Please input ip address!' }],
initialVale: this.formVal.ipAddress,
initialVale: this.formVal.dbUrl,
},
]"
/>
</a-form-item>
<a-form-item label="DB Username">
<a-form-item label="Username">
<a-input
v-decorator="[
'username',
'dbUsername',
{
rules: [{ required: true, message: 'Please input username!' }],
initialVale: this.formVal.username,
initialVale: this.formVal.dbUsername,
},
]"
/>
</a-form-item>
<a-form-item label="DB Password">
<a-form-item label="Password">
<a-input
v-decorator="[
'password',
'dbPassword',
{
rules: [{ required: true, message: 'Please input DB Password!' }],
initialVale: this.formVal.password,
initialVale: this.formVal.dbPassword,
},
]"
/>
@ -149,6 +150,7 @@
</a-form>
<template slot="footer">
<a-space class="operators" :size="20">
<a-button type="success" @click="onTest">Test</a-button>
<a-button type="success" @click="onSave">Save</a-button>
<a-button type="warn" @click="onCancel">Cancel</a-button>
</a-space>
@ -238,12 +240,12 @@ export default {
visible: false,
form: this.$form.createForm(this),
formVal: {
username: '',
password: '',
dbUsername: '',
dbPassword: '',
name: '',
type: undefined,
port: '',
ipAddress: '',
dbType: undefined,
dbDriver: '',
dbUrl: '',
},
currentId: '',
columns,
@ -260,6 +262,76 @@ export default {
showSizeChanger: true,
total: 0,
},
dbDriverMap: {
// MySQL
1: { dbDriver: 'com.mysql.jdbc.Driver' },
//MySQL5.7+
4: { dbDriver: 'com.mysql.cj.jdbc.Driver' },
// Oracle
2: { dbDriver: 'oracle.jdbc.OracleDriver' },
// SQLServer
3: { dbDriver: 'com.microsoft.sqlserver.jdbc.SQLServerDriver' },
// marialDB
5: { dbDriver: 'org.mariadb.jdbc.Driver' },
// postgresql
6: { dbDriver: 'org.postgresql.Driver' },
//
7: { dbDriver: 'dm.jdbc.driver.DmDriver' },
//
8: { dbDriver: 'com.kingbase8.Driver' },
//
9: { dbDriver: 'com.oscar.Driver' },
// SQLite
10: { dbDriver: 'org.sqlite.JDBC' },
// DB2
11: { dbDriver: 'com.ibm.db2.jcc.DB2Driver' },
// Hsqldb
12: { dbDriver: 'org.hsqldb.jdbc.JDBCDriver' },
// Derby
13: { dbDriver: 'org.apache.derby.jdbc.ClientDriver' },
// H2
14: { dbDriver: 'org.h2.Driver' },
//
15: { dbDriver: '' },
},
dbUrlMap: {
// MySQL
1: { dbUrl: 'jdbc:mysql://127.0.0.1:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false' },
//MySQL5.7+
4: {
dbUrl:
'jdbc:mysql://127.0.0.1:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai',
},
// Oracle
2: { dbUrl: 'jdbc:oracle:thin:@127.0.0.1:1521:ORCL' },
// SQLServer
3: { dbUrl: 'jdbc:sqlserver://127.0.0.1:1433;SelectMethod=cursor;DatabaseName=jeecgboot' },
// Mariadb
5: { dbUrl: 'jdbc:mariadb://127.0.0.1:3306/jeecg-boot?characterEncoding=UTF-8&useSSL=false' },
// Postgresql
6: { dbUrl: 'jdbc:postgresql://127.0.0.1:5432/jeecg-boot' },
//
7: {
dbUrl:
'jdbc:dm://127.0.0.1:5236/?jeecg-boot&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8',
},
//
8: { dbUrl: 'jdbc:kingbase8://127.0.0.1:54321/jeecg-boot' },
//
9: { dbUrl: 'jdbc:oscar://192.168.1.125:2003/jeecg-boot' },
// SQLite
10: { dbUrl: 'jdbc:sqlite://opt/test.db' },
// DB2
11: { dbUrl: 'jdbc:db2://127.0.0.1:50000/jeecg-boot' },
// Hsqldb
12: { dbUrl: 'jdbc:hsqldb:hsql://127.0.0.1/jeecg-boot' },
// Derby
13: { dbUrl: 'jdbc:derby://127.0.0.1:1527/jeecg-boot' },
// H2
14: { dbUrl: 'jdbc:h2:tcp://127.0.0.1:8082/jeecg-boot' },
//
15: { dbUrl: '' },
},
}
},
computed: {
@ -275,6 +347,17 @@ export default {
this.getSysDatabase()
},
methods: {
//
handleDbTypeChange(val) {
let dbDriver = this.dbDriverMap[val]
let dbUrl = this.dbUrlMap[val]
if (dbDriver) {
this.form.setFieldsValue(dbDriver)
}
if (dbUrl) {
this.form.setFieldsValue(dbUrl)
}
},
getSysDatabase() {
this.loading = true
let params = {
@ -312,12 +395,12 @@ export default {
getAction('/sysDatabase/findInfo', { id: this.currentId }).then((res) => {
if (res.success) {
this.form.setFieldsValue({
username: res.result.username,
password: res.result.password,
dbUsername: res.result.dbUsername,
dbPassword: res.result.dbPassword,
name: res.result.name,
type: res.result.type,
port: res.result.port,
ipAddress: res.result.ipAddress,
dbType: res.result.dbType,
dbDriver: res.result.dbDriver,
dbUrl: res.result.dbUrl,
})
} else {
this.$message.warning('This operation fails. Contact your system administrator')
@ -357,6 +440,23 @@ export default {
cancelRow() {
this.currentId = ''
},
onTest() {
this.form.validateFields((err, values) => {
if (!err) {
let loading = this.$message.loading('连接中……', 0)
postAction('/online/cgreport/api/testConnection', values)
.then((res) => {
if (res.success) {
this.$message.success('连接成功')
} else throw new Error(res.message)
})
.catch((error) => {
this.$warning({ title: '连接失败', content: error.message || error })
})
.finally(() => loading())
}
})
},
onSave() {
this.form.validateFields((err, values) => {
if (!err) {