import type { AppRouteModule } from '/@/router/types';
import { getParentLayout, LAYOUT } from '/@/router/constant';
import { ExceptionEnum } from '/@/enums/exceptionEnum';
import { t } from '/@/hooks/web/useI18n';
const ExceptionPage = () => import('/@/views/sys/exception/Exception.vue');
const page: AppRouteModule = {
path: '/page-demo',
name: 'PageDemo',
component: LAYOUT,
redirect: '/page-demo/form/basic',
meta: {
orderNo: 20,
icon: 'ion:aperture-outline',
title: t('routes.demo.page.page'),
},
children: [
// =============================form start=============================
{
path: 'form',
name: 'FormPage',
redirect: '/page-demo/form/basic',
component: getParentLayout('FormPage'),
meta: {
title: t('routes.demo.page.form'),
},
children: [
{
path: 'basic',
name: 'FormBasicPage',
component: () => import('/@/views/demo/page/form/basic/index.vue'),
meta: {
title: t('routes.demo.page.formBasic'),
},
},
{
path: 'step',
name: 'FormStepPage',
component: () => import('/@/views/demo/page/form/step/index.vue'),
meta: {
title: t('routes.demo.page.formStep'),
},
},
{
path: 'high',
name: 'FormHightPage',
component: () => import('/@/views/demo/page/form/high/index.vue'),
meta: {
title: t('routes.demo.page.formHigh'),
},
},
],
},
// =============================form end=============================
// =============================desc start=============================
{
path: 'desc',
name: 'DescPage',
component: getParentLayout('DescPage'),
redirect: '/page-demo/desc/basic',
meta: {
title: t('routes.demo.page.desc'),
},
children: [
{
path: 'basic',
name: 'DescBasicPage',
component: () => import('/@/views/demo/page/desc/basic/index.vue'),
meta: {
title: t('routes.demo.page.descBasic'),
},
},
{
path: 'high',
name: 'DescHighPage',
component: () => import('/@/views/demo/page/desc/high/index.vue'),
meta: {
title: t('routes.demo.page.descHigh'),
},
},
],
},
// =============================desc end=============================
// =============================result start=============================
{
path: 'result',
name: 'ResultPage',
redirect: '/page-demo/result/success',
component: getParentLayout('ResultPage'),
meta: {
title: t('routes.demo.page.result'),
},
children: [
{
path: 'success',
name: 'ResultSuccessPage',
component: () => import('/@/views/demo/page/result/success/index.vue'),
meta: {
title: t('routes.demo.page.resultSuccess'),
},
},
{
path: 'fail',
name: 'ResultFailPage',
component: () => import('/@/views/demo/page/result/fail/index.vue'),
meta: {
title: t('routes.demo.page.resultFail'),
},
},
],
},
// =============================result end=============================
// =============================account start=============================
{
path: 'account',
name: 'AccountPage',
component: getParentLayout('AccountPage'),
redirect: '/page-demo/account/setting',
meta: {
title: t('routes.demo.page.account'),
},
children: [
{
path: 'center',
name: 'AccountCenterPage',
component: () => import('/@/views/demo/page/account/center/index.vue'),
meta: {
title: t('routes.demo.page.accountCenter'),
},
},
{
path: 'setting',
name: 'AccountSettingPage',
component: () => import('/@/views/demo/page/account/setting/index.vue'),
meta: {
title: t('routes.demo.page.accountSetting'),
},
},
],
},
// =============================account end=============================
// =============================exception start=============================
{
path: 'exception',
name: 'ExceptionPage',
component: getParentLayout('ExceptionPage'),
redirect: '/page-demo/exception/404',
meta: {
title: t('routes.demo.page.exception'),
},
children: [
{
path: '403',
name: 'PageNotAccess',
component: ExceptionPage,
props: {
status: ExceptionEnum.PAGE_NOT_ACCESS,
},
meta: {
title: '403',
},
},
{
path: '404',
name: 'PageNotFound',
component: ExceptionPage,
props: {
status: ExceptionEnum.PAGE_NOT_FOUND,
},
meta: {
title: '404',
},
},
{
path: '500',
name: 'ServiceError',
component: ExceptionPage,
props: {
status: ExceptionEnum.ERROR,
},
meta: {
title: '500',
},
},
{
path: 'net-work-error',
name: 'NetWorkError',
component: ExceptionPage,
props: {
status: ExceptionEnum.NET_WORK_ERROR,
},
meta: {
title: t('routes.demo.page.netWorkError'),
},
},
{
path: 'not-data',
name: 'NotData',
component: ExceptionPage,
props: {
status: ExceptionEnum.PAGE_NOT_DATA,
},
meta: {
title: t('routes.demo.page.notData'),
},
},
],
},
// =============================exception end=============================
// =============================list start=============================
{
path: 'list',
name: 'ListPage',
component: getParentLayout('ListPage'),
redirect: '/page-demo/list/card',
meta: {
title: t('routes.demo.page.list'),
},
children: [
{
path: 'basic',
name: 'ListBasicPage',
component: () => import('/@/views/demo/page/list/basic/index.vue'),
meta: {
title: t('routes.demo.page.listBasic'),
},
},
{
path: 'card',
name: 'ListCardPage',
component: () => import('/@/views/demo/page/list/card/index.vue'),
meta: {
title: t('routes.demo.page.listCard'),
},
},
{
path: 'search',
name: 'ListSearchPage',
component: () => import('/@/views/demo/page/list/search/index.vue'),
meta: {
title: t('routes.demo.page.listSearch'),
},
},
],
},
// =============================list end=============================
],
};
export default page;