/*
 * @Author: Kane
 * @Date: 2022-12-14 15:12:46
 * @LastEditors: Kane
 * @LastEditTime: 2023-02-21 13:09:15
 * @FilePath: /IT工具综合平台/src/router/index.js
 * @Description: 定义应用路由配置
 * 
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 */
import { createRouter, createWebHashHistory } from 'vue-router';

const routes = [
  //框架路由
  {
    path: "/",
    name: "Root",
    redirect: "Login", //默认路由指向登录页面
    hidden: true,
  },
  {
    path: "/error-page",
    name: "ErrorPage",
    hidden: true,
    component: () => import("@/views/ErrorPage.vue"),
  },
  {
    path: "/login",
    name: "Login",
    component: () => import("../views/account/Login.vue"),
    hidden: true,
  },
  {
    path: "/home",
    name: "Home",
    hidden: true,
    meta: {
      title: "控制台",
    },
    component: () => import("../layout/Index.vue"),
  },
  //侧边导航栏路由
  { //首页
    path: "/console",
    name: "Console",
    meta: {
      title: "总览",
      icon: "house",
    },
    component: () => import("../layout/Index.vue"),
    children: [
      {
        path: "/desktop",
        name: "DeskTop",
        meta: {
          title: "工作台",
          icon: "house",
        },
        component: () => import("../views/overview/Desktop.vue"),
      },
    ],
  },
  {
    //需求管理
    path: "/requirement",
    name: "Requirement",
    meta: {
      title: "需求管理",
      icon: "Document",
    },
    component: () => import("../layout/Index.vue"),
    children: [
      {
        path: "/requirement-manager",
        name: "RequirementManager",
        meta: {
          title: "需求管理",
          icon: "Document",
        },
        component: () => import("../views/requirement/RequirementManager.vue"),
      },
      {
        path: "/requirement-editing",
        name: "RequirementEditing",
        hidden: true,
        meta: {
          title: "需求管理",
          icon: "edit",
        },
        component: () => import("../views/requirement/RequirementEditing.vue"),
      },
    ],
  },
  {
    //信息查询
    path: "/query_info",
    name: "QueryInfo",
    meta: {
      title: "信息查询",
      icon: "search",
    },
    component: () => import("@/layout/Index.vue"),
    children: [
      {
        path: "/query_stuff",
        name: "QueryStuff",
        meta: {
          title: "人员信息",
          icon: "user",
        },
        component: () => import("@/views/info/StaffInfo.vue"),
      },
    ],
  },
  {//权限管理
    path: "/privilege",
    name: "Privilege",
    meta: {
      title: "权限管理",
      icon: "User",
    },
    children: [
      {
        path: "/user-manager",
        name: "UserManager",
        meta: {
          title: "用户管理",
          icon: "User",
        },
        component: () => import("../views/privilege/StaffInfo.vue"),
      },
      {
        path: "/privilege-manager",
        name: "PrivilegeManager",
        meta: {
          title: "权限管理",
          icon: "edit",
        },
        component: () => import("../views/privilege/PrivilegeManager.vue"),
      },
    ],
    component: () => import("../layout/Index.vue"),
  },
  {
    path: "/network",
    name: "NetworkManager",
    meta: {
      title: "网络管理",
      icon: "switch",
    },
    component: () => import("../layout/Index.vue"),
    children: [
      {
        path: "/network-point-manager",
        name: "NetworkPointManager",
        meta: {
          title: "网络点管理",
          icon: "Monitor",
        },
        component: () => import("../views/network/NetworkPoint/NetworkPoint.vue"),
      },
      {
        path: "/network-point-edit",
        name: "NetworkPointEdit",
        hidden: true,
        component: () => import("../views/network/NetworkPoint/EditNetworkPoint.vue"),
      },
      {
        path: "/switch-manager",
        name: "SwitchManager",
        meta: {
          title: "交换机管理",
          icon: "switch",
        },
        component: () => import("../views/network/switch/SwitchManager.vue"),
      },
    ],
  },
];

const router = createRouter({
  history: createWebHashHistory(),
  routes,
});

//前置路由守卫
router.beforeEach((to) =>
{
  const token = window.localStorage.getItem("token");

  //先检查token
  if (!token)
  {
    //如果token不存在，判断路由是否走向login,如果不是则指向login
    //走向login则不干预
    if (to.name !== "Login")
    {
      return {
        name: "Login",
      };
    }
  }

  //修改默认打开的页面，跳向工作台
  // if (to.name === "Home")
  // {
  //   console.log("跳向工作台");

  //   return {
  //     name: "DeskTop",
  //   };
  // }
});

export default router;
