这是基于vue-vben-admin 模板适用于abp vNext的前端管理项目
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

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,
});
});
}