<template> 
 | 
    <div class="index"> 
 | 
        <!--    头部导航    --> 
 | 
        <template v-if="env == 'H5'"> 
 | 
            <v-Header :pathList="pathLists"> 
 | 
                <template v-slot:title>{{ title }}</template> 
 | 
            </v-Header> 
 | 
        </template> 
 | 
        <!--    主题内容    --> 
 | 
        <div class="index_content" :style="store.state.type ? 'min-height: calc(100% - 64px)' : 'min-height: calc(100% - 108px)'"> 
 | 
            <router-view v-slot="{ Component }"> 
 | 
                <keep-alive> 
 | 
                    <component :is="Component" :key="route.meta.name" v-if="route.meta.keepAlive" /> 
 | 
                </keep-alive> 
 | 
                <component :is="Component" :key="route.meta.name" v-if="!route.meta.keepAlive" /> 
 | 
            </router-view> 
 | 
        </div> 
 | 
        <!--    底部导航栏    --> 
 | 
        <v-TabBar></v-TabBar> 
 | 
    </div> 
 | 
</template> 
 | 
  
 | 
<script setup lang="ts"> 
 | 
    import { getCurrentInstance, reactive, ref, onMounted, computed } from 'vue' 
 | 
    import { watch } from 'vue' 
 | 
    import { useStore } from "vuex" 
 | 
    import { useRoute } from 'vue-router' 
 | 
    const { proxy }: any = getCurrentInstance() 
 | 
    import vTabBar from '@/components/common/TabBar.vue' 
 | 
    import vHeader from '@/components/common/Header.vue' 
 | 
  
 | 
    const store = useStore() 
 | 
    const route = useRoute() 
 | 
    const title = ref<string>('') 
 | 
    const isShow = ref<boolean>(false) 
 | 
    const pathLists = reactive<string[]>([ '/index', '/workbench', '/bulletinboard', '/my' ]) 
 | 
    const env = computed(() => store.state.env) 
 | 
  
 | 
    onMounted(() => { 
 | 
        isShow.value = proxy.$dd.env.platform === 'notInDingTalk'; 
 | 
    }) 
 | 
  
 | 
    watch(() => route.meta.title, (newsPath, oldPath): void => { 
 | 
        title.value = newsPath as string 
 | 
    }, { immediate: true }) 
 | 
</script> 
 | 
  
 | 
<style lang="scss" scoped> 
 | 
.index { 
 | 
    width: 100%; 
 | 
    height: 100%; 
 | 
    .index_content { 
 | 
        position: relative; 
 | 
    } 
 | 
} 
 | 
</style> 
 |