Merge branch 'fork/bnuephjx/refactor/router-redirect'

This commit is contained in:
金毛88
2026-07-01 13:31:27 +08:00
23 changed files with 189 additions and 176 deletions

View File

@@ -64,11 +64,11 @@ const dashboardMenus = [
}, },
name: 'Dashboard', name: 'Dashboard',
path: '/dashboard', path: '/dashboard',
redirect: '/analytics', redirect: '/dashboard/analytics',
children: [ children: [
{ {
name: 'Analytics', name: 'Analytics',
path: '/analytics', path: 'analytics',
component: '/dashboard/analytics/index', component: '/dashboard/analytics/index',
meta: { meta: {
affixTab: true, affixTab: true,
@@ -77,7 +77,7 @@ const dashboardMenus = [
}, },
{ {
name: 'Workspace', name: 'Workspace',
path: '/workspace', path: 'workspace',
component: '/dashboard/workspace/index', component: '/dashboard/workspace/index',
meta: { meta: {
title: 'page.dashboard.workspace', title: 'page.dashboard.workspace',
@@ -96,7 +96,7 @@ const createDemosMenus = (role: 'admin' | 'super' | 'user') => {
title: 'demos.access.adminVisible', title: 'demos.access.adminVisible',
}, },
name: 'AccessAdminVisibleDemo', name: 'AccessAdminVisibleDemo',
path: '/demos/access/admin-visible', path: 'admin-visible',
}, },
super: { super: {
component: '/demos/access/super-visible', component: '/demos/access/super-visible',
@@ -105,7 +105,7 @@ const createDemosMenus = (role: 'admin' | 'super' | 'user') => {
title: 'demos.access.superVisible', title: 'demos.access.superVisible',
}, },
name: 'AccessSuperVisibleDemo', name: 'AccessSuperVisibleDemo',
path: '/demos/access/super-visible', path: 'super-visible',
}, },
user: { user: {
component: '/demos/access/user-visible', component: '/demos/access/user-visible',
@@ -114,7 +114,7 @@ const createDemosMenus = (role: 'admin' | 'super' | 'user') => {
title: 'demos.access.userVisible', title: 'demos.access.userVisible',
}, },
name: 'AccessUserVisibleDemo', name: 'AccessUserVisibleDemo',
path: '/demos/access/user-visible', path: 'user-visible',
}, },
}; };
@@ -132,7 +132,7 @@ const createDemosMenus = (role: 'admin' | 'super' | 'user') => {
children: [ children: [
{ {
name: 'AccessDemos', name: 'AccessDemos',
path: '/demosaccess', path: 'access',
meta: { meta: {
icon: 'mdi:cloud-key-outline', icon: 'mdi:cloud-key-outline',
title: 'demos.access.backendPermissions', title: 'demos.access.backendPermissions',
@@ -141,7 +141,7 @@ const createDemosMenus = (role: 'admin' | 'super' | 'user') => {
children: [ children: [
{ {
name: 'AccessPageControlDemo', name: 'AccessPageControlDemo',
path: '/demos/access/page-control', path: 'page-control',
component: '/demos/access/index', component: '/demos/access/index',
meta: { meta: {
icon: 'mdi:page-previous-outline', icon: 'mdi:page-previous-outline',
@@ -150,7 +150,7 @@ const createDemosMenus = (role: 'admin' | 'super' | 'user') => {
}, },
{ {
name: 'AccessButtonControlDemo', name: 'AccessButtonControlDemo',
path: '/demos/access/button-control', path: 'button-control',
component: '/demos/access/button-control', component: '/demos/access/button-control',
meta: { meta: {
icon: 'mdi:button-cursor', icon: 'mdi:button-cursor',
@@ -159,7 +159,7 @@ const createDemosMenus = (role: 'admin' | 'super' | 'user') => {
}, },
{ {
name: 'AccessMenuVisible403Demo', name: 'AccessMenuVisible403Demo',
path: '/demos/access/menu-visible-403', path: 'menu-visible-403',
component: '/demos/access/menu-visible-403', component: '/demos/access/menu-visible-403',
meta: { meta: {
authority: ['no-body'], authority: ['no-body'],

View File

@@ -14,7 +14,7 @@ const routes: RouteRecordRaw[] = [
children: [ children: [
{ {
name: 'Analytics', name: 'Analytics',
path: '/analytics', path: 'analytics',
component: () => import('#/views/dashboard/analytics/index.vue'), component: () => import('#/views/dashboard/analytics/index.vue'),
meta: { meta: {
affixTab: true, affixTab: true,
@@ -24,7 +24,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'Workspace', name: 'Workspace',
path: '/workspace', path: 'workspace',
component: () => import('#/views/dashboard/workspace/index.vue'), component: () => import('#/views/dashboard/workspace/index.vue'),
meta: { meta: {
icon: 'carbon:workspace', icon: 'carbon:workspace',

View File

@@ -18,7 +18,7 @@ const routes: RouteRecordRaw[] = [
title: $t('demos.antd'), title: $t('demos.antd'),
}, },
name: 'AntDesignDemos', name: 'AntDesignDemos',
path: '/demos/ant-design', path: 'ant-design',
component: () => import('#/views/demos/antd/index.vue'), component: () => import('#/views/demos/antd/index.vue'),
}, },
], ],

View File

@@ -27,7 +27,7 @@ const routes: RouteRecordRaw[] = [
children: [ children: [
{ {
name: 'VbenDocument', name: 'VbenDocument',
path: '/vben-admin/document', path: 'document',
component: IFrameView, component: IFrameView,
meta: { meta: {
icon: 'lucide:book-open-text', icon: 'lucide:book-open-text',
@@ -37,7 +37,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VbenGithub', name: 'VbenGithub',
path: '/vben-admin/github', path: 'github',
component: IFrameView, component: IFrameView,
meta: { meta: {
icon: 'mdi:github', icon: 'mdi:github',
@@ -47,7 +47,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VbenAntdVNext', name: 'VbenAntdVNext',
path: '/vben-admin/antdv-next', path: 'antdv-next',
component: IFrameView, component: IFrameView,
meta: { meta: {
badgeType: 'dot', badgeType: 'dot',
@@ -58,7 +58,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VbenNaive', name: 'VbenNaive',
path: '/vben-admin/naive', path: 'naive',
component: IFrameView, component: IFrameView,
meta: { meta: {
badgeType: 'dot', badgeType: 'dot',
@@ -69,7 +69,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VbenTDesign', name: 'VbenTDesign',
path: '/vben-admin/tdesign', path: 'tdesign',
component: IFrameView, component: IFrameView,
meta: { meta: {
badgeType: 'dot', badgeType: 'dot',
@@ -80,7 +80,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VbenElementPlus', name: 'VbenElementPlus',
path: '/vben-admin/ele', path: 'ele',
component: IFrameView, component: IFrameView,
meta: { meta: {
badgeType: 'dot', badgeType: 'dot',

View File

@@ -14,7 +14,7 @@ const routes: RouteRecordRaw[] = [
children: [ children: [
{ {
name: 'Analytics', name: 'Analytics',
path: '/analytics', path: 'analytics',
component: () => import('#/views/dashboard/analytics/index.vue'), component: () => import('#/views/dashboard/analytics/index.vue'),
meta: { meta: {
affixTab: true, affixTab: true,
@@ -24,7 +24,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'Workspace', name: 'Workspace',
path: '/workspace', path: 'workspace',
component: () => import('#/views/dashboard/workspace/index.vue'), component: () => import('#/views/dashboard/workspace/index.vue'),
meta: { meta: {
icon: 'carbon:workspace', icon: 'carbon:workspace',

View File

@@ -18,7 +18,7 @@ const routes: RouteRecordRaw[] = [
title: $t('demos.antd'), title: $t('demos.antd'),
}, },
name: 'AntDesignDemos', name: 'AntDesignDemos',
path: '/demos/ant-design-next', path: 'ant-design-next',
component: () => import('#/views/demos/antd/index.vue'), component: () => import('#/views/demos/antd/index.vue'),
}, },
], ],

View File

@@ -27,7 +27,7 @@ const routes: RouteRecordRaw[] = [
children: [ children: [
{ {
name: 'VbenDocument', name: 'VbenDocument',
path: '/vben-admin/document', path: 'document',
component: IFrameView, component: IFrameView,
meta: { meta: {
icon: 'lucide:book-open-text', icon: 'lucide:book-open-text',
@@ -37,7 +37,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VbenGithub', name: 'VbenGithub',
path: '/vben-admin/github', path: 'github',
component: IFrameView, component: IFrameView,
meta: { meta: {
icon: 'mdi:github', icon: 'mdi:github',
@@ -47,7 +47,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VbenAntd', name: 'VbenAntd',
path: '/vben-admin/antd', path: 'antd',
component: IFrameView, component: IFrameView,
meta: { meta: {
badgeType: 'dot', badgeType: 'dot',
@@ -58,7 +58,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VbenNaive', name: 'VbenNaive',
path: '/vben-admin/naive', path: 'naive',
component: IFrameView, component: IFrameView,
meta: { meta: {
badgeType: 'dot', badgeType: 'dot',
@@ -69,7 +69,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VbenTDesign', name: 'VbenTDesign',
path: '/vben-admin/tdesign', path: 'tdesign',
component: IFrameView, component: IFrameView,
meta: { meta: {
badgeType: 'dot', badgeType: 'dot',
@@ -80,7 +80,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VbenElementPlus', name: 'VbenElementPlus',
path: '/vben-admin/ele', path: 'ele',
component: IFrameView, component: IFrameView,
meta: { meta: {
badgeType: 'dot', badgeType: 'dot',

View File

@@ -14,7 +14,7 @@ const routes: RouteRecordRaw[] = [
children: [ children: [
{ {
name: 'Analytics', name: 'Analytics',
path: '/analytics', path: 'analytics',
component: () => import('#/views/dashboard/analytics/index.vue'), component: () => import('#/views/dashboard/analytics/index.vue'),
meta: { meta: {
affixTab: true, affixTab: true,
@@ -24,7 +24,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'Workspace', name: 'Workspace',
path: '/workspace', path: 'workspace',
component: () => import('#/views/dashboard/workspace/index.vue'), component: () => import('#/views/dashboard/workspace/index.vue'),
meta: { meta: {
icon: 'carbon:workspace', icon: 'carbon:workspace',

View File

@@ -18,7 +18,7 @@ const routes: RouteRecordRaw[] = [
title: $t('demos.elementPlus'), title: $t('demos.elementPlus'),
}, },
name: 'NaiveDemos', name: 'NaiveDemos',
path: '/demos/element', path: 'element',
component: () => import('#/views/demos/element/index.vue'), component: () => import('#/views/demos/element/index.vue'),
}, },
{ {
@@ -26,7 +26,7 @@ const routes: RouteRecordRaw[] = [
title: $t('demos.form'), title: $t('demos.form'),
}, },
name: 'BasicForm', name: 'BasicForm',
path: '/demos/form', path: 'form',
component: () => import('#/views/demos/form/basic.vue'), component: () => import('#/views/demos/form/basic.vue'),
}, },
], ],

View File

@@ -31,7 +31,7 @@ const routes: RouteRecordRaw[] = [
children: [ children: [
{ {
name: 'VbenDocument', name: 'VbenDocument',
path: '/vben-admin/document', path: 'document',
component: IFrameView, component: IFrameView,
meta: { meta: {
icon: 'lucide:book-open-text', icon: 'lucide:book-open-text',
@@ -41,7 +41,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VbenGithub', name: 'VbenGithub',
path: '/vben-admin/github', path: 'github',
component: IFrameView, component: IFrameView,
meta: { meta: {
icon: 'mdi:github', icon: 'mdi:github',
@@ -51,7 +51,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VbenNaive', name: 'VbenNaive',
path: '/vben-admin/naive', path: 'naive',
component: IFrameView, component: IFrameView,
meta: { meta: {
badgeType: 'dot', badgeType: 'dot',
@@ -62,7 +62,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VbenAntd', name: 'VbenAntd',
path: '/vben-admin/antd', path: 'antd',
component: IFrameView, component: IFrameView,
meta: { meta: {
badgeType: 'dot', badgeType: 'dot',
@@ -73,7 +73,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VbenAntdVNext', name: 'VbenAntdVNext',
path: '/vben-admin/antdv-next', path: 'antdv-next',
component: IFrameView, component: IFrameView,
meta: { meta: {
badgeType: 'dot', badgeType: 'dot',
@@ -84,7 +84,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VbenTDesign', name: 'VbenTDesign',
path: '/vben-admin/tdesign', path: 'tdesign',
component: IFrameView, component: IFrameView,
meta: { meta: {
badgeType: 'dot', badgeType: 'dot',

View File

@@ -14,7 +14,7 @@ const routes: RouteRecordRaw[] = [
children: [ children: [
{ {
name: 'Analytics', name: 'Analytics',
path: '/analytics', path: 'analytics',
component: () => import('#/views/dashboard/analytics/index.vue'), component: () => import('#/views/dashboard/analytics/index.vue'),
meta: { meta: {
affixTab: true, affixTab: true,
@@ -24,7 +24,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'Workspace', name: 'Workspace',
path: '/workspace', path: 'workspace',
component: () => import('#/views/dashboard/workspace/index.vue'), component: () => import('#/views/dashboard/workspace/index.vue'),
meta: { meta: {
icon: 'carbon:workspace', icon: 'carbon:workspace',

View File

@@ -18,7 +18,7 @@ const routes: RouteRecordRaw[] = [
title: $t('demos.naive'), title: $t('demos.naive'),
}, },
name: 'NaiveDemos', name: 'NaiveDemos',
path: '/demos/naive', path: 'naive',
component: () => import('#/views/demos/naive/index.vue'), component: () => import('#/views/demos/naive/index.vue'),
}, },
{ {
@@ -26,7 +26,7 @@ const routes: RouteRecordRaw[] = [
title: $t('demos.table'), title: $t('demos.table'),
}, },
name: 'Table', name: 'Table',
path: '/demos/table', path: 'table',
component: () => import('#/views/demos/table/index.vue'), component: () => import('#/views/demos/table/index.vue'),
}, },
{ {
@@ -34,7 +34,7 @@ const routes: RouteRecordRaw[] = [
title: $t('demos.form'), title: $t('demos.form'),
}, },
name: 'Form', name: 'Form',
path: '/demos/form', path: 'form',
component: () => import('#/views/demos/form/basic.vue'), component: () => import('#/views/demos/form/basic.vue'),
}, },
{ {
@@ -42,7 +42,7 @@ const routes: RouteRecordRaw[] = [
title: $t('demos.arrayForm'), title: $t('demos.arrayForm'),
}, },
name: 'ArrayForm', name: 'ArrayForm',
path: '/demos/array-form', path: 'array-form',
component: () => import('#/views/demos/naive/array-form/index.vue'), component: () => import('#/views/demos/naive/array-form/index.vue'),
}, },
], ],

View File

@@ -31,7 +31,7 @@ const routes: RouteRecordRaw[] = [
children: [ children: [
{ {
name: 'VbenDocument', name: 'VbenDocument',
path: '/vben-admin/document', path: 'document',
component: IFrameView, component: IFrameView,
meta: { meta: {
icon: 'lucide:book-open-text', icon: 'lucide:book-open-text',
@@ -41,7 +41,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VbenGithub', name: 'VbenGithub',
path: '/vben-admin/github', path: 'github',
component: IFrameView, component: IFrameView,
meta: { meta: {
icon: 'mdi:github', icon: 'mdi:github',
@@ -51,7 +51,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VbenAntd', name: 'VbenAntd',
path: '/vben-admin/antd', path: 'antd',
component: IFrameView, component: IFrameView,
meta: { meta: {
badgeType: 'dot', badgeType: 'dot',
@@ -62,7 +62,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VbenAntdVNext', name: 'VbenAntdVNext',
path: '/vben-admin/antdv-next', path: 'antdv-next',
component: IFrameView, component: IFrameView,
meta: { meta: {
badgeType: 'dot', badgeType: 'dot',
@@ -73,7 +73,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VbenTDesign', name: 'VbenTDesign',
path: '/vben-admin/tdesign', path: 'tdesign',
component: IFrameView, component: IFrameView,
meta: { meta: {
badgeType: 'dot', badgeType: 'dot',
@@ -84,7 +84,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VbenElementPlus', name: 'VbenElementPlus',
path: '/vben-admin/ele', path: 'ele',
component: IFrameView, component: IFrameView,
meta: { meta: {
badgeType: 'dot', badgeType: 'dot',

View File

@@ -14,7 +14,7 @@ const routes: RouteRecordRaw[] = [
children: [ children: [
{ {
name: 'Analytics', name: 'Analytics',
path: '/analytics', path: 'analytics',
component: () => import('#/views/dashboard/analytics/index.vue'), component: () => import('#/views/dashboard/analytics/index.vue'),
meta: { meta: {
affixTab: true, affixTab: true,
@@ -24,7 +24,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'Workspace', name: 'Workspace',
path: '/workspace', path: 'workspace',
component: () => import('#/views/dashboard/workspace/index.vue'), component: () => import('#/views/dashboard/workspace/index.vue'),
meta: { meta: {
icon: 'carbon:workspace', icon: 'carbon:workspace',

View File

@@ -18,7 +18,7 @@ const routes: RouteRecordRaw[] = [
title: $t('demos.tdesign'), title: $t('demos.tdesign'),
}, },
name: 'TDesignDemos', name: 'TDesignDemos',
path: '/demos/tdesign', path: 'tdesign',
component: () => import('#/views/demos/tdesign/index.vue'), component: () => import('#/views/demos/tdesign/index.vue'),
}, },
], ],

View File

@@ -27,7 +27,7 @@ const routes: RouteRecordRaw[] = [
children: [ children: [
{ {
name: 'VbenDocument', name: 'VbenDocument',
path: '/vben-admin/document', path: 'document',
component: IFrameView, component: IFrameView,
meta: { meta: {
icon: 'lucide:book-open-text', icon: 'lucide:book-open-text',
@@ -37,7 +37,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VbenGithub', name: 'VbenGithub',
path: '/vben-admin/github', path: 'github',
component: IFrameView, component: IFrameView,
meta: { meta: {
icon: 'mdi:github', icon: 'mdi:github',
@@ -47,7 +47,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VbenNaive', name: 'VbenNaive',
path: '/vben-admin/naive', path: 'naive',
component: IFrameView, component: IFrameView,
meta: { meta: {
badgeType: 'dot', badgeType: 'dot',
@@ -58,7 +58,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VbenAntdv', name: 'VbenAntdv',
path: '/vben-admin/antdv', path: 'antdv',
component: IFrameView, component: IFrameView,
meta: { meta: {
badgeType: 'dot', badgeType: 'dot',
@@ -69,7 +69,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VbenAntdVNext', name: 'VbenAntdVNext',
path: '/vben-admin/antdv-next', path: 'antdv-next',
component: IFrameView, component: IFrameView,
meta: { meta: {
badgeType: 'dot', badgeType: 'dot',
@@ -80,7 +80,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VbenElementPlus', name: 'VbenElementPlus',
path: '/vben-admin/ele', path: 'ele',
component: IFrameView, component: IFrameView,
meta: { meta: {
badgeType: 'dot', badgeType: 'dot',

View File

@@ -79,16 +79,22 @@ function filterTree<T extends Record<string, any>>(
*/ */
function mapTree<T, V extends Record<string, any>>( function mapTree<T, V extends Record<string, any>>(
tree: T[], tree: T[],
mapper: (node: T) => V, mapper: (node: T, parent: null | V) => V,
options?: TreeConfigOptions, options?: TreeConfigOptions,
parent: null | V = null,
): V[] { ): V[] {
const { childProps } = options || { const { childProps } = options || {
childProps: 'children', childProps: 'children',
}; };
return tree.map((node) => { return tree.map((node) => {
const mapperNode: Record<string, any> = mapper(node); const mapperNode: Record<string, any> = mapper(node, parent as null | V);
if (mapperNode[childProps]) { if (mapperNode[childProps]) {
mapperNode[childProps] = mapTree(mapperNode[childProps], mapper, options); mapperNode[childProps] = mapTree(
mapperNode[childProps],
mapper,
options,
mapperNode as V,
);
} }
return mapperNode as V; return mapperNode as V;
}); });

View File

@@ -115,7 +115,7 @@ async function generateRoutes(
* 1. 对未添加redirect的路由添加redirect * 1. 对未添加redirect的路由添加redirect
* 2. 将懒加载的组件名称修改为当前路由的名称如果启用了keep-alive的话 * 2. 将懒加载的组件名称修改为当前路由的名称如果启用了keep-alive的话
*/ */
resultRoutes = mapTree(resultRoutes, (route) => { resultRoutes = mapTree(resultRoutes, (route, parent) => {
// 重新包装component使用与路由名称相同的name以支持keep-alive的条件缓存。 // 重新包装component使用与路由名称相同的name以支持keep-alive的条件缓存。
if ( if (
route.meta?.keepAlive && route.meta?.keepAlive &&
@@ -144,12 +144,19 @@ async function generateRoutes(
} }
const firstChild = route.children[0]; const firstChild = route.children[0];
// 如果子路由不是以/开头,则直接返回,这种情况需要计算全部父级的path才能得出正确的path这里不做处理 if (!firstChild?.path || firstChild.path.startsWith('/')) {
if (!firstChild?.path || !firstChild.path.startsWith('/')) {
return route; return route;
} }
route.redirect = firstChild.path; if (parent && parent.redirect) {
const parentSplit = (parent.redirect as string).split('/');
parentSplit.splice(-1, 2, route.path, firstChild.path);
const redirectPath = parentSplit.join('/');
route.redirect = redirectPath;
} else {
route.redirect = `${route.path}/${firstChild.path}`;
}
return route; return route;
}); });

View File

@@ -14,7 +14,7 @@ const routes: RouteRecordRaw[] = [
children: [ children: [
{ {
name: 'Analytics', name: 'Analytics',
path: '/analytics', path: 'analytics',
component: () => import('#/views/dashboard/analytics/index.vue'), component: () => import('#/views/dashboard/analytics/index.vue'),
meta: { meta: {
affixTab: true, affixTab: true,
@@ -25,7 +25,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'Workspace', name: 'Workspace',
path: '/workspace', path: 'workspace',
component: () => import('#/views/dashboard/workspace/index.vue'), component: () => import('#/views/dashboard/workspace/index.vue'),
meta: { meta: {
icon: 'carbon:workspace', icon: 'carbon:workspace',

View File

@@ -21,11 +21,11 @@ const routes: RouteRecordRaw[] = [
title: $t('demos.access.frontendPermissions'), title: $t('demos.access.frontendPermissions'),
}, },
name: 'AccessDemos', name: 'AccessDemos',
path: '/demos/access', path: 'access',
children: [ children: [
{ {
name: 'AccessPageControlDemo', name: 'AccessPageControlDemo',
path: '/demos/access/page-control', path: 'page-control',
component: () => import('#/views/demos/access/index.vue'), component: () => import('#/views/demos/access/index.vue'),
meta: { meta: {
icon: 'mdi:page-previous-outline', icon: 'mdi:page-previous-outline',
@@ -35,7 +35,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'AccessButtonControlDemo', name: 'AccessButtonControlDemo',
path: '/demos/access/button-control', path: 'button-control',
component: () => import('#/views/demos/access/button-control.vue'), component: () => import('#/views/demos/access/button-control.vue'),
meta: { meta: {
icon: 'mdi:button-cursor', icon: 'mdi:button-cursor',
@@ -44,7 +44,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'AccessMenuVisible403Demo', name: 'AccessMenuVisible403Demo',
path: '/demos/access/menu-visible-403', path: 'menu-visible-403',
component: () => component: () =>
import('#/views/demos/access/menu-visible-403.vue'), import('#/views/demos/access/menu-visible-403.vue'),
meta: { meta: {
@@ -56,7 +56,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'AccessSuperVisibleDemo', name: 'AccessSuperVisibleDemo',
path: '/demos/access/super-visible', path: 'super-visible',
component: () => import('#/views/demos/access/super-visible.vue'), component: () => import('#/views/demos/access/super-visible.vue'),
meta: { meta: {
authority: ['super'], authority: ['super'],
@@ -66,7 +66,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'AccessAdminVisibleDemo', name: 'AccessAdminVisibleDemo',
path: '/demos/access/admin-visible', path: 'admin-visible',
component: () => import('#/views/demos/access/admin-visible.vue'), component: () => import('#/views/demos/access/admin-visible.vue'),
meta: { meta: {
authority: ['admin'], authority: ['admin'],
@@ -76,7 +76,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'AccessUserVisibleDemo', name: 'AccessUserVisibleDemo',
path: '/demos/access/user-visible', path: 'user-visible',
component: () => import('#/views/demos/access/user-visible.vue'), component: () => import('#/views/demos/access/user-visible.vue'),
meta: { meta: {
authority: ['user'], authority: ['user'],
@@ -93,11 +93,11 @@ const routes: RouteRecordRaw[] = [
title: $t('demos.features.title'), title: $t('demos.features.title'),
}, },
name: 'FeaturesDemos', name: 'FeaturesDemos',
path: '/demos/features', path: 'features',
children: [ children: [
{ {
name: 'LoginExpiredDemo', name: 'LoginExpiredDemo',
path: '/demos/features/login-expired', path: 'login-expired',
component: () => component: () =>
import('#/views/demos/features/login-expired/index.vue'), import('#/views/demos/features/login-expired/index.vue'),
meta: { meta: {
@@ -107,7 +107,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'IconsDemo', name: 'IconsDemo',
path: '/demos/features/icons', path: 'icons',
component: () => import('#/views/demos/features/icons/index.vue'), component: () => import('#/views/demos/features/icons/index.vue'),
meta: { meta: {
icon: 'lucide:annoyed', icon: 'lucide:annoyed',
@@ -116,7 +116,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'WatermarkDemo', name: 'WatermarkDemo',
path: '/demos/features/watermark', path: 'watermark',
component: () => component: () =>
import('#/views/demos/features/watermark/index.vue'), import('#/views/demos/features/watermark/index.vue'),
meta: { meta: {
@@ -126,7 +126,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'PreferencesExtensionDemo', name: 'PreferencesExtensionDemo',
path: '/demos/features/preferences-extension', path: 'preferences-extension',
component: () => component: () =>
import('#/views/demos/features/preferences-extension/index.vue'), import('#/views/demos/features/preferences-extension/index.vue'),
meta: { meta: {
@@ -136,7 +136,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'FeatureTabsDemo', name: 'FeatureTabsDemo',
path: '/demos/features/tabs', path: 'tabs',
component: () => import('#/views/demos/features/tabs/index.vue'), component: () => import('#/views/demos/features/tabs/index.vue'),
meta: { meta: {
icon: 'lucide:app-window', icon: 'lucide:app-window',
@@ -145,7 +145,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'FeatureTabDetailDemo', name: 'FeatureTabDetailDemo',
path: '/demos/features/tabs/detail/:id', path: 'detail/:id',
component: () => component: () =>
import('#/views/demos/features/tabs/tab-detail.vue'), import('#/views/demos/features/tabs/tab-detail.vue'),
meta: { meta: {
@@ -157,7 +157,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'HideChildrenInMenuParentDemo', name: 'HideChildrenInMenuParentDemo',
path: '/demos/features/hide-menu-children', path: 'hide-menu-children',
meta: { meta: {
hideChildrenInMenu: true, hideChildrenInMenu: true,
icon: 'ic:round-menu', icon: 'ic:round-menu',
@@ -176,7 +176,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'HideChildrenInMenuChildrenDemo', name: 'HideChildrenInMenuChildrenDemo',
path: '/demos/features/hide-menu-children/children', path: 'children',
component: () => component: () =>
import('#/views/demos/features/hide-menu-children/children.vue'), import('#/views/demos/features/hide-menu-children/children.vue'),
meta: { meta: {
@@ -188,7 +188,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'FullScreenDemo', name: 'FullScreenDemo',
path: '/demos/features/full-screen', path: 'full-screen',
component: () => component: () =>
import('#/views/demos/features/full-screen/index.vue'), import('#/views/demos/features/full-screen/index.vue'),
meta: { meta: {
@@ -198,7 +198,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'FileDownloadDemo', name: 'FileDownloadDemo',
path: '/demos/features/file-download', path: 'file-download',
component: () => component: () =>
import('#/views/demos/features/file-download/index.vue'), import('#/views/demos/features/file-download/index.vue'),
meta: { meta: {
@@ -208,7 +208,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'ClipboardDemo', name: 'ClipboardDemo',
path: '/demos/features/clipboard', path: 'clipboard',
component: () => component: () =>
import('#/views/demos/features/clipboard/index.vue'), import('#/views/demos/features/clipboard/index.vue'),
meta: { meta: {
@@ -218,7 +218,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'MenuQueryDemo', name: 'MenuQueryDemo',
path: '/demos/menu-query', path: 'menu-query',
component: () => component: () =>
import('#/views/demos/features/menu-query/index.vue'), import('#/views/demos/features/menu-query/index.vue'),
meta: { meta: {
@@ -231,7 +231,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'NewWindowDemo', name: 'NewWindowDemo',
path: '/demos/new-window', path: 'new-window',
component: () => component: () =>
import('#/views/demos/features/new-window/index.vue'), import('#/views/demos/features/new-window/index.vue'),
meta: { meta: {
@@ -242,7 +242,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VueQueryDemo', name: 'VueQueryDemo',
path: '/demos/features/vue-query', path: 'vue-query',
component: () => component: () =>
import('#/views/demos/features/vue-query/index.vue'), import('#/views/demos/features/vue-query/index.vue'),
meta: { meta: {
@@ -252,7 +252,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'RequestParamsSerializerDemo', name: 'RequestParamsSerializerDemo',
path: '/demos/features/request-params-serializer', path: 'request-params-serializer',
component: () => component: () =>
import('#/views/demos/features/request-params-serializer/index.vue'), import('#/views/demos/features/request-params-serializer/index.vue'),
meta: { meta: {
@@ -262,7 +262,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'BigIntDemo', name: 'BigIntDemo',
path: '/demos/features/json-bigint', path: 'json-bigint',
component: () => component: () =>
import('#/views/demos/features/json-bigint/index.vue'), import('#/views/demos/features/json-bigint/index.vue'),
meta: { meta: {
@@ -275,7 +275,7 @@ const routes: RouteRecordRaw[] = [
// 面包屑导航 // 面包屑导航
{ {
name: 'BreadcrumbDemos', name: 'BreadcrumbDemos',
path: '/demos/breadcrumb', path: 'breadcrumb',
meta: { meta: {
icon: 'lucide:navigation', icon: 'lucide:navigation',
title: $t('demos.breadcrumb.navigation'), title: $t('demos.breadcrumb.navigation'),
@@ -283,7 +283,7 @@ const routes: RouteRecordRaw[] = [
children: [ children: [
{ {
name: 'BreadcrumbLateralDemo', name: 'BreadcrumbLateralDemo',
path: '/demos/breadcrumb/lateral', path: 'lateral',
component: () => import('#/views/demos/breadcrumb/lateral.vue'), component: () => import('#/views/demos/breadcrumb/lateral.vue'),
meta: { meta: {
icon: 'lucide:navigation', icon: 'lucide:navigation',
@@ -292,7 +292,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'BreadcrumbLateralDetailDemo', name: 'BreadcrumbLateralDetailDemo',
path: '/demos/breadcrumb/lateral-detail', path: 'lateral-detail',
component: () => component: () =>
import('#/views/demos/breadcrumb/lateral-detail.vue'), import('#/views/demos/breadcrumb/lateral-detail.vue'),
meta: { meta: {
@@ -303,7 +303,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'BreadcrumbLevelDemo', name: 'BreadcrumbLevelDemo',
path: '/demos/breadcrumb/level', path: 'level',
meta: { meta: {
icon: 'lucide:navigation', icon: 'lucide:navigation',
title: $t('demos.breadcrumb.level'), title: $t('demos.breadcrumb.level'),
@@ -311,7 +311,7 @@ const routes: RouteRecordRaw[] = [
children: [ children: [
{ {
name: 'BreadcrumbLevelDetailDemo', name: 'BreadcrumbLevelDetailDemo',
path: '/demos/breadcrumb/level/detail', path: 'detail',
component: () => component: () =>
import('#/views/demos/breadcrumb/level-detail.vue'), import('#/views/demos/breadcrumb/level-detail.vue'),
meta: { meta: {
@@ -329,11 +329,11 @@ const routes: RouteRecordRaw[] = [
title: $t('demos.fallback.title'), title: $t('demos.fallback.title'),
}, },
name: 'FallbackDemos', name: 'FallbackDemos',
path: '/demos/fallback', path: 'fallback',
children: [ children: [
{ {
name: 'Fallback403Demo', name: 'Fallback403Demo',
path: '/demos/fallback/403', path: '403',
component: () => import('#/views/_core/fallback/forbidden.vue'), component: () => import('#/views/_core/fallback/forbidden.vue'),
meta: { meta: {
icon: 'mdi:do-not-disturb-alt', icon: 'mdi:do-not-disturb-alt',
@@ -342,7 +342,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'Fallback404Demo', name: 'Fallback404Demo',
path: '/demos/fallback/404', path: '404',
component: () => import('#/views/_core/fallback/not-found.vue'), component: () => import('#/views/_core/fallback/not-found.vue'),
meta: { meta: {
icon: 'mdi:table-off', icon: 'mdi:table-off',
@@ -351,7 +351,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'Fallback500Demo', name: 'Fallback500Demo',
path: '/demos/fallback/500', path: '500',
component: () => component: () =>
import('#/views/_core/fallback/internal-error.vue'), import('#/views/_core/fallback/internal-error.vue'),
meta: { meta: {
@@ -361,7 +361,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'FallbackOfflineDemo', name: 'FallbackOfflineDemo',
path: '/demos/fallback/offline', path: 'offline',
component: () => import('#/views/_core/fallback/offline.vue'), component: () => import('#/views/_core/fallback/offline.vue'),
meta: { meta: {
icon: 'mdi:offline', icon: 'mdi:offline',
@@ -379,12 +379,12 @@ const routes: RouteRecordRaw[] = [
title: $t('demos.badge.title'), title: $t('demos.badge.title'),
}, },
name: 'BadgeDemos', name: 'BadgeDemos',
path: '/demos/badge', path: 'badge',
children: [ children: [
{ {
name: 'BadgeDotDemo', name: 'BadgeDotDemo',
component: () => import('#/views/demos/badge/index.vue'), component: () => import('#/views/demos/badge/index.vue'),
path: '/demos/badge/dot', path: 'dot',
meta: { meta: {
badgeType: 'dot', badgeType: 'dot',
icon: 'lucide:square-dot', icon: 'lucide:square-dot',
@@ -394,7 +394,7 @@ const routes: RouteRecordRaw[] = [
{ {
name: 'BadgeTextDemo', name: 'BadgeTextDemo',
component: () => import('#/views/demos/badge/index.vue'), component: () => import('#/views/demos/badge/index.vue'),
path: '/demos/badge/text', path: 'text',
meta: { meta: {
badge: '10', badge: '10',
icon: 'lucide:square-dot', icon: 'lucide:square-dot',
@@ -404,7 +404,7 @@ const routes: RouteRecordRaw[] = [
{ {
name: 'BadgeColorDemo', name: 'BadgeColorDemo',
component: () => import('#/views/demos/badge/index.vue'), component: () => import('#/views/demos/badge/index.vue'),
path: '/demos/badge/color', path: 'color',
meta: { meta: {
badge: 'Hot', badge: 'Hot',
badgeVariants: 'destructive', badgeVariants: 'destructive',
@@ -422,12 +422,12 @@ const routes: RouteRecordRaw[] = [
title: $t('demos.activeIcon.title'), title: $t('demos.activeIcon.title'),
}, },
name: 'ActiveIconDemos', name: 'ActiveIconDemos',
path: '/demos/active-icon', path: 'active-icon',
children: [ children: [
{ {
name: 'ActiveIconDemo', name: 'ActiveIconDemo',
component: () => import('#/views/demos/active-icon/index.vue'), component: () => import('#/views/demos/active-icon/index.vue'),
path: '/demos/active-icon/children', path: 'children',
meta: { meta: {
activeIcon: 'fluent-emoji:radioactive', activeIcon: 'fluent-emoji:radioactive',
icon: 'bi:radioactive', icon: 'bi:radioactive',
@@ -443,11 +443,11 @@ const routes: RouteRecordRaw[] = [
title: $t('demos.outside.title'), title: $t('demos.outside.title'),
}, },
name: 'OutsideDemos', name: 'OutsideDemos',
path: '/demos/outside', path: 'outside',
children: [ children: [
{ {
name: 'IframeDemos', name: 'IframeDemos',
path: '/demos/outside/iframe', path: 'iframe',
meta: { meta: {
icon: 'mdi:newspaper-variant-outline', icon: 'mdi:newspaper-variant-outline',
title: $t('demos.outside.embedded'), title: $t('demos.outside.embedded'),
@@ -455,7 +455,7 @@ const routes: RouteRecordRaw[] = [
children: [ children: [
{ {
name: 'VueDocumentDemo', name: 'VueDocumentDemo',
path: '/demos/outside/iframe/vue-document', path: 'vue-document',
component: IFrameView, component: IFrameView,
meta: { meta: {
icon: 'logos:vue', icon: 'logos:vue',
@@ -466,7 +466,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'TailwindcssDemo', name: 'TailwindcssDemo',
path: '/demos/outside/iframe/tailwindcss', path: 'tailwindcss',
component: IFrameView, component: IFrameView,
meta: { meta: {
icon: 'devicon:tailwindcss', icon: 'devicon:tailwindcss',
@@ -479,7 +479,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'ExternalLinkDemos', name: 'ExternalLinkDemos',
path: '/demos/outside/external-link', path: 'external-link',
meta: { meta: {
icon: 'mdi:newspaper-variant-multiple-outline', icon: 'mdi:newspaper-variant-multiple-outline',
title: $t('demos.outside.externalLink'), title: $t('demos.outside.externalLink'),
@@ -487,7 +487,7 @@ const routes: RouteRecordRaw[] = [
children: [ children: [
{ {
name: 'ViteDemo', name: 'ViteDemo',
path: '/demos/outside/external-link/vite', path: 'vite',
component: IFrameView, component: IFrameView,
meta: { meta: {
icon: 'logos:vitejs', icon: 'logos:vitejs',
@@ -497,7 +497,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VueUseDemo', name: 'VueUseDemo',
path: '/demos/outside/external-link/vue-use', path: 'vue-use',
component: IFrameView, component: IFrameView,
meta: { meta: {
icon: 'logos:vueuse', icon: 'logos:vueuse',
@@ -516,11 +516,11 @@ const routes: RouteRecordRaw[] = [
title: $t('demos.nested.title'), title: $t('demos.nested.title'),
}, },
name: 'NestedDemos', name: 'NestedDemos',
path: '/demos/nested', path: 'nested',
children: [ children: [
{ {
name: 'Menu1Demo', name: 'Menu1Demo',
path: '/demos/nested/menu1', path: 'menu1',
component: () => import('#/views/demos/nested/menu-1.vue'), component: () => import('#/views/demos/nested/menu-1.vue'),
meta: { meta: {
icon: 'ic:round-menu', icon: 'ic:round-menu',
@@ -530,7 +530,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'Menu2Demo', name: 'Menu2Demo',
path: '/demos/nested/menu2', path: 'menu2',
meta: { meta: {
icon: 'ic:round-menu', icon: 'ic:round-menu',
keepAlive: true, keepAlive: true,
@@ -539,7 +539,7 @@ const routes: RouteRecordRaw[] = [
children: [ children: [
{ {
name: 'Menu21Demo', name: 'Menu21Demo',
path: '/demos/nested/menu2/menu2-1', path: 'menu2-1',
component: () => import('#/views/demos/nested/menu-2-1.vue'), component: () => import('#/views/demos/nested/menu-2-1.vue'),
meta: { meta: {
icon: 'ic:round-menu', icon: 'ic:round-menu',
@@ -551,7 +551,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'Menu3Demo', name: 'Menu3Demo',
path: '/demos/nested/menu3', path: 'menu3',
meta: { meta: {
icon: 'ic:round-menu', icon: 'ic:round-menu',
title: $t('demos.nested.menu3'), title: $t('demos.nested.menu3'),
@@ -559,7 +559,7 @@ const routes: RouteRecordRaw[] = [
children: [ children: [
{ {
name: 'Menu31Demo', name: 'Menu31Demo',
path: '/demos/nested/menu3/menu3-1', path: 'menu3-1',
component: () => import('#/views/demos/nested/menu-3-1.vue'), component: () => import('#/views/demos/nested/menu-3-1.vue'),
meta: { meta: {
icon: 'ic:round-menu', icon: 'ic:round-menu',
@@ -569,7 +569,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'Menu32Demo', name: 'Menu32Demo',
path: '/demos/nested/menu3/menu3-2', path: 'menu3-2',
meta: { meta: {
icon: 'ic:round-menu', icon: 'ic:round-menu',
title: $t('demos.nested.menu3_2'), title: $t('demos.nested.menu3_2'),
@@ -577,7 +577,7 @@ const routes: RouteRecordRaw[] = [
children: [ children: [
{ {
name: 'Menu321Demo', name: 'Menu321Demo',
path: '/demos/nested/menu3/menu3-2/menu3-2-1', path: 'menu3-2-1',
component: () => component: () =>
import('#/views/demos/nested/menu-3-2-1.vue'), import('#/views/demos/nested/menu-3-2-1.vue'),
meta: { meta: {

View File

@@ -15,7 +15,7 @@ const routes: RouteRecordRaw[] = [
children: [ children: [
{ {
name: 'FormExample', name: 'FormExample',
path: '/examples/form', path: 'form',
meta: { meta: {
icon: 'mdi:form-select', icon: 'mdi:form-select',
title: $t('examples.form.title'), title: $t('examples.form.title'),
@@ -23,7 +23,7 @@ const routes: RouteRecordRaw[] = [
children: [ children: [
{ {
name: 'FormBasicExample', name: 'FormBasicExample',
path: '/examples/form/basic', path: 'basic',
component: () => import('#/views/examples/form/basic.vue'), component: () => import('#/views/examples/form/basic.vue'),
meta: { meta: {
title: $t('examples.form.basic'), title: $t('examples.form.basic'),
@@ -31,7 +31,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'FormQueryExample', name: 'FormQueryExample',
path: '/examples/form/query', path: 'query',
component: () => import('#/views/examples/form/query.vue'), component: () => import('#/views/examples/form/query.vue'),
meta: { meta: {
title: $t('examples.form.query'), title: $t('examples.form.query'),
@@ -39,7 +39,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'FormValueFormatExample', name: 'FormValueFormatExample',
path: '/examples/form/value-format', path: 'value-format',
component: () => import('#/views/examples/form/value-format.vue'), component: () => import('#/views/examples/form/value-format.vue'),
meta: { meta: {
title: $t('examples.form.valueFormat'), title: $t('examples.form.valueFormat'),
@@ -47,7 +47,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'FormRulesExample', name: 'FormRulesExample',
path: '/examples/form/rules', path: 'rules',
component: () => import('#/views/examples/form/rules.vue'), component: () => import('#/views/examples/form/rules.vue'),
meta: { meta: {
title: $t('examples.form.rules'), title: $t('examples.form.rules'),
@@ -55,7 +55,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'FormDynamicExample', name: 'FormDynamicExample',
path: '/examples/form/dynamic', path: 'dynamic',
component: () => import('#/views/examples/form/dynamic.vue'), component: () => import('#/views/examples/form/dynamic.vue'),
meta: { meta: {
title: $t('examples.form.dynamic'), title: $t('examples.form.dynamic'),
@@ -63,7 +63,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'FormLayoutExample', name: 'FormLayoutExample',
path: '/examples/form/custom-layout', path: 'custom-layout',
component: () => import('#/views/examples/form/custom-layout.vue'), component: () => import('#/views/examples/form/custom-layout.vue'),
meta: { meta: {
title: $t('examples.form.layout'), title: $t('examples.form.layout'),
@@ -71,7 +71,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'FormCustomExample', name: 'FormCustomExample',
path: '/examples/form/custom', path: 'custom',
component: () => import('#/views/examples/form/custom.vue'), component: () => import('#/views/examples/form/custom.vue'),
meta: { meta: {
title: $t('examples.form.custom'), title: $t('examples.form.custom'),
@@ -79,7 +79,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'FormApiExample', name: 'FormApiExample',
path: '/examples/form/api', path: 'api',
component: () => import('#/views/examples/form/api.vue'), component: () => import('#/views/examples/form/api.vue'),
meta: { meta: {
title: $t('examples.form.api'), title: $t('examples.form.api'),
@@ -87,7 +87,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'FormMergeExample', name: 'FormMergeExample',
path: '/examples/form/merge', path: 'merge',
component: () => import('#/views/examples/form/merge.vue'), component: () => import('#/views/examples/form/merge.vue'),
meta: { meta: {
title: $t('examples.form.merge'), title: $t('examples.form.merge'),
@@ -95,7 +95,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'FormScrollToErrorExample', name: 'FormScrollToErrorExample',
path: '/examples/form/scroll-to-error-test', path: 'scroll-to-error-test',
component: () => component: () =>
import('#/views/examples/form/scroll-to-error-test.vue'), import('#/views/examples/form/scroll-to-error-test.vue'),
meta: { meta: {
@@ -104,7 +104,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'FormCollapsibleExample', name: 'FormCollapsibleExample',
path: '/examples/form/collapsible-test', path: 'collapsible-test',
component: () => import('#/views/examples/form/collapsible.vue'), component: () => import('#/views/examples/form/collapsible.vue'),
meta: { meta: {
title: $t('examples.form.collapsible'), title: $t('examples.form.collapsible'),
@@ -114,7 +114,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VxeTableExample', name: 'VxeTableExample',
path: '/examples/vxe-table', path: 'vxe-table',
meta: { meta: {
icon: 'lucide:table', icon: 'lucide:table',
title: $t('examples.vxeTable.title'), title: $t('examples.vxeTable.title'),
@@ -122,7 +122,7 @@ const routes: RouteRecordRaw[] = [
children: [ children: [
{ {
name: 'VxeTableBasicExample', name: 'VxeTableBasicExample',
path: '/examples/vxe-table/basic', path: 'basic',
component: () => import('#/views/examples/vxe-table/basic.vue'), component: () => import('#/views/examples/vxe-table/basic.vue'),
meta: { meta: {
title: $t('examples.vxeTable.basic'), title: $t('examples.vxeTable.basic'),
@@ -130,7 +130,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VxeTableRemoteExample', name: 'VxeTableRemoteExample',
path: '/examples/vxe-table/remote', path: 'remote',
component: () => import('#/views/examples/vxe-table/remote.vue'), component: () => import('#/views/examples/vxe-table/remote.vue'),
meta: { meta: {
title: $t('examples.vxeTable.remote'), title: $t('examples.vxeTable.remote'),
@@ -138,7 +138,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VxeTableTreeExample', name: 'VxeTableTreeExample',
path: '/examples/vxe-table/tree', path: 'tree',
component: () => import('#/views/examples/vxe-table/tree.vue'), component: () => import('#/views/examples/vxe-table/tree.vue'),
meta: { meta: {
title: $t('examples.vxeTable.tree'), title: $t('examples.vxeTable.tree'),
@@ -146,7 +146,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VxeTableFixedExample', name: 'VxeTableFixedExample',
path: '/examples/vxe-table/fixed', path: 'fixed',
component: () => import('#/views/examples/vxe-table/fixed.vue'), component: () => import('#/views/examples/vxe-table/fixed.vue'),
meta: { meta: {
title: $t('examples.vxeTable.fixed'), title: $t('examples.vxeTable.fixed'),
@@ -154,7 +154,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VxeTableCustomCellExample', name: 'VxeTableCustomCellExample',
path: '/examples/vxe-table/custom-cell', path: 'custom-cell',
component: () => component: () =>
import('#/views/examples/vxe-table/custom-cell.vue'), import('#/views/examples/vxe-table/custom-cell.vue'),
meta: { meta: {
@@ -163,7 +163,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VxeTableFormExample', name: 'VxeTableFormExample',
path: '/examples/vxe-table/form', path: 'form',
component: () => import('#/views/examples/vxe-table/form.vue'), component: () => import('#/views/examples/vxe-table/form.vue'),
meta: { meta: {
title: $t('examples.vxeTable.form'), title: $t('examples.vxeTable.form'),
@@ -171,7 +171,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VxeTableEditCellExample', name: 'VxeTableEditCellExample',
path: '/examples/vxe-table/edit-cell', path: 'edit-cell',
component: () => import('#/views/examples/vxe-table/edit-cell.vue'), component: () => import('#/views/examples/vxe-table/edit-cell.vue'),
meta: { meta: {
title: $t('examples.vxeTable.editCell'), title: $t('examples.vxeTable.editCell'),
@@ -179,7 +179,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VxeTableEditRowExample', name: 'VxeTableEditRowExample',
path: '/examples/vxe-table/edit-row', path: 'edit-row',
component: () => import('#/views/examples/vxe-table/edit-row.vue'), component: () => import('#/views/examples/vxe-table/edit-row.vue'),
meta: { meta: {
title: $t('examples.vxeTable.editRow'), title: $t('examples.vxeTable.editRow'),
@@ -187,7 +187,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VxeTableVirtualExample', name: 'VxeTableVirtualExample',
path: '/examples/vxe-table/virtual', path: 'virtual',
component: () => import('#/views/examples/vxe-table/virtual.vue'), component: () => import('#/views/examples/vxe-table/virtual.vue'),
meta: { meta: {
title: $t('examples.vxeTable.virtual'), title: $t('examples.vxeTable.virtual'),
@@ -195,7 +195,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VxeTableViewedExample', name: 'VxeTableViewedExample',
path: '/examples/vxe-table/viewed', path: 'viewed',
component: () => import('#/views/examples/vxe-table/viewed.vue'), component: () => import('#/views/examples/vxe-table/viewed.vue'),
meta: { meta: {
title: $t('examples.vxeTable.viewed'), title: $t('examples.vxeTable.viewed'),
@@ -205,7 +205,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'CaptchaExample', name: 'CaptchaExample',
path: '/examples/captcha', path: 'captcha',
meta: { meta: {
icon: 'logos:recaptcha', icon: 'logos:recaptcha',
title: $t('examples.captcha.title'), title: $t('examples.captcha.title'),
@@ -213,7 +213,7 @@ const routes: RouteRecordRaw[] = [
children: [ children: [
{ {
name: 'DragVerifyExample', name: 'DragVerifyExample',
path: '/examples/captcha/slider', path: 'slider',
component: () => component: () =>
import('#/views/examples/captcha/slider-captcha.vue'), import('#/views/examples/captcha/slider-captcha.vue'),
meta: { meta: {
@@ -222,7 +222,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'RotateVerifyExample', name: 'RotateVerifyExample',
path: '/examples/captcha/slider-rotate', path: 'slider-rotate',
component: () => component: () =>
import('#/views/examples/captcha/slider-rotate-captcha.vue'), import('#/views/examples/captcha/slider-rotate-captcha.vue'),
meta: { meta: {
@@ -231,7 +231,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'TranslateVerifyExample', name: 'TranslateVerifyExample',
path: '/examples/captcha/slider-translate', path: 'slider-translate',
component: () => component: () =>
import('#/views/examples/captcha/slider-translate-captcha.vue'), import('#/views/examples/captcha/slider-translate-captcha.vue'),
meta: { meta: {
@@ -240,7 +240,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'CaptchaPointSelectionExample', name: 'CaptchaPointSelectionExample',
path: '/examples/captcha/point-selection', path: 'point-selection',
component: () => component: () =>
import('#/views/examples/captcha/point-selection-captcha.vue'), import('#/views/examples/captcha/point-selection-captcha.vue'),
meta: { meta: {
@@ -251,7 +251,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'ModalExample', name: 'ModalExample',
path: '/examples/modal', path: 'modal',
component: () => import('#/views/examples/modal/index.vue'), component: () => import('#/views/examples/modal/index.vue'),
meta: { meta: {
icon: 'system-uicons:window-content', icon: 'system-uicons:window-content',
@@ -261,7 +261,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'DrawerExample', name: 'DrawerExample',
path: '/examples/drawer', path: 'drawer',
component: () => import('#/views/examples/drawer/index.vue'), component: () => import('#/views/examples/drawer/index.vue'),
meta: { meta: {
icon: 'iconoir:drawer', icon: 'iconoir:drawer',
@@ -271,7 +271,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'EllipsisExample', name: 'EllipsisExample',
path: '/examples/ellipsis', path: 'ellipsis',
component: () => import('#/views/examples/ellipsis/index.vue'), component: () => import('#/views/examples/ellipsis/index.vue'),
meta: { meta: {
icon: 'ion:ellipsis-horizontal', icon: 'ion:ellipsis-horizontal',
@@ -280,7 +280,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VueResizeDemo', name: 'VueResizeDemo',
path: '/demos/resize/basic', path: 'resize/basic',
component: () => import('#/views/examples/resize/basic.vue'), component: () => import('#/views/examples/resize/basic.vue'),
meta: { meta: {
icon: 'material-symbols:resize', icon: 'material-symbols:resize',
@@ -289,7 +289,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'ColPageDemo', name: 'ColPageDemo',
path: '/examples/layout/col-page', path: 'layout/col-page',
component: () => import('#/views/examples/layout/col-page.vue'), component: () => import('#/views/examples/layout/col-page.vue'),
meta: { meta: {
badge: 'Alpha', badge: 'Alpha',
@@ -300,7 +300,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'TippyDemo', name: 'TippyDemo',
path: '/examples/tippy', path: 'tippy',
component: () => import('#/views/examples/tippy/index.vue'), component: () => import('#/views/examples/tippy/index.vue'),
meta: { meta: {
icon: 'mdi:message-settings-outline', icon: 'mdi:message-settings-outline',
@@ -309,7 +309,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'JsonViewer', name: 'JsonViewer',
path: '/examples/json-viewer', path: 'json-viewer',
component: () => import('#/views/examples/json-viewer/index.vue'), component: () => import('#/views/examples/json-viewer/index.vue'),
meta: { meta: {
icon: 'tabler:json', icon: 'tabler:json',
@@ -318,7 +318,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'Motion', name: 'Motion',
path: '/examples/motion', path: 'motion',
component: () => import('#/views/examples/motion/index.vue'), component: () => import('#/views/examples/motion/index.vue'),
meta: { meta: {
icon: 'mdi:animation-play', icon: 'mdi:animation-play',
@@ -327,7 +327,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'CountTo', name: 'CountTo',
path: '/examples/count-to', path: 'count-to',
component: () => import('#/views/examples/count-to/index.vue'), component: () => import('#/views/examples/count-to/index.vue'),
meta: { meta: {
icon: 'mdi:animation-play', icon: 'mdi:animation-play',
@@ -336,7 +336,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'Loading', name: 'Loading',
path: '/examples/loading', path: 'loading',
component: () => import('#/views/examples/loading/index.vue'), component: () => import('#/views/examples/loading/index.vue'),
meta: { meta: {
icon: 'mdi:circle-double', icon: 'mdi:circle-double',
@@ -345,7 +345,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'ButtonGroup', name: 'ButtonGroup',
path: '/examples/button-group', path: 'button-group',
component: () => import('#/views/examples/button-group/index.vue'), component: () => import('#/views/examples/button-group/index.vue'),
meta: { meta: {
icon: 'mdi:check-circle', icon: 'mdi:check-circle',
@@ -354,7 +354,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'ContextMenu', name: 'ContextMenu',
path: '/examples/context-menu', path: 'context-menu',
component: () => import('#/views/examples/context-menu/index.vue'), component: () => import('#/views/examples/context-menu/index.vue'),
meta: { meta: {
icon: 'mdi:menu', icon: 'mdi:menu',
@@ -363,7 +363,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'CropperDemo', name: 'CropperDemo',
path: '/examples/cropper', path: 'cropper',
component: () => import('#/views/examples/cropper/index.vue'), component: () => import('#/views/examples/cropper/index.vue'),
meta: { meta: {
icon: 'mdi:crop', icon: 'mdi:crop',
@@ -372,7 +372,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'TiptapExample', name: 'TiptapExample',
path: '/examples/tiptap', path: 'tiptap',
component: () => import('#/views/examples/tiptap/index.vue'), component: () => import('#/views/examples/tiptap/index.vue'),
meta: { meta: {
icon: 'lucide:square-pen', icon: 'lucide:square-pen',

View File

@@ -13,7 +13,7 @@ const routes: RouteRecordRaw[] = [
path: '/system', path: '/system',
children: [ children: [
{ {
path: '/system/user', path: 'user',
name: 'SystemUser', name: 'SystemUser',
meta: { meta: {
icon: 'mdi:user', icon: 'mdi:user',
@@ -22,7 +22,7 @@ const routes: RouteRecordRaw[] = [
component: () => import('#/views/system/user/list.vue'), component: () => import('#/views/system/user/list.vue'),
}, },
{ {
path: '/system/role', path: 'role',
name: 'SystemRole', name: 'SystemRole',
meta: { meta: {
icon: 'mdi:account-group', icon: 'mdi:account-group',
@@ -31,7 +31,7 @@ const routes: RouteRecordRaw[] = [
component: () => import('#/views/system/role/list.vue'), component: () => import('#/views/system/role/list.vue'),
}, },
{ {
path: '/system/menu', path: 'menu',
name: 'SystemMenu', name: 'SystemMenu',
meta: { meta: {
icon: 'mdi:menu', icon: 'mdi:menu',
@@ -40,7 +40,7 @@ const routes: RouteRecordRaw[] = [
component: () => import('#/views/system/menu/list.vue'), component: () => import('#/views/system/menu/list.vue'),
}, },
{ {
path: '/system/dept', path: 'dept',
name: 'SystemDept', name: 'SystemDept',
meta: { meta: {
icon: 'charm:organisation', icon: 'charm:organisation',

View File

@@ -32,7 +32,7 @@ const routes: RouteRecordRaw[] = [
children: [ children: [
{ {
name: 'VbenDocument', name: 'VbenDocument',
path: '/vben-admin/document', path: 'document',
component: IFrameView, component: IFrameView,
meta: { meta: {
icon: 'lucide:book-open-text', icon: 'lucide:book-open-text',
@@ -42,7 +42,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VbenGithub', name: 'VbenGithub',
path: '/vben-admin/github', path: 'github',
component: IFrameView, component: IFrameView,
meta: { meta: {
icon: 'mdi:github', icon: 'mdi:github',
@@ -52,7 +52,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VbenAntdv', name: 'VbenAntdv',
path: '/vben-admin/antdv', path: 'antdv',
component: IFrameView, component: IFrameView,
meta: { meta: {
badgeType: 'dot', badgeType: 'dot',
@@ -63,7 +63,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VbenAntdVNext', name: 'VbenAntdVNext',
path: '/vben-admin/antdv-next', path: 'antdv-next',
component: IFrameView, component: IFrameView,
meta: { meta: {
badgeType: 'dot', badgeType: 'dot',
@@ -75,7 +75,7 @@ const routes: RouteRecordRaw[] = [
{ {
name: 'VbenNaive', name: 'VbenNaive',
path: '/vben-admin/naive', path: 'naive',
component: IFrameView, component: IFrameView,
meta: { meta: {
badgeType: 'dot', badgeType: 'dot',
@@ -86,7 +86,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VbenElementPlus', name: 'VbenElementPlus',
path: '/vben-admin/ele', path: 'ele',
component: IFrameView, component: IFrameView,
meta: { meta: {
badgeType: 'dot', badgeType: 'dot',
@@ -97,7 +97,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
name: 'VbenTDesign', name: 'VbenTDesign',
path: '/vben-admin/tdesign', path: 'tdesign',
component: IFrameView, component: IFrameView,
meta: { meta: {
badgeType: 'dot', badgeType: 'dot',