70 lines
2.1 KiB
JavaScript
70 lines
2.1 KiB
JavaScript
|
import { createRouter, createWebHashHistory } from "vue-router";
|
|||
|
import layout from "@/layout/index.vue";
|
|||
|
// import children from "../components/children/index.vue";
|
|||
|
|
|||
|
/**
|
|||
|
* path 从跟开始每一级都要写
|
|||
|
* name 和path一样
|
|||
|
* redirect 重定向到哪一个路由,子级路由第一个的path,(没有子级路由不需要填写)
|
|||
|
* component 路由对应的组件位置(必填,views下的文件,views和.vue不需要填写)
|
|||
|
* meta参数说明
|
|||
|
* title 显示在菜单和面包屑中名称
|
|||
|
* model 归类到头部导航哪一级中(最外层路由需要填写)
|
|||
|
* activeMenu 当前路由选中状态是哪个导航(isSubMenu:false时需要填写,设置isSubMenu:false路由的path)
|
|||
|
* isMenu false 不显示当前菜单
|
|||
|
* isLogin false 不需要登录可以访问
|
|||
|
* breadcrumb false 当前页不显示在面包屑中
|
|||
|
* isBreadcrumb false 当前页不显示面包屑
|
|||
|
* isSubMenu false 当前菜单不显示子菜单
|
|||
|
* isBack false 当前菜页不显示返回按钮
|
|||
|
**/
|
|||
|
|
|||
|
const routes = [
|
|||
|
{
|
|||
|
path: "/login",
|
|||
|
name: "/login",
|
|||
|
meta: { title: "登录", isLogin: false },
|
|||
|
component: () => import("@/views/login/index"),
|
|||
|
},
|
|||
|
{
|
|||
|
path: "/",
|
|||
|
name: "app",
|
|||
|
redirect: "/index",
|
|||
|
meta: { title: "首页" },
|
|||
|
component: layout,
|
|||
|
children: [
|
|||
|
{
|
|||
|
path: "/index",
|
|||
|
name: "/index",
|
|||
|
meta: {
|
|||
|
title: "首页",
|
|||
|
breadcrumb: false,
|
|||
|
isMenu: false,
|
|||
|
isSubMenu: false,
|
|||
|
isBack: false,
|
|||
|
},
|
|||
|
component: () => import("@/views/index/index"),
|
|||
|
},
|
|||
|
],
|
|||
|
},
|
|||
|
{
|
|||
|
path: "/404",
|
|||
|
name: "/404",
|
|||
|
meta: { title: "404", isBreadcrumb: false, isMenu: false },
|
|||
|
component: () => import("@/views/404"),
|
|||
|
},
|
|||
|
];
|
|||
|
const router = createRouter({
|
|||
|
history: createWebHashHistory(import.meta.env.BASE_URL),
|
|||
|
routes,
|
|||
|
scrollBehavior(to, from, savedPosition) {
|
|||
|
if (savedPosition) {
|
|||
|
return savedPosition;
|
|||
|
} else {
|
|||
|
return { left: 0, top: 0 };
|
|||
|
}
|
|||
|
},
|
|||
|
});
|
|||
|
|
|||
|
export default router;
|