routes.js 2.38 KB
import DefaultLayout from '@/views/layout/default';
import ComponentLayout from '@/views/layout/component';

// 开发指南的文档

const _guides = [
  {
    path: 'introduce',
    name: 'introduce',
    meta: { title: '简介' },
    component: () => import('@/views/docs/guide/introduce.md'),
  },
  {
    path: 'installation',
    name: 'installation',
    meta: { title: '安装' },
    component: () => import('@/views/docs/guide/installation.md'),
  },
];

// 组件页面的文档

const _components = [
  {
    group: '业务组件',
    children: [
      {
        path: 'form',
        name: 'form',
        meta: { title: 'Form 表单' },
        component: () => import('@/views/docs/component/form.md'),
      },
      {
        path: 'filter',
        name: 'filter',
        meta: { title: 'Filter 筛选' },
        component: () => import('@/views/docs/component/filter.md'),
      },
      {
        path: 'table',
        name: 'table',
        meta: { title: 'Table 表格' },
        component: () => import('@/views/docs/component/table.md'),
      },
      {
        path: 'scheme',
        name: 'scheme',
        meta: { title: 'Scheme 方案' },
        component: () => import('@/views/docs/component/scheme.md'),
      },
    ],
  },
];

const _others = [
  {
    path: 'other',
    name: 'other',
    meta: { title: '其它' },
    component: () => import('@/views/page/other'),
  },
];

let _components_children = [];
_components.forEach(data => {
  _components_children = [..._components_children, ...data.children];
});

// 用于导航的页面
const _pages = [
  {
    path: '',
    meta: { title: '首页', path: '/index' },
    component: DefaultLayout,
    redirect: 'index',
    children: [
      {
        path: 'index',
        name: 'index',
        component: () => import('@/views/page/index'),
      },
    ],
  },
  {
    path: '/component',
    name: 'component',
    meta: { title: '组件', path: '/component' },
    component: ComponentLayout,
    redirect: `/component/${_guides[0].path || 'detail'}`,
    children: [..._components_children, ..._guides, ..._others],
  },
];

export const pages = _pages;
export const guides = _guides;
export const components = _components;
export const others = _others;

export default [
  { path: '*', redirect: '/404', hidden: true },
  {
    path: '/404',
    name: '404',
    component: () => import('@/views/page/error/404'),
  },
  ..._pages,
];