提交 4e8966e2 编写于 作者: Mr.奇淼('s avatar Mr.奇淼(

修复keepalive问题 #934 #903,调整刷新功能,增加页面跳转动画。

上级 573ae689
......@@ -57,8 +57,18 @@ export const useRouterStore = defineStore('router', () => {
hidden: true,
meta: {
title: '迷路了*。*',
closeTab: true,
},
component: 'view/error/index.vue'
}, {
path: 'reload',
name: 'Reload',
hidden: true,
meta: {
title: '',
closeTab: true,
},
component: 'view/error/reload.vue'
})
formatRouter(asyncRouter, routeMap)
baseRouter[0].children = asyncRouter
......
<template>
<div />
</template>
<script>
import { useRouter } from 'vue-router'
export default {
name: 'Reload'
}
</script>
<script setup>
const router = useRouter()
router.go(-1)
</script>
......@@ -2,7 +2,7 @@
<div>
<router-view v-slot="{ Component }">
<transition mode="out-in" name="el-fade-in-linear">
<keep-alive :include="useRouterStore.keepAliveRouters">
<keep-alive :include="routerStore.keepAliveRouters">
<component :is="Component" />
</keep-alive>
</transition>
......@@ -17,4 +17,5 @@ export default {
</script>
<script setup>
import { useRouterStore } from '@/pinia/modules/router'
const routerStore = useRouterStore()
</script>
......@@ -247,16 +247,13 @@ watch(contextMenuVisible, () => {
})
watch(route, (to, now) => {
if (to.name === 'Login') {
if (to.name === 'Login' || to.name === 'Reload') {
return
}
historys.value = historys.value.filter((item) => !item.meta.closeTab)
setTab(to)
sessionStorage.setItem('historys', JSON.stringify(historys.value))
activeValue.value = window.sessionStorage.getItem('activeValue')
if (now && to && now.name === to.name) {
emitter.emit('reload')
}
})
const initPage = () => {
......
......@@ -34,7 +34,7 @@
<el-breadcrumb-item
v-for="item in matched.slice(1,matched.length)"
:key="item.path"
>{{ item.meta.title }}</el-breadcrumb-item>
>{{ route.params.title || item.meta.title }}</el-breadcrumb-item>
</el-breadcrumb>
</el-col>
<el-col :xs="12" :lg="9" :md="9" :sm="14" :xl="9">
......@@ -83,7 +83,7 @@
</transition>
<router-view v-if="reloadFlag" v-slot="{ Component }" v-loading="loadingFlag" element-loading-text="正在加载中" class="admin-box">
<transition mode="out-in" name="el-fade-in-linear">
<keep-alive :include="useRouterStore.keepAliveRouters">
<keep-alive :include="routerStore.keepAliveRouters">
<component :is="Component" />
</keep-alive>
</transition>
......@@ -118,7 +118,8 @@ import { useRouterStore } from '@/pinia/modules/router'
const router = useRouter()
const route = useRoute()
const routerStore = useRouterStore()
console.log(routerStore.keepAliveRouters)
// 三种窗口适配
const isCollapse = ref(false)
const isSider = ref(true)
......@@ -201,9 +202,14 @@ const changeUserAuth = async(id) => {
const reloadFlag = ref(true)
const reload = async() => {
reloadFlag.value = false
await nextTick()
reloadFlag.value = true
if (route.meta.keepAlive) {
reloadFlag.value = false
await nextTick()
reloadFlag.value = true
} else {
const title = route.meta.title
router.push({ name: 'Reload', params: { title }})
}
}
const isShadowBg = ref(false)
......
......@@ -3,7 +3,7 @@
<div>
<router-view v-slot="{ Component }">
<transition mode="out-in" name="el-fade-in-linear">
<keep-alive :include="useRouterStore.keepAliveRouters">
<keep-alive :include="routerStore.keepAliveRouters">
<component :is="Component" />
</keep-alive>
</transition>
......@@ -19,4 +19,5 @@ export default {
<script setup>
import { useRouterStore } from '@/pinia/modules/router'
const routerStore = useRouterStore()
</script>
......@@ -2,7 +2,7 @@
<div>
<router-view v-slot="{ Component }">
<transition mode="out-in" name="el-fade-in-linear">
<keep-alive :include="useRouterStore.keepAliveRouters">
<keep-alive :include="routerStore.keepAliveRouters">
<component :is="Component" />
</keep-alive>
</transition>
......@@ -17,4 +17,5 @@ export default {
</script>
<script setup>
import { useRouterStore } from '@/pinia/modules/router'
const routerStore = useRouterStore()
</script>
......@@ -2,7 +2,7 @@
<div>
<router-view v-slot="{ Component }">
<transition mode="out-in" name="el-fade-in-linear">
<keep-alive :include="useRouterStore.keepAliveRouters">
<keep-alive :include="routerStore.keepAliveRouters">
<component :is="Component" />
</keep-alive>
</transition>
......@@ -17,4 +17,5 @@ export default {
</script>
<script setup>
import { useRouterStore } from '@/pinia/modules/router'
const routerStore = useRouterStore()
</script>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册