<template> 
 | 
  <section class="app-main"> 
 | 
    <transition name="fade-transform" mode="out-in"> 
 | 
      <keep-alive :include="cachedViews"> 
 | 
        <router-view v-if="!$route.meta.link" :key="key" /> 
 | 
      </keep-alive> 
 | 
    </transition> 
 | 
    <iframe-toggle /> 
 | 
  </section> 
 | 
</template> 
 | 
  
 | 
<script> 
 | 
import iframeToggle from "./IframeToggle/index" 
 | 
  
 | 
export default { 
 | 
  name: 'AppMain', 
 | 
  components: { iframeToggle }, 
 | 
  computed: { 
 | 
    cachedViews() { 
 | 
      return this.$store.state.tagsView.cachedViews 
 | 
    }, 
 | 
    key() { 
 | 
      return this.$route.path 
 | 
    } 
 | 
  } 
 | 
} 
 | 
</script> 
 | 
  
 | 
<style lang="scss" scoped> 
 | 
.app-main { 
 | 
  /* 50= navbar  50  */ 
 | 
  min-height: calc(100vh - 50px); 
 | 
  width: 100%; 
 | 
  position: relative; 
 | 
  overflow: hidden; 
 | 
} 
 | 
  
 | 
.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: 17px; 
 | 
  } 
 | 
} 
 | 
</style> 
 |