alarm 模块 db overview 页面,新增和编辑表单增加驱动类和数据源地址字段
皆苦参数调整 增加test 测试功能
This commit is contained in:
parent
5487cf3289
commit
0423207abf
|
@ -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) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user