fix: 替换excel后,切换tab 刷新字段

This commit is contained in:
taojinlong 2022-04-03 19:34:48 +08:00
parent 9b48e7a2a4
commit ed325a863a
2 changed files with 69 additions and 41 deletions

View File

@ -284,8 +284,8 @@ public class JdbcProvider extends DatasourceProvider {
String f = metaData.getColumnName(j + 1);
String l = StringUtils.isNotEmpty(metaData.getColumnLabel(j + 1)) ? metaData.getColumnLabel(j + 1) : f;
String t = metaData.getColumnTypeName(j + 1);
if (datasourceRequest.getDatasource().getType().equalsIgnoreCase(DatasourceTypes.hive.name()) && l.contains("\\.")) {
l = l.split("\\.")[1];
if (datasourceRequest.getDatasource().getType().equalsIgnoreCase(DatasourceTypes.hive.name()) && l.contains(".")) {
l = l.split(".")[1];
}
TableField field = new TableField();
field.setFieldName(l);

View File

@ -11,12 +11,14 @@
@show="showTab"
@hide="hideTab"
>
<dataset-chart-detail type="dataset" :data="table" :tab-status="tabStatus" />
<dataset-chart-detail type="dataset" :data="table" :tab-status="tabStatus"/>
<!-- <svg-icon slot="reference" class="title-text" icon-class="more_v" style="cursor: pointer;" />-->
<i slot="reference" class="el-icon-warning icon-class" style="margin-left: 4px;cursor: pointer;font-size: 14px;" />
<i slot="reference" class="el-icon-warning icon-class"
style="margin-left: 4px;cursor: pointer;font-size: 14px;"/>
</el-popover>
<el-row v-if="hasDataPermission('manage',param.privileges)" style="float: right">
<el-dropdown v-if="table.type ==='excel'" style="margin-right: 10px;" size="small" trigger="click" @command="clickEditExcel">
<el-dropdown v-if="table.type ==='excel'" style="margin-right: 10px;" size="small" trigger="click"
@command="clickEditExcel">
<el-button size="mini">
{{ $t('dataset.edit_excel') }}
</el-button>
@ -40,44 +42,53 @@
</el-button>
</el-row>
</el-row>
<el-divider />
<el-divider/>
<el-tabs v-model="tabActive" @tab-click="tabClick">
<el-tab-pane :label="$t('dataset.data_preview')" name="dataPreview">
<tab-data-preview :param="param" :table="table" :fields="fields" :data="data" :page="page" :form="tableViewRowForm" @reSearch="reSearch" />
<tab-data-preview :param="param" :table="table" :fields="fields" :data="data" :page="page"
:form="tableViewRowForm" @reSearch="reSearch"/>
</el-tab-pane>
<el-tab-pane :label="$t('dataset.field_manage')" name="fieldEdit">
<field-edit :param="param" :table="table" />
<el-tab-pane :label="$t('dataset.field_manage')" :lazy="true" name="fieldEdit">
<field-edit v-if="tabActive === 'fieldEdit'" :param="param" :table="table"/>
</el-tab-pane>
<el-tab-pane v-if="!hideCustomDs && table.type !== 'union' && table.type !== 'custom' && !(table.type === 'sql' && table.mode === 0)" :label="$t('dataset.join_view')" name="joinView">
<union-view :param="param" :table="table" />
<el-tab-pane
v-if="!hideCustomDs && table.type !== 'union' && table.type !== 'custom' && !(table.type === 'sql' && table.mode === 0)"
:label="$t('dataset.join_view')" name="joinView">
<union-view :param="param" :table="table"/>
</el-tab-pane>
<el-tab-pane v-if="table.mode === 1 && (table.type === 'excel' || table.type === 'db' || table.type === 'sql' || table.type === 'api')" :label="$t('dataset.update_info')" name="updateInfo">
<update-info v-if="tabActive=='updateInfo'" :param="param" :table="table" />
<el-tab-pane
v-if="table.mode === 1 && (table.type === 'excel' || table.type === 'db' || table.type === 'sql' || table.type === 'api')"
:label="$t('dataset.update_info')" name="updateInfo">
<update-info v-if="tabActive=='updateInfo'" :param="param" :table="table"/>
</el-tab-pane>
<el-tab-pane v-if="isPluginLoaded && hasDataPermission('manage',param.privileges)" :lazy="true" :label="$t('dataset.row_permissions')" name="rowPermissions">
<plugin-com v-if="isPluginLoaded && tabActive=='rowPermissions'" ref="RowPermissions" component-name="RowPermissions" :obj="table" />
<el-tab-pane v-if="isPluginLoaded && hasDataPermission('manage',param.privileges)" :lazy="true"
:label="$t('dataset.row_permissions')" name="rowPermissions">
<plugin-com v-if="isPluginLoaded && tabActive=='rowPermissions'" ref="RowPermissions"
component-name="RowPermissions" :obj="table"/>
</el-tab-pane>
<el-tab-pane v-if="isPluginLoaded && hasDataPermission('manage',param.privileges)" :lazy="true" :label="$t('dataset.column_permissions')" name="columnPermissions">
<plugin-com v-if="isPluginLoaded && tabActive=='columnPermissions'" ref="ColumnPermissions" component-name="ColumnPermissions" :obj="table" />
<el-tab-pane v-if="isPluginLoaded && hasDataPermission('manage',param.privileges)" :lazy="true"
:label="$t('dataset.column_permissions')" name="columnPermissions">
<plugin-com v-if="isPluginLoaded && tabActive=='columnPermissions'" ref="ColumnPermissions"
component-name="ColumnPermissions" :obj="table"/>
</el-tab-pane>
</el-tabs>
</el-row>
</template>
<script>
import { post } from '@/api/dataset/dataset'
import {post} from '@/api/dataset/dataset'
import TabDataPreview from './TabDataPreview'
import UpdateInfo from './UpdateInfo'
import DatasetChartDetail from '../common/DatasetChartDetail'
import UnionView from './UnionView'
import FieldEdit from './FieldEdit'
import { pluginLoaded } from '@/api/user'
import {pluginLoaded} from '@/api/user'
import PluginCom from '@/views/system/plugin/PluginCom'
export default {
name: 'ViewTable',
components: { FieldEdit, UnionView, DatasetChartDetail, UpdateInfo, TabDataPreview, PluginCom },
components: {FieldEdit, UnionView, DatasetChartDetail, UpdateInfo, TabDataPreview, PluginCom},
props: {
param: {
type: Object,
@ -105,12 +116,12 @@ export default {
}
},
computed: {
hideCustomDs: function() {
hideCustomDs: function () {
return this.$store.getters.hideCustomDs
}
},
watch: {
'param': function() {
'param': function () {
this.tabActive = 'dataPreview'
this.initTable(this.param.id)
}
@ -137,7 +148,7 @@ export default {
this.table = response.data
this.initPreviewData(this.page)
}).catch(res => {
this.$emit('switchComponent', { name: '' })
this.$emit('switchComponent', {name: ''})
})
}
},
@ -168,17 +179,26 @@ export default {
},
edit() {
this.$emit('switchComponent', { name: 'FieldEdit', param: { table: this.table }})
this.$emit('switchComponent', {name: 'FieldEdit', param: {table: this.table}})
},
editSql() {
this.$emit('switchComponent', { name: 'AddSQL', param: { id: this.table.sceneId, tableId: this.table.id, table: this.table }})
this.$emit('switchComponent', {
name: 'AddSQL',
param: {id: this.table.sceneId, tableId: this.table.id, table: this.table}
})
},
editCustom() {
this.$emit('switchComponent', { name: 'AddCustom', param: { id: this.table.sceneId, tableId: this.table.id, table: this.table }})
this.$emit('switchComponent', {
name: 'AddCustom',
param: {id: this.table.sceneId, tableId: this.table.id, table: this.table}
})
},
editUnion() {
this.$emit('switchComponent', { name: 'AddUnion', param: { id: this.table.sceneId, tableId: this.table.id, table: this.table }})
this.$emit('switchComponent', {
name: 'AddUnion',
param: {id: this.table.sceneId, tableId: this.table.id, table: this.table}
})
},
reSearch(val) {
@ -197,10 +217,16 @@ export default {
// console.log(param);
switch (param.type) {
case '0':
this.$emit('switchComponent', { name: 'AddExcel', param: { id: this.table.sceneId, tableId: this.table.id, editType: 0, table: this.table }})
this.$emit('switchComponent', {
name: 'AddExcel',
param: {id: this.table.sceneId, tableId: this.table.id, editType: 0, table: this.table}
})
break
case '1':
this.$emit('switchComponent', { name: 'AddExcel', param: { id: this.table.sceneId, tableId: this.table.id, editType: 1, table: this.table }})
this.$emit('switchComponent', {
name: 'AddExcel',
param: {id: this.table.sceneId, tableId: this.table.id, editType: 1, table: this.table}
})
break
}
},
@ -233,17 +259,19 @@ export default {
</script>
<style scoped>
.el-divider--horizontal {
margin: 12px 0;
}
.el-divider--horizontal {
margin: 12px 0;
}
.form-item {
margin-bottom: 6px;
}
.icon-class{
color:#6c6c6c;
}
.blackTheme .icon-class{
color: #cccccc;
}
.form-item {
margin-bottom: 6px;
}
.icon-class {
color: #6c6c6c;
}
.blackTheme .icon-class {
color: #cccccc;
}
</style>