From 251d2411f235e23209d57173857e05b637729ce8 Mon Sep 17 00:00:00 2001 From: LiuHao <liuhaoai545@gmail.com> Date: 星期日, 02 四月 2023 01:01:56 +0800 Subject: [PATCH] refactor ts --- src/layout/components/AppMain.vue | 62 ++++++++++++++++++++---------- 1 files changed, 41 insertions(+), 21 deletions(-) diff --git a/src/layout/components/AppMain.vue b/src/layout/components/AppMain.vue index 5b51fcf..e600479 100644 --- a/src/layout/components/AppMain.vue +++ b/src/layout/components/AppMain.vue @@ -1,22 +1,42 @@ -<template> - <section class="app-main"> - <router-view v-slot="{ Component, route }"> - <transition name="fade-transform" mode="out-in"> - <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> -import iframeToggle from "./IframeToggle/index" -import useTagsViewStore from '@/store/modules/tagsView' - -const tagsViewStore = useTagsViewStore() +<script lang="ts"> +export default { + name: 'AppMin' +} </script> + +<script setup lang="ts"> +import useTagsViewStore from '@/store/modules/tagsView'; +import useSettingsStore from '@/store/modules/settings'; +import IframeToggle from './IframeToggle/index.vue' +import { ComponentInternalInstance } from "vue"; +const { proxy } = getCurrentInstance() as ComponentInternalInstance; +const tagsViewStore = useTagsViewStore(); + +// 闅忔満鍔ㄧ敾闆嗗悎 +const animante = ref<string>(''); +const animationEnable = ref(useSettingsStore().animationEnable); +watch(()=> useSettingsStore().animationEnable, (val) => { + animationEnable.value = val; + if (val) { + animante.value = proxy?.animate.animateList[Math.round(Math.random() * proxy?.animate.animateList.length)] as string; + } else { + animante.value = proxy?.animate.defaultAnimate as string; + } +}, { immediate: true }); +</script> + +<template> + <section class="app-main"> + <router-view v-slot="{ Component, route }"> + <transition :enter-active-class="animante" mode="out-in"> + <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> <style lang="scss" scoped> .app-main { @@ -27,7 +47,7 @@ overflow: hidden; } -.fixed-header + .app-main { +.fixed-header+.app-main { padding-top: 50px; } @@ -37,7 +57,7 @@ min-height: calc(100vh - 84px); } - .fixed-header + .app-main { + .fixed-header+.app-main { padding-top: 84px; } } @@ -50,4 +70,4 @@ padding-right: 17px; } } -</style> \ No newline at end of file +</style> -- Gitblit v1.9.3