init : 初始化仓库
This commit is contained in:
213
src/router/index.js
Normal file
213
src/router/index.js
Normal file
@@ -0,0 +1,213 @@
|
||||
import { createRouter, createWebHistory } from "vue-router";
|
||||
import NProgress from "nprogress";
|
||||
import "nprogress/nprogress.css";
|
||||
import Layout from "@/layout/index.vue";
|
||||
import { getToken } from "../utils/auth";
|
||||
import { usePermisstionStroe } from "@/stores/permisstion.js";
|
||||
import { useAuthStore } from "@/stores/userstore.js";
|
||||
NProgress.configure({ showSpinner: false });
|
||||
|
||||
const router = createRouter({
|
||||
history: createWebHistory(import.meta.env.BASE_URL),
|
||||
routes: [
|
||||
{
|
||||
path: "/login",
|
||||
name: "login",
|
||||
component: () => import("@/views/login/index.vue"),
|
||||
meta: {
|
||||
hidden: true,
|
||||
title: "登录",
|
||||
},
|
||||
},
|
||||
{
|
||||
path: "/",
|
||||
name: "layout",
|
||||
component: Layout,
|
||||
redirect: "/home",
|
||||
meta: {
|
||||
hidden: false,
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: "/home",
|
||||
name: "home",
|
||||
component: () => import("@/views/home/index.vue"),
|
||||
meta: {
|
||||
title: "首页",
|
||||
breadcrumb: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
path: "/auth",
|
||||
name: "auth",
|
||||
component: () => import("@/views/auth/index.vue"),
|
||||
meta: {
|
||||
title: "个人中心",
|
||||
breadcrumb: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
path: "/rapid/gen/edit/:tableId(\\d+)",
|
||||
name: "genEdit",
|
||||
component: () => import("@/views/rapid/gen/editTable.vue"),
|
||||
meta: {
|
||||
title: "数据库生成配置",
|
||||
breadcrumb: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
path: "/workflow/process/edit/:deploymentId",
|
||||
name: "processEdit",
|
||||
component: () => import("@/views/workflow/process/ProcessEdit.vue"),
|
||||
meta: {
|
||||
title: "编辑流程",
|
||||
breadcrumb: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
path: "/workflow/process",
|
||||
name: "process",
|
||||
component: () => import("@/views/workflow/process/index.vue"),
|
||||
meta: {
|
||||
title: "流程管理",
|
||||
breadcrumb: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
path: "/workflow/process/edit",
|
||||
name: "processAdd",
|
||||
component: () => import("@/views/workflow/process/ProcessEdit.vue"),
|
||||
meta: {
|
||||
title: "新增流程",
|
||||
breadcrumb: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
path: "/role-auth/user/:roleId(\\d+)",
|
||||
name: "distribute",
|
||||
component: () => import("@/views/system/role/DistributeUser.vue"),
|
||||
meta: {
|
||||
title: "角色分配用户",
|
||||
breadcrumb: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
path: "/post-auth/user/:postId(\\d+)",
|
||||
name: "assignUser",
|
||||
component: () => import("@/views/system/post/DistributeUser.vue"),
|
||||
meta: {
|
||||
title: "岗位分配用户",
|
||||
breadcrumb: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
path: "/menu-auth/role/:menuId(\\d+)",
|
||||
name: "assignRole",
|
||||
component: () => import("@/views/system/menu/DistributeRole.vue"),
|
||||
meta: {
|
||||
title: "菜单分配角色",
|
||||
breadcrumb: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
path: "/system/notice/inform/index/:queryId",
|
||||
name: "notify",
|
||||
component: () => import("@/views/system/notice/inform/index.vue"),
|
||||
meta: {
|
||||
title: "通知公告",
|
||||
breadcrumb: false,
|
||||
},
|
||||
},
|
||||
{
|
||||
path: "/custom/query/sql/design/:queryId",
|
||||
name: "sql",
|
||||
component: () => import("@/views/custom-query/sql/SqlDesign.vue"),
|
||||
meta: {
|
||||
title: "自定义sql查询配置",
|
||||
breadcrumb: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
path: "/custom/query/data/adapter/design/:queryId",
|
||||
name: "dataAdapter",
|
||||
component: () =>
|
||||
import("@/views/custom-query/data-adapter/DataAdapterDesign.vue"),
|
||||
meta: {
|
||||
title: "自定义数据适配器",
|
||||
breadcrumb: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
path: "/custom/query/echarts/design/:queryId",
|
||||
name: "echarts",
|
||||
component: () =>
|
||||
import("@/views/custom-query/echarts-editor/EchartsDesign.vue"),
|
||||
meta: {
|
||||
title: "自定义echarts查询配置",
|
||||
breadcrumb: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
path: "/rapid/data/:dsId(\\d+)",
|
||||
name: "rapid",
|
||||
component: () => import("@/views/rapid/gen/index.vue"),
|
||||
meta: {
|
||||
title: "数据源关联数据",
|
||||
breadcrumb: true,
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: "/topo/design/:queryId",
|
||||
name: "topEdit",
|
||||
component: () => import("@/views/custom-query/topo/topologyDesign.vue"),
|
||||
meta: {
|
||||
title: "top",
|
||||
breadcrumb: false,
|
||||
},
|
||||
},
|
||||
{
|
||||
path: "/forbidden",
|
||||
name: "forbidden",
|
||||
component: () => import("@/views/forbidden/index.vue"),
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
router.beforeEach(async (to, form, next) => {
|
||||
const permisstionStore = usePermisstionStroe();
|
||||
const authStore = useAuthStore();
|
||||
NProgress.start();
|
||||
if (!getToken()) {
|
||||
if (to.path === "/login" || to.path === "/forbidden") {
|
||||
next();
|
||||
NProgress.done();
|
||||
} else {
|
||||
next({ path: "/login" });
|
||||
}
|
||||
} else {
|
||||
if (to.path === "/login") {
|
||||
next("/");
|
||||
NProgress.done();
|
||||
} else {
|
||||
permisstionStore.setIsLoadRoutes(true);
|
||||
if (
|
||||
permisstionStore.isLoadRoutes &&
|
||||
permisstionStore.asyncRouters.length == 0
|
||||
) {
|
||||
await permisstionStore.setAsyncRouters();
|
||||
await authStore.setUserInfo();
|
||||
next({ ...to, replace: true });
|
||||
} else {
|
||||
next();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
router.afterEach(() => {
|
||||
NProgress.done();
|
||||
});
|
||||
|
||||
export default router;
|
||||
Reference in New Issue
Block a user