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>
<a-form-item label="DB Type"> <a-form-item label="Type">
<j-dict-select-tag <j-dict-select-tag
placeholder="Please select a database type" placeholder="Please select a database type"
dict-code="database_type" dict-code="database_type"
@change="handleDbTypeChange"
v-decorator="[ v-decorator="[
'type', 'dbType',
{ {
rules: [{ required: true, message: 'Please select a DB Type!' }], rules: [{ required: true, message: 'Please select a DB Type!' }],
initialVale: this.formVal.type, initialVale: this.formVal.dbType,
}, },
]" ]"
/> />
</a-form-item> </a-form-item>
<a-form-item label="DB Port"> <a-form-item label="Drive">
<a-input-number <a-input-number
v-decorator="[ v-decorator="[
'port', 'dbDriver',
{ {
rules: [{ required: true, message: 'Please input port!' }], rules: [{ required: true, message: 'Please input port!' }],
initialVale: this.formVal.port, initialVale: this.formVal.dbDriver,
}, },
]" ]"
/> />
</a-form-item> </a-form-item>
<a-form-item label="Ip Address"> <a-form-item label="Url">
<a-input <a-input
v-decorator="[ v-decorator="[
'ipAddress', 'dbUrl',
{ {
rules: [{ required: true, message: 'Please input ip address!' }], rules: [{ required: true, message: 'Please input ip address!' }],
initialVale: this.formVal.ipAddress, initialVale: this.formVal.dbUrl,
}, },
]" ]"
/> />
</a-form-item> </a-form-item>
<a-form-item label="DB Username"> <a-form-item label="Username">
<a-input <a-input
v-decorator="[ v-decorator="[
'username', 'dbUsername',
{ {
rules: [{ required: true, message: 'Please input username!' }], rules: [{ required: true, message: 'Please input username!' }],
initialVale: this.formVal.username, initialVale: this.formVal.dbUsername,
}, },
]" ]"
/> />
</a-form-item> </a-form-item>
<a-form-item label="DB Password"> <a-form-item label="Password">
<a-input <a-input
v-decorator="[ v-decorator="[
'password', 'dbPassword',
{ {
rules: [{ required: true, message: 'Please input DB Password!' }], rules: [{ required: true, message: 'Please input DB Password!' }],
initialVale: this.formVal.password, initialVale: this.formVal.dbPassword,
}, },
]" ]"
/> />
@ -149,6 +150,7 @@
</a-form> </a-form>
<template slot="footer"> <template slot="footer">
<a-space class="operators" :size="20"> <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="success" @click="onSave">Save</a-button>
<a-button type="warn" @click="onCancel">Cancel</a-button> <a-button type="warn" @click="onCancel">Cancel</a-button>
</a-space> </a-space>
@ -238,12 +240,12 @@ export default {
visible: false, visible: false,
form: this.$form.createForm(this), form: this.$form.createForm(this),
formVal: { formVal: {
username: '', dbUsername: '',
password: '', dbPassword: '',
name: '', name: '',
type: undefined, dbType: undefined,
port: '', dbDriver: '',
ipAddress: '', dbUrl: '',
}, },
currentId: '', currentId: '',
columns, columns,
@ -260,6 +262,76 @@ export default {
showSizeChanger: true, showSizeChanger: true,
total: 0, 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: { computed: {
@ -275,6 +347,17 @@ export default {
this.getSysDatabase() this.getSysDatabase()
}, },
methods: { 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() { getSysDatabase() {
this.loading = true this.loading = true
let params = { let params = {
@ -312,12 +395,12 @@ export default {
getAction('/sysDatabase/findInfo', { id: this.currentId }).then((res) => { getAction('/sysDatabase/findInfo', { id: this.currentId }).then((res) => {
if (res.success) { if (res.success) {
this.form.setFieldsValue({ this.form.setFieldsValue({
username: res.result.username, dbUsername: res.result.dbUsername,
password: res.result.password, dbPassword: res.result.dbPassword,
name: res.result.name, name: res.result.name,
type: res.result.type, dbType: res.result.dbType,
port: res.result.port, dbDriver: res.result.dbDriver,
ipAddress: res.result.ipAddress, dbUrl: res.result.dbUrl,
}) })
} else { } else {
this.$message.warning('This operation fails. Contact your system administrator') this.$message.warning('This operation fails. Contact your system administrator')
@ -357,6 +440,23 @@ export default {
cancelRow() { cancelRow() {
this.currentId = '' 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() { onSave() {
this.form.validateFields((err, values) => { this.form.validateFields((err, values) => {
if (!err) { if (!err) {