dataease-dm/frontend/src/views/panel/list/PanelMain.vue

115 lines
3.2 KiB
Vue
Raw Normal View History

2021-04-01 17:40:12 +08:00
<template>
<de-container>
2021-06-02 19:22:04 +08:00
<de-aside-container style="padding: 0 10px;">
2021-05-27 17:34:46 +08:00
<el-tabs v-model="activeName" class="tab-panel" :stretch="true" @tab-click="handleClick">
2021-04-01 17:40:12 +08:00
<el-tab-pane name="PanelList">
2021-05-18 14:09:51 +08:00
<span slot="label"><i class="el-icon-document" />{{ $t('panel.panel_list') }}</span>
2021-04-01 17:40:12 +08:00
<panel-list />
</el-tab-pane>
2021-04-20 14:19:10 +08:00
<el-tab-pane name="panels_star" :lazy="true">
2021-05-18 14:09:51 +08:00
<span slot="label"><i class="el-icon-star-off" />{{ $t('panel.store') }}</span>
2021-04-20 14:19:10 +08:00
<enshrine v-if="showEnshrine" />
2021-04-01 17:40:12 +08:00
</el-tab-pane>
<el-tab-pane name="panels_share" :lazy="true">
2021-05-18 14:09:51 +08:00
<span slot="label"><i class="el-icon-share" />{{ $t('panel.share') }}</span>
2021-04-01 17:40:12 +08:00
<share-tree v-if="showShare" />
</el-tab-pane>
</el-tabs>
</de-aside-container>
<de-main-container>
<PanelViewShow v-if="mainActiveName==='PanelMain'" />
2021-04-01 17:40:12 +08:00
</de-main-container>
</de-container>
</template>
<script>
import DeMainContainer from '@/components/dataease/DeMainContainer'
import DeContainer from '@/components/dataease/DeContainer'
import DeAsideContainer from '@/components/dataease/DeAsideContainer'
import PanelList from '../list/PanelList'
import PanelViewShow from '../list/PanelViewShow'
import ShareTree from '../GrantAuth/shareTree'
2021-04-20 14:19:10 +08:00
import Enshrine from '../enshrine/index'
2021-04-01 17:40:12 +08:00
export default {
name: 'PanelMain',
2021-04-20 14:19:10 +08:00
components: { DeMainContainer, DeContainer, DeAsideContainer, PanelList, PanelViewShow, ShareTree, Enshrine },
2021-04-01 17:40:12 +08:00
data() {
return {
activeName: 'PanelList',
2021-04-20 14:19:10 +08:00
showShare: false,
showEnshrine: false
2021-04-01 17:40:12 +08:00
}
},
computed: {
mainActiveName() {
return this.$store.state.panel.mainActiveName
}
},
2021-05-28 00:04:39 +08:00
watch: {
// 切换展示页面后 重新点击一下当前节点
'$store.state.panel.mainActiveName': function(newVal, oldVal) {
if (newVal === 'PanelMain' && this.lastActiveNode && this.lastActiveNodeData) {
this.activeNodeAndClickOnly(this.lastActiveNodeData)
}
}
},
mounted() {
this.$store.dispatch('panel/setMainActiveName', 'PanelMain')
},
2021-04-01 17:40:12 +08:00
methods: {
handleClick(tab, event) {
// 点击分析面板需要刷新分享内容
if (tab.name === 'panels_share') {
this.refreshShare()
}
2021-04-20 14:19:10 +08:00
if (tab.name === 'panels_star') {
this.refreshEnshrine()
}
2021-04-01 17:40:12 +08:00
},
refreshShare() {
this.showShare = false
this.$nextTick(() => (this.showShare = true))
2021-04-20 14:19:10 +08:00
},
refreshEnshrine() {
this.showEnshrine = false
this.$nextTick(() => (this.showEnshrine = true))
2021-04-01 17:40:12 +08:00
}
}
}
</script>
<style scoped>
.ms-aside-container {
height: calc(100vh - 56px);
2021-04-08 16:54:37 +08:00
padding: 0px;
2021-04-01 17:40:12 +08:00
min-width: 260px;
max-width: 460px;
}
.ms-main-container {
height: calc(100vh - 56px);
2021-04-08 16:54:37 +08:00
padding: 0px;
2021-04-01 17:40:12 +08:00
}
2021-05-27 17:34:46 +08:00
/*.tab-panel>>>.is-stretch{*/
/* min-width: 80% !important;*/
/*}*/
/*.tab-panel>>>.el-tabs__nav-scroll {*/
/* overflow: hidden;*/
/* text-align: center;*/
/* display: flex;*/
/* align-items: center;*/
/* justify-content: center;*/
/*}*/
.tab-panel>>>.el-tabs__nav-wrap{
padding: 0 10px;
}
2021-05-27 17:34:46 +08:00
.tab-panel>>>.el-tabs__nav-wrap::after {
height: 1px;
}
2021-06-02 19:22:04 +08:00
.tab-panel>>>.el-tabs__item{
/* width: 10px; */
2021-06-02 19:22:04 +08:00
padding: 0 10px;
}
2021-04-01 17:40:12 +08:00
</style>