|
@@ -1,11 +1,29 @@
|
|
|
<template>
|
|
|
- <router-view :key="route.fullPath"></router-view>
|
|
|
+ <router-view v-slot="{ Component }">
|
|
|
+ <keep-alive include="Home,Record">
|
|
|
+ <component :is="Component" />
|
|
|
+ </keep-alive>
|
|
|
+ </router-view>
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
-import { useRoute } from 'vue-router';
|
|
|
-// 这里写你的业务逻辑
|
|
|
-const route = useRoute();
|
|
|
+import { onMounted, onBeforeUnmount } from 'vue';
|
|
|
+
|
|
|
+const handleLinkClick = (e: MouseEvent) => {
|
|
|
+ const target = (e.target as HTMLElement).closest("a") as HTMLAnchorElement | null;
|
|
|
+ if (target && target.tagName === 'A' && target.href) {
|
|
|
+ e.preventDefault();
|
|
|
+ window.open(target.href, '_blank', 'noopener,noreferrer');
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+onMounted(() => {
|
|
|
+ document.addEventListener('click', handleLinkClick);
|
|
|
+});
|
|
|
+
|
|
|
+onBeforeUnmount(() => {
|
|
|
+ document.removeEventListener('click', handleLinkClick);
|
|
|
+});
|
|
|
</script>
|
|
|
|
|
|
<style>
|