mirror of
https://github.com/ccmjga/zhilu-admin
synced 2026-03-14 05:33:42 +08:00
204 lines
5.5 KiB
TypeScript
204 lines
5.5 KiB
TypeScript
import type { RouteLocationRaw } from "vue-router";
|
|
|
|
export type RouteConfig = {
|
|
path: string;
|
|
name: string;
|
|
fullPath: () => string;
|
|
withParams: <T extends Record<string, string | number>>(
|
|
params: T,
|
|
) => RouteLocationRaw;
|
|
};
|
|
|
|
// 基础路由
|
|
export const BaseRoutes = {
|
|
HOME: {
|
|
path: "/",
|
|
name: "home",
|
|
fullPath: () => "/",
|
|
withParams: () => ({ name: "home" }),
|
|
},
|
|
LOGIN: {
|
|
path: "/login",
|
|
name: "login",
|
|
fullPath: () => "/login",
|
|
withParams: () => ({ name: "login" }),
|
|
},
|
|
DASHBOARD: {
|
|
path: "/dashboard",
|
|
name: "dashboard",
|
|
fullPath: () => "/dashboard",
|
|
withParams: () => ({ name: "dashboard" }),
|
|
},
|
|
NOTFOUND: {
|
|
path: ":pathMatch(.*)*",
|
|
name: "notfound",
|
|
fullPath: () => "/dashboard/:pathMatch(.*)*",
|
|
withParams: () => ({ name: "notfound" }),
|
|
},
|
|
GLOBAL_NOTFOUND: {
|
|
path: "/:pathMatch(.*)*",
|
|
name: "global-notfound",
|
|
fullPath: () => "/:pathMatch(.*)*",
|
|
withParams: () => ({ name: "global-notfound" }),
|
|
},
|
|
} as const;
|
|
|
|
// 仪表盘子路由
|
|
export const DashboardRoutes = {
|
|
OVERVIEW: {
|
|
path: "overview",
|
|
name: "overview",
|
|
fullPath: () => `${BaseRoutes.DASHBOARD.path}/overview`,
|
|
withParams: () => ({ name: "overview" }),
|
|
},
|
|
SETTINGS: {
|
|
path: "settings",
|
|
name: "settings",
|
|
fullPath: () => `${BaseRoutes.DASHBOARD.path}/settings`,
|
|
withParams: () => ({ name: "settings" }),
|
|
},
|
|
} as const;
|
|
|
|
// 用户管理相关路由
|
|
export const UserRoutes = {
|
|
USERVIEW: {
|
|
path: "users",
|
|
name: "users",
|
|
fullPath: () => `${BaseRoutes.DASHBOARD.path}/users`,
|
|
withParams: () => ({ name: "users" }),
|
|
},
|
|
ROLEVIEW: {
|
|
path: "roles",
|
|
name: "roles",
|
|
fullPath: () => `${BaseRoutes.DASHBOARD.path}/roles`,
|
|
withParams: () => ({ name: "roles" }),
|
|
},
|
|
BINDROLEVIEW: {
|
|
path: "bind-roles/:userId",
|
|
name: "bind-roles",
|
|
fullPath: () => `${BaseRoutes.DASHBOARD.path}/bind-roles/:userId`,
|
|
withParams: <T extends { userId: string | number }>(params: T) => ({
|
|
name: "bind-roles",
|
|
params: { userId: params.userId.toString() },
|
|
}),
|
|
},
|
|
BINDPERMISSIONVIEW: {
|
|
path: "bind-permissions/:roleId",
|
|
name: "bind-permissions",
|
|
fullPath: () => `${BaseRoutes.DASHBOARD.path}/bind-permissions/:roleId`,
|
|
withParams: <T extends { roleId: string | number }>(params: T) => ({
|
|
name: "bind-permissions",
|
|
params: { roleId: params.roleId.toString() },
|
|
}),
|
|
},
|
|
BINDDEPARTMENTVIEW: {
|
|
path: "bind-departments/:userId",
|
|
name: "bind-departments",
|
|
fullPath: () => `${BaseRoutes.DASHBOARD.path}/bind-departments/:userId`,
|
|
withParams: <T extends { userId: string | number }>(params: T) => ({
|
|
name: "bind-departments",
|
|
params: { userId: params.userId.toString() },
|
|
}),
|
|
},
|
|
BINDPOSITIONVIEW: {
|
|
path: "bind-positions/:userId",
|
|
name: "bind-positions",
|
|
fullPath: () => `${BaseRoutes.DASHBOARD.path}/bind-positions/:userId`,
|
|
withParams: <T extends { userId: string | number }>(params: T) => ({
|
|
name: "bind-positions",
|
|
params: { userId: params.userId.toString() },
|
|
}),
|
|
},
|
|
PERMISSIONVIEW: {
|
|
path: "permissions",
|
|
name: "permissions",
|
|
fullPath: () => `${BaseRoutes.DASHBOARD.path}/permissions`,
|
|
withParams: () => ({ name: "permissions" }),
|
|
},
|
|
DEPARTMENTVIEW: {
|
|
path: "departments",
|
|
name: "departments",
|
|
fullPath: () => `${BaseRoutes.DASHBOARD.path}/departments`,
|
|
withParams: () => ({ name: "departments" }),
|
|
},
|
|
POSITIONVIEW: {
|
|
path: "positions",
|
|
name: "positions",
|
|
fullPath: () => `${BaseRoutes.DASHBOARD.path}/positions`,
|
|
withParams: () => ({ name: "positions" }),
|
|
},
|
|
} as const;
|
|
|
|
// AI相关路由
|
|
export const AiRoutes = {
|
|
LLMCONFIGVIEW: {
|
|
path: "llm/config",
|
|
name: "llm-config",
|
|
fullPath: () => `${BaseRoutes.DASHBOARD.path}/llm/config`,
|
|
withParams: () => ({ name: "llm-config" }),
|
|
},
|
|
SCHEDULERVIEW: {
|
|
path: "scheduler",
|
|
name: "scheduler",
|
|
fullPath: () => `${BaseRoutes.DASHBOARD.path}/scheduler`,
|
|
withParams: () => ({ name: "scheduler" }),
|
|
},
|
|
KNOWLEDGEVIEW: {
|
|
path: "knowledge",
|
|
name: "knowledge",
|
|
fullPath: () => `${BaseRoutes.DASHBOARD.path}/knowledge`,
|
|
withParams: () => ({ name: "knowledge" }),
|
|
},
|
|
KNOWLEDGEDOCVIEW: {
|
|
path: "knowledge/:libraryId",
|
|
name: "knowledge-docs",
|
|
fullPath: () => `${BaseRoutes.DASHBOARD.path}/knowledge/:libraryId`,
|
|
withParams: <T extends { libraryId: string | number }>(params: T) => ({
|
|
name: "knowledge-docs",
|
|
params: { libraryId: params.libraryId.toString() },
|
|
}),
|
|
},
|
|
KNOWLEDGESEGMENTSVIEW: {
|
|
path: "knowledge/:libraryId/:docId",
|
|
name: "knowledge-segments",
|
|
fullPath: () => `${BaseRoutes.DASHBOARD.path}/knowledge/:libraryId/:docId`,
|
|
withParams: <
|
|
T extends { libraryId: string | number; docId: string | number },
|
|
>(
|
|
params: T,
|
|
) => ({
|
|
name: "knowledge-segments",
|
|
params: {
|
|
libraryId: params.libraryId.toString(),
|
|
docId: params.docId.toString(),
|
|
},
|
|
}),
|
|
},
|
|
} as const;
|
|
|
|
export const Routes = {
|
|
...BaseRoutes,
|
|
...DashboardRoutes,
|
|
...UserRoutes,
|
|
...AiRoutes,
|
|
} as const;
|
|
|
|
export enum ERole {
|
|
ADMIN = "ADMIN",
|
|
USER = "GENERAL",
|
|
}
|
|
|
|
export enum EPermission {
|
|
READ_POSITION_PERMISSION = "READ_POSITION_PERMISSION",
|
|
WRITE_POSITION_PERMISSION = "WRITE_POSITION_PERMISSION",
|
|
READ_DEPARTMENT_PERMISSION = "READ_DEPARTMENT_PERMISSION",
|
|
WRITE_DEPARTMENT_PERMISSION = "WRITE_DEPARTMENT_PERMISSION",
|
|
READ_SCHEDULER_PERMISSION = "READ_SCHEDULER_PERMISSION",
|
|
WRITE_SCHEDULER_PERMISSION = "WRITE_SCHEDULER_PERMISSION",
|
|
WRITE_USER_ROLE_PERMISSION = "WRITE_USER_ROLE_PERMISSION",
|
|
DELETE_USER_ROLE_PERMISSION = "DELETE_USER_ROLE_PERMISSION",
|
|
READ_USER_ROLE_PERMISSION = "READ_USER_ROLE_PERMISSION",
|
|
READ_LLM_CONFIG_PERMISSION = "READ_LLM_CONFIG_PERMISSION",
|
|
WRITE_LLM_CONFIG_PERMISSION = "WRITE_LLM_CONFIG_PERMISSION",
|
|
}
|