You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
610 lines
14 KiB
610 lines
14 KiB
import useUserStore from "@/store/userStore";
|
|
import { faker } from "@faker-js/faker";
|
|
|
|
import { BasicStatus, PermissionType } from "#/enum";
|
|
/**
|
|
* Organization data mock
|
|
*/
|
|
export const ORG_LIST = [
|
|
{
|
|
id: "1",
|
|
name: "East China Branch",
|
|
status: "enable",
|
|
desc: faker.lorem.words(),
|
|
order: 1,
|
|
children: [
|
|
{
|
|
id: "1-1",
|
|
name: "R&D Department",
|
|
status: "disable",
|
|
desc: "",
|
|
order: 1,
|
|
},
|
|
{
|
|
id: "1-2",
|
|
name: "Marketing Department",
|
|
status: "enable",
|
|
desc: "",
|
|
order: 2,
|
|
},
|
|
{
|
|
id: "1-3",
|
|
name: "Finance Department",
|
|
status: "enable",
|
|
desc: "",
|
|
order: 3,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
id: "2",
|
|
name: "South China Branch",
|
|
status: "enable",
|
|
desc: faker.lorem.words(),
|
|
order: 2,
|
|
children: [
|
|
{
|
|
id: "2-1",
|
|
name: "R&D Department",
|
|
status: "disable",
|
|
desc: "",
|
|
order: 1,
|
|
},
|
|
{
|
|
id: "2-2",
|
|
name: "Marketing Department",
|
|
status: "enable",
|
|
desc: "",
|
|
order: 2,
|
|
},
|
|
{
|
|
id: "2-3",
|
|
name: "Finance Department",
|
|
status: "enable",
|
|
desc: "",
|
|
order: 3,
|
|
},
|
|
],
|
|
},
|
|
];
|
|
|
|
/**
|
|
* User permission mock
|
|
*/
|
|
const DASHBOARD_PERMISSION = {
|
|
id: "9100714781927703",
|
|
parentId: "",
|
|
label: "sys.menu.dashboard",
|
|
name: "Dashboard",
|
|
icon: "ic-analysis",
|
|
type: PermissionType.CATALOGUE,
|
|
route: "dashboard",
|
|
order: 1,
|
|
children: [
|
|
{
|
|
id: "8426999229400979",
|
|
parentId: "9100714781927703",
|
|
label: "sys.menu.workbench",
|
|
name: "Workbench",
|
|
type: PermissionType.MENU,
|
|
route: "workbench",
|
|
component: "/dashboard/workbench/index.tsx",
|
|
},
|
|
{
|
|
id: "9710971640510357",
|
|
parentId: "9100714781927703",
|
|
label: "sys.menu.analysis",
|
|
name: "Analysis",
|
|
type: PermissionType.MENU,
|
|
route: "analysis",
|
|
component: "/dashboard/analysis/index.tsx",
|
|
},
|
|
],
|
|
};
|
|
const MANAGEMENT_PERMISSION = {
|
|
id: "0901673425580518",
|
|
parentId: "",
|
|
label: "sys.menu.management",
|
|
name: "Management",
|
|
icon: "ic-management",
|
|
type: PermissionType.CATALOGUE,
|
|
route: "management",
|
|
order: 2,
|
|
children: [
|
|
{
|
|
id: "2781684678535711",
|
|
parentId: "0901673425580518",
|
|
label: "sys.menu.user.index",
|
|
name: "User",
|
|
type: PermissionType.CATALOGUE,
|
|
route: "user",
|
|
children: [
|
|
{
|
|
id: "4754063958766648",
|
|
parentId: "2781684678535711",
|
|
label: "sys.menu.user.profile",
|
|
name: "Profile",
|
|
type: PermissionType.MENU,
|
|
route: "profile",
|
|
component: "/management/user/profile/index.tsx",
|
|
},
|
|
{
|
|
id: "2516598794787938",
|
|
parentId: "2781684678535711",
|
|
label: "sys.menu.user.account",
|
|
name: "Account",
|
|
type: PermissionType.MENU,
|
|
route: "account",
|
|
component: "/management/user/account/index.tsx",
|
|
},
|
|
],
|
|
},
|
|
{
|
|
id: "0249937641030250",
|
|
parentId: "0901673425580518",
|
|
label: "sys.menu.system.index",
|
|
name: "System",
|
|
type: PermissionType.CATALOGUE,
|
|
route: "system",
|
|
children: [
|
|
{
|
|
id: "1985890042972842",
|
|
parentId: "0249937641030250",
|
|
label: "sys.menu.system.organization",
|
|
name: "Organization",
|
|
type: PermissionType.MENU,
|
|
route: "organization",
|
|
component: "/management/system/organization/index.tsx",
|
|
},
|
|
{
|
|
id: "4359580910369984",
|
|
parentId: "0249937641030250",
|
|
label: "sys.menu.system.permission",
|
|
name: "Permission",
|
|
type: PermissionType.MENU,
|
|
route: "permission",
|
|
component: "/management/system/permission/index.tsx",
|
|
},
|
|
{
|
|
id: "1689241785490759",
|
|
parentId: "0249937641030250",
|
|
label: "sys.menu.system.role",
|
|
name: "Role",
|
|
type: PermissionType.MENU,
|
|
route: "role",
|
|
component: "/management/system/role/index.tsx",
|
|
},
|
|
{
|
|
id: "0157880245365433",
|
|
parentId: "0249937641030250",
|
|
label: "sys.menu.system.user",
|
|
name: "User",
|
|
type: PermissionType.MENU,
|
|
route: "user",
|
|
component: "/management/system/user/index.tsx",
|
|
},
|
|
{
|
|
id: "0157880245365434",
|
|
parentId: "0249937641030250",
|
|
label: "sys.menu.system.user_detail",
|
|
name: "User Detail",
|
|
type: PermissionType.MENU,
|
|
route: "user/:id",
|
|
component: "/management/system/user/detail.tsx",
|
|
hide: true,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
};
|
|
const COMPONENTS_PERMISSION = {
|
|
id: "2271615060673773",
|
|
parentId: "",
|
|
label: "sys.menu.components",
|
|
name: "Components",
|
|
icon: "solar:widget-5-bold-duotone",
|
|
type: PermissionType.CATALOGUE,
|
|
route: "components",
|
|
order: 3,
|
|
children: [
|
|
{
|
|
id: "2478488238255411",
|
|
parentId: "2271615060673773",
|
|
label: "sys.menu.icon",
|
|
name: "Icon",
|
|
type: PermissionType.MENU,
|
|
route: "icon",
|
|
component: "/components/icon/index.tsx",
|
|
},
|
|
{
|
|
id: "6755238352318767",
|
|
parentId: "2271615060673773",
|
|
label: "sys.menu.animate",
|
|
name: "Animate",
|
|
type: PermissionType.MENU,
|
|
route: "animate",
|
|
component: "/components/animate/index.tsx",
|
|
},
|
|
{
|
|
id: "9992476513546805",
|
|
parentId: "2271615060673773",
|
|
label: "sys.menu.scroll",
|
|
name: "Scroll",
|
|
type: PermissionType.MENU,
|
|
route: "scroll",
|
|
component: "/components/scroll/index.tsx",
|
|
},
|
|
{
|
|
id: "1755562695856395",
|
|
parentId: "2271615060673773",
|
|
label: "sys.menu.markdown",
|
|
name: "Markdown",
|
|
type: PermissionType.MENU,
|
|
route: "markdown",
|
|
component: "/components/markdown/index.tsx",
|
|
},
|
|
{
|
|
id: "2122547769468069",
|
|
parentId: "2271615060673773",
|
|
label: "sys.menu.editor",
|
|
name: "Editor",
|
|
type: PermissionType.MENU,
|
|
route: "editor",
|
|
component: "/components/editor/index.tsx",
|
|
},
|
|
{
|
|
id: "2501920741714350",
|
|
parentId: "2271615060673773",
|
|
label: "sys.menu.i18n",
|
|
name: "Multi Language",
|
|
type: PermissionType.MENU,
|
|
route: "i18n",
|
|
component: "/components/multi-language/index.tsx",
|
|
},
|
|
{
|
|
id: "2013577074467956",
|
|
parentId: "2271615060673773",
|
|
label: "sys.menu.upload",
|
|
name: "upload",
|
|
type: PermissionType.MENU,
|
|
route: "Upload",
|
|
component: "/components/upload/index.tsx",
|
|
},
|
|
{
|
|
id: "7749726274771764",
|
|
parentId: "2271615060673773",
|
|
label: "sys.menu.chart",
|
|
name: "Chart",
|
|
type: PermissionType.MENU,
|
|
route: "chart",
|
|
component: "/components/chart/index.tsx",
|
|
},
|
|
{
|
|
id: "2013577074467957",
|
|
parentId: "2271615060673773",
|
|
label: "sys.menu.toast",
|
|
name: "Toast",
|
|
type: PermissionType.MENU,
|
|
route: "toast",
|
|
component: "/components/toast/index.tsx",
|
|
},
|
|
],
|
|
};
|
|
const FUNCTIONS_PERMISSION = {
|
|
id: "8132044808088488",
|
|
parentId: "",
|
|
label: "sys.menu.functions",
|
|
name: "functions",
|
|
icon: "solar:plain-2-bold-duotone",
|
|
type: PermissionType.CATALOGUE,
|
|
route: "functions",
|
|
order: 4,
|
|
children: [
|
|
{
|
|
id: "3667930780705750",
|
|
parentId: "8132044808088488",
|
|
label: "sys.menu.clipboard",
|
|
name: "Clipboard",
|
|
type: PermissionType.MENU,
|
|
route: "clipboard",
|
|
component: "/functions/clipboard/index.tsx",
|
|
},
|
|
{
|
|
id: "3667930780705751",
|
|
parentId: "8132044808088488",
|
|
label: "sys.menu.token_expired",
|
|
name: "Token Expired",
|
|
type: PermissionType.MENU,
|
|
route: "token-expired",
|
|
component: "/functions/token-expired/index.tsx",
|
|
},
|
|
],
|
|
};
|
|
const MENU_LEVEL_PERMISSION = {
|
|
id: "0194818428516575",
|
|
parentId: "",
|
|
label: "sys.menu.menulevel.index",
|
|
name: "Menu Level",
|
|
icon: "ic-menulevel",
|
|
type: PermissionType.CATALOGUE,
|
|
route: "menu-level",
|
|
order: 5,
|
|
children: [
|
|
{
|
|
id: "0144431332471389",
|
|
parentId: "0194818428516575",
|
|
label: "sys.menu.menulevel.1a",
|
|
name: "Menu Level 1a",
|
|
type: PermissionType.MENU,
|
|
route: "menu-level-1a",
|
|
component: "/menu-level/menu-level-1a/index.tsx",
|
|
},
|
|
{
|
|
id: "7572529636800586",
|
|
parentId: "0194818428516575",
|
|
label: "sys.menu.menulevel.1b.index",
|
|
name: "Menu Level 1b",
|
|
type: PermissionType.CATALOGUE,
|
|
route: "menu-level-1b",
|
|
children: [
|
|
{
|
|
id: "3653745576583237",
|
|
parentId: "7572529636800586",
|
|
label: "sys.menu.menulevel.1b.2a",
|
|
name: "Menu Level 2a",
|
|
type: PermissionType.MENU,
|
|
route: "menu-level-2a",
|
|
component: "/menu-level/menu-level-1b/menu-level-2a/index.tsx",
|
|
},
|
|
{
|
|
id: "4873136353891364",
|
|
parentId: "7572529636800586",
|
|
label: "sys.menu.menulevel.1b.2b.index",
|
|
name: "Menu Level 2b",
|
|
type: PermissionType.CATALOGUE,
|
|
route: "menu-level-2b",
|
|
children: [
|
|
{
|
|
id: "4233029726998055",
|
|
parentId: "4873136353891364",
|
|
label: "sys.menu.menulevel.1b.2b.3a",
|
|
name: "Menu Level 3a",
|
|
type: PermissionType.MENU,
|
|
route: "menu-level-3a",
|
|
component: "/menu-level/menu-level-1b/menu-level-2b/menu-level-3a/index.tsx",
|
|
},
|
|
{
|
|
id: "3298034742548454",
|
|
parentId: "4873136353891364",
|
|
label: "sys.menu.menulevel.1b.2b.3b",
|
|
name: "Menu Level 3b",
|
|
type: PermissionType.MENU,
|
|
route: "menu-level-3b",
|
|
component: "/menu-level/menu-level-1b/menu-level-2b/menu-level-3b/index.tsx",
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
],
|
|
};
|
|
const ERRORS_PERMISSION = {
|
|
id: "9406067785553476",
|
|
parentId: "",
|
|
label: "sys.menu.error.index",
|
|
name: "Error",
|
|
icon: "bxs:error-alt",
|
|
type: PermissionType.CATALOGUE,
|
|
route: "error",
|
|
order: 6,
|
|
children: [
|
|
{
|
|
id: "8557056851997154",
|
|
parentId: "9406067785553476",
|
|
label: "sys.menu.error.403",
|
|
name: "403",
|
|
type: PermissionType.MENU,
|
|
route: "403",
|
|
component: "/sys/error/Page403.tsx",
|
|
},
|
|
{
|
|
id: "5095669208159005",
|
|
parentId: "9406067785553476",
|
|
label: "sys.menu.error.404",
|
|
name: "404",
|
|
type: PermissionType.MENU,
|
|
route: "404",
|
|
component: "/sys/error/Page404.tsx",
|
|
},
|
|
{
|
|
id: "0225992135973772",
|
|
parentId: "9406067785553476",
|
|
label: "sys.menu.error.500",
|
|
name: "500",
|
|
type: PermissionType.MENU,
|
|
route: "500",
|
|
component: "/sys/error/Page500.tsx",
|
|
},
|
|
],
|
|
};
|
|
const OTHERS_PERMISSION = [
|
|
{
|
|
id: "3981225257359246",
|
|
parentId: "",
|
|
label: "sys.menu.calendar",
|
|
name: "Calendar",
|
|
icon: "solar:calendar-bold-duotone",
|
|
type: PermissionType.MENU,
|
|
route: "calendar",
|
|
component: "/sys/others/calendar/index.tsx",
|
|
},
|
|
{
|
|
id: "3513985683886393",
|
|
parentId: "",
|
|
label: "sys.menu.kanban",
|
|
name: "kanban",
|
|
icon: "solar:clipboard-bold-duotone",
|
|
type: PermissionType.MENU,
|
|
route: "kanban",
|
|
component: "/sys/others/kanban/index.tsx",
|
|
},
|
|
{
|
|
id: "5455837930804461",
|
|
parentId: "",
|
|
label: "sys.menu.disabled",
|
|
name: "Disabled",
|
|
icon: "ic_disabled",
|
|
type: PermissionType.MENU,
|
|
route: "disabled",
|
|
status: BasicStatus.DISABLE,
|
|
component: "/sys/others/calendar/index.tsx",
|
|
},
|
|
{
|
|
id: "7728048658221587",
|
|
parentId: "",
|
|
label: "sys.menu.label",
|
|
name: "Label",
|
|
icon: "ic_label",
|
|
type: PermissionType.MENU,
|
|
route: "label",
|
|
newFeature: true,
|
|
component: "/sys/others/blank.tsx",
|
|
},
|
|
{
|
|
id: "5733704222120995",
|
|
parentId: "",
|
|
label: "sys.menu.frame",
|
|
name: "Frame",
|
|
icon: "ic_external",
|
|
type: PermissionType.CATALOGUE,
|
|
route: "frame",
|
|
children: [
|
|
{
|
|
id: "9884486809510480",
|
|
parentId: "5733704222120995",
|
|
label: "sys.menu.external_link",
|
|
name: "External Link",
|
|
type: PermissionType.MENU,
|
|
route: "external_link",
|
|
hideTab: true,
|
|
component: "/sys/others/iframe/external-link.tsx",
|
|
frameSrc: "https://ant.design/",
|
|
},
|
|
{
|
|
id: "9299640886731819",
|
|
parentId: "5733704222120995",
|
|
label: "sys.menu.iframe",
|
|
name: "Iframe",
|
|
type: PermissionType.MENU,
|
|
route: "frame",
|
|
component: "/sys/others/iframe/index.tsx",
|
|
frameSrc: "https://ant.design/",
|
|
},
|
|
],
|
|
},
|
|
{
|
|
id: "0941594969900756",
|
|
parentId: "",
|
|
label: "sys.menu.blank",
|
|
name: "Disabled",
|
|
icon: "ic_blank",
|
|
type: PermissionType.MENU,
|
|
route: "blank",
|
|
component: "/sys/others/blank.tsx",
|
|
},
|
|
];
|
|
|
|
export const PERMISSION_LIST = [
|
|
DASHBOARD_PERMISSION,
|
|
MANAGEMENT_PERMISSION,
|
|
COMPONENTS_PERMISSION,
|
|
FUNCTIONS_PERMISSION,
|
|
MENU_LEVEL_PERMISSION,
|
|
ERRORS_PERMISSION,
|
|
...OTHERS_PERMISSION,
|
|
];
|
|
|
|
/**
|
|
* User role mock
|
|
*/
|
|
const ADMIN_ROLE = {
|
|
id: "4281707933534332",
|
|
name: "Admin",
|
|
label: "admin",
|
|
status: BasicStatus.ENABLE,
|
|
order: 1,
|
|
desc: "Super Admin",
|
|
permission: PERMISSION_LIST,
|
|
};
|
|
const TEST_ROLE = {
|
|
id: "9931665660771476",
|
|
name: "Test",
|
|
label: "test",
|
|
status: BasicStatus.ENABLE,
|
|
order: 2,
|
|
desc: "test",
|
|
permission: [DASHBOARD_PERMISSION, COMPONENTS_PERMISSION, FUNCTIONS_PERMISSION],
|
|
};
|
|
export const ROLE_LIST = [ADMIN_ROLE, TEST_ROLE];
|
|
|
|
/**
|
|
* User data mock
|
|
*/
|
|
export const DEFAULT_USER = {
|
|
id: "b34719e1-ce46-457e-9575-99505ecee828",
|
|
username: "admin",
|
|
email: faker.internet.email(),
|
|
avatar: faker.image.avatarGitHub(),
|
|
createdAt: faker.date.anytime(),
|
|
updatedAt: faker.date.recent(),
|
|
password: "1q2w3E*",
|
|
role: ADMIN_ROLE,
|
|
permissions: ADMIN_ROLE.permission,
|
|
desc: "",
|
|
homePath: "/",
|
|
token: "/",
|
|
realName: "",
|
|
userId: "",
|
|
};
|
|
export const TEST_USER = {
|
|
id: "efaa20ea-4dc5-47ee-a200-8a899be29494",
|
|
username: "test",
|
|
password: "1q2w3E*",
|
|
email: faker.internet.email(),
|
|
avatar: faker.image.avatarGitHub(),
|
|
createdAt: faker.date.anytime(),
|
|
updatedAt: faker.date.recent(),
|
|
role: TEST_ROLE,
|
|
permissions: TEST_ROLE.permission,
|
|
desc: "",
|
|
homePath: "/",
|
|
token: "/",
|
|
realName: "",
|
|
userId: "",
|
|
};
|
|
export const USER_LIST = [DEFAULT_USER, TEST_USER];
|
|
|
|
// * Hot update, updating user permissions, only effective in the development environment
|
|
if (import.meta.hot) {
|
|
import.meta.hot.accept((newModule) => {
|
|
if (!newModule) return;
|
|
|
|
const { DEFAULT_USER, TEST_USER, PERMISSION_LIST } = newModule;
|
|
|
|
const {
|
|
userInfo,
|
|
actions: { setUserInfo },
|
|
} = useUserStore.getState();
|
|
|
|
if (!userInfo?.username) return;
|
|
|
|
const newUserInfo = userInfo.username === DEFAULT_USER.username ? DEFAULT_USER : TEST_USER;
|
|
|
|
setUserInfo(newUserInfo);
|
|
|
|
console.log("[HMR] User permissions updated:", {
|
|
username: newUserInfo.username,
|
|
permissions: newUserInfo.permissions,
|
|
});
|
|
});
|
|
}
|
|
|