ソースを参照

feat: 修复浏览器刷新路由丢失问题

lvkun 3 年 前
コミット
3f92c40a37

+ 0 - 1
src/layout/components/Sidebar/SidebarItem.vue

@@ -25,7 +25,6 @@
       </a-sub-menu>
   </template>
 </template>
-<!-- :base-path="resolvePath(child.path)" -->
 
 <script setup lang="ts" >
 import path from 'path-browserify'

+ 8 - 4
src/layout/components/Sidebar/index.vue

@@ -9,7 +9,7 @@
         breakpoint="lg"
       >
         <a-menu
-          :selectedKeys="selectedKeys2"
+          v-model:selectedKeys="selectedKeys2"
           :openKeys="openKeys"
           mode="inline"
           :style="{ height: '100%', borderRight: 0 }"
@@ -28,24 +28,28 @@
 
 <script lang="ts" setup >
 
-import { ref, watch } from 'vue'
+import { onMounted, ref, watch } from 'vue'
 import { useAppRouter } from '@/store/router'
 import SidebarItem from './SidebarItem.vue'
-import { useRouter } from 'vue-router'
+import { useRouter, useRoute } from 'vue-router'
 
 const appRouter = useAppRouter()
 const router = useRouter()
+const route = useRoute()
 
 console.log('appRouter.router.sider.openKeys:', appRouter.router.sider.openKeys)
 
 const collapsed = ref<boolean>(false)
 
-const selectedKeys2 = ref<string[]>([router.currentRoute.value.path])
+const selectedKeys2 = ref<string[]>([])
 // const selectedKeys2 = ref<string[]>(['/dashboard'])
 const openKeys = ref<string[]>(appRouter.router.sider!.openKeys)
 
 console.log(selectedKeys2, openKeys)
 
+onMounted(() => {
+  selectedKeys2.value = [route.path]
+})
 </script>
 
 <style lang="less" scoped >