Tumour.vue 1.11 KB
<template>
    <div class="h-full tumour-home">
        <router-view v-slot="{ Component }">
            <Transition name="route" mode="out-in">
                <component :is="Component"/>
            </Transition>
        </router-view>
    </div>
</template>

<script>
import { getDict } from './api/base.js'
import { useStore } from './store/index.js'

export default {
    created() {
        this.init()
        // 监听页面是否隐藏
        document.addEventListener('visibilitychange', this.visibilitychange)
    },
    setup() {
        const store = useStore()
        return { store }
    },
    methods: {
        init() {
            getDict().then(res => {
                this.store.$patch({ dict: res.data })
            })
        },
        visibilitychange() {
            if (document.hidden) {
                this.store.onDocumentHidden(true)
            } else {
                this.store.onDocumentHidden(false)
            }
        }
    },
    beforeUnmount() {
        document.removeEventListener('visibilitychange', this.visibilitychange)
    }
}
</script>

<style lang="less" scoped>

</style>