import { Layout } from '@/utils/routerHelper'

const { t } = useI18n()
/**
 * redirect: noredirect        当设置 noredirect 的时候该路由在面包屑导航中不可被点击
 * name:'router-name'          设定路由的名字，一定要填写不然使用<keep-alive>时会出现各种问题
 * meta : {
 hidden: true              当设置 true 的时候该路由不会再侧边栏出现 如404，login等页面(默认 false)

 alwaysShow: true          当你一个路由下面的 children 声明的路由大于1个时，自动会变成嵌套的模式，
 只有一个时，会将那个子路由当做根路由显示在侧边栏，
 若你想不管路由下面的 children 声明的个数都显示你的根路由，
 你可以设置 alwaysShow: true，这样它就会忽略之前定义的规则，
 一直显示根路由(默认 false)

 title: 'title'            设置该路由在侧边栏和面包屑中展示的名字

 icon: 'svg-name'          设置该路由的图标

 noCache: true             如果设置为true，则不会被 <keep-alive> 缓存(默认 false)

 breadcrumb: false         如果设置为false，则不会在breadcrumb面包屑中显示(默认 true)

 affix: true               如果设置为true，则会一直固定在tag项中(默认 false)

 noTagsView: true          如果设置为true，则不会出现在tag中(默认 false)

 activeMenu: '/dashboard'  显示高亮的路由路径

 followAuth: '/dashboard'  跟随哪个路由进行权限过滤

 canTo: true               设置为true即使hidden为true，也依然可以进行路由跳转(默认 false)
 }
 **/
