﻿/**
 * @name umi 的路由配置
 * @description 只支持 path,component,routes,redirect,wrappers,title 的配置
 * @param path  path 只支持两种占位符配置，第一种是动态参数 :id 的形式，第二种是 * 通配符，通配符只能出现路由字符串的最后。
 * @param component 配置 location 和 path 匹配后用于渲染的 React 组件路径。可以是绝对路径，也可以是相对路径，如果是相对路径，会从 src/pages 开始找起。
 * @param routes 配置子路由，通常在需要为多个路径增加 layout 组件时使用。
 * @param redirect 配置路由跳转
 * @param wrappers 配置路由组件的包装组件，通过包装组件可以为当前的路由组件组合进更多的功能。 比如，可以用于路由级别的权限校验
 * @doc https://umijs.org/docs/guides/routes
 * @param buttons 配置按钮权限，access唯一，使用驼峰命名，拼接菜单+按钮名称
 * @param menuType 菜单类型:group,page,button
 * @param access 唯一key,权限标识
 * @param name 菜单名称
 */
// import HomeIcon from "./icons";
// BuildIcon, ThunderIcon, BuildingsIcon, HierarchyIcon, SelfCenterIcon}
// 是否是开发环境
// const isDev = process.env.NODE_ENV === 'development';
import childRouter from './childRoute';

export default [
  ...childRouter,

  {
    path: '/system',
    name: 'system',
    access: 'system',
    menuType: 'group',
    isFrame: false,
    routes: [
      {
        path: '/system/roles',
        name: 'roles',
        access: 'roles',
        component: './system/roles',
        menuType: 'page',
        isFrame: false,
        buttons: [
          {
            name: 'disable/enable',
            menuType: 'button',
            access: 'roleDisable/roleEnable',
          },
          {
            name: 'edit',
            menuType: 'button',
            access: 'roleEdit',
          },
          {
            name: 'del',
            menuType: 'button',
            access: 'roleDel',
          },
          {
            name: 'view',
            menuType: 'button',
            access: 'roleView',
          },
          {
            name: 'addUser',
            menuType: 'button',
            access: 'roleAddUser',
          },
          {
            name: 'config',
            menuType: 'button',
            access: 'roleConfig',
          },
          {
            name: 'add',
            menuType: 'button',
            access: 'roleAdd',
          },
          {
            name: 'remove user',
            menuType: 'button',
            access: 'roleRemoveUser',
          },
        ],
      },
      {
        path: '/system/operate',
        name: 'operate',
        component: './system/operate',
        access: 'operate',
        menuType: 'page',
        isFrame: false,
      },
      {
        path: '/system/dictionaries',
        name: 'dictionaries',
        access: 'dictionaries',
        component: './system/dictionaries',
        menuType: 'page',
        isFrame: false,
        buttons: [
          {
            name: 'disable/enable',
            menuType: 'button',
            access: 'dicDisable/dicEnable',
          },
          {
            name: 'edit',
            menuType: 'button',
            access: 'dicEdit',
          },
          {
            name: 'del',
            menuType: 'button',
            access: 'dicDel',
          },
          {
            name: 'view',
            menuType: 'button',
            access: 'dicView',
          },
          {
            name: 'sort',
            menuType: 'button',
            access: 'dicSort',
          },
          {
            name: 'add',
            menuType: 'button',
            access: 'dicAdd',
          },
        ],
      },
      {
        path: '/system/menu',
        name: 'menu',
        access: 'menu',
        component: './system/menu',
        menuType: 'page',
        isFrame: false,
        /**
         * @param key 唯一标识等于access，配置详情页等，参考如下配置
         *  routes: [
          {
            path: '/system/menu/detail',
            key: 'menuDetail',
            component: './',
            menuType: 'detailPage',
            name: 'detail',
            isFrame: false,
          },
        ],
        */
        buttons: [
          {
            name: 'disable/enable',
            menuType: 'button',
            access: 'menuDisable/menuEnable',
          },
          {
            name: 'edit',
            menuType: 'button',
            access: 'menuEdit',
          },
          {
            name: 'sort',
            menuType: 'button',
            access: 'menuSort',
          },
        ],
      },
      {
        path: '/system/userManage',
        name: 'userManage',
        access: 'userManage', //二级-用户管理
        component: './system/userManage',
        menuType: 'page',
        isFrame: false,
        buttons: [
          {
            name: 'edit',
            menuType: 'button',
            access: 'userManageEdit',
          },
          {
            name: 'del',
            menuType: 'button',
            access: 'userManageDel',
          },
          {
            name: 'disable/enable',
            menuType: 'button',
            access: 'userManageDisable/userManageEnable',
          },
          {
            name: 'reset',
            menuType: 'button',
            access: 'userManageReset',
          },
          {
            name: 'dept/change',
            menuType: 'button',
            access: 'userManageChangeDept',
          },
          {
            name: 'role/change',
            menuType: 'button',
            access: 'userManageChangeRole',
          },
          {
            name: 'add',
            menuType: 'button',
            access: 'userManageAdd',
          },
        ],
      },
      {
        path: '/system/userOrganization',
        name: 'userOrganization',
        access: 'userOrganization', //二级-用户管理
        component: './system/userManage',
        menuType: 'page',
        isFrame: false,
        buttons: [
          {
            name: 'edit',
            menuType: 'button',
            access: 'userOrganizationEdit',
          },
          {
            name: 'del',
            menuType: 'button',
            access: 'userOrganizationDel',
          },
          {
            name: 'disable/enable',
            menuType: 'button',
            access: 'userOrganizationDisable/userOrganizationEnable',
          },
          {
            name: 'reset',
            menuType: 'button',
            access: 'userOrganizationReset',
          },
          {
            name: 'role/change',
            menuType: 'button',
            access: 'userOrganizationChangeRole',
          },
          {
            name: 'add',
            menuType: 'button',
            access: 'userOrganizationAdd',
          },
        ],
        
      },
      {
        path: '/system/companyManage',
        name: 'companyManage',
        access: 'companyManage', //二级-团队管理
        component: './system/companyManage',
        menuType: 'page',
        isFrame: false,
        buttons: [
          {
            name: 'disable',
            menuType: 'button',
            access: 'companyDisable',
          },
          {
            name: 'edit',
            menuType: 'button',
            access: 'companyEdit',
          },
          {
            name: 'sort',
            menuType: 'button',
            access: 'companySort',
          },
          {
            name: 'add',
            menuType: 'button',
            access: 'companyAdd',
          },
          {
            name: 'del',
            menuType: 'button',
            access: 'companyDel',
          },
        ],
      },
    ],
  },

  {
    path: '/login',
    layout: false,
    component: './login',
    menuType: 'page',
  },
  {
    path: '/home',
    name: 'welcome',
    access: 'login',
    menuType: 'page',
        routes: [
          {
            path: '/home',
            menuType: 'page',
            component: './home',
            // redirect: '/home/center',
          },
          {
            path: '/home/center',
            name: 'center',
            component: './account/center',
            menuType: 'page',
          },
          {
            path: '/home/settings',
            name: 'settings',
            component: './account/settings',
            menuType: 'page',
          },
        ],
      // },
    // ]
  },
  
  {
    path: '/',
    redirect: '/home',
  },
  {
    path: '*',
    layout: false,
    component: './404',
  },
];
