2021-03-03 15:06:52 +08:00
|
|
|
<template>
|
2021-04-28 17:30:18 +08:00
|
|
|
<el-row style="height: 100%;overflow-y: hidden;width: 100%;">
|
|
|
|
<el-row style="height: 26px;">
|
|
|
|
<el-popover
|
|
|
|
placement="right-start"
|
|
|
|
width="400"
|
|
|
|
trigger="click"
|
|
|
|
@show="showTab"
|
|
|
|
@hide="hideTab"
|
|
|
|
>
|
|
|
|
<dataset-chart-detail type="dataset" :data="table" :tab-status="tabStatus" />
|
|
|
|
<span slot="reference" style="line-height: 26px;cursor: pointer;">
|
|
|
|
{{ table.name }}
|
|
|
|
</span>
|
|
|
|
</el-popover>
|
|
|
|
<el-row style="float: right">
|
|
|
|
<el-button v-if="table.type ==='sql'" size="mini" @click="editSql">
|
|
|
|
{{ $t('dataset.edit_sql') }}
|
|
|
|
</el-button>
|
|
|
|
<el-button size="mini" @click="edit">
|
|
|
|
{{ $t('dataset.edit') }}
|
|
|
|
</el-button>
|
|
|
|
<!-- <el-button size="mini" type="primary" @click="createChart">-->
|
|
|
|
<!-- {{$t('dataset.create_view')}}-->
|
|
|
|
<!-- </el-button>-->
|
2021-03-03 15:06:52 +08:00
|
|
|
</el-row>
|
|
|
|
</el-row>
|
2021-04-28 17:30:18 +08:00
|
|
|
<el-divider />
|
|
|
|
|
|
|
|
<el-tabs v-model="tabActive">
|
|
|
|
<el-tab-pane :label="$t('dataset.data_preview')" name="dataPreview">
|
|
|
|
<tab-data-preview :table="table" :fields="fields" :data="data" :page="page" :form="tableViewRowForm" @reSearch="reSearch" />
|
|
|
|
</el-tab-pane>
|
2021-05-11 14:07:35 +08:00
|
|
|
<el-tab-pane v-if="table.type !== 'custom' && table.mode === 1" :label="$t('dataset.join_view')" name="joinView">
|
2021-05-07 14:51:40 +08:00
|
|
|
<union-view :table="table" />
|
2021-04-28 17:30:18 +08:00
|
|
|
</el-tab-pane>
|
|
|
|
<el-tab-pane v-if="table.mode === 1 && (table.type === 'db' || table.type === 'sql')" :label="$t('dataset.update_info')" name="updateInfo">
|
|
|
|
<update-info :table="table" />
|
|
|
|
</el-tab-pane>
|
|
|
|
</el-tabs>
|
|
|
|
</el-row>
|
2021-03-03 15:06:52 +08:00
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
2021-04-29 15:43:15 +08:00
|
|
|
import { getTable, post } from '@/api/dataset/dataset'
|
2021-03-03 15:06:52 +08:00
|
|
|
import TabDataPreview from './TabDataPreview'
|
|
|
|
import UpdateInfo from './UpdateInfo'
|
2021-04-15 11:55:30 +08:00
|
|
|
import DatasetChartDetail from '../common/DatasetChartDetail'
|
2021-05-07 14:51:40 +08:00
|
|
|
import UnionView from './UnionView'
|
2021-03-03 15:06:52 +08:00
|
|
|
|
|
|
|
export default {
|
|
|
|
name: 'ViewTable',
|
2021-05-07 14:51:40 +08:00
|
|
|
components: { UnionView, DatasetChartDetail, UpdateInfo, TabDataPreview },
|
2021-04-28 17:30:18 +08:00
|
|
|
props: {
|
|
|
|
param: {
|
|
|
|
type: String,
|
|
|
|
required: true
|
|
|
|
}
|
|
|
|
},
|
2021-03-03 15:06:52 +08:00
|
|
|
data() {
|
|
|
|
return {
|
|
|
|
table: {
|
|
|
|
name: ''
|
|
|
|
},
|
|
|
|
fields: [],
|
|
|
|
data: [],
|
2021-04-28 17:30:18 +08:00
|
|
|
page: {
|
|
|
|
page: 1,
|
|
|
|
pageSize: 100,
|
|
|
|
show: 1000
|
|
|
|
},
|
2021-03-03 15:06:52 +08:00
|
|
|
tabActive: 'dataPreview',
|
2021-04-02 11:36:01 +08:00
|
|
|
tableViewRowForm: {
|
|
|
|
row: 1000
|
2021-04-15 11:55:30 +08:00
|
|
|
},
|
2021-04-29 15:43:15 +08:00
|
|
|
tabStatus: false
|
2021-03-03 15:06:52 +08:00
|
|
|
}
|
|
|
|
},
|
2021-04-28 17:30:18 +08:00
|
|
|
watch: {
|
|
|
|
'param': function() {
|
|
|
|
this.initTable(this.param)
|
2021-03-03 15:06:52 +08:00
|
|
|
}
|
|
|
|
},
|
|
|
|
mounted() {
|
2021-04-28 17:30:18 +08:00
|
|
|
this.initTable(this.param)
|
2021-03-03 15:06:52 +08:00
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
initTable(id) {
|
2021-04-12 17:32:20 +08:00
|
|
|
this.tabActive = 'dataPreview'
|
2021-04-02 11:36:01 +08:00
|
|
|
this.tableViewRowForm.row = 1000
|
2021-03-03 15:06:52 +08:00
|
|
|
if (id !== null) {
|
|
|
|
this.fields = []
|
|
|
|
this.data = []
|
2021-03-03 18:35:51 +08:00
|
|
|
getTable(id).then(response => {
|
2021-03-03 15:06:52 +08:00
|
|
|
this.table = response.data
|
2021-04-28 17:30:18 +08:00
|
|
|
this.initPreviewData(this.page)
|
2021-03-03 15:06:52 +08:00
|
|
|
})
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
2021-04-28 17:30:18 +08:00
|
|
|
initPreviewData(page) {
|
2021-03-03 15:06:52 +08:00
|
|
|
if (this.table.id) {
|
2021-04-02 11:36:01 +08:00
|
|
|
this.table.row = this.tableViewRowForm.row
|
2021-04-28 17:30:18 +08:00
|
|
|
post('/dataset/table/getPreviewData/' + page.page + '/' + page.pageSize, this.table).then(response => {
|
2021-03-03 15:06:52 +08:00
|
|
|
this.fields = response.data.fields
|
|
|
|
this.data = response.data.data
|
2021-04-28 17:30:18 +08:00
|
|
|
this.page = response.data.page
|
2021-03-03 15:06:52 +08:00
|
|
|
})
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
edit() {
|
2021-04-29 15:43:15 +08:00
|
|
|
this.$emit('switchComponent', { name: 'FieldEdit', param: { table: this.table }})
|
2021-03-25 18:09:44 +08:00
|
|
|
},
|
|
|
|
|
|
|
|
editSql() {
|
|
|
|
this.$emit('switchComponent', { name: 'AddSQL', param: { id: this.table.sceneId, tableId: this.table.id }})
|
2021-04-02 11:36:01 +08:00
|
|
|
},
|
|
|
|
|
|
|
|
reSearch(val) {
|
2021-04-28 17:30:18 +08:00
|
|
|
this.tableViewRowForm = val.form
|
|
|
|
this.initPreviewData(val.page)
|
2021-04-15 11:55:30 +08:00
|
|
|
},
|
|
|
|
|
|
|
|
showTab() {
|
|
|
|
this.tabStatus = true
|
|
|
|
},
|
|
|
|
hideTab() {
|
|
|
|
this.tabStatus = false
|
2021-03-03 15:06:52 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<style scoped>
|
|
|
|
.el-divider--horizontal {
|
|
|
|
margin: 12px 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
.form-item {
|
|
|
|
margin-bottom: 6px;
|
|
|
|
}
|
|
|
|
</style>
|