feat: 允许修改数据源

This commit is contained in:
taojinlong 2021-08-03 12:21:10 +08:00
parent cbf8c94fc7
commit d22c809421
5 changed files with 37 additions and 16 deletions

View File

@ -334,7 +334,9 @@ export default {
input_pwd: 'Please input password', input_pwd: 'Please input password',
message_box: { message_box: {
alert: 'Alert', alert: 'Alert',
confirm: 'Confirm' confirm: 'Confirm',
ok: 'Confirm',
cancel: 'Cancel'
} }
}, },
documentation: { documentation: {

View File

@ -334,7 +334,9 @@ export default {
input_pwd: '請輸入密碼', input_pwd: '請輸入密碼',
message_box: { message_box: {
alert: '警告', alert: '警告',
confirm: '確認' confirm: '確認',
ok: '確認',
cancel: '取消'
} }
}, },
documentation: { documentation: {

View File

@ -334,7 +334,9 @@ export default {
input_pwd: '请输入密码', input_pwd: '请输入密码',
message_box: { message_box: {
alert: '警告', alert: '警告',
confirm: '确认' confirm: '确认',
ok: '确认',
cancel: '取消'
} }
}, },
documentation: { documentation: {
@ -1025,7 +1027,8 @@ export default {
oracle_service_name: '服务名', oracle_service_name: '服务名',
get_schema: '获取 Schema', get_schema: '获取 Schema',
schema: '数据库 Schema', schema: '数据库 Schema',
please_choose_schema: '请选择数据库 Schema' please_choose_schema: '请选择数据库 Schema',
edit_datasource_msg: '修改数据源信息,可能会导致改数据源下的数据集不可用,确认修改?'
}, },
pblink: { pblink: {
key_pwd: '请输入密码打开链接', key_pwd: '请输入密码打开链接',

View File

@ -9,8 +9,8 @@ export const $alert = (message, callback, options) => {
export const $confirm = (message, callback, options = {}) => { export const $confirm = (message, callback, options = {}) => {
const defaultOptions = { const defaultOptions = {
confirmButtonText: i18n.t('common.button.ok'), confirmButtonText: i18n.t('commons.message_box.ok'),
cancelButtonText: i18n.t('common.button.cancel'), cancelButtonText: i18n.t('commons.message_box.cancel'),
type: 'warning', type: 'warning',
...options ...options
} }

View File

@ -26,10 +26,10 @@
</el-form-item> </el-form-item>
<el-form-item v-if="form.configuration.dataSourceType=='jdbc'" :label="$t('datasource.host')" prop="configuration.host"> <el-form-item v-if="form.configuration.dataSourceType=='jdbc'" :label="$t('datasource.host')" prop="configuration.host">
<el-input v-model="form.configuration.host" autocomplete="off" :disabled="formType=='modify'" /> <el-input v-model="form.configuration.host" autocomplete="off" />
</el-form-item> </el-form-item>
<el-form-item v-if="form.configuration.dataSourceType=='jdbc'" :label="$t('datasource.data_base')" prop="configuration.dataBase"> <el-form-item v-if="form.configuration.dataSourceType=='jdbc'" :label="$t('datasource.data_base')" prop="configuration.dataBase">
<el-input v-model="form.configuration.dataBase" autocomplete="off" :disabled="formType=='modify'" /> <el-input v-model="form.configuration.dataBase" autocomplete="off" />
</el-form-item> </el-form-item>
<el-form-item v-if="form.type=='oracle'" :label="$t('datasource.oracle_connection_type')" prop="configuration.connectionType"> <el-form-item v-if="form.type=='oracle'" :label="$t('datasource.oracle_connection_type')" prop="configuration.connectionType">
@ -38,7 +38,7 @@
</el-form-item> </el-form-item>
<el-form-item v-if="form.configuration.dataSourceType=='jdbc'" :label="$t('datasource.user_name')" prop="configuration.username"> <el-form-item v-if="form.configuration.dataSourceType=='jdbc'" :label="$t('datasource.user_name')" prop="configuration.username">
<el-input v-model="form.configuration.username" autocomplete="off" :disabled="formType=='modify'" /> <el-input v-model="form.configuration.username" autocomplete="off" />
</el-form-item> </el-form-item>
<el-form-item v-if="form.configuration.dataSourceType=='jdbc'" :label="$t('datasource.password')" prop="configuration.password"> <el-form-item v-if="form.configuration.dataSourceType=='jdbc'" :label="$t('datasource.password')" prop="configuration.password">
<el-input v-model="form.configuration.password" autocomplete="off" show-password /> <el-input v-model="form.configuration.password" autocomplete="off" show-password />
@ -53,7 +53,7 @@
</el-form-item> </el-form-item>
<el-form-item v-if="form.type=='oracle'" :label="$t('datasource.schema')"> <el-form-item v-if="form.type=='oracle'" :label="$t('datasource.schema')">
<el-select filterable v-model="form.configuration.schema" :placeholder="$t('datasource.please_choose_schema')" class="select-width" :disabled="formType=='modify'"> <el-select filterable v-model="form.configuration.schema" :placeholder="$t('datasource.please_choose_schema')" class="select-width">
<el-option <el-option
v-for="item in schemas" v-for="item in schemas"
:key="item" :key="item"
@ -79,6 +79,8 @@
<script> <script>
import LayoutContent from '@/components/business/LayoutContent' import LayoutContent from '@/components/business/LayoutContent'
import { addDs, editDs, getSchema, validateDs } from '@/api/system/datasource' import { addDs, editDs, getSchema, validateDs } from '@/api/system/datasource'
import { $confirm } from '@/utils/message'
export default { export default {
name: 'DsForm', name: 'DsForm',
components: { LayoutContent }, components: { LayoutContent },
@ -105,7 +107,8 @@ export default {
}, },
allTypes: [{ name: 'mysql', label: 'MySQL', type: 'jdbc' }, { name: 'oracle', label: 'Oracle', type: 'jdbc' }], allTypes: [{ name: 'mysql', label: 'MySQL', type: 'jdbc' }, { name: 'oracle', label: 'Oracle', type: 'jdbc' }],
schemas: [], schemas: [],
canEdit: false canEdit: false,
originConfiguration: {}
} }
}, },
@ -140,6 +143,7 @@ export default {
edit(row) { edit(row) {
this.formType = 'modify' this.formType = 'modify'
this.form = Object.assign({}, row) this.form = Object.assign({}, row)
this.originConfiguration = this.form.configuration
this.form.configuration = JSON.parse(this.form.configuration) this.form.configuration = JSON.parse(this.form.configuration)
}, },
@ -156,11 +160,21 @@ export default {
const method = this.formType === 'add' ? addDs : editDs const method = this.formType === 'add' ? addDs : editDs
const form = JSON.parse(JSON.stringify(this.form)) const form = JSON.parse(JSON.stringify(this.form))
form.configuration = JSON.stringify(form.configuration) form.configuration = JSON.stringify(form.configuration)
method(form).then(res => { if(this.formType !== 'add' && this.originConfiguration !== form.configuration) {
this.$success(this.$t('commons.save_success')) $confirm(this.$t('datasource.edit_datasource_msg'), () => {
this.refreshTree() method(form).then(res => {
this.backToList() this.$success(this.$t('commons.save_success'))
}) this.refreshTree()
this.backToList()
})
})
}else {
method(form).then(res => {
this.$success(this.$t('commons.save_success'))
this.refreshTree()
this.backToList()
})
}
} else { } else {
return false return false
} }