perf: 优化中英文翻译与切换

This commit is contained in:
xiaojunnuo
2025-06-28 23:57:01 +08:00
parent 082f47663d
commit acaa8b1731
43 changed files with 4121 additions and 4175 deletions
@@ -12,7 +12,7 @@ async function generateAccess(options: GenerateMenuAndRoutesOptions) {
const layoutMap: ComponentRecordType = {
BasicLayout,
IFrameView
IFrameView,
} as any;
return await generateAccessible(preferences.app.accessMode, {
@@ -28,7 +28,7 @@ async function generateAccess(options: GenerateMenuAndRoutesOptions) {
forbiddenComponent,
// 如果 route.meta.menuVisibleWithForbidden = true
layoutMap,
pageMap
pageMap,
});
}
@@ -1,44 +1,44 @@
import LayoutBasic from "/@/layout/layout-basic.vue";
import type { RouteRecordRaw } from "vue-router";
import i18n from '/@/locales/i18n';
import i18n from "/@/locales/i18n";
import { mergeRouteModules } from "/@/vben/utils";
const dynamicRouteFiles = import.meta.glob("./modules/**/*.ts*", {
eager: true,
eager: true,
});
/** 动态路由 */
const dynamicRoutes: RouteRecordRaw[] = mergeRouteModules(dynamicRouteFiles);
export const frameworkResource = [
{
title: i18n.global.t("certd.framework.title"),
name: "root",
path: "/",
redirect: "/index",
component: LayoutBasic,
meta: {
icon: "ion:accessibility",
hideInBreadcrumb: true,
},
children: [
{
title: i18n.global.t("certd.framework.home"),
name: "index",
path: "/index",
component: "/framework/home/index.vue",
meta: {
fixedAside: true,
showOnHeader: false,
icon: "ion:home-outline",
auth: true,
},
},
// @ts-ignore
{
title: "certd.framework.title",
name: "root",
path: "/",
redirect: "/index",
component: LayoutBasic,
meta: {
icon: "ion:accessibility",
hideInBreadcrumb: true,
},
children: [
{
title: "certd.framework.home",
name: "index",
path: "/index",
component: "/framework/home/index.vue",
meta: {
fixedAside: true,
showOnHeader: false,
icon: "ion:home-outline",
auth: true,
},
},
// @ts-ignore
...dynamicRoutes,
],
},
...dynamicRoutes,
],
},
];
console.assert(frameworkResource.length === 1, "frameworkResource数组长度只能为1,你只能配置framework路由的子路由");
@@ -1,36 +1,35 @@
import i18n from '/@/locales/i18n';
import i18n from "/@/locales/i18n";
export const headerResource = [
{
title: i18n.global.t("certd.helpDoc"),
path: "https://certd.docmirror.cn",
meta: {
icon: "ion:document-text-outline"
}
},
{
title: i18n.global.t("certd.source"),
name: "source",
key: "source",
meta: {
icon: "ion:git-branch-outline"
},
children: [
{
title: i18n.global.t("certd.github"),
path: "https://github.com/certd/certd",
meta: {
icon: "ion:logo-github"
}
},
{
title: i18n.global.t("certd.gitee"),
path: "https://gitee.com/certd/certd",
meta: {
icon: "ion:logo-octocat"
}
}
]
}
{
title: "certd.helpDoc",
path: "https://certd.docmirror.cn",
meta: {
icon: "ion:document-text-outline",
},
},
{
title: "certd.source",
name: "source",
key: "source",
meta: {
icon: "ion:git-branch-outline",
},
children: [
{
title: "certd.github",
path: "https://github.com/certd/certd",
meta: {
icon: "ion:logo-github",
},
},
{
title: "certd.gitee",
path: "https://gitee.com/certd/certd",
meta: {
icon: "ion:logo-octocat",
},
},
],
},
];
@@ -2,25 +2,25 @@ import { IFrameView } from "/@/vben/layouts";
import { useSettingStore } from "/@/store/settings";
import { computed } from "vue";
import TutorialButton from "/@/components/tutorial/index.vue";
import i18n from '/@/locales/i18n';
import i18n from "/@/locales/i18n";
export const aboutResource = [
{
title: i18n.global.t("certd.dashboard.helpDoc"),
name: "document",
path: "/about/doc",
component: IFrameView,
meta: {
icon: "lucide:book-open-text",
link: "https://certd.docmirror.cn",
title: i18n.global.t("certd.dashboard.helpDoc"),
order: 9999,
show: () => {
const settingStore = useSettingStore();
return !settingStore.isComm;
},
},
},
{
title: "certd.dashboard.helpDoc",
name: "document",
path: "/about/doc",
component: IFrameView,
meta: {
icon: "lucide:book-open-text",
link: "https://certd.docmirror.cn",
title: "certd.dashboard.helpDoc",
order: 9999,
show: () => {
const settingStore = useSettingStore();
return !settingStore.isComm;
},
},
},
];
export default aboutResource;
@@ -1,256 +1,255 @@
import { useSettingStore } from "/@/store/settings";
import aboutResource from "/@/router/source/modules/about";
import i18n from '/@/locales/i18n';
import i18n from "/@/locales/i18n";
export const certdResources = [
{
title: i18n.global.t("certd.title"),
name: "CertdRoot",
path: "/certd",
redirect: "/certd/pipeline",
meta: {
icon: "ion:key-outline",
auth: true,
order: 0,
},
children: [
{
title: i18n.global.t("certd.pipeline"),
name: "PipelineManager",
path: "/certd/pipeline",
component: "/certd/pipeline/index.vue",
meta: {
icon: "ion:analytics-sharp",
keepAlive: true,
},
},
{
title: i18n.global.t("certd.pipelineEdit"),
name: "PipelineEdit",
path: "/certd/pipeline/detail",
component: "/certd/pipeline/detail.vue",
meta: {
isMenu: false,
},
},
{
title: i18n.global.t("certd.history"),
name: "PipelineHistory",
path: "/certd/history",
component: "/certd/history/index.vue",
meta: {
icon: "ion:timer-outline",
keepAlive: true,
},
},
{
title: i18n.global.t("certd.certStore"),
name: "CertStore",
path: "/certd/monitor/cert",
component: "/certd/monitor/cert/index.vue",
meta: {
icon: "ion:shield-checkmark-outline",
auth: true,
isMenu: true,
keepAlive: true,
},
},
{
title: i18n.global.t("certd.siteMonitor"),
name: "SiteCertMonitor",
path: "/certd/monitor/site",
component: "/certd/monitor/site/index.vue",
meta: {
icon: "ion:videocam-outline",
auth: true,
keepAlive: true,
},
},
{
title: i18n.global.t("certd.settings"),
name: "MineSetting",
path: "/certd/setting",
redirect: "/certd/access",
meta: {
icon: "ion:settings-outline",
auth: true,
keepAlive: true,
},
children: [
{
title: i18n.global.t("certd.accessManager"),
name: "AccessManager",
path: "/certd/access",
component: "/certd/access/index.vue",
meta: {
icon: "ion:disc-outline",
auth: true,
keepAlive: true,
},
},
{
title: i18n.global.t("certd.cnameRecord"),
name: "CnameRecord",
path: "/certd/cname/record",
component: "/certd/cname/record/index.vue",
meta: {
icon: "ion:link-outline",
auth: true,
keepAlive: true,
},
},
{
title: i18n.global.t("certd.subDomain"),
name: "SubDomain",
path: "/certd/pipeline/subDomain",
component: "/certd/pipeline/sub-domain/index.vue",
meta: {
icon: "material-symbols:approval-delegation-outline",
auth: true,
keepAlive: true,
},
},
{
title: i18n.global.t("certd.pipelineGroup"),
name: "PipelineGroupManager",
path: "/certd/pipeline/group",
component: "/certd/pipeline/group/index.vue",
meta: {
icon: "mdi:format-list-group",
auth: true,
keepAlive: true,
},
},
{
title: i18n.global.t("certd.openKey"),
name: "OpenKey",
path: "/certd/open/openkey",
component: "/certd/open/openkey/index.vue",
meta: {
icon: "hugeicons:api",
auth: true,
keepAlive: true,
},
},
{
title: i18n.global.t("certd.notification"),
name: "NotificationManager",
path: "/certd/notification",
component: "/certd/notification/index.vue",
meta: {
icon: "ion:megaphone-outline",
auth: true,
keepAlive: true,
},
},
{
title: i18n.global.t("certd.siteMonitorSetting"),
name: "SiteMonitorSetting",
path: "/certd/monitor/setting",
component: "/certd/monitor/site/setting/index.vue",
meta: {
icon: "ion:videocam-outline",
auth: true,
isMenu: true,
},
},
{
title: i18n.global.t("certd.userSecurity"),
name: "UserSecurity",
path: "/certd/mine/security",
component: "/certd/mine/security/index.vue",
meta: {
icon: "fluent:shield-keyhole-16-regular",
auth: true,
isMenu: true,
},
},
{
title: i18n.global.t("certd.userProfile"),
name: "UserProfile",
path: "/certd/mine/user-profile",
component: "/certd/mine/user-profile.vue",
meta: {
icon: "ion:person-outline",
auth: true,
isMenu: false,
},
},
],
},
{
title: i18n.global.t("certd.suite"),
name: "SuiteProduct",
path: "/certd/suite",
redirect: "/certd/suite/mine",
meta: {
show: () => {
const settingStore = useSettingStore();
return settingStore.isComm && settingStore.isSuiteEnabled;
},
icon: "ion:cart-outline",
auth: true,
},
children: [
{
title: i18n.global.t("certd.mySuite"),
name: "MySuite",
path: "/certd/suite/mine",
component: "/certd/suite/mine/index.vue",
meta: {
show: () => {
const settingStore = useSettingStore();
return settingStore.isComm;
},
icon: "ion:gift-outline",
auth: true,
},
},
{
title: i18n.global.t("certd.suiteBuy"),
name: "SuiteProductBuy",
path: "/certd/suite/buy",
component: "/certd/suite/buy.vue",
meta: {
show: () => {
const settingStore = useSettingStore();
return settingStore.isComm;
},
icon: "ion:cart-outline",
auth: true,
},
},
{
title: i18n.global.t("certd.myTrade"),
name: "MyTrade",
path: "/certd/trade",
component: "/certd/trade/index.vue",
meta: {
show: () => {
const settingStore = useSettingStore();
return settingStore.isComm;
},
icon: "ion:bag-check-outline",
auth: true,
keepAlive: true,
},
},
{
title: i18n.global.t("certd.paymentReturn"),
name: "PaymentReturn",
path: "/certd/payment/return/:type",
component: "/certd/payment/return.vue",
meta: {
icon: "ant-design:pay-circle-outlined",
auth: false,
isMenu: false,
},
},
],
},
],
},
{
title: "certd.title",
name: "CertdRoot",
path: "/certd",
redirect: "/certd/pipeline",
meta: {
icon: "ion:key-outline",
auth: true,
order: 0,
},
children: [
{
title: "certd.pipeline",
name: "PipelineManager",
path: "/certd/pipeline",
component: "/certd/pipeline/index.vue",
meta: {
icon: "ion:analytics-sharp",
keepAlive: true,
},
},
{
title: "certd.pipelineEdit",
name: "PipelineEdit",
path: "/certd/pipeline/detail",
component: "/certd/pipeline/detail.vue",
meta: {
isMenu: false,
},
},
{
title: "certd.history",
name: "PipelineHistory",
path: "/certd/history",
component: "/certd/history/index.vue",
meta: {
icon: "ion:timer-outline",
keepAlive: true,
},
},
{
title: "certd.certStore",
name: "CertStore",
path: "/certd/monitor/cert",
component: "/certd/monitor/cert/index.vue",
meta: {
icon: "ion:shield-checkmark-outline",
auth: true,
isMenu: true,
keepAlive: true,
},
},
{
title: "certd.siteMonitor",
name: "SiteCertMonitor",
path: "/certd/monitor/site",
component: "/certd/monitor/site/index.vue",
meta: {
icon: "ion:videocam-outline",
auth: true,
keepAlive: true,
},
},
{
title: "certd.settings",
name: "MineSetting",
path: "/certd/setting",
redirect: "/certd/access",
meta: {
icon: "ion:settings-outline",
auth: true,
keepAlive: true,
},
children: [
{
title: "certd.accessManager",
name: "AccessManager",
path: "/certd/access",
component: "/certd/access/index.vue",
meta: {
icon: "ion:disc-outline",
auth: true,
keepAlive: true,
},
},
{
title: "certd.cnameRecord",
name: "CnameRecord",
path: "/certd/cname/record",
component: "/certd/cname/record/index.vue",
meta: {
icon: "ion:link-outline",
auth: true,
keepAlive: true,
},
},
{
title: "certd.subDomain",
name: "SubDomain",
path: "/certd/pipeline/subDomain",
component: "/certd/pipeline/sub-domain/index.vue",
meta: {
icon: "material-symbols:approval-delegation-outline",
auth: true,
keepAlive: true,
},
},
{
title: "certd.pipelineGroup",
name: "PipelineGroupManager",
path: "/certd/pipeline/group",
component: "/certd/pipeline/group/index.vue",
meta: {
icon: "mdi:format-list-group",
auth: true,
keepAlive: true,
},
},
{
title: "certd.openKey",
name: "OpenKey",
path: "/certd/open/openkey",
component: "/certd/open/openkey/index.vue",
meta: {
icon: "hugeicons:api",
auth: true,
keepAlive: true,
},
},
{
title: "certd.notification",
name: "NotificationManager",
path: "/certd/notification",
component: "/certd/notification/index.vue",
meta: {
icon: "ion:megaphone-outline",
auth: true,
keepAlive: true,
},
},
{
title: "certd.siteMonitorSetting",
name: "SiteMonitorSetting",
path: "/certd/monitor/setting",
component: "/certd/monitor/site/setting/index.vue",
meta: {
icon: "ion:videocam-outline",
auth: true,
isMenu: true,
},
},
{
title: "certd.userSecurity",
name: "UserSecurity",
path: "/certd/mine/security",
component: "/certd/mine/security/index.vue",
meta: {
icon: "fluent:shield-keyhole-16-regular",
auth: true,
isMenu: true,
},
},
{
title: "certd.userProfile",
name: "UserProfile",
path: "/certd/mine/user-profile",
component: "/certd/mine/user-profile.vue",
meta: {
icon: "ion:person-outline",
auth: true,
isMenu: false,
},
},
],
},
{
title: "certd.suite",
name: "SuiteProduct",
path: "/certd/suite",
redirect: "/certd/suite/mine",
meta: {
show: () => {
const settingStore = useSettingStore();
return settingStore.isComm && settingStore.isSuiteEnabled;
},
icon: "ion:cart-outline",
auth: true,
},
children: [
{
title: "certd.mySuite",
name: "MySuite",
path: "/certd/suite/mine",
component: "/certd/suite/mine/index.vue",
meta: {
show: () => {
const settingStore = useSettingStore();
return settingStore.isComm;
},
icon: "ion:gift-outline",
auth: true,
},
},
{
title: "certd.suiteBuy",
name: "SuiteProductBuy",
path: "/certd/suite/buy",
component: "/certd/suite/buy.vue",
meta: {
show: () => {
const settingStore = useSettingStore();
return settingStore.isComm;
},
icon: "ion:cart-outline",
auth: true,
},
},
{
title: "certd.myTrade",
name: "MyTrade",
path: "/certd/trade",
component: "/certd/trade/index.vue",
meta: {
show: () => {
const settingStore = useSettingStore();
return settingStore.isComm;
},
icon: "ion:bag-check-outline",
auth: true,
keepAlive: true,
},
},
{
title: "certd.paymentReturn",
name: "PaymentReturn",
path: "/certd/payment/return/:type",
component: "/certd/payment/return.vue",
meta: {
icon: "ant-design:pay-circle-outlined",
auth: false,
isMenu: false,
},
},
],
},
],
},
];
export default certdResources;
@@ -1,256 +1,256 @@
import LayoutPass from "/@/layout/layout-pass.vue";
import { useSettingStore } from "/@/store/settings";
import aboutResource from "/@/router/source/modules/about";
import i18n from '/@/locales/i18n';
import i18n from "/@/locales/i18n";
export const sysResources = [
{
title: i18n.global.t('certd.sysResources.sysRoot'),
name: "SysRoot",
path: "/sys",
redirect: "/sys/settings",
meta: {
icon: "ion:settings-outline",
permission: "sys:settings:view",
order: 10,
},
children: [
{
title: i18n.global.t('certd.sysResources.sysConsole'),
name: "SysConsole",
path: "/sys/console",
component: "/sys/console/index.vue",
meta: {
show: () => {
const settingStore = useSettingStore();
return settingStore.isComm;
},
icon: "ion:speedometer-outline",
permission: "sys:auth:user:view",
},
},
{
title: "certd.sysResources.sysRoot",
name: "SysRoot",
path: "/sys",
redirect: "/sys/settings",
meta: {
icon: "ion:settings-outline",
permission: "sys:settings:view",
order: 10,
},
children: [
{
title: "certd.sysResources.sysConsole",
name: "SysConsole",
path: "/sys/console",
component: "/sys/console/index.vue",
meta: {
show: () => {
const settingStore = useSettingStore();
return settingStore.isComm;
},
icon: "ion:speedometer-outline",
permission: "sys:auth:user:view",
},
},
{
title: i18n.global.t('certd.sysResources.sysSettings'),
name: "SysSettings",
path: "/sys/settings",
component: "/sys/settings/index.vue",
meta: {
icon: "ion:settings-outline",
permission: "sys:settings:view",
},
},
{
title: i18n.global.t('certd.sysResources.cnameSetting'),
name: "CnameSetting",
path: "/sys/cname/provider",
component: "/sys/cname/provider/index.vue",
meta: {
icon: "ion:earth-outline",
permission: "sys:settings:view",
keepAlive: true,
},
},
{
title: i18n.global.t('certd.sysResources.emailSetting'),
name: "EmailSetting",
path: "/sys/settings/email",
component: "/sys/settings/email/index.vue",
meta: {
permission: "sys:settings:view",
icon: "ion:mail-outline",
auth: true,
},
},
{
title: i18n.global.t('certd.sysResources.siteSetting'),
name: "SiteSetting",
path: "/sys/site",
component: "/sys/site/index.vue",
meta: {
show: () => {
const settingStore = useSettingStore();
return settingStore.isComm;
},
icon: "ion:document-text-outline",
permission: "sys:settings:view",
},
},
{
title: i18n.global.t('certd.sysResources.headerMenus'),
name: "HeaderMenus",
path: "/sys/settings/header-menus",
component: "/sys/settings/header-menus/index.vue",
meta: {
show: () => {
const settingStore = useSettingStore();
return settingStore.isComm;
},
icon: "ion:menu",
permission: "sys:settings:view",
keepAlive: true,
},
},
{
title: i18n.global.t('certd.sysResources.sysAccess'),
name: "SysAccess",
path: "/sys/access",
component: "/sys/access/index.vue",
meta: {
show: () => {
const settingStore = useSettingStore();
return settingStore.isComm;
},
icon: "ion:disc-outline",
permission: "sys:settings:view",
keepAlive: true,
},
},
{
title: i18n.global.t('certd.sysResources.sysPlugin'),
name: "SysPlugin",
path: "/sys/plugin",
component: "/sys/plugin/index.vue",
meta: {
icon: "ion:extension-puzzle-outline",
permission: "sys:settings:view",
keepAlive: true,
},
},
{
title: i18n.global.t('certd.sysResources.sysPluginEdit'),
name: "SysPluginEdit",
path: "/sys/plugin/edit",
component: "/sys/plugin/edit.vue",
meta: {
isMenu: false,
icon: "ion:extension-puzzle",
permission: "sys:settings:view",
keepAlive: true,
},
},
{
title: i18n.global.t('certd.sysResources.sysPluginConfig'),
name: "SysPluginConfig",
path: "/sys/plugin/config",
component: "/sys/plugin/config.vue",
meta: {
show: () => {
const settingStore = useSettingStore();
return settingStore.isComm;
},
icon: "ion:extension-puzzle",
permission: "sys:settings:view",
},
},
{
title: i18n.global.t('certd.sysResources.accountBind'),
name: "AccountBind",
path: "/sys/account",
component: "/sys/account/index.vue",
meta: {
icon: "ion:golf-outline",
permission: "sys:settings:view",
keepAlive: true,
},
},
{
title: i18n.global.t('certd.sysResources.permissionManager'),
name: "PermissionManager",
path: "/sys/authority/permission",
component: "/sys/authority/permission/index.vue",
meta: {
icon: "ion:list-outline",
permission: "sys:auth:per:view",
keepAlive: true,
},
},
{
title: i18n.global.t('certd.sysResources.roleManager'),
name: "RoleManager",
path: "/sys/authority/role",
component: "/sys/authority/role/index.vue",
meta: {
icon: "ion:people-outline",
permission: "sys:auth:role:view",
keepAlive: true,
},
},
{
title: i18n.global.t('certd.sysResources.userManager'),
name: "UserManager",
path: "/sys/authority/user",
component: "/sys/authority/user/index.vue",
meta: {
icon: "ion:person-outline",
permission: "sys:auth:user:view",
keepAlive: true,
},
},
{
title: "certd.sysResources.sysSettings",
name: "SysSettings",
path: "/sys/settings",
component: "/sys/settings/index.vue",
meta: {
icon: "ion:settings-outline",
permission: "sys:settings:view",
},
},
{
title: "certd.sysResources.cnameSetting",
name: "CnameSetting",
path: "/sys/cname/provider",
component: "/sys/cname/provider/index.vue",
meta: {
icon: "ion:earth-outline",
permission: "sys:settings:view",
keepAlive: true,
},
},
{
title: "certd.sysResources.emailSetting",
name: "EmailSetting",
path: "/sys/settings/email",
component: "/sys/settings/email/index.vue",
meta: {
permission: "sys:settings:view",
icon: "ion:mail-outline",
auth: true,
},
},
{
title: "certd.sysResources.siteSetting",
name: "SiteSetting",
path: "/sys/site",
component: "/sys/site/index.vue",
meta: {
show: () => {
const settingStore = useSettingStore();
return settingStore.isComm;
},
icon: "ion:document-text-outline",
permission: "sys:settings:view",
},
},
{
title: "certd.sysResources.headerMenus",
name: "HeaderMenus",
path: "/sys/settings/header-menus",
component: "/sys/settings/header-menus/index.vue",
meta: {
show: () => {
const settingStore = useSettingStore();
return settingStore.isComm;
},
icon: "ion:menu",
permission: "sys:settings:view",
keepAlive: true,
},
},
{
title: "certd.sysResources.sysAccess",
name: "SysAccess",
path: "/sys/access",
component: "/sys/access/index.vue",
meta: {
show: () => {
const settingStore = useSettingStore();
return settingStore.isComm;
},
icon: "ion:disc-outline",
permission: "sys:settings:view",
keepAlive: true,
},
},
{
title: "certd.sysResources.sysPlugin",
name: "SysPlugin",
path: "/sys/plugin",
component: "/sys/plugin/index.vue",
meta: {
icon: "ion:extension-puzzle-outline",
permission: "sys:settings:view",
keepAlive: true,
},
},
{
title: "certd.sysResources.sysPluginEdit",
name: "SysPluginEdit",
path: "/sys/plugin/edit",
component: "/sys/plugin/edit.vue",
meta: {
isMenu: false,
icon: "ion:extension-puzzle",
permission: "sys:settings:view",
keepAlive: true,
},
},
{
title: "certd.sysResources.sysPluginConfig",
name: "SysPluginConfig",
path: "/sys/plugin/config",
component: "/sys/plugin/config.vue",
meta: {
show: () => {
const settingStore = useSettingStore();
return settingStore.isComm;
},
icon: "ion:extension-puzzle",
permission: "sys:settings:view",
},
},
{
title: "certd.sysResources.accountBind",
name: "AccountBind",
path: "/sys/account",
component: "/sys/account/index.vue",
meta: {
icon: "ion:golf-outline",
permission: "sys:settings:view",
keepAlive: true,
},
},
{
title: "certd.sysResources.permissionManager",
name: "PermissionManager",
path: "/sys/authority/permission",
component: "/sys/authority/permission/index.vue",
meta: {
icon: "ion:list-outline",
permission: "sys:auth:per:view",
keepAlive: true,
},
},
{
title: "certd.sysResources.roleManager",
name: "RoleManager",
path: "/sys/authority/role",
component: "/sys/authority/role/index.vue",
meta: {
icon: "ion:people-outline",
permission: "sys:auth:role:view",
keepAlive: true,
},
},
{
title: "certd.sysResources.userManager",
name: "UserManager",
path: "/sys/authority/user",
component: "/sys/authority/user/index.vue",
meta: {
icon: "ion:person-outline",
permission: "sys:auth:user:view",
keepAlive: true,
},
},
{
title: i18n.global.t('certd.sysResources.suiteManager'),
name: "SuiteManager",
path: "/sys/suite",
redirect: "/sys/suite/setting",
meta: {
icon: "ion:cart-outline",
permission: "sys:settings:edit",
show: () => {
const settingStore = useSettingStore();
return settingStore.isComm;
},
keepAlive: true,
},
children: [
{
title: i18n.global.t('certd.sysResources.suiteSetting'),
name: "SuiteSetting",
path: "/sys/suite/setting",
component: "/sys/suite/setting/index.vue",
meta: {
show: () => {
const settingStore = useSettingStore();
return settingStore.isComm;
},
icon: "ion:cart",
permission: "sys:settings:edit",
},
},
{
title: i18n.global.t('certd.sysResources.orderManager'),
name: "OrderManager",
path: "/sys/suite/trade",
component: "/sys/suite/trade/index.vue",
meta: {
show: () => {
const settingStore = useSettingStore();
return settingStore.isComm;
},
icon: "ion:bag-check",
permission: "sys:settings:edit",
keepAlive: true,
},
},
{
title: i18n.global.t('certd.sysResources.userSuites'),
name: "UserSuites",
path: "/sys/suite/user-suite",
component: "/sys/suite/user-suite/index.vue",
meta: {
show: () => {
const settingStore = useSettingStore();
return settingStore.isComm;
},
icon: "ion:gift-outline",
auth: true,
keepAlive: true,
},
},
],
},
],
},
{
title: "certd.sysResources.suiteManager",
name: "SuiteManager",
path: "/sys/suite",
redirect: "/sys/suite/setting",
meta: {
icon: "ion:cart-outline",
permission: "sys:settings:edit",
show: () => {
const settingStore = useSettingStore();
return settingStore.isComm;
},
keepAlive: true,
},
children: [
{
title: "certd.sysResources.suiteSetting",
name: "SuiteSetting",
path: "/sys/suite/setting",
component: "/sys/suite/setting/index.vue",
meta: {
show: () => {
const settingStore = useSettingStore();
return settingStore.isComm;
},
icon: "ion:cart",
permission: "sys:settings:edit",
},
},
{
title: "certd.sysResources.orderManager",
name: "OrderManager",
path: "/sys/suite/trade",
component: "/sys/suite/trade/index.vue",
meta: {
show: () => {
const settingStore = useSettingStore();
return settingStore.isComm;
},
icon: "ion:bag-check",
permission: "sys:settings:edit",
keepAlive: true,
},
},
{
title: "certd.sysResources.userSuites",
name: "UserSuites",
path: "/sys/suite/user-suite",
component: "/sys/suite/user-suite/index.vue",
meta: {
show: () => {
const settingStore = useSettingStore();
return settingStore.isComm;
},
icon: "ion:gift-outline",
auth: true,
keepAlive: true,
},
},
],
},
],
},
];
export default sysResources;
@@ -10,21 +10,21 @@ export const outsideResource = [
children: [
{
meta: {
title: "登录"
title: "登录",
},
name: "login",
path: "/login",
component: "/framework/login/index.vue"
component: "/framework/login/index.vue",
},
{
meta: {
title: "注册"
title: "注册",
},
name: "register",
path: "/register",
component: "/framework/register/index.vue"
}
]
component: "/framework/register/index.vue",
},
],
},
...errorPage
...errorPage,
];