const remainingRouter: AppRouteRecordRaw[] = [
  {
    path: '/redirect',
    component: Layout,
    name: 'Redirect',
    children: [
      {
        path: '/redirect/:path(.*)',
        name: 'Redirect',
        component: () => import('@/views/Redirect/Redirect.vue'),
        meta: {}
      }
    ],
    meta: {
      hidden: true,
      noTagsView: true
    }
  },
  {
    path: '/',
    component: Layout,
    redirect: '/index',
    name: 'Home',
    meta: {},
    children: [
      {
        path: 'index',
        component: () => import('@/views/Home/Index.vue'),
        name: 'Index',
        meta: {
          title: t('router.home'),
          icon: 'ep:home-filled',
          noCache: false,
          affix: true
        }
      }
    ]
  },
  {
    path: '/dingding',
    name: 'dingtalk',
    component: () => import('@/views/pms/dingding.vue'),
    meta: {
      hidden: true
    }
  },
  {
    path: '/maotu',
    redirect: '/maotu/list',
    name: 'Maotu',
    meta: {
      hidden: true
    },
    children: [
      {
        path: 'edit/:id?',
        component: () => import('@/views/maotu/edit.vue'),
        name: 'MaotuEdit',
        meta: {
          title: '拓扑编辑器',
          noCache: true,
          hidden: true,
          canTo: true
        }
      },
      {
        path: 'preview/:id?',
        component: () => import('@/views/maotu/preview.vue'),
        name: 'MaotuPreview',
        meta: {
          title: '拓扑预览',
          noCache: true,
          hidden: true,
          canTo: true
        }
      }
    ]
  },
  {
    path: '/deviceattrstemplate',
    component: Layout,
    name: 'DeviceAttrsCenter',
    meta: {
      hidden: true,
      keepAlive: true
    },
    children: [
      {
        path: 'template/detail/:id/:templateName/:categoryName',
        component: () => import('@/views/pms/devicetemplate/detail/attrsModel/index.vue'),
        name: 'DeviceAttrTemplateModel',
        meta: {
          keepAlive: true,
          title: t('rem.DeviceAttrTemplateModel'),
          noCache: false,
          hidden: true,
          canTo: true,
          activeMenu: '/template/info'
        }
      },
      {
        path: 'templates',
        component: () => import('@/views/pms/devicetemplate/index.vue'),
        name: 'DeviceAttrsTemplate',
        meta: {
          keepAlive: true,
          title: t('rem.AttrTemplates'),
          noCache: false,
          hidden: true,
          canTo: true,
          activeMenu: '/templates'
        }
      }
    ]
  },

  {
    path: '/projectTaskAttrsTemplate',
    component: Layout,
    name: 'TaskAttrsTemplateCenter',
    meta: {
      hidden: true,
      keepAlive: true
    },
    children: [
      {
        path: 'template/attrs/:deptId/:templateName/:deptName',
        component: () => import('@/views/pms/iotprojecttasktemplate/detail/index.vue'),
        name: 'ProjectTaskTemplateAttrs',
        meta: {
          keepAlive: true,
          title: t('project.taskAttrDetail'),
          noCache: false,
          hidden: true,
          canTo: true,
          activeMenu: '/template/info'
        }
      }
    ]
  },

  {
    path: '/devicecategoryboms',
    component: Layout,
    name: 'DeviceCategoryBomCenter',
    meta: {
      hidden: true,
      keepAlive: true
    },
    children: [
      {
        path: 'boms',
        component: () => import('@/views/pms/bom/index.vue'),
        name: 'Bom',
        meta: {
          keepAlive: true,
          title: t('rem.AttrTemplates'),
          noCache: false,
          hidden: true,
          canTo: true,
          activeMenu: '/boms'
        }
      }
    ]
  },

  {
    path: '/devicetrends',
    component: Layout,
    name: 'DeviceTrendsCenter',
    meta: {
      hidden: true,
      keepAlive: true
    },
    children: [
      {
        path: 'devicepersons',
        component: () => import('@/views/pms/device/personlog/DevicePerson.vue'),
        name: 'IotDevicePerson',
        meta: {
          keepAlive: true,
          title: t('rem.EquipmentResponsiblePerson'),
          noCache: false,
          hidden: true,
          canTo: true,
          activeMenu: '/devicepersons'
        }
      },
      {
        path: 'allotlogs',
        component: () => import('@/views/pms/device/allotlog/DeviceAllot.vue'),
        name: 'IotDeviceAllot',
        meta: {
          keepAlive: true,
          title: t('rem.EquipmentAllocation'),
          noCache: false,
          hidden: true,
          canTo: true,
          activeMenu: '/allotlogs'
        }
      },
      {
        path: 'statuslogs',
        component: () => import('@/views/pms/device/statuslog/DeviceStatus.vue'),
        name: 'IotDeviceStatus',
        meta: {
          keepAlive: true,
          title: t('devicePerson.status'),
          noCache: false,
          hidden: true,
          canTo: true,
          activeMenu: '/statuslogs'
        }
      }
    ]
  },

  {
    path: '/materials',
    component: Layout,
    name: 'MaterialsCenter',
    meta: {
      hidden: true,
      keepAlive: true
    },
    children: [
      {
        path: 'materials',
        component: () => import('@/views/pms/material/index.vue'),
        name: 'Material',
        meta: {
          keepAlive: true,
          title: t('rem.MaterialManagement'),
          noCache: false,
          hidden: true,
          canTo: true,
          activeMenu: '/materials'
        }
      }
    ]
  },

  {
    path: '/modelattrstemplate',
    component: Layout,
    name: 'ModelAttrsCenter',
    meta: {
      hidden: true
    },
    children: [
      {
        path: 'template/detail/:id',
        component: () => import('@/views/pms/modeltemplate/detail/attrsModel/index.vue'),
        name: 'ModelAttrTemplate',
        meta: {
          title: t('rem.AttributeInformationDetails'),
          noCache: false,
          hidden: true,
          canTo: true,
          activeMenu: '/template/info'
        }
      }
    ]
  },
  {
    path: '/iotProjectInfo',
    component: Layout,
    name: 'IotProjectInfo',
    meta: {
      hidden: true
    },
    children: [
      {
        path: 'project/info/:type/:id?(\\d+)',
        component: () => import('@/views/pms/iotprojectinfo/IotProjectInfoForm.vue'),
        name: 'IotProjectInfo',
        meta: {
          title: t('rem.AddProjectInformation'),
          noCache: false,
          hidden: true,
          canTo: true,
          activeMenu: '/project/info'
        }
      }
    ]
  },
  {
    path: '/iotProjectTask',
    component: Layout,
    name: 'IotProjectTaskInfo',
    meta: {
      hidden: true
    },
    children: [
      {
        path: 'project/task/:type/:id?(\\d+)/:projectId/:deptId?',
        component: () => import('@/views/pms/iotprojecttask/IotProjectTaskForm.vue'),
        name: 'IotProjectTaskInfo',
        meta: {
          title: t('action.edit'),
          noCache: false,
          hidden: true,
          canTo: true,
          activeMenu: '/project/task'
        }
      }
    ]
  },
  {
    path: '/iotProjectInfoDetail',
    component: Layout,
    name: 'IotProjectInfoDetail',
    meta: {
      hidden: true
    },
    children: [
      {
        path: 'project/info/detail/:id(\\d+)',
        component: () => import('@/views/pms/iotprojectinfo/IotProjectInfoDetail.vue'),
        name: 'IotProjectInfoDetail',
        meta: {
          title: t('rem.detail'),
          noCache: false,
          hidden: true,
          canTo: true,
          activeMenu: '/project/detail'
        }
      }
    ]
  },
  {
    path: '/FillOrderInfo2',
    component: Layout,
    name: 'FillOrderInfo2',
    meta: {
      hidden: true
    },
    children: [
      {
        path: 'template/detail/:deptId/:isFill/:createTime*',
        component: () => import('@/views/pms/iotopeationfill/StatisticsForm.vue' + ''),
        name: 'FillOrderInfo2',
        meta: {
          title: t('rem.FillInInformation'),
          noCache: false,
          hidden: true,
          canTo: true,
          activeMenu: '/template/info'
        }
      }
    ]
  },
  {
    path: '/FillOrderInfo',
    component: Layout,
    name: 'FillOrderInfo',
    meta: {
      hidden: true,
      keepAlive: true
    },
    children: [
      {
        path: 'template/detail/:id',
        component: () => import('@/views/pms/iotopeationfill/index1.vue' + ''),
        name: 'FillOrderInfo',
        meta: {
          title: t('rem.FillInInformation'),
          noCache: false,
          hidden: true,
          canTo: true,
          keepAlive: true,
          activeMenu: '/template/info'
        }
      }
    ]
  },
  {
    path: '/IotOpeationFill1',
    component: Layout,
    name: 'IotOpeationFill1',
    meta: {
      hidden: true
    },
    children: [
      {
        path: 'template/detail',
        component: () => import('@/views/pms/iotopeationfill/index.vue'),
        name: 'IotOpeationFill1',
        meta: {
          title: t('rem.FillInInformation'),
          noCache: false,
          hidden: true,
          canTo: true,
          keepAlive: true,
          activeMenu: '/template/info'
        }
      }
    ]
  },
  {
    path: '/iotOperationPlan',
    component: Layout,
    name: 'iotOperationPlan',
    meta: {
      hidden: true
    },
    children: [
      {
        path: 'template/detail',
        component: () => import('@/views/pms/iotopeationfill/plan/index.vue'),
        name: 'iotOperationPlan',
        meta: {
          title: t('rem.FillInInformation'),
          noCache: false,
          hidden: true,
          canTo: true,
          keepAlive: true,
          activeMenu: '/template/info'
        }
      },
      {
        path: 'iotopeationfill/plan/add',
        component: () => import('@/views/pms/iotopeationfill/plan/IotOperationPlan.vue'),
        name: 'OperationPlanAdd',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:add',
          title: t('rem.OperationPlanAdd'),
          activeMenu: '/iotopeationfill/plan/add'
        }
      },
      {
        path: 'iotopeationfill/plan/add/:id(\\\\d+)',
        component: () => import('@/views/pms/iotopeationfill/plan/IotOperationPlan.vue'),
        name: 'OperationPlanEdit',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:add',
          title: t('rem.OperationPlanEdit'),
          activeMenu: '/iotopeationfill/plan/add'
        }
      }
    ]
  },
  {
    path: '/FillOrderInfoS',
    component: Layout,
    name: 'FillOrderInfoS',
    meta: {
      hidden: true,
      keepAlive: true
    },
    children: [
      {
        path: 'template/detail/:id/:deviceid/:status/:deptid/:createtime',
        component: () => import('@/views/pms/device/record/RecordInfo.vue'),
        name: 'FillOrderInfoDevice',
        meta: {
          title: t('rem.detail'),
          noCache: false,
          hidden: true,
          canTo: true,
          activeMenu: '/template/info'
        }
      }
    ]
  },
  {
    path: '/iotpms/iotdevicepms', // 商品中心
    component: Layout,
    name: 'PmsDeviceCenter',
    meta: {
      hidden: true
    },
    children: [
      {
        path: 'device/detail/form',
        component: () => import('@/views/pms/device/IotDeviceForm.vue'),
        name: 'DeviceDetailForm',
        meta: {
          noCache: true,
          hidden: true,
          canTo: true,
          icon: 'ep:document',
          title: t('rem.AddEquipment'),
          activeMenu: '/device/base'
        }
      },
      {
        path: 'device/detail/:id',
        component: () => import('@/views/pms/device/DeviceInfo.vue'),
        name: 'DeviceDetailInfo',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:info',
          title: t('rem.EquipmentDetails'),
          activeMenu: '/device/info'
        }
      },
      {
        path: 'tddevice/detail',
        component: () => import('@/views/pms/device/monitor/TdDeviceInfo.vue'),
        name: 'TdDeviceDetail',
        meta: {
          noCache: true,
          hidden: true,
          canTo: true,
          icon: 'ep:info',
          title: t('rem.MonitoringDetails'),
          activeMenu: '/device/info'
        }
      },
      {
        path: '/oli-connection/monitoring/detail',
        component: () => import('@/views/oli-connection/monitoring/detail.vue'),
        name: 'MonitoringDetail',
        meta: {
          noCache: true,
          hidden: true,
          canTo: true,
          icon: 'fa:area-chart',
          title: t('rem.MonitoringDetails'),
          activeMenu: '/oli-connection/monitoring'
        }
      },
      {
        path: 'device/upload/:id',
        component: () => import('@/views/pms/device/DeviceUpload.vue'),
        name: 'DeviceUpload',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:info',
          title: t('rem.UploadFile'),
          activeMenu: '/device/upload'
        }
      },
      {
        path: 'device/bom/:id',
        component: () => import('@/views/pms/device/bom/BomInfo.vue'),
        name: 'DeviceBom',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:info',
          title: t('rem.EquipmentBOM'),
          activeMenu: '/device/bom'
        }
      },
      {
        path: 'device/person',
        component: () => import('@/views/pms/device/personlog/ConfigDevicePerson.vue'),
        name: 'ConfigDevicePerson',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:add',
          title: t('rem.EquipmentResponsiblePerson'),
          activeMenu: '/device/person'
        }
      },
      {
        path: 'device/status',
        component: () => import('@/views/pms/device/statuslog/ConfigDeviceStatus.vue'),
        name: 'ConfigDeviceStatus',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:add',
          title: t('rem.EquipmentStatusAdjustment'),
          activeMenu: '/device/status'
        }
      },
      {
        path: 'device/allot',
        component: () => import('@/views/pms/device/allotlog/ConfigDeviceAllot.vue'),
        name: 'ConfigDeviceAllot',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:add',
          title: t('rem.EquipmentAllocation'),
          activeMenu: '/device/allot'
        }
      }
    ]
  },

  {
    path: '/iotpms/iotvideopms', // 视频中心
    component: Layout,
    name: 'PmsVideoCenter',
    meta: {
      hidden: true
    },
    children: [
      {
        path: 'video/product/add',
        component: () => import('@/views/pms/video_center/product/product-edit.vue'),
        name: 'VideoCenterProductEdit',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:add',
          title: t('rem.AddEquipment'),
          activeMenu: '/video/produvt/add'
        }
      },
      {
        path: 'video/device/add',
        component: () => import('@/views/pms/video_center/device/device-edit.vue'),
        name: 'VideoCenterDeviceEdit',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:add',
          title: t('rem.AddEquipment'),
          activeMenu: '/video/device/add'
        }
      }
    ]
  },

  {
    path: '/iotpms/iotlockstock',
    component: Layout,
    name: 'PmsLockStockCenter',
    meta: {
      hidden: true,
      keepAlive: true
    },
    children: [
      {
        path: 'lockstock',
        component: () => import('@/views/pms/iotlockstock/index.vue'),
        name: 'IotLockStock',
        meta: {
          keepAlive: true,
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:menu',
          title: t('rem.LocalStock'),
          activeMenu: '/lockstock/index'
        }
      },
      {
        path: 'lockstock/add',
        component: () => import('@/views/pms/iotlockstock/IotAddToStock.vue'),
        name: 'LockStockAdd',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:add',
          title: t('rem.ManualWarehousing'),
          activeMenu: '/lockstock/add'
        }
      },
      {
        path: 'lockstock/edit/:id(\\d+)',
        component: () => import('@/views/pms/iotlockstock/IotAddToStock.vue'),
        name: 'LockStockEdit',
        meta: {
          noCache: true,
          hidden: true,
          canTo: true,
          icon: 'ep:edit',
          title: t('rem.EditingWarehousing'),
          activeMenu: '/lockstock/edit'
        }
      }
    ]
  },

  {
    path: '/iotpms/iotsapstock',
    component: Layout,
    name: 'PmsSapStockCenter',
    meta: {
      hidden: true,
      keepAlive: true
    },
    children: [
      {
        path: 'sapstock',
        component: () => import('@/views/pms/iotsapstock/index.vue'),
        name: 'IotSapStock',
        meta: {
          keepAlive: true,
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:menu',
          title: t('rem.SAPStock'),
          activeMenu: '/sapstock/index'
        }
      },
      {
        path: 'sapstock/config',
        component: () => import('@/views/pms/iotsapstock/IotSapStockConfig.vue'),
        name: 'IotSapStockConfig',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:add',
          title: t('rem.ConfigureSafetyStock'),
          activeMenu: '/sapstock/config'
        }
      },
      {
        path: 'sapstock/safe',
        component: () => import('@/views/pms/iotsapstock/IotConfigSafeStock.vue'),
        name: 'IotConfigSafeStock',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:add',
          title: t('rem.ConfigureSafetyStock'),
          activeMenu: '/sapstock/safe'
        }
      }
    ]
  },

  {
    path: '/iotpms/iotmaintenanceplan',
    component: Layout,
    name: 'PmsMaintenanceCenter',
    meta: {
      hidden: true
    },
    children: [
      {
        path: 'maintenanceplan',
        component: () => import('@/views/pms/maintenance/index.vue'),
        name: 'IotMaintenancePlan',
        meta: {
          keepAlive: true,
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:menu',
          title: t('rem.MaintenancePlan'),
          activeMenu: '/maintenanceplan/index'
        }
      },
      {
        path: 'maintenanceplan/add',
        component: () => import('@/views/pms/maintenance/maintenance-plan-manage.vue'),
        name: 'IotAddMainPlan',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:add',
          title: t('rem.AddMaintenancePlan'),
          activeMenu: '/maintenanceplan/add'
        }
      },
      {
        path: 'maintenanceplan/edit/:id(\\d+)',
        component: () => import('@/views/pms/maintenance/maintenance-plan-manage.vue'),
        name: 'IotMainPlanEdit',
        meta: {
          noCache: true,
          hidden: true,
          canTo: true,
          icon: 'ep:edit',
          title: t('rem.EditMaintenancePlan'),
          activeMenu: '/maintenanceplan/edit'
        }
      },
      {
        path: 'maintenanceplan/detail/:id(\\d+)',
        component: () => import('@/views/pms/maintenance/maintenance-plan-manage.vue'),
        name: 'IotMaintenancePlanDetail',
        meta: {
          noCache: true,
          hidden: true,
          canTo: true,
          icon: 'ep:edit',
          title: t('rem.MaintenancePlanDetail'),
          activeMenu: '/maintenanceplan/detail'
        }
      }
    ]
  },

  {
    path: '/iotpms/iotmainworkorder',
    component: Layout,
    name: 'PmsMainWorkOrderCenter',
    meta: {
      hidden: true,
      keepAlive: true
    },
    children: [
      {
        path: 'mainworkorder',
        component: () => import('@/views/pms/iotmainworkorder/index.vue'),
        name: 'IotMainWorkOrder',
        meta: {
          keepAlive: true,
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:menu',
          title: t('rem.MaintenanceOrder'),
          activeMenu: '/mainworkorder/index'
        }
      },
      {
        path: 'workorderalarm',
        component: () => import('@/views/pms/iotmainworkorder/IotDeviceMainAlarm.vue'),
        name: 'IotDeviceMainAlarm',
        meta: {
          keepAlive: true,
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:menu',
          title: t('mainPlan.maintenanceQuery'),
          activeMenu: '/mainworkorder/alarm'
        }
      },
      {
        path: 'maintenancesearch',
        component: () => import('@/views/pms/iotmainworkorder/IotMaintenanceSearch.vue'),
        name: 'IotMaintenanceSearch',
        meta: {
          keepAlive: true,
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:menu',
          title: t('mainPlan.maintenanceQuery'),
          activeMenu: '/mainworkorder/search'
        }
      },
      {
        path: 'mainworkorder/bom/:id(\\d+)',
        component: () => import('@/views/pms/iotmainworkorder/IotMainWorkOrderOptimize.vue'),
        name: 'IotMainWorkOrderOptimize',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:add',
          title: t('rem.FillMaintenanceOrder'),
          activeMenu: '/mainworkorder/bom'
        }
      },
      {
        path: 'mainworkorder/modify/:id(\\d+)',
        component: () => import('@/views/pms/iotmainworkorder/IotMainWorkOrderModify.vue'),
        name: 'IotMainWorkOrderModify',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:add',
          title: t('rem.modifyOrder'),
          activeMenu: '/mainworkorder/modify'
        }
      },
      {
        path: 'mainworkorder/add',
        component: () => import('@/views/pms/iotmainworkorder/IotMainWorkOrderAdd.vue'),
        name: 'IotMainWorkOrderAdd',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:add',
          title: t('rem.AddMaintenanceOrder'),
          activeMenu: '/mainworkorder/add'
        }
      },
      {
        path: 'mainworkorder/detail/:id(\\d+)',
        component: () => import('@/views/pms/iotmainworkorder/IotMainWorkOrderDetail.vue'),
        name: 'IotMainWorkOrderDetail',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:add',
          title: t('rem.MaintenanceOrderDetail'),
          activeMenu: '/mainworkorder/detail'
        }
      },
      {
        path: 'mainworkorder/device/detail/:orderId/:deviceId(\\d+)',
        component: () => import('@/views/pms/device/maintenance/MaintenanceDetail.vue'),
        name: 'IotDeviceMainWorkOrderDetail',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:add',
          title: t('rem.MaintenanceOrderDetail'),
          activeMenu: '/mainworkorder/detail'
        }
      }
    ]
  },

  {
    path: '/iotpms/iotmaterialreq',
    component: Layout,
    name: 'PmsMaterialReqCenter',
    meta: {
      hidden: true
    },
    children: [
      {
        path: 'materialreq',
        component: () => import('@/views/pms/iotmaterialrequisition/index.vue'),
        name: 'IotMaterialRequisition',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:menu',
          title: t('rem.MaterialRequisition'),
          activeMenu: '/materialreq/index'
        }
      },
      {
        path: 'materialreq/add',
        component: () => import('@/views/pms/iotmaterialrequisition/IotMaterialRequisitionAdd.vue'),
        name: 'IotMaterialRequisitionAdd',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:add',
          title: t('rem.MaterialRequisitionAdd'),
          activeMenu: '/materialreq/add'
        }
      },
      {
        path: 'materialreq/detail/:id(\\d+)',
        component: () => import('@/views/pms/iotmaterialrequisition/IotMaterialReqDetail.vue'),
        name: 'IotMaterialReqDetail',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:view',
          title: t('rem.CollectionFormDetails'),
          activeMenu: '/materialreq/detail'
        }
      }
    ]
  },

  {
    path: '/iotpms/rddailyreport',
    component: Layout,
    name: 'RDDailyReport',
    meta: {
      hidden: true,
      keepAlive: true
    },
    children: [
      {
        path: 'dailyReport',
        component: () => import('@/views/pms/iotrddailyreport/fillDailyReport.vue'),
        name: 'FillDailyReport',
        meta: {
          keepAlive: true,
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:menu',
          title: t('project.dailyReport'),
          activeMenu: '/dailyReport/index'
        }
      },
      {
        path: 'dailyReport-form',
        component: () => import('@/views/pms/iotrddailyreport/FillDailyReportForm.vue'),
        name: 'FillDailyReportForm',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:add',
          title: t('project.fillReport'),
          activeMenu: '/iotdayilyreport/FillDailyReport'
        }
      }
    ]
  },

  {
    path: '/iotpms/maincalendar',
    component: Layout,
    name: 'PmsMainCalendarCenter',
    meta: {
      hidden: true
    },
    children: [
      {
        path: 'maintenancecalendar',
        component: () => import('@/views/pms/iotmaincalendar/index.vue'),
        name: 'MaintenanceCalendar',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:menu',
          title: t('rem.MaintainCalendar'),
          activeMenu: '/maintenancecalendar/index'
        }
      }
    ]
  },
  {
    path: '/iotpms/iotmaintain',
    component: Layout,
    name: 'PmsMaintainCenter',
    meta: {
      hidden: true
    },
    children: [
      {
        path: 'maintain/add/:id?(\\d+)',
        component: () => import('@/views/pms/maintain/IotMaintainAddEdit.vue'),
        name: 'MaintainAdd',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:add',
          title: t('rem.RepairOrderAdd'),
          activeMenu: '/maintain/add'
        }
      },
      {
        path: 'maintain/record/:id?(\\d+)',
        component: () => import('@/views/pms/maintain/IotMaintainRecord.vue'),
        name: 'MaintainRecord',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:add',
          title: t('rem.MaintainRecord'),
          activeMenu: '/maintain/record'
        }
      },
      {
        path: 'maintain/edit/:id(\\d+)',
        component: () => import('@/views/pms/maintain/IotMaintainAddEdit.vue'),
        name: 'MaintainEdit',
        meta: {
          noCache: true,
          hidden: true,
          canTo: true,
          icon: 'ep:edit',
          title: t('rem.RepairOrderEdit'),
          activeMenu: '/maintain/edit'
        }
      },
      {
        path: 'maintain/detail/:id(\\d+)',
        component: () => import('@/views/pms/maintain/IotMaintainDetail.vue'),
        name: 'MaintainDetail',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:add',
          title: t('rem.RepairOrderDetail'),
          activeMenu: '/maintain/detail'
        }
      }
    ]
  },
  {
    path: '/iotpms/iotinspectroute',
    component: Layout,
    name: 'PmsInspectRouteCenter',
    meta: {
      hidden: true
    },
    children: [
      {
        path: 'route/add',
        component: () => import('@/views/pms/inspect/route/IotInspectRoute.vue'),
        name: 'RouteAdd',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:add',
          title: t('rem.InspectionRouteAdd'),
          activeMenu: '/route/add'
        }
      },
      {
        path: 'route/edit/:id(\\d+)',
        component: () => import('@/views/pms/inspect/route/IotInspectRoute.vue'),
        name: 'RouteEdit',
        meta: {
          noCache: true,
          hidden: true,
          canTo: true,
          icon: 'ep:edit',
          title: t('rem.InspectionRouteEdit'),
          activeMenu: '/route/edit'
        }
        // }
        // ,{
        //   path: 'route/detail/:id(\\d+)',
        //   component: () => import('@/views/pms/maintain/IotMaintainDetail.vue'),
        //   name: 'InspectRouteDetail',
        //   meta: {
        //     noCache: false,
        //     hidden: true,
        //     canTo: true,
        //     icon: 'ep:add',
        //     title: '巡检路线详情',
        //     activeMenu: '/route/detail'
        //   }
      }
    ]
  },

  {
    path: '/iotpms/iotinspectplan',
    component: Layout,
    name: 'PmsInspectPlanCenter',
    meta: {
      hidden: true
    },
    children: [
      {
        path: 'inspect/plan/add',
        component: () => import('@/views/pms/inspect/plan/IotInspectPlan.vue'),
        name: 'InspectPlanAdd',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:add',
          title: t('rem.InspectPlanAdd'),
          activeMenu: '/inspect/plan/add'
        }
      },
      {
        path: 'inspect/plan/edit/:id(\\d+)',
        component: () => import('@/views/pms/inspect/plan/IotInspectPlan.vue'),
        name: 'InspectPlanEdit',
        meta: {
          noCache: true,
          hidden: true,
          canTo: true,
          icon: 'ep:edit',
          title: t('rem.InspectPlanEdit'),
          activeMenu: '/inspect/plan/edit'
        }
        // }
        // ,{
        //   path: 'route/detail/:id(\\d+)',
        //   component: () => import('@/views/pms/maintain/IotMaintainDetail.vue'),
        //   name: 'InspectRouteDetail',
        //   meta: {
        //     noCache: false,
        //     hidden: true,
        //     canTo: true,
        //     icon: 'ep:add',
        //     title: '巡检路线详情',
        //     activeMenu: '/route/detail'
        //   }
      }
    ]
  },
  {
    path: '/iotpms/iotinspectorder',
    component: Layout,
    name: 'PmsInspectOrderCenter',
    meta: {
      hidden: true
    },
    children: [
      {
        path: 'inspect/order/detail/index/:deptId?/:status?/:createTime*',
        component: () => import('@/views/pms/inspect/order/detail/IotInspectOrderDetailStat.vue'),
        name: 'IotInspectOrderDetailStat',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:index',
          title: t('rem.InspectOrder'),
          activeMenu: '/inspect/order/detail/index'
        }
      },
      {
        path: 'inspect/order/index/:deptId?/:status?/:createTime*',
        component: () => import('@/views/pms/inspect/order/index.vue'),
        name: 'IotInspectOrdere',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:index',
          title: t('rem.InspectOrder'),
          activeMenu: '/inspect/order/index'
        }
      },
      {
        path: 'inspect/order/item/index/:deptId?/:status?/:createTime*',
        component: () => import('@/views/pms/inspect/order/detail/IotInspectOrderItemStat.vue'),
        name: 'IotInspectItemStat',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:index',
          title: t('rem.InspectOrder'),
          activeMenu: '/inspect/order/item/index'
        }
      },
      {
        path: 'inspect/order/add',
        component: () => import('@/views/pms/inspect/order/InspectOrderDetail.vue'),
        name: 'InspectOrderAdd',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:add',
          title: t('rem.InspectOrderAdd'),
          activeMenu: '/inspect/order/add'
        }
      },
      {
        path: 'inspect/order/edit/:id(\\d+)',
        component: () => import('@/views/pms/inspect/order/InspectOrderDetail.vue'),
        name: 'InspectOrderEdit',
        meta: {
          noCache: true,
          hidden: true,
          canTo: true,
          icon: 'ep:edit',
          title: t('rem.InspectPlanEdit'),
          activeMenu: '/inspect/order/edit'
        }
      },
      {
        path: '/inspect/order/detail/:id(\\d+)',
        component: () => import('@/views/pms/inspect/order/InspectOrderDetail.vue'),
        name: 'InspectOrderDetail',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:add',
          title: t('rem.InspectOrderDetail'),
          activeMenu: '/inspect/order/detail'
        }
      },
      {
        path: '/inspect/order/write/:id(\\d+)',
        component: () => import('@/views/pms/inspect/order/WriteOrder.vue'),
        name: 'InspectOrderWrite',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:add',
          title: t('rem.InspectOrderAdd'),
          activeMenu: '/inspect/order/write'
        }
      }
    ]
  },
  {
    path: '/failure',
    component: Layout,
    name: 'failure',
    meta: {
      hidden: true
    },
    children: [
      {
        path: 'failure/detail/:id',
        component: () => import('@/views/pms/failure/FailureInfo.vue'),
        name: 'FailureDetail',
        meta: {
          noCache: true,
          hidden: true,
          canTo: true,
          title: t('rem.FailureDetail'),
          activeMenu: '/failure/detail'
        }
      }
    ]
  },

  {
    path: '/user',
    component: Layout,
    name: 'UserInfo',
    meta: {
      hidden: true
    },
    children: [
      {
        path: 'profile',
        component: () => import('@/views/Profile/Index.vue'),
        name: 'Profile',
        meta: {
          canTo: true,
          hidden: true,
          noTagsView: false,
          icon: 'ep:user',
          title: t('common.profile')
        }
      },
      {
        path: 'notify-message',
        component: () => import('@/views/system/notify/my/index.vue'),
        name: 'MyNotifyMessage',
        meta: {
          canTo: true,
          hidden: true,
          noTagsView: false,
          icon: 'ep:message',
          title: '我的站内信'
        }
      }
    ]
  },
  {
    path: '/dict',
    component: Layout,
    name: 'dict',
    meta: {
      hidden: true
    },
    children: [
      {
        path: 'type/data/:dictType',
        component: () => import('@/views/system/dict/data/index.vue'),
        name: 'SystemDictData',
        meta: {
          title: '字典数据',
          noCache: true,
          hidden: true,
          canTo: true,
          icon: '',
          activeMenu: '/system/dict'
        }
      }
    ]
  },

  {
    path: '/codegen',
    component: Layout,
    name: 'CodegenEdit',
    meta: {
      hidden: true
    },
    children: [
      {
        path: 'edit',
        component: () => import('@/views/infra/codegen/EditTable.vue'),
        name: 'InfraCodegenEditTable',
        meta: {
          noCache: true,
          hidden: true,
          canTo: true,
          icon: 'ep:edit',
          title: '修改生成配置',
          activeMenu: 'infra/codegen/index'
        }
      }
    ]
  },
  {
    path: '/job',
    component: Layout,
    name: 'JobL',
    meta: {
      hidden: true
    },
    children: [
      {
        path: 'job-log',
        component: () => import('@/views/infra/job/logger/index.vue'),
        name: 'InfraJobLog',
        meta: {
          noCache: true,
          hidden: true,
          canTo: true,
          icon: 'ep:edit',
          title: '调度日志',
          activeMenu: 'infra/job/index'
        }
      }
    ]
  },
  {
    path: '/login',
    component: () => import('@/views/Login/Login.vue'),
    name: 'Login',
    meta: {
      hidden: true,
      title: t('router.login'),
      noTagsView: true
    }
  },
  {
    path: '/sso',
    component: () => import('@/views/Login/Login.vue'),
    name: 'SSOLogin',
    meta: {
      hidden: true,
      title: t('router.login'),
      noTagsView: true
    }
  },
  {
    path: '/social-login',
    component: () => import('@/views/Login/SocialLogin.vue'),
    name: 'SocialLogin',
    meta: {
      hidden: true,
      title: t('router.socialLogin'),
      noTagsView: true
    }
  },
  {
    path: '/403',
    component: () => import('@/views/Error/403.vue'),
    name: 'NoAccess',
    meta: {
      hidden: true,
      title: '403',
      noTagsView: true
    }
  },
  {
    path: '/404',
    component: () => import('@/views/Error/404.vue'),
    name: 'NoFound',
    meta: {
      hidden: true,
      title: '404',
      noTagsView: true
    }
  },
  {
    path: '/500',
    component: () => import('@/views/Error/500.vue'),
    name: 'Error',
    meta: {
      hidden: true,
      title: '500',
      noTagsView: true
    }
  },
  {
    path: '/supplier/product', // 商品中心
    component: Layout,
    name: 'SupplierCenter',
    meta: {
      hidden: true
    },
    children: [
      {
        path: 'supplier/detail/add',
        component: () => import('@/views/supplier/base/form/index.vue'),
        name: 'SupplierDetailAdd',
        meta: {
          noCache: false,
          hidden: true,
          canTo: true,
          icon: 'ep:edit',
          title: '供应商添加',
          activeMenu: '/supplier/base'
        }
      },
      {
        path: 'supplier/detail/edit/:id(\\d+)',
        component: () => import('@/views/supplier/base/form/index.vue'),
        name: 'SupplierDetailEdit',
        meta: {
          noCache: true,
          hidden: true,
          canTo: true,
          icon: 'ep:edit',
          title: '供应商编辑',
          activeMenu: '/supplier/base'
        }
      },
      {
        path: '/supplier/detail/info/:id(\\d+)',
        component: () => import('@/views/supplier/base/form/index.vue'),
        name: 'SupplierDetailInfo',
        meta: {
          noCache: true,
          hidden: true,
          canTo: true,
          icon: 'ep:view',
          title: '供应商详情',
          activeMenu: '/supplier/base'
        }
      },
      {
        path: 'supplier/approvalDetail/:id',
        name: 'SupplierApprovalInfo',
        meta: {
          title: '供应商审核详情',
          noCache: true,
          hidden: true,
          activeMenu: '/supplier/base'
        },
        component: () => import('@/views/supplier/approvaldetail/ApprovalDetail.vue')
      }
    ]
  },
  {
    path: '/bpm',
    component: Layout,
    name: 'bpm',
    meta: {
      hidden: true
    },
    children: [
      {
        path: 'manager/form/edit',
        component: () => import('@/views/bpm/form/editor/index.vue'),
        name: 'BpmFormEditor',
        meta: {
          noCache: true,
          hidden: true,
          canTo: true,
          title: '设计流程表单',
          activeMenu: '/bpm/manager/form'
        }
      },
      {
        path: 'manager/definition',
        component: () => import('@/views/bpm/model/definition/index.vue'),
        name: 'BpmProcessDefinition',
        meta: {
          noCache: true,
          hidden: true,
          canTo: true,
          title: '流程定义',
          activeMenu: '/bpm/manager/model'
        }
      },
      {
        path: 'process-instance/detail',
        component: () => import('@/views/bpm/processInstance/detail/index.vue'),
        name: 'BpmProcessInstanceDetail',
        meta: {
          noCache: true,
          hidden: true,
          canTo: true,
          title: '流程详情',
          activeMenu: '/bpm/task/my'
        },
        props: (route) => ({
          id: route.query.id,
          taskId: route.query.taskId,
          activityId: route.query.activityId
        })
      },
      {
        path: 'process-instance/report',
        component: () => import('@/views/bpm/processInstance/report/index.vue'),
        name: 'BpmProcessInstanceReport',
        meta: {
          noCache: true,
          hidden: true,
          canTo: true,
          title: '数据报表',
          activeMenu: '/bpm/manager/model'
        }
      },
      {
        path: 'oa/leave/create',
        component: () => import('@/views/bpm/oa/leave/create.vue'),
        name: 'OALeaveCreate',
        meta: {
          noCache: true,
          hidden: true,
          canTo: true,
          title: '发起 OA 请假',
          activeMenu: '/bpm/oa/leave'
        }
      },
      {
        path: 'oa/leave/detail',
        component: () => import('@/views/bpm/oa/leave/detail.vue'),
        name: 'OALeaveDetail',
        meta: {
          noCache: true,
          hidden: true,
          canTo: true,
          title: '查看 OA 请假',
          activeMenu: '/bpm/oa/leave'
        }
      },
      {
        path: 'manager/model/create',
        component: () => import('@/views/bpm/model/form/index.vue'),
        name: 'BpmModelCreate',
        meta: {
          noCache: true,
          hidden: true,
          canTo: true,
          title: '创建流程',
          activeMenu: '/bpm/manager/model'
        }
      },
      {
        path: 'manager/model/:type/:id',
        component: () => import('@/views/bpm/model/form/index.vue'),
        name: 'BpmModelUpdate',
        meta: {
          noCache: true,
          hidden: true,
          canTo: true,
          title: '修改流程',
          activeMenu: '/bpm/manager/model'
        }
      }
    ]
  },
  {
    path: '/mall/product', // 商品中心
    component: Layout,
    name: 'ProductCenter',
    meta: {
      hidden: true
    },
    children: [
      {
        path: 'spu/add',
        component: () => import('@/views/mall/product/spu/form/index.vue'),
        name: 'ProductSpuAdd',
        meta: {
          noCache: false, // 需要缓存
          hidden: true,
          canTo: true,
          icon: 'ep:edit',
          title: '商品添加',
          activeMenu: '/mall/product/spu'
        }
      },
      {
        path: 'spu/edit/:id(\\d+)',
        component: () => import('@/views/mall/product/spu/form/index.vue'),
        name: 'ProductSpuEdit',
        meta: {
          noCache: true,
          hidden: true,
          canTo: true,
          icon: 'ep:edit',
          title: '商品编辑',
          activeMenu: '/mall/product/spu'
        }
      },
      {
        path: 'spu/detail/:id(\\d+)',
        component: () => import('@/views/mall/product/spu/form/index.vue'),
        name: 'ProductSpuDetail',
        meta: {
          noCache: true,
          hidden: true,
          canTo: true,
          icon: 'ep:view',
          title: '商品详情',
          activeMenu: '/mall/product/spu'
        }
      },
      {
        path: 'property/value/:propertyId(\\d+)',
        component: () => import('@/views/mall/product/property/value/index.vue'),
        name: 'ProductPropertyValue',
        meta: {
          noCache: true,
          hidden: true,
          canTo: true,
          icon: 'ep:view',
          title: '商品属性值',
          activeMenu: '/product/property'
        }
      }
    ]
  },
  {
    path: '/mall/trade', // 交易中心
    component: Layout,
    name: 'TradeCenter',
    meta: {
      hidden: true
    },
    children: [
      {
        path: 'order/detail/:id(\\d+)',
        component: () => import('@/views/mall/trade/order/detail/index.vue'),
        name: 'TradeOrderDetail',
        meta: { title: '订单详情', icon: 'ep:view', activeMenu: '/mall/trade/order' }
      },
      {
        path: 'after-sale/detail/:id(\\d+)',
        component: () => import('@/views/mall/trade/afterSale/detail/index.vue'),
        name: 'TradeAfterSaleDetail',
        meta: { title: '退款详情', icon: 'ep:view', activeMenu: '/mall/trade/after-sale' }
      }
    ]
  },
  {
    path: '/member',
    component: Layout,
    name: 'MemberCenter',
    meta: { hidden: true },
    children: [
      {
        path: 'user/detail/:id',
        name: 'MemberUserDetail',
        meta: {
          title: '会员详情',
          noCache: true,
          hidden: true
        },
        component: () => import('@/views/member/user/detail/index.vue')
      }
    ]
  },
  {
    path: '/pay',
    component: Layout,
    name: 'pay',
    meta: { hidden: true },
    children: [
      {
        path: 'cashier',
        name: 'PayCashier',
        meta: {
          title: '收银台',
          noCache: true,
          hidden: true
        },
        component: () => import('@/views/pay/cashier/index.vue')
      }
    ]
  },
  // {
  //   path: '/device_monitor',
  //   component: Layout,
  //   name: 'kanban',
  //   meta: { hidden: true },
  //   children: [
  //     {
  //       path: 'kanban',
  //       name: 'DeviceKanban',
  //       meta: {
  //         title: '设备看板',
  //         noCache: true,
  //         hidden: true
  //       },
  //       component: () => import('@/views/pms/monitor/kanban.vue')
  //     }
  //   ]
  // },
  {
    path: '/kanban',
    component: Layout,
    name: 'kanban',
    meta: { hidden: true },
    children: [
      {
        path: 'monitor/kanban',
        name: 'Kanban',
        meta: {
          title: '设备看板',
          noCache: true,
          hidden: true,
          canTo: true,
          activeMenu: '/kanban/monitor/kanban'
        },
        component: () => import('@/views/pms/monitor/kanban.vue')
      },
      {
        path: 'monitor/kanbanOther',
        name: 'KanbanOther',
        meta: {
          title: '设备看板',
          noCache: true,
          hidden: true
        },
        component: () => import('@/views/pms/monitor/kanban2.vue')
      }
    ]
  },
  {
    path: '/diy',
    name: 'DiyCenter',
    meta: { hidden: true },
    component: Layout,
    children: [
      {
        path: 'template/decorate/:id',
        name: 'DiyTemplateDecorate',
        meta: {
          title: '模板装修',
          noCache: true,
          hidden: true,
          activeMenu: '/mall/promotion/diy/template'
        },
        component: () => import('@/views/mall/promotion/diy/template/decorate.vue')
      },
      {
        path: 'page/decorate/:id',
        name: 'DiyPageDecorate',
        meta: {
          title: '页面装修',
          noCache: true,
          hidden: true,
          activeMenu: '/mall/promotion/diy/page'
        },
        component: () => import('@/views/mall/promotion/diy/page/decorate.vue')
      }
    ]
  },
  {
    path: '/crm',
    component: Layout,
    name: 'CrmCenter',
    meta: { hidden: true },
    children: [
      {
        path: 'clue/detail/:id',
        name: 'CrmClueDetail',
        meta: {
          title: '线索详情',
          noCache: true,
          hidden: true,
          activeMenu: '/crm/clue'
        },
        component: () => import('@/views/crm/clue/detail/index.vue')
      },
      {
        path: 'customer/detail/:id',
        name: 'CrmCustomerDetail',
        meta: {
          title: '客户详情',
          noCache: true,
          hidden: true,
          activeMenu: '/crm/customer'
        },
        component: () => import('@/views/crm/customer/detail/index.vue')
      },
      {
        path: 'business/detail/:id',
        name: 'CrmBusinessDetail',
        meta: {
          title: '商机详情',
          noCache: true,
          hidden: true,
          activeMenu: '/crm/business'
        },
        component: () => import('@/views/crm/business/detail/index.vue')
      },
      {
        path: 'contract/detail/:id',
        name: 'CrmContractDetail',
        meta: {
          title: '合同详情',
          noCache: true,
          hidden: true,
          activeMenu: '/crm/contract'
        },
        component: () => import('@/views/crm/contract/detail/index.vue')
      },
      {
        path: 'receivable-plan/detail/:id',
        name: 'CrmReceivablePlanDetail',
        meta: {
          title: '回款计划详情',
          noCache: true,
          hidden: true,
          activeMenu: '/crm/receivable-plan'
        },
        component: () => import('@/views/crm/receivable/plan/detail/index.vue')
      },
      {
        path: 'receivable/detail/:id',
        name: 'CrmReceivableDetail',
        meta: {
          title: '回款详情',
          noCache: true,
          hidden: true,
          activeMenu: '/crm/receivable'
        },
        component: () => import('@/views/crm/receivable/detail/index.vue')
      },
      {
        path: 'contact/detail/:id',
        name: 'CrmContactDetail',
        meta: {
          title: '联系人详情',
          noCache: true,
          hidden: true,
          activeMenu: '/crm/contact'
        },
        component: () => import('@/views/crm/contact/detail/index.vue')
      },
      {
        path: 'product/detail/:id',
        name: 'CrmProductDetail',
        meta: {
          title: '产品详情',
          noCache: true,
          hidden: true,
          activeMenu: '/crm/product'
        },
        component: () => import('@/views/crm/product/detail/index.vue')
      }
    ]
  },
  {
    path: '/ai',
    component: Layout,
    name: 'Ai',
    meta: {
      hidden: true
    },
    children: [
      {
        path: 'image/square',
        component: () => import('@/views/ai/image/square/index.vue'),
        name: 'AiImageSquare',
        meta: {
          title: '绘图作品',
          icon: 'ep:home-filled',
          noCache: false
        }
      },
      {
        path: 'knowledge/document',
        component: () => import('@/views/ai/knowledge/document/index.vue'),
        name: 'AiKnowledgeDocument',
        meta: {
          title: '知识库文档',
          icon: 'ep:document',
          noCache: false,
          activeMenu: '/ai/knowledge'
        }
      },
      {
        path: 'knowledge/document/create',
        component: () => import('@/views/ai/knowledge/document/form/index.vue'),
        name: 'AiKnowledgeDocumentCreate',
        meta: {
          title: '创建文档',
          icon: 'ep:plus',
          noCache: true,
          hidden: true,
          activeMenu: '/ai/knowledge'
        }
      },
      {
        path: 'knowledge/document/update',
        component: () => import('@/views/ai/knowledge/document/form/index.vue'),
        name: 'AiKnowledgeDocumentUpdate',
        meta: {
          title: '修改文档',
          icon: 'ep:edit',
          noCache: true,
          hidden: true,
          activeMenu: '/ai/knowledge'
        }
      },
      {
        path: 'knowledge/retrieval',
        component: () => import('@/views/ai/knowledge/knowledge/retrieval/index.vue'),
        name: 'AiKnowledgeRetrieval',
        meta: {
          title: '文档召回测试',
          icon: 'ep:search',
          noCache: true,
          hidden: true,
          activeMenu: '/ai/knowledge'
        }
      },
      {
        path: 'knowledge/segment',
        component: () => import('@/views/ai/knowledge/segment/index.vue'),
        name: 'AiKnowledgeSegment',
        meta: {
          title: '知识库分段',
          icon: 'ep:tickets',
          noCache: true,
          hidden: true,
          activeMenu: '/ai/knowledge'
        }
      },
      {
        path: 'console/workflow/create',
        component: () => import('@/views/ai/workflow/form/index.vue'),
        name: 'AiWorkflowCreate',
        meta: {
          noCache: true,
          hidden: true,
          canTo: true,
          title: '设计 AI 工作流',
          activeMenu: '/ai/console/workflow'
        }
      },
      {
        path: 'console/workflow/:type/:id',
        component: () => import('@/views/ai/workflow/form/index.vue'),
        name: 'AiWorkflowUpdate',
        meta: {
          noCache: true,
          hidden: true,
          canTo: true,
          title: '设计 AI 工作流',
          activeMenu: '/ai/console/workflow'
        }
      }
    ]
  },
  {
    path: '/:pathMatch(.*)*',
    component: () => import('@/views/Error/404.vue'),
    name: '',
    meta: {
      title: '404',
      hidden: true,
      breadcrumb: false
    }
  },
  {
    path: '/iot',
    component: Layout,
    name: 'IOT',
    meta: {
      hidden: true
    },
    children: [
      {
        path: 'product/product/detail/:id',
        name: 'IoTProductDetail',
        meta: {
          title: '产品详情',
          noCache: true,
          hidden: true,
          activeMenu: '/iot/device/product'
        },
        component: () => import('@/views/iot/product/product/detail/index.vue')
      },
      {
        path: 'device/detail/:id',
        name: 'IoTDeviceDetail',
        meta: {
          title: '设备详情',
          noCache: true,
          hidden: true,
          activeMenu: '/iot/device/device'
        },
        component: () => import('@/views/iot/device/device/detail/index.vue')
      }
      // {
      //   path: 'plugin/detail/:id',
      //   name: 'IoTPluginDetail',
      //   meta: {
      //     title: '插件详情',
      //     noCache: true,
      //     hidden: true,
      //     activeMenu: '/iot/plugin'
      //   },
      //   component: () => import('@/views/iot/plugin/detail/index.vue')
      // }
    ]
  },

  // 视频中心**********************************
  {
    path: '/videocenter',
    component: Layout,
    name: 'VideoCenter',
    meta: {
      hidden: true
      // keepAlive: true,
      // alwaysShow: true,
      // title: '视频中心',
      // icon: 'ep:camera'
    },
    children: [
      // {
      //   path: 'category',
      //   component: () => import('@/views/pms/video_center/category/index.vue'),
      //   name: 'VideoCenterCategory',
      //   meta: {
      //     title: '产品分类',
      //     hidden: false,
      //     icon: 'ep:full-screen'
      //   }
      // },
      // {
      //   path: 'product',
      //   component: () => import('@/views/pms/video_center/product/index.vue'),
      //   name: 'VideoCenterProduct',
      //   meta: {
      //     title: '产品管理',
      //     hidden: false,
      //     icon: 'ep:full-screen'
      //   }
      // },

      // 协议管理

      //  {
      //   path: 'protocol',
      //   component: () => import('@/views/pms/video_center/protocol/index.vue'),
      //   name: 'VideoCenterProtocol',
      //   meta: {
      //     title: '协议管理',
      //     hidden: false,
      //     icon: 'ep:full-screen'
      //   }
      // },

      {
        path: 'product/product-edit',
        component: () => import('@/views/pms/video_center/product/product-edit.vue'),
        name: 'VideoCenterProductEdit',
        meta: {
          title: '产品编辑/新增',
          hidden: true
        }
      },
      // {
      //   path: 'device',
      //   component: () => import('@/views/pms/video_center/device/index.vue'),
      //   name: 'VideoCenterDevice',
      //   meta: {
      //     title: '设备管理',
      //     hidden: false,
      //     icon: 'ep:monitor',
      //     noCache: false
      //   }
      // },
      // 新增/编辑 设备
      {
        path: 'device/device-edit',
        component: () => import('@/views/pms/video_center/device/device-edit.vue'),
        name: 'VideoCenterDeviceEdit',
        meta: {
          title: '设备编辑/新增',
          hidden: true
        }
      }
      // {
      //   path: 'splitview',
      //   component: () => import('@/views/pms/video_center/sip/splitview.vue'),
      //   name: 'VideoCenterSplitview',
      //   meta: {
      //     title: '分屏显示',
      //     hidden: false,
      //     icon: 'ep:full-screen'
      //   }
      // },
      // {
      //   path: 'channelManagement',
      //   component: () => import('@/views/pms/video_center/sip/index.vue'),
      //   name: 'VideoCenterProductList',
      //   meta: {
      //     title: '通道管理',
      //     hidden: false,
      //     icon: 'ep:box'
      //   }
      // },
      // {
      //   path: 'mediaServer',
      //   component: () => import('@/views/pms/video_center/sip/mediaServer.vue'),
      //   name: 'VideoCenterMediaServer',
      //   meta: {
      //     title: '视频配置',
      //     hidden: false,
      //     icon: 'ep:setting'
      //   }
      // }
    ]
  },

  // qhse事故事件上报详情
  {
    path: '/qhse',
    component: Layout,
    name: 'Qhse',
    meta: {
      hidden: true
    },
    children: [
      {
        path: 'qhse_faultReport/detail',
        component: () => import('@/views/pms/qhse/faultReport/QhseFaultReportInfo.vue'),
        name: 'QhseFaultReportDetail',
        meta: {
          title: '事故事件详情',
          hidden: true
        }
      },
      {
        path: 'month_report/add/:id',
        component: () => import('@/views/pms/qhse/monthlyReport/MonthlyReportAdd.vue'),
        name: 'MonthlyReportAdd',
        meta: {
          noCache: true,
          canto: true,
          icon: 'ep:plus',
          title: '月报填报',
          hidden: true
        }
      },
      {
        path: 'month_report/detail/:id',
        component: () => import('@/views/pms/qhse/monthlyReport/MonthlyReport.vue'),
        name: 'MonthlyReportInfo',
        meta: {
          noCache: true,
          canto: true,
          icon: 'ep:view',
          title: '月报详情',
          hidden: true
        }
      }
    ]
  }
]

export default remainingRouter
