Pārlūkot izejas kodu

动态加载路由 页面刷新问题

RuoYi 5 gadi atpakaļ
vecāks
revīzija
9f5ed82cdf

+ 12 - 2
ruoyi-ui/src/router/index.js

@@ -27,6 +27,17 @@ import Layout from '@/layout'
 // 公共路由
 export const constantRoutes = [
   {
+    path: '/redirect',
+    component: Layout,
+    hidden: true,
+    children: [
+      {
+        path: '/redirect/:path*',
+        component: () => import('@/views/redirect')
+      }
+    ]
+  },
+  {
     path: '/login',
     component: () => import('@/views/login'),
     hidden: true
@@ -93,8 +104,7 @@ export const constantRoutes = [
         meta: { title: '修改生成配置' }
       }
     ]
-  },
-  { path: '*', redirect: '/404', hidden: true }
+  }
 ]
 
 export default new Router({

+ 1 - 0
ruoyi-ui/src/store/modules/permission.js

@@ -20,6 +20,7 @@ const permission = {
         // 向后端请求路由数据
         getRouters().then(res => {
           const accessedRoutes = filterAsyncRouter(res.data)
+          accessedRoutes.push({ path: '*', redirect: '/404', hidden: true })
           commit('SET_ROUTES', accessedRoutes)
           resolve(accessedRoutes)
         })

+ 12 - 0
ruoyi-ui/src/views/redirect.vue

@@ -0,0 +1,12 @@
+<script>
+export default {
+  created() {
+    const { params, query } = this.$route
+    const { path } = params
+    this.$router.replace({ path: '/' + path, query })
+  },
+  render: function(h) {
+    return h() // avoid warning message
+  }
+}
+</script>