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