2023-09-24 01:17:54 +08:00

121 lines
2.6 KiB
JavaScript

/*
* @Author: Kane
* @Date: 2023-02-28 01:22:48
* @LastEditors: Kane
* @FilePath: /task_schedule/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: "/login",
name: "Login",
hidden: true,
component: async () => await import( "@/views/Login.vue" ),
},
// 桌面霸屏
{
path: "/desktop_archievement",
name: "DesktopArchievement",
hidden: true,
component: async () => await import( "@/views/DesktopArchievement.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/Desktop.vue" ),
},
],
},
//数据管理
{
path:"/data",
name:"Data",
meta:{
title:"数据管理",
icon: "document",
},
component: ()=> import( "../layout/Index.vue" ),
children:[
{
path:"/staff_data",
name:"StaffDataManagement",
meta: {
title:"坐席管理",
icon: "user",
},
component: ()=> import( "../views/StaffManagement.vue" ),
},
{
path:"/reward_management",
name:"RewardManagement",
meta: {
title:"奖励管理",
icon: "document",
},
component: ()=> import( "../views/RewardManagement.vue" ),
},
],
},
];
const router = createRouter(
{
history: createWebHashHistory(),
routes,
}
);
// 路由守卫
// router.beforeEach((to) =>
// {
// });
// 工具函数
function hasOnlyChild( children )
{
if ( !children )
{
return false;
}
const routes = children.filter(( item )=>
{
return !item.hidden;
});
if ( routes.length === 1 )
{
return true;
}
return false;
}
export { router, hasOnlyChild };