| | |
| | | <section class="app-main">
|
| | | <router-view v-slot="{ Component, route }">
|
| | | <transition name="fade-transform" mode="out-in">
|
| | | <keep-alive :include="cachedViews">
|
| | | <component :is="Component" :key="route.path"/>
|
| | | <keep-alive :include="tagsViewStore.cachedViews">
|
| | | <component v-if="!route.meta.link" :is="Component" :key="route.path"/>
|
| | | </keep-alive>
|
| | | </transition>
|
| | | </router-view>
|
| | | <iframe-toggle />
|
| | | </section>
|
| | | </template>
|
| | |
|
| | | <script setup>
|
| | | let store = useStore()
|
| | | import iframeToggle from "./IframeToggle/index"
|
| | | import useTagsViewStore from '@/store/modules/tagsView'
|
| | |
|
| | | const route = useRoute()
|
| | | store.dispatch('tagsView/addCachedView', route)
|
| | | const cachedViews = computed(() => {
|
| | | return store.state.tagsView.cachedViews
|
| | | const tagsViewStore = useTagsViewStore()
|
| | |
|
| | | onMounted(() => {
|
| | | addIframe()
|
| | | })
|
| | |
|
| | | watchEffect(() => {
|
| | | addIframe()
|
| | | })
|
| | |
|
| | | function addIframe() {
|
| | | if (route.meta.link) {
|
| | | useTagsViewStore().addIframeView(route)
|
| | | }
|
| | | }
|
| | | </script>
|
| | |
|
| | | <style lang="scss" scoped>
|
| | |
| | | width: 100%;
|
| | | position: relative;
|
| | | overflow: hidden;
|
| | | background: #F5F7FB;
|
| | | }
|
| | |
|
| | | .fixed-header + .app-main {
|
| | |
| | | // fix css style bug in open el-dialog
|
| | | .el-popup-parent--hidden {
|
| | | .fixed-header {
|
| | | padding-right: 17px;
|
| | | padding-right: 6px;
|
| | | }
|
| | | }
|
| | | </style> |
| | |
|
| | | ::-webkit-scrollbar {
|
| | | width: 6px;
|
| | | height: 6px;
|
| | | }
|
| | |
|
| | | ::-webkit-scrollbar-track {
|
| | | background-color: #f1f1f1;
|
| | | }
|
| | |
|
| | | ::-webkit-scrollbar-thumb {
|
| | | background-color: #c0c0c0;
|
| | | border-radius: 3px;
|
| | | }
|
| | | </style>
|
| | |
|