|
|
|
@ -8,14 +8,14 @@
|
|
|
|
|
<el-icon name="back" class="back-button" @click.native="backToList" />
|
|
|
|
|
{{
|
|
|
|
|
params &&
|
|
|
|
|
params.id &&
|
|
|
|
|
params.showModel &&
|
|
|
|
|
params.showModel === "show" &&
|
|
|
|
|
!canEdit
|
|
|
|
|
? $t("datasource.show_info")
|
|
|
|
|
: formType == "add"
|
|
|
|
|
? $t("datasource.create")
|
|
|
|
|
: $t("datasource.modify")
|
|
|
|
|
params.id &&
|
|
|
|
|
params.showModel &&
|
|
|
|
|
params.showModel === 'show' &&
|
|
|
|
|
!canEdit
|
|
|
|
|
? $t('datasource.show_info')
|
|
|
|
|
: formType == 'add'
|
|
|
|
|
? $t('datasource.create')
|
|
|
|
|
: $t('datasource.modify')
|
|
|
|
|
}}
|
|
|
|
|
</template>
|
|
|
|
|
<div>
|
|
|
|
@ -28,10 +28,10 @@
|
|
|
|
|
size="small"
|
|
|
|
|
:disabled="
|
|
|
|
|
params &&
|
|
|
|
|
params.id &&
|
|
|
|
|
params.showModel &&
|
|
|
|
|
params.showModel === 'show' &&
|
|
|
|
|
!canEdit
|
|
|
|
|
params.id &&
|
|
|
|
|
params.showModel &&
|
|
|
|
|
params.showModel === 'show' &&
|
|
|
|
|
!canEdit
|
|
|
|
|
"
|
|
|
|
|
label-width="auto"
|
|
|
|
|
label-position="right"
|
|
|
|
@ -49,7 +49,7 @@
|
|
|
|
|
class="select-width"
|
|
|
|
|
:disabled="
|
|
|
|
|
formType == 'modify' ||
|
|
|
|
|
(formType === 'add' && params && !!params.type)
|
|
|
|
|
(formType === 'add' && params && !!params.type)
|
|
|
|
|
"
|
|
|
|
|
@change="changeType()"
|
|
|
|
|
>
|
|
|
|
@ -99,13 +99,11 @@
|
|
|
|
|
<el-radio
|
|
|
|
|
v-model="form.configuration.connectionType"
|
|
|
|
|
label="sid"
|
|
|
|
|
>{{ $t("datasource.oracle_sid") }}</el-radio
|
|
|
|
|
>
|
|
|
|
|
>{{ $t('datasource.oracle_sid') }}</el-radio>
|
|
|
|
|
<el-radio
|
|
|
|
|
v-model="form.configuration.connectionType"
|
|
|
|
|
label="serviceName"
|
|
|
|
|
>{{ $t("datasource.oracle_service_name") }}</el-radio
|
|
|
|
|
>
|
|
|
|
|
>{{ $t('datasource.oracle_service_name') }}</el-radio>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<el-form-item
|
|
|
|
@ -152,7 +150,7 @@
|
|
|
|
|
<el-form-item
|
|
|
|
|
v-if="
|
|
|
|
|
form.configuration.dataSourceType == 'jdbc' &&
|
|
|
|
|
form.type !== 'oracle'
|
|
|
|
|
form.type !== 'oracle'
|
|
|
|
|
"
|
|
|
|
|
:label="$t('datasource.extra_params')"
|
|
|
|
|
>
|
|
|
|
@ -177,20 +175,20 @@
|
|
|
|
|
<el-form-item
|
|
|
|
|
v-if="
|
|
|
|
|
form.type == 'oracle' ||
|
|
|
|
|
form.type == 'sqlServer' ||
|
|
|
|
|
form.type == 'pg'
|
|
|
|
|
form.type == 'sqlServer' ||
|
|
|
|
|
form.type == 'pg'
|
|
|
|
|
"
|
|
|
|
|
>
|
|
|
|
|
<el-button icon="el-icon-plus" size="mini" @click="getSchema()">
|
|
|
|
|
{{ $t("datasource.get_schema") }}
|
|
|
|
|
{{ $t('datasource.get_schema') }}
|
|
|
|
|
</el-button>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<el-form-item
|
|
|
|
|
v-if="
|
|
|
|
|
form.type == 'oracle' ||
|
|
|
|
|
form.type == 'sqlServer' ||
|
|
|
|
|
form.type == 'pg'
|
|
|
|
|
form.type == 'sqlServer' ||
|
|
|
|
|
form.type == 'pg'
|
|
|
|
|
"
|
|
|
|
|
:label="$t('datasource.schema')"
|
|
|
|
|
>
|
|
|
|
@ -298,11 +296,9 @@
|
|
|
|
|
:label="$t('datasource.table_name')"
|
|
|
|
|
>
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
<span
|
|
|
|
|
><i class="el-icon-coin" /> {{
|
|
|
|
|
scope.row
|
|
|
|
|
}}</span
|
|
|
|
|
>
|
|
|
|
|
<span><i class="el-icon-coin" /> {{
|
|
|
|
|
scope.row
|
|
|
|
|
}}</span>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
</el-table>
|
|
|
|
@ -334,8 +330,8 @@
|
|
|
|
|
<span
|
|
|
|
|
v-if="
|
|
|
|
|
scope.row.fieldType.indexOf('CHAR') >= 0 ||
|
|
|
|
|
scope.row.fieldType.indexOf('TEXT') >= 0 ||
|
|
|
|
|
scope.row.fieldType.indexOf('BLOB') >= 0
|
|
|
|
|
scope.row.fieldType.indexOf('TEXT') >= 0 ||
|
|
|
|
|
scope.row.fieldType.indexOf('BLOB') >= 0
|
|
|
|
|
"
|
|
|
|
|
>
|
|
|
|
|
<svg-icon
|
|
|
|
@ -343,13 +339,13 @@
|
|
|
|
|
class="field-icon-text"
|
|
|
|
|
/>
|
|
|
|
|
<span class="field-class">{{
|
|
|
|
|
$t("dataset.text")
|
|
|
|
|
$t('dataset.text')
|
|
|
|
|
}}</span>
|
|
|
|
|
</span>
|
|
|
|
|
<span
|
|
|
|
|
v-if="
|
|
|
|
|
scope.row.fieldType.indexOf('DATE') >= 0 ||
|
|
|
|
|
scope.row.fieldType.indexOf('TIME') >= 0
|
|
|
|
|
scope.row.fieldType.indexOf('TIME') >= 0
|
|
|
|
|
"
|
|
|
|
|
>
|
|
|
|
|
<svg-icon
|
|
|
|
@ -357,15 +353,15 @@
|
|
|
|
|
class="field-icon-time"
|
|
|
|
|
/>
|
|
|
|
|
<span class="field-class">{{
|
|
|
|
|
$t("dataset.time")
|
|
|
|
|
$t('dataset.time')
|
|
|
|
|
}}</span>
|
|
|
|
|
</span>
|
|
|
|
|
<span
|
|
|
|
|
v-if="
|
|
|
|
|
scope.row.fieldType.indexOf('INT') >= 0 ||
|
|
|
|
|
scope.row.fieldType.indexOf('FLOAT') >= 0 ||
|
|
|
|
|
scope.row.fieldType.indexOf('DOUBLE') >= 0 ||
|
|
|
|
|
scope.row.fieldType.indexOf('DECIMAL') >= 0
|
|
|
|
|
scope.row.fieldType.indexOf('FLOAT') >= 0 ||
|
|
|
|
|
scope.row.fieldType.indexOf('DOUBLE') >= 0 ||
|
|
|
|
|
scope.row.fieldType.indexOf('DECIMAL') >= 0
|
|
|
|
|
"
|
|
|
|
|
>
|
|
|
|
|
<svg-icon
|
|
|
|
@ -373,17 +369,16 @@
|
|
|
|
|
class="field-icon-value"
|
|
|
|
|
/>
|
|
|
|
|
<span class="field-class">{{
|
|
|
|
|
$t("dataset.value")
|
|
|
|
|
$t('dataset.value')
|
|
|
|
|
}}</span>
|
|
|
|
|
<span
|
|
|
|
|
v-if="
|
|
|
|
|
scope.row.fieldType.indexOf('FLOAT') >= 0 ||
|
|
|
|
|
scope.row.fieldType.indexOf('DOUBLE') >= 0 ||
|
|
|
|
|
scope.row.fieldType.indexOf('DECIMAL') >= 0
|
|
|
|
|
scope.row.fieldType.indexOf('DOUBLE') >= 0 ||
|
|
|
|
|
scope.row.fieldType.indexOf('DECIMAL') >= 0
|
|
|
|
|
"
|
|
|
|
|
class="field-class"
|
|
|
|
|
>{{ "(" + $t("dataset.float") + ")" }}</span
|
|
|
|
|
>
|
|
|
|
|
>{{ '(' + $t('dataset.float') + ')' }}</span>
|
|
|
|
|
</span>
|
|
|
|
|
<span>({{ scope.row.fieldType }})</span>
|
|
|
|
|
</span>
|
|
|
|
@ -423,8 +418,7 @@
|
|
|
|
|
: hasDataPermission('manage', params.privileges)
|
|
|
|
|
"
|
|
|
|
|
@click="validaDatasource"
|
|
|
|
|
>{{ $t("commons.validate") }}</el-button
|
|
|
|
|
>
|
|
|
|
|
>{{ $t('commons.validate') }}</el-button>
|
|
|
|
|
<el-button
|
|
|
|
|
v-if="
|
|
|
|
|
formType === 'add'
|
|
|
|
@ -433,8 +427,7 @@
|
|
|
|
|
"
|
|
|
|
|
type="primary"
|
|
|
|
|
@click="save"
|
|
|
|
|
>{{ $t("commons.save") }}</el-button
|
|
|
|
|
>
|
|
|
|
|
>{{ $t('commons.save') }}</el-button>
|
|
|
|
|
</div>
|
|
|
|
|
<div v-else slot="footer" class="dialog-footer">
|
|
|
|
|
<el-button
|
|
|
|
@ -444,8 +437,7 @@
|
|
|
|
|
: hasDataPermission('manage', params.privileges)
|
|
|
|
|
"
|
|
|
|
|
@click="validaDatasource"
|
|
|
|
|
>{{ $t("commons.validate") }}</el-button
|
|
|
|
|
>
|
|
|
|
|
>{{ $t('commons.validate') }}</el-button>
|
|
|
|
|
<el-button
|
|
|
|
|
v-if="
|
|
|
|
|
formType === 'add'
|
|
|
|
@ -454,8 +446,7 @@
|
|
|
|
|
"
|
|
|
|
|
type="primary"
|
|
|
|
|
@click="changeEdit"
|
|
|
|
|
>{{ $t("commons.edit") }}</el-button
|
|
|
|
|
>
|
|
|
|
|
>{{ $t('commons.edit') }}</el-button>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
@ -463,168 +454,168 @@
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
import LayoutContent from "@/components/business/LayoutContent";
|
|
|
|
|
import { post } from "@/api/dataset/dataset";
|
|
|
|
|
import LayoutContent from '@/components/business/LayoutContent'
|
|
|
|
|
import { post } from '@/api/dataset/dataset'
|
|
|
|
|
import {
|
|
|
|
|
addDs,
|
|
|
|
|
editDs,
|
|
|
|
|
getSchema,
|
|
|
|
|
validateDs,
|
|
|
|
|
validateDsById,
|
|
|
|
|
} from "@/api/system/datasource";
|
|
|
|
|
import { $confirm } from "@/utils/message";
|
|
|
|
|
validateDsById
|
|
|
|
|
} from '@/api/system/datasource'
|
|
|
|
|
import { $confirm } from '@/utils/message'
|
|
|
|
|
|
|
|
|
|
export default {
|
|
|
|
|
name: "DsForm",
|
|
|
|
|
name: 'DsForm',
|
|
|
|
|
components: { LayoutContent },
|
|
|
|
|
props: {
|
|
|
|
|
params: {
|
|
|
|
|
type: Object,
|
|
|
|
|
default: null,
|
|
|
|
|
},
|
|
|
|
|
default: null
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
form: {
|
|
|
|
|
configuration: {
|
|
|
|
|
initialPoolSize: 5,
|
|
|
|
|
extraParams: "",
|
|
|
|
|
extraParams: '',
|
|
|
|
|
minPoolSize: 5,
|
|
|
|
|
maxPoolSize: 50,
|
|
|
|
|
maxIdleTime: 30,
|
|
|
|
|
acquireIncrement: 5,
|
|
|
|
|
idleConnectionTestPeriod: 5,
|
|
|
|
|
connectTimeout: 5,
|
|
|
|
|
},
|
|
|
|
|
connectTimeout: 5
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
rule: {
|
|
|
|
|
name: [
|
|
|
|
|
{
|
|
|
|
|
required: true,
|
|
|
|
|
message: this.$t("datasource.input_name"),
|
|
|
|
|
trigger: "blur",
|
|
|
|
|
message: this.$t('datasource.input_name'),
|
|
|
|
|
trigger: 'blur'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
min: 2,
|
|
|
|
|
max: 25,
|
|
|
|
|
message: this.$t("datasource.input_limit_2_25", [2, 25]),
|
|
|
|
|
trigger: "blur",
|
|
|
|
|
},
|
|
|
|
|
message: this.$t('datasource.input_limit_2_25', [2, 25]),
|
|
|
|
|
trigger: 'blur'
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
desc: [
|
|
|
|
|
{
|
|
|
|
|
min: 0,
|
|
|
|
|
max: 50,
|
|
|
|
|
message: this.$t("datasource.input_limit_0_50"),
|
|
|
|
|
trigger: "blur",
|
|
|
|
|
},
|
|
|
|
|
message: this.$t('datasource.input_limit_0_50'),
|
|
|
|
|
trigger: 'blur'
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
type: [
|
|
|
|
|
{
|
|
|
|
|
required: true,
|
|
|
|
|
message: this.$t("datasource.please_choose_type"),
|
|
|
|
|
trigger: "change",
|
|
|
|
|
},
|
|
|
|
|
message: this.$t('datasource.please_choose_type'),
|
|
|
|
|
trigger: 'change'
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"configuration.dataBase": [
|
|
|
|
|
'configuration.dataBase': [
|
|
|
|
|
{
|
|
|
|
|
required: true,
|
|
|
|
|
message: this.$t("datasource.please_input_data_base"),
|
|
|
|
|
trigger: "blur",
|
|
|
|
|
},
|
|
|
|
|
message: this.$t('datasource.please_input_data_base'),
|
|
|
|
|
trigger: 'blur'
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"configuration.connectionType": [
|
|
|
|
|
'configuration.connectionType': [
|
|
|
|
|
{
|
|
|
|
|
required: true,
|
|
|
|
|
message: this.$t("datasource.please_select_oracle_type"),
|
|
|
|
|
trigger: "blur",
|
|
|
|
|
},
|
|
|
|
|
message: this.$t('datasource.please_select_oracle_type'),
|
|
|
|
|
trigger: 'blur'
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"configuration.username": [
|
|
|
|
|
'configuration.username': [
|
|
|
|
|
{
|
|
|
|
|
required: true,
|
|
|
|
|
message: this.$t("datasource.please_input_user_name"),
|
|
|
|
|
trigger: "blur",
|
|
|
|
|
},
|
|
|
|
|
message: this.$t('datasource.please_input_user_name'),
|
|
|
|
|
trigger: 'blur'
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"configuration.password": [
|
|
|
|
|
'configuration.password': [
|
|
|
|
|
{
|
|
|
|
|
required: true,
|
|
|
|
|
message: this.$t("datasource.please_input_password"),
|
|
|
|
|
trigger: "change",
|
|
|
|
|
},
|
|
|
|
|
message: this.$t('datasource.please_input_password'),
|
|
|
|
|
trigger: 'change'
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"configuration.host": [
|
|
|
|
|
'configuration.host': [
|
|
|
|
|
{
|
|
|
|
|
required: true,
|
|
|
|
|
message: this.$t("datasource.please_input_host"),
|
|
|
|
|
trigger: "change",
|
|
|
|
|
},
|
|
|
|
|
message: this.$t('datasource.please_input_host'),
|
|
|
|
|
trigger: 'change'
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"configuration.url": [
|
|
|
|
|
'configuration.url': [
|
|
|
|
|
{
|
|
|
|
|
required: true,
|
|
|
|
|
message: this.$t("datasource.please_input_url"),
|
|
|
|
|
trigger: "change",
|
|
|
|
|
},
|
|
|
|
|
message: this.$t('datasource.please_input_url'),
|
|
|
|
|
trigger: 'change'
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"configuration.port": [
|
|
|
|
|
'configuration.port': [
|
|
|
|
|
{
|
|
|
|
|
required: true,
|
|
|
|
|
message: this.$t("datasource.please_input_port"),
|
|
|
|
|
trigger: "change",
|
|
|
|
|
},
|
|
|
|
|
message: this.$t('datasource.please_input_port'),
|
|
|
|
|
trigger: 'change'
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"configuration.initialPoolSize": [
|
|
|
|
|
'configuration.initialPoolSize': [
|
|
|
|
|
{
|
|
|
|
|
required: true,
|
|
|
|
|
message: this.$t("datasource.please_input_initial_pool_size"),
|
|
|
|
|
trigger: "change",
|
|
|
|
|
},
|
|
|
|
|
message: this.$t('datasource.please_input_initial_pool_size'),
|
|
|
|
|
trigger: 'change'
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"configuration.minPoolSize": [
|
|
|
|
|
'configuration.minPoolSize': [
|
|
|
|
|
{
|
|
|
|
|
required: true,
|
|
|
|
|
message: this.$t("datasource.please_input_min_pool_size"),
|
|
|
|
|
trigger: "change",
|
|
|
|
|
},
|
|
|
|
|
message: this.$t('datasource.please_input_min_pool_size'),
|
|
|
|
|
trigger: 'change'
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"configuration.maxPoolSize": [
|
|
|
|
|
'configuration.maxPoolSize': [
|
|
|
|
|
{
|
|
|
|
|
required: true,
|
|
|
|
|
message: this.$t("datasource.please_input_max_pool_size"),
|
|
|
|
|
trigger: "change",
|
|
|
|
|
},
|
|
|
|
|
message: this.$t('datasource.please_input_max_pool_size'),
|
|
|
|
|
trigger: 'change'
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"configuration.maxIdleTime": [
|
|
|
|
|
'configuration.maxIdleTime': [
|
|
|
|
|
{
|
|
|
|
|
required: true,
|
|
|
|
|
message: this.$t("datasource.please_input_max_idle_time"),
|
|
|
|
|
trigger: "change",
|
|
|
|
|
},
|
|
|
|
|
message: this.$t('datasource.please_input_max_idle_time'),
|
|
|
|
|
trigger: 'change'
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"configuration.acquireIncrement": [
|
|
|
|
|
'configuration.acquireIncrement': [
|
|
|
|
|
{
|
|
|
|
|
required: true,
|
|
|
|
|
message: this.$t("datasource.please_input_acquire_increment"),
|
|
|
|
|
trigger: "change",
|
|
|
|
|
},
|
|
|
|
|
message: this.$t('datasource.please_input_acquire_increment'),
|
|
|
|
|
trigger: 'change'
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"configuration.connectTimeout": [
|
|
|
|
|
'configuration.connectTimeout': [
|
|
|
|
|
{
|
|
|
|
|
required: true,
|
|
|
|
|
message: this.$t("datasource.please_input_connect_timeout"),
|
|
|
|
|
trigger: "change",
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
message: this.$t('datasource.please_input_connect_timeout'),
|
|
|
|
|
trigger: 'change'
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
allTypes: [
|
|
|
|
|
{
|
|
|
|
|
name: "mysql",
|
|
|
|
|
label: "MySQL",
|
|
|
|
|
type: "jdbc",
|
|
|
|
|
name: 'mysql',
|
|
|
|
|
label: 'MySQL',
|
|
|
|
|
type: 'jdbc',
|
|
|
|
|
extraParams:
|
|
|
|
|
"characterEncoding=UTF-8&connectTimeout=5000&useSSL=false&allowPublicKeyRetrieval=true",
|
|
|
|
|
'characterEncoding=UTF-8&connectTimeout=5000&useSSL=false&allowPublicKeyRetrieval=true'
|
|
|
|
|
},
|
|
|
|
|
// { name: 'oracle', label: 'Oracle', type: 'jdbc'},
|
|
|
|
|
// { name: 'pg', label: 'PostgreSQL', type: 'jdbc', extraParams: '' },
|
|
|
|
@ -632,18 +623,18 @@ export default {
|
|
|
|
|
// { name: 'ds_doris', label: 'Doris', type: 'jdbc', extraParams: 'characterEncoding=UTF-8&connectTimeout=5000&useSSL=false&allowPublicKeyRetrieval=true' },
|
|
|
|
|
// { name: 'ck', label: 'ClickHouse', type: 'jdbc', extraParams: '' }
|
|
|
|
|
{
|
|
|
|
|
name: "mariadb",
|
|
|
|
|
label: "MariaDB",
|
|
|
|
|
type: "jdbc",
|
|
|
|
|
name: 'mariadb',
|
|
|
|
|
label: 'MariaDB',
|
|
|
|
|
type: 'jdbc',
|
|
|
|
|
extraParams:
|
|
|
|
|
"characterEncoding=UTF-8&connectTimeout=5000&useSSL=false&allowPublicKeyRetrieval=true",
|
|
|
|
|
'characterEncoding=UTF-8&connectTimeout=5000&useSSL=false&allowPublicKeyRetrieval=true'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: "sqlServer",
|
|
|
|
|
label: "SQL Server",
|
|
|
|
|
type: "jdbc",
|
|
|
|
|
extraParams: "",
|
|
|
|
|
},
|
|
|
|
|
name: 'sqlServer',
|
|
|
|
|
label: 'SQL Server',
|
|
|
|
|
type: 'jdbc',
|
|
|
|
|
extraParams: ''
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
schemas: [],
|
|
|
|
|
canEdit: false,
|
|
|
|
@ -654,100 +645,100 @@ export default {
|
|
|
|
|
tableLoading: false,
|
|
|
|
|
tableFields: [],
|
|
|
|
|
showTableFields: false,
|
|
|
|
|
dataList: [],
|
|
|
|
|
};
|
|
|
|
|
dataList: []
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
watch: {
|
|
|
|
|
form: {
|
|
|
|
|
handler(val, old) {
|
|
|
|
|
if (val.id) {
|
|
|
|
|
const _this = this;
|
|
|
|
|
post("/datasource/getTables", { id: val.id }).then((response) => {
|
|
|
|
|
_this.tables = response.data;
|
|
|
|
|
_this.tableData = [];
|
|
|
|
|
const _this = this
|
|
|
|
|
post('/datasource/getTables', { id: val.id }).then((response) => {
|
|
|
|
|
_this.tables = response.data
|
|
|
|
|
_this.tableData = []
|
|
|
|
|
_this.tables.forEach((item) => {
|
|
|
|
|
_this.tableData.push(item.name);
|
|
|
|
|
});
|
|
|
|
|
_this.showTableList = _this.tableData.length > 0;
|
|
|
|
|
});
|
|
|
|
|
_this.tableData.push(item.name)
|
|
|
|
|
})
|
|
|
|
|
_this.showTableList = _this.tableData.length > 0
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
deep: true,
|
|
|
|
|
},
|
|
|
|
|
deep: true
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
created() {
|
|
|
|
|
if (this.params && this.params.id) {
|
|
|
|
|
const row = this.params;
|
|
|
|
|
this.edit(row);
|
|
|
|
|
const row = this.params
|
|
|
|
|
this.edit(row)
|
|
|
|
|
} else {
|
|
|
|
|
this.create();
|
|
|
|
|
this.create()
|
|
|
|
|
if (this.params && this.params.type) {
|
|
|
|
|
this.setType();
|
|
|
|
|
this.setType()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
mounted() {},
|
|
|
|
|
methods: {
|
|
|
|
|
handleCurrentChange(row) {
|
|
|
|
|
const _this = this;
|
|
|
|
|
const ds = JSON.parse(JSON.stringify(this.form));
|
|
|
|
|
ds.configuration = JSON.stringify(ds.configuration);
|
|
|
|
|
this.tableLoading = true;
|
|
|
|
|
post("/datasource/getData/" + row + "/10", ds)
|
|
|
|
|
const _this = this
|
|
|
|
|
const ds = JSON.parse(JSON.stringify(this.form))
|
|
|
|
|
ds.configuration = JSON.stringify(ds.configuration)
|
|
|
|
|
this.tableLoading = true
|
|
|
|
|
post('/datasource/getData/' + row + '/10', ds)
|
|
|
|
|
.then((response) => {
|
|
|
|
|
_this.tableFields = response.data.fieldList;
|
|
|
|
|
_this.showTableFields = _this.tableFields.length > 0;
|
|
|
|
|
_this.dataList = response.data.dataList;
|
|
|
|
|
_this.tableFields = response.data.fieldList
|
|
|
|
|
_this.showTableFields = _this.tableFields.length > 0
|
|
|
|
|
_this.dataList = response.data.dataList
|
|
|
|
|
})
|
|
|
|
|
.finally((_) => {
|
|
|
|
|
this.tableLoading = false;
|
|
|
|
|
});
|
|
|
|
|
this.tableLoading = false
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
setType() {
|
|
|
|
|
this.form.type = this.params.type;
|
|
|
|
|
this.form.type = this.params.type
|
|
|
|
|
this.form.configuration = {
|
|
|
|
|
initialPoolSize: 5,
|
|
|
|
|
extraParams: "",
|
|
|
|
|
extraParams: '',
|
|
|
|
|
minPoolSize: 5,
|
|
|
|
|
maxPoolSize: 50,
|
|
|
|
|
maxIdleTime: 30,
|
|
|
|
|
acquireIncrement: 5,
|
|
|
|
|
idleConnectionTestPeriod: 5,
|
|
|
|
|
connectTimeout: 5,
|
|
|
|
|
};
|
|
|
|
|
this.changeType();
|
|
|
|
|
connectTimeout: 5
|
|
|
|
|
}
|
|
|
|
|
this.changeType()
|
|
|
|
|
},
|
|
|
|
|
changeEdit() {
|
|
|
|
|
this.canEdit = true;
|
|
|
|
|
this.formType = "modify";
|
|
|
|
|
this.canEdit = true
|
|
|
|
|
this.formType = 'modify'
|
|
|
|
|
},
|
|
|
|
|
create() {
|
|
|
|
|
this.formType = "add";
|
|
|
|
|
this.canEdit = true;
|
|
|
|
|
this.formType = 'add'
|
|
|
|
|
this.canEdit = true
|
|
|
|
|
},
|
|
|
|
|
edit(row) {
|
|
|
|
|
this.formType = "modify";
|
|
|
|
|
this.form = Object.assign({}, row);
|
|
|
|
|
this.originConfiguration = this.form.configuration;
|
|
|
|
|
this.form.configuration = JSON.parse(this.form.configuration);
|
|
|
|
|
this.formType = 'modify'
|
|
|
|
|
this.form = Object.assign({}, row)
|
|
|
|
|
this.originConfiguration = this.form.configuration
|
|
|
|
|
this.form.configuration = JSON.parse(this.form.configuration)
|
|
|
|
|
},
|
|
|
|
|
reset() {
|
|
|
|
|
this.$refs.dsForm.resetFields();
|
|
|
|
|
this.$refs.dsForm.resetFields()
|
|
|
|
|
},
|
|
|
|
|
save() {
|
|
|
|
|
if (
|
|
|
|
|
!this.form.configuration.schema &&
|
|
|
|
|
(this.form.type === "oracle" || this.form.type === "sqlServer")
|
|
|
|
|
(this.form.type === 'oracle' || this.form.type === 'sqlServer')
|
|
|
|
|
) {
|
|
|
|
|
this.$message.error(this.$t("datasource.please_choose_schema"));
|
|
|
|
|
return;
|
|
|
|
|
this.$message.error(this.$t('datasource.please_choose_schema'))
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
if (
|
|
|
|
|
this.form.configuration.dataSourceType === "jdbc" &&
|
|
|
|
|
this.form.configuration.dataSourceType === 'jdbc' &&
|
|
|
|
|
this.form.configuration.port <= 0
|
|
|
|
|
) {
|
|
|
|
|
this.$message.error(this.$t("datasource.port_no_less_then_0"));
|
|
|
|
|
return;
|
|
|
|
|
this.$message.error(this.$t('datasource.port_no_less_then_0'))
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
if (
|
|
|
|
|
this.form.configuration.initialPoolSize < 0 ||
|
|
|
|
@ -758,118 +749,118 @@ export default {
|
|
|
|
|
this.form.configuration.idleConnectionTestPeriod < 0 ||
|
|
|
|
|
this.form.configuration.connectTimeout < 0
|
|
|
|
|
) {
|
|
|
|
|
this.$message.error(this.$t("datasource.no_less_then_0"));
|
|
|
|
|
return;
|
|
|
|
|
this.$message.error(this.$t('datasource.no_less_then_0'))
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
this.$refs.dsForm.validate((valid) => {
|
|
|
|
|
if (valid) {
|
|
|
|
|
const method = this.formType === "add" ? addDs : editDs;
|
|
|
|
|
const form = JSON.parse(JSON.stringify(this.form));
|
|
|
|
|
form.configuration = JSON.stringify(form.configuration);
|
|
|
|
|
const method = this.formType === 'add' ? addDs : editDs
|
|
|
|
|
const form = JSON.parse(JSON.stringify(this.form))
|
|
|
|
|
form.configuration = JSON.stringify(form.configuration)
|
|
|
|
|
if (
|
|
|
|
|
this.formType !== "add" &&
|
|
|
|
|
this.formType !== 'add' &&
|
|
|
|
|
this.originConfiguration !== form.configuration
|
|
|
|
|
) {
|
|
|
|
|
$confirm(this.$t("datasource.edit_datasource_msg"), () => {
|
|
|
|
|
$confirm(this.$t('datasource.edit_datasource_msg'), () => {
|
|
|
|
|
method(form).then((res) => {
|
|
|
|
|
this.$success(this.$t("commons.save_success"));
|
|
|
|
|
this.refreshTree();
|
|
|
|
|
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();
|
|
|
|
|
});
|
|
|
|
|
this.$success(this.$t('commons.save_success'))
|
|
|
|
|
this.refreshTree()
|
|
|
|
|
this.backToList()
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
return false
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
getSchema() {
|
|
|
|
|
this.$refs.dsForm.validate((valid) => {
|
|
|
|
|
if (valid) {
|
|
|
|
|
const data = JSON.parse(JSON.stringify(this.form));
|
|
|
|
|
data.configuration = JSON.stringify(data.configuration);
|
|
|
|
|
const data = JSON.parse(JSON.stringify(this.form))
|
|
|
|
|
data.configuration = JSON.stringify(data.configuration)
|
|
|
|
|
getSchema(data).then((res) => {
|
|
|
|
|
this.schemas = res.data;
|
|
|
|
|
this.$success(this.$t("commons.success"));
|
|
|
|
|
});
|
|
|
|
|
this.schemas = res.data
|
|
|
|
|
this.$success(this.$t('commons.success'))
|
|
|
|
|
})
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
return false
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
validaDatasource() {
|
|
|
|
|
if (!this.form.configuration.schema && this.form.type === "oracle") {
|
|
|
|
|
this.$message.error(this.$t("datasource.please_choose_schema"));
|
|
|
|
|
return;
|
|
|
|
|
if (!this.form.configuration.schema && this.form.type === 'oracle') {
|
|
|
|
|
this.$message.error(this.$t('datasource.please_choose_schema'))
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
if (
|
|
|
|
|
this.form.configuration.dataSourceType === "jdbc" &&
|
|
|
|
|
this.form.configuration.dataSourceType === 'jdbc' &&
|
|
|
|
|
this.form.configuration.port <= 0
|
|
|
|
|
) {
|
|
|
|
|
this.$message.error(this.$t("datasource.port_no_less_then_0"));
|
|
|
|
|
return;
|
|
|
|
|
this.$message.error(this.$t('datasource.port_no_less_then_0'))
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
this.$refs.dsForm.validate((valid) => {
|
|
|
|
|
if (valid) {
|
|
|
|
|
const data = JSON.parse(JSON.stringify(this.form));
|
|
|
|
|
data.configuration = JSON.stringify(data.configuration);
|
|
|
|
|
if (data.showModel === "show" && !this.canEdit) {
|
|
|
|
|
const data = JSON.parse(JSON.stringify(this.form))
|
|
|
|
|
data.configuration = JSON.stringify(data.configuration)
|
|
|
|
|
if (data.showModel === 'show' && !this.canEdit) {
|
|
|
|
|
validateDsById(data.id)
|
|
|
|
|
.then((res) => {
|
|
|
|
|
if (res.success) {
|
|
|
|
|
this.$success(this.$t("datasource.validate_success"));
|
|
|
|
|
this.$success(this.$t('datasource.validate_success'))
|
|
|
|
|
} else {
|
|
|
|
|
this.$error(this.$t(res.message));
|
|
|
|
|
this.$error(this.$t(res.message))
|
|
|
|
|
}
|
|
|
|
|
this.refreshTree();
|
|
|
|
|
this.refreshTree()
|
|
|
|
|
})
|
|
|
|
|
.catch((res) => {
|
|
|
|
|
this.$error(res.message);
|
|
|
|
|
});
|
|
|
|
|
this.$error(res.message)
|
|
|
|
|
})
|
|
|
|
|
} else {
|
|
|
|
|
validateDs(data)
|
|
|
|
|
.then((res) => {
|
|
|
|
|
if (res.success) {
|
|
|
|
|
this.tableData = res.data;
|
|
|
|
|
console.log(this.tableData);
|
|
|
|
|
this.showTableList = true;
|
|
|
|
|
this.$success(this.$t("datasource.validate_success"));
|
|
|
|
|
this.tableData = res.data
|
|
|
|
|
console.log(this.tableData)
|
|
|
|
|
this.showTableList = true
|
|
|
|
|
this.$success(this.$t('datasource.validate_success'))
|
|
|
|
|
} else {
|
|
|
|
|
this.$error(this.$t(res.message));
|
|
|
|
|
this.$error(this.$t(res.message))
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.catch((res) => {
|
|
|
|
|
this.$error(res.message);
|
|
|
|
|
});
|
|
|
|
|
this.$error(res.message)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
return false
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
changeType() {
|
|
|
|
|
for (let i = 0; i < this.allTypes.length; i++) {
|
|
|
|
|
if (this.allTypes[i].name === this.form.type) {
|
|
|
|
|
this.form.configuration.dataSourceType = this.allTypes[i].type;
|
|
|
|
|
this.form.configuration.extraParams = this.allTypes[i].extraParams;
|
|
|
|
|
this.form.configuration.dataSourceType = this.allTypes[i].type
|
|
|
|
|
this.form.configuration.extraParams = this.allTypes[i].extraParams
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
backToList() {
|
|
|
|
|
this.$emit("switch-component", {});
|
|
|
|
|
this.$emit('switch-component', {})
|
|
|
|
|
// this.$router.push({ name: 'datasource' })
|
|
|
|
|
},
|
|
|
|
|
refreshTree() {
|
|
|
|
|
this.$emit("refresh-left-tree");
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
this.$emit('refresh-left-tree')
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
|
.back-button {
|
|
|
|
|