fix
This commit is contained in:
@@ -2,7 +2,7 @@ import React, { Suspense } from 'react';
|
||||
import { Routes, Route, Navigate } from 'react-router-dom';
|
||||
import { Spin } from 'antd';
|
||||
import MainLayout from '@/components/Layout/MainLayout';
|
||||
import { routes } from '@/routes/routes';
|
||||
import { generateRoutes } from '@/routes/routes';
|
||||
import Login from '@/pages/auth/Login';
|
||||
import NotFound from '@/pages/notFound';
|
||||
import Dashboard from '@/pages/Dashboard';
|
||||
@@ -48,13 +48,14 @@ const renderRoutes = (routes) => {
|
||||
|
||||
const AppRoutes = () => {
|
||||
const { user } = useAuth();
|
||||
const { adminRole: role } = user;
|
||||
|
||||
return (
|
||||
<Routes>
|
||||
<Route
|
||||
path="/login"
|
||||
element={
|
||||
user ? <Navigate to="/company/serviceTemplate" replace /> : <Login />
|
||||
user?.id ? <Navigate to="/company/serviceTemplate" replace /> : <Login />
|
||||
}
|
||||
/>
|
||||
|
||||
@@ -70,7 +71,7 @@ const AppRoutes = () => {
|
||||
index
|
||||
element={<Navigate to="/company/serviceTemplate" replace />}
|
||||
/>
|
||||
{renderRoutes(routes)}
|
||||
{renderRoutes(generateRoutes(role))}
|
||||
<Route path="*" element={<NotFound />} />
|
||||
</Route>
|
||||
</Routes>
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { lazy } from "react";
|
||||
|
||||
|
||||
// Resource Management routes
|
||||
const resourceRoutes = [
|
||||
{
|
||||
@@ -8,24 +7,28 @@ const resourceRoutes = [
|
||||
component: lazy(() => import("@/pages/resource/team")),
|
||||
name: "团队管理",
|
||||
icon: "team",
|
||||
roles: ["OWNER"],
|
||||
},
|
||||
{
|
||||
path: "bucket",
|
||||
component: lazy(() => import("@/pages/resource/bucket")),
|
||||
name: "对象存储",
|
||||
icon: "shop",
|
||||
roles: ["OWNER"],
|
||||
},
|
||||
{
|
||||
path: "task",
|
||||
component: lazy(() => import("@/pages/resource/resourceTask")),
|
||||
name: "任务管理",
|
||||
icon: "appstore",
|
||||
roles: ["OWNER"],
|
||||
},
|
||||
{
|
||||
path: "task/edit/:id?",
|
||||
component: lazy(() => import("@/pages/resource/resourceTask/edit")),
|
||||
hidden: true,
|
||||
name: "新增/编辑任务",
|
||||
roles: ["OWNER"],
|
||||
},
|
||||
];
|
||||
|
||||
@@ -36,6 +39,7 @@ const companyRoutes = [
|
||||
component: lazy(() => import("@/pages/company/quotation")),
|
||||
name: "报价单",
|
||||
icon: "file",
|
||||
roles: ["ADMIN", "OWNER"],
|
||||
},
|
||||
{
|
||||
path: "quotaInfo/:id?", // 添加可选的 id 参数
|
||||
@@ -43,18 +47,21 @@ const companyRoutes = [
|
||||
component: lazy(() => import("@/pages/company/quotation/detail")),
|
||||
name: "报价单详情",
|
||||
icon: "file",
|
||||
roles: ["ADMIN", "OWNER"],
|
||||
},
|
||||
{
|
||||
path: "serviceTemplate",
|
||||
component: lazy(() => import("@/pages/company/service")),
|
||||
name: "服务管理",
|
||||
icon: "container",
|
||||
roles: ["ADMIN", "OWNER"],
|
||||
},
|
||||
{
|
||||
path: "templateItemManage",
|
||||
component: lazy(() => import("@/pages/company/service/itemsManange")),
|
||||
name: "资源类型",
|
||||
icon: "container",
|
||||
roles: ["ADMIN", "OWNER"],
|
||||
},
|
||||
{
|
||||
path: "serviceTemplateInfo/:id?",
|
||||
@@ -62,6 +69,7 @@ const companyRoutes = [
|
||||
component: lazy(() => import("@/pages/company/service/detail")),
|
||||
name: "服务模版详情",
|
||||
icon: "container",
|
||||
roles: ["ADMIN", "OWNER"],
|
||||
},
|
||||
{
|
||||
path: "quotaInfo/preview/:id?", // 添加可选的 id 参数
|
||||
@@ -69,12 +77,14 @@ const companyRoutes = [
|
||||
component: lazy(() => import("@/pages/company/quotation/view")),
|
||||
name: "报价单预览",
|
||||
icon: "file",
|
||||
roles: ["ADMIN", "OWNER"],
|
||||
},
|
||||
{
|
||||
path: "customer",
|
||||
component: lazy(() => import("@/pages/company/customer")),
|
||||
name: "客户管理",
|
||||
icon: "user",
|
||||
roles: ["ADMIN", "OWNER"],
|
||||
},
|
||||
{
|
||||
path: "customerInfo/:id?",
|
||||
@@ -82,12 +92,14 @@ const companyRoutes = [
|
||||
component: lazy(() => import("@/pages/company/customer/detail")),
|
||||
name: "客户详情",
|
||||
icon: "user",
|
||||
roles: ["ADMIN", "OWNER"],
|
||||
},
|
||||
{
|
||||
path: "supplier",
|
||||
component: lazy(() => import("@/pages/company/supplier")),
|
||||
name: "供应商管理",
|
||||
icon: "branches",
|
||||
roles: ["ADMIN", "OWNER"],
|
||||
},
|
||||
{
|
||||
path: "supplierInfo/:id?",
|
||||
@@ -95,37 +107,63 @@ const companyRoutes = [
|
||||
component: lazy(() => import("@/pages/company/supplier/detail")),
|
||||
name: "供应商详情",
|
||||
icon: "branches",
|
||||
roles: ["ADMIN", "OWNER"],
|
||||
},
|
||||
];
|
||||
|
||||
const marketingRoutes = [];
|
||||
|
||||
export const routes = [
|
||||
// {
|
||||
// path: "dashboard",
|
||||
// component: lazy(() => import("@/pages/Dashboard")),
|
||||
// name: "仪表盘",
|
||||
// icon: "dashboard",
|
||||
// },
|
||||
const roleRoutes = [
|
||||
{
|
||||
path: "resource",
|
||||
component: lazy(() => import("@/pages/resource")),
|
||||
name: "资源管理",
|
||||
icon: "appstore",
|
||||
children: resourceRoutes,
|
||||
},
|
||||
{
|
||||
path: "company",
|
||||
component: lazy(() => import("@/pages/company")),
|
||||
name: "公司管理",
|
||||
icon: "bank",
|
||||
children: companyRoutes,
|
||||
},
|
||||
{
|
||||
path: "marketing",
|
||||
component: lazy(() => import("@/pages/marketing")),
|
||||
name: "行销中心",
|
||||
icon: "shopping",
|
||||
children: marketingRoutes,
|
||||
path: "role",
|
||||
component: lazy(() => import("@/pages/role")),
|
||||
name: "角色管理",
|
||||
icon: "setting",
|
||||
roles: ["ADMIN", "OWNER"],
|
||||
},
|
||||
];
|
||||
|
||||
export const generateRoutes = (role) => {
|
||||
return [
|
||||
{
|
||||
path: "dashboard",
|
||||
component: lazy(() => import("@/pages/Dashboard")),
|
||||
name: "仪表盘",
|
||||
icon: "dashboard",
|
||||
roles: ["ADMIN", "OWNER", "MEMBER"],
|
||||
},
|
||||
{
|
||||
path: "resource",
|
||||
component: lazy(() => import("@/pages/resource")),
|
||||
name: "资源管理",
|
||||
icon: "appstore",
|
||||
children: resourceRoutes.filter((route) => route.roles.includes(role)),
|
||||
roles: ["OWNER"],
|
||||
},
|
||||
{
|
||||
path: "company",
|
||||
component: lazy(() => import("@/pages/company")),
|
||||
name: "公司管理",
|
||||
icon: "bank",
|
||||
children: companyRoutes.filter((route) => route.roles.includes(role)),
|
||||
roles: ["ADMIN", "OWNER"],
|
||||
},
|
||||
{
|
||||
path: "marketing",
|
||||
component: lazy(() => import("@/pages/marketing")),
|
||||
name: "行销中心",
|
||||
icon: "shopping",
|
||||
children: marketingRoutes.filter((route) => route.roles.includes(role)),
|
||||
roles: ["ADMIN", "OWNER"],
|
||||
},
|
||||
|
||||
// {
|
||||
// path: "role",
|
||||
// component: lazy(() => import("@/pages/role")),
|
||||
// name: "权限管理",
|
||||
// icon: "setting",
|
||||
// children: roleRoutes.filter((route) => route.roles.includes(role)),
|
||||
// roles: ["ADMIN", "OWNER"],
|
||||
// },
|
||||
].filter((route) => route.roles.includes(role));
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user