兰宝车间质量管理系统-前端
疯狂的狮子Li
2024-12-13 8a034662c7cfca4b6d4b96ef207f1a6396239bd1
src/layout/components/AppMain.vue
@@ -1,10 +1,13 @@
<template>
  <section class="app-main">
    <router-view v-slot="{ Component, route }" :key="$route.fullPath">
      <transition :enter-active-class="animante" mode="out-in">
        <keep-alive :include="tagsViewStore.cachedViews">
    <router-view v-slot="{ Component, route }">
      <transition v-if="!route.meta.noCache" :enter-active-class="animante" mode="out-in">
        <keep-alive v-if="!route.meta.noCache" :include="tagsViewStore.cachedViews">
          <component :is="Component" v-if="!route.meta.link" :key="route.path" />
        </keep-alive>
      </transition>
      <transition v-if="route.meta.noCache" :enter-active-class="animante" mode="out-in">
        <component :is="Component" v-if="!route.meta.link && route.meta.noCache" :key="route.path" />
      </transition>
    </router-view>
    <iframe-toggle />
@@ -17,6 +20,7 @@
import IframeToggle from './IframeToggle/index.vue';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const route = useRoute();
const tagsViewStore = useTagsViewStore();
// 随机动画集合
@@ -24,7 +28,7 @@
const animationEnable = ref(useSettingsStore().animationEnable);
watch(
  () => useSettingsStore().animationEnable,
  (val) => {
  (val: boolean) => {
    animationEnable.value = val;
    if (val) {
      animante.value = proxy?.animate.animateList[Math.round(Math.random() * proxy?.animate.animateList.length)] as string;
@@ -34,6 +38,20 @@
  },
  { immediate: true }
);
onMounted(() => {
  addIframe()
})
watchEffect((route) => {
  addIframe()
})
function addIframe() {
  if (route.meta.link) {
    useTagsViewStore().addIframeView(route)
  }
}
</script>
<style lang="scss" scoped>