|
@@ -30,271 +30,289 @@ import Layout from '@/layout'
|
|
|
|
|
|
// 公共路由
|
|
|
export const constantRoutes = [{
|
|
|
- path: '/redirect',
|
|
|
- component: Layout,
|
|
|
- hidden: true,
|
|
|
- children: [{
|
|
|
- path: '/redirect/:path(.*)',
|
|
|
- component: () => import('@/views/redirect')
|
|
|
- }]
|
|
|
-},
|
|
|
-{
|
|
|
- path: '/login',
|
|
|
- component: () => import('@/views/login'),
|
|
|
- hidden: true
|
|
|
-},
|
|
|
-{
|
|
|
- path: '/register',
|
|
|
- component: () => import('@/views/register'),
|
|
|
- hidden: true
|
|
|
-},
|
|
|
-{
|
|
|
- path: '/404',
|
|
|
- component: () => import('@/views/error/404'),
|
|
|
- hidden: true
|
|
|
-},
|
|
|
-{
|
|
|
- path: '/401',
|
|
|
- component: () => import('@/views/error/401'),
|
|
|
- hidden: true
|
|
|
-},
|
|
|
-{
|
|
|
- path: '',
|
|
|
- component: Layout,
|
|
|
- redirect: 'index',
|
|
|
- children: [{
|
|
|
- path: 'index',
|
|
|
- component: () => import('@/views/index'),
|
|
|
- name: 'Index',
|
|
|
- meta: {
|
|
|
- title: '首页',
|
|
|
- icon: 'dashboard',
|
|
|
- affix: true
|
|
|
- }
|
|
|
- }]
|
|
|
-},
|
|
|
-{
|
|
|
- path: '/user',
|
|
|
- component: Layout,
|
|
|
- hidden: true,
|
|
|
- redirect: 'noredirect',
|
|
|
- children: [{
|
|
|
- path: 'profile',
|
|
|
- component: () => import('@/views/system/user/profile/index'),
|
|
|
- name: 'Profile',
|
|
|
- meta: {
|
|
|
- title: '个人中心',
|
|
|
- icon: 'user'
|
|
|
- }
|
|
|
- }]
|
|
|
-}]
|
|
|
+ path: '/redirect',
|
|
|
+ component: Layout,
|
|
|
+ hidden: true,
|
|
|
+ children: [{
|
|
|
+ path: '/redirect/:path(.*)',
|
|
|
+ component: () => import('@/views/redirect')
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: '/login',
|
|
|
+ component: () => import('@/views/login'),
|
|
|
+ hidden: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: '/register',
|
|
|
+ component: () => import('@/views/register'),
|
|
|
+ hidden: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: '/404',
|
|
|
+ component: () => import('@/views/error/404'),
|
|
|
+ hidden: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: '/401',
|
|
|
+ component: () => import('@/views/error/401'),
|
|
|
+ hidden: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: '',
|
|
|
+ component: Layout,
|
|
|
+ redirect: 'index',
|
|
|
+ children: [{
|
|
|
+ path: 'index',
|
|
|
+ component: () => import('@/views/index'),
|
|
|
+ name: 'Index',
|
|
|
+ meta: {
|
|
|
+ title: '首页',
|
|
|
+ icon: 'dashboard',
|
|
|
+ affix: true
|
|
|
+ }
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: '/user',
|
|
|
+ component: Layout,
|
|
|
+ hidden: true,
|
|
|
+ redirect: 'noredirect',
|
|
|
+ children: [{
|
|
|
+ path: 'profile',
|
|
|
+ component: () => import('@/views/system/user/profile/index'),
|
|
|
+ name: 'Profile',
|
|
|
+ meta: {
|
|
|
+ title: '个人中心',
|
|
|
+ icon: 'user'
|
|
|
+ }
|
|
|
+ }]
|
|
|
+ }
|
|
|
+]
|
|
|
|
|
|
// 动态路由,基于用户权限动态去加载
|
|
|
export const dynamicRoutes = [{
|
|
|
- path: '/system/user-auth',
|
|
|
- component: Layout,
|
|
|
- hidden: true,
|
|
|
- permissions: ['system:user:edit'],
|
|
|
- children: [{
|
|
|
- path: 'role/:userId(\\d+)',
|
|
|
- component: () => import('@/views/system/user/authRole'),
|
|
|
- name: 'AuthRole',
|
|
|
- meta: {
|
|
|
- title: '分配角色',
|
|
|
- activeMenu: '/system/user'
|
|
|
- }
|
|
|
- }]
|
|
|
-},
|
|
|
-{
|
|
|
- path: '/system/role-auth',
|
|
|
- component: Layout,
|
|
|
- hidden: true,
|
|
|
- permissions: ['system:role:edit'],
|
|
|
- children: [{
|
|
|
- path: 'user/:roleId(\\d+)',
|
|
|
- component: () => import('@/views/system/role/authUser'),
|
|
|
- name: 'AuthUser',
|
|
|
- meta: {
|
|
|
- title: '分配用户',
|
|
|
- activeMenu: '/system/role'
|
|
|
- }
|
|
|
- }]
|
|
|
-},
|
|
|
-{
|
|
|
- path: '/system/dict-data',
|
|
|
- component: Layout,
|
|
|
- hidden: true,
|
|
|
- permissions: ['system:dict:list'],
|
|
|
- children: [{
|
|
|
- path: 'index/:dictId(\\d+)',
|
|
|
- component: () => import('@/views/system/dict/data'),
|
|
|
- name: 'Data',
|
|
|
- meta: {
|
|
|
- title: '字典数据',
|
|
|
- activeMenu: '/system/dict'
|
|
|
- }
|
|
|
- }]
|
|
|
-},
|
|
|
-{
|
|
|
- path: '/monitor/job-log',
|
|
|
- component: Layout,
|
|
|
- hidden: true,
|
|
|
- permissions: ['monitor:job:list'],
|
|
|
- children: [{
|
|
|
- path: 'index',
|
|
|
- component: () => import('@/views/monitor/job/log'),
|
|
|
- name: 'JobLog',
|
|
|
- meta: {
|
|
|
- title: '调度日志',
|
|
|
- activeMenu: '/monitor/job'
|
|
|
- }
|
|
|
- }]
|
|
|
-},
|
|
|
-{
|
|
|
- path: '/tool/gen-edit',
|
|
|
- component: Layout,
|
|
|
- hidden: true,
|
|
|
- permissions: ['tool:gen:edit'],
|
|
|
- children: [{
|
|
|
- path: 'index/:tableId(\\d+)',
|
|
|
- component: () => import('@/views/tool/gen/editTable'),
|
|
|
- name: 'GenEdit',
|
|
|
- meta: {
|
|
|
- title: '修改生成配置',
|
|
|
- activeMenu: '/tool/gen'
|
|
|
- }
|
|
|
- }]
|
|
|
-},
|
|
|
-{
|
|
|
- path: '/content',
|
|
|
- component: Layout,
|
|
|
- hidden: true,
|
|
|
- permissions: ['content:banner:list'],
|
|
|
- children: [{
|
|
|
- path: 'banner/:id(\\d+)',
|
|
|
- component: () => import('@/views/content/banner/detail'),
|
|
|
- name: 'detail',
|
|
|
- meta: {
|
|
|
- title: '详情页',
|
|
|
- activeMenu: '/content/banner'
|
|
|
- }
|
|
|
- }]
|
|
|
-},
|
|
|
-// 设备管理
|
|
|
-// 设备类型
|
|
|
-{
|
|
|
- path: '/device',
|
|
|
- component: Layout,
|
|
|
- hidden: true,
|
|
|
- permissions: ['device:list:list'],
|
|
|
- children: [{
|
|
|
- path: 'list/detail',
|
|
|
- component: () => import('@/views/device/list/detail'),
|
|
|
- name: 'detail',
|
|
|
- meta: {
|
|
|
- title: '详情页',
|
|
|
- activeMenu: '/device/list'
|
|
|
- }
|
|
|
- }]
|
|
|
-},
|
|
|
-// 音频管理
|
|
|
-// 音乐专辑
|
|
|
-{
|
|
|
- path: '/music',
|
|
|
- component: Layout,
|
|
|
- hidden: true,
|
|
|
- permissions: ['music:album:list'],
|
|
|
- children: [{
|
|
|
- path: 'album/detail',
|
|
|
- component: () => import('@/views/music/album/detail'),
|
|
|
- name: 'detail',
|
|
|
- meta: {
|
|
|
- title: '详情页',
|
|
|
- activeMenu: '/music/album'
|
|
|
- }
|
|
|
- }]
|
|
|
-},
|
|
|
-// 歌曲列表
|
|
|
-{
|
|
|
- path: '/music',
|
|
|
- component: Layout,
|
|
|
- hidden: true,
|
|
|
- permissions: ['music:list:list'],
|
|
|
- children: [{
|
|
|
- path: 'list/detail',
|
|
|
- component: () => import('@/views/music/list/detail'),
|
|
|
- name: 'detail',
|
|
|
- meta: {
|
|
|
- title: `详情页`,
|
|
|
- activeMenu: '/music/list'
|
|
|
- }
|
|
|
- }]
|
|
|
-},
|
|
|
-// 播客专辑
|
|
|
-{
|
|
|
- path: '/music',
|
|
|
- component: Layout,
|
|
|
- hidden: true,
|
|
|
- permissions: ['music:blog:list'],
|
|
|
- children: [{
|
|
|
- path: 'blog/detail',
|
|
|
- component: () => import('@/views/music/blog/detail'),
|
|
|
- name: 'detail',
|
|
|
- meta: {
|
|
|
- title: `详情页`,
|
|
|
- activeMenu: '/music/blog'
|
|
|
- }
|
|
|
- }]
|
|
|
-},
|
|
|
-// 节目列表
|
|
|
-{
|
|
|
- path: '/music',
|
|
|
- component: Layout,
|
|
|
- hidden: true,
|
|
|
- permissions: ['music:program:list'],
|
|
|
- children: [{
|
|
|
- path: 'program/detail',
|
|
|
- component: () => import('@/views/music/program/detail'),
|
|
|
- name: 'detail',
|
|
|
- meta: {
|
|
|
- title: `详情页`,
|
|
|
- activeMenu: '/music/program'
|
|
|
- }
|
|
|
- }]
|
|
|
-},
|
|
|
-// 广播电台
|
|
|
-{
|
|
|
- path: '/music',
|
|
|
- component: Layout,
|
|
|
- hidden: true,
|
|
|
- permissions: ['music:radio:list'],
|
|
|
- children: [{
|
|
|
- path: 'radio/detail',
|
|
|
- component: () => import('@/views/music/radio/detail'),
|
|
|
- name: 'detail',
|
|
|
- meta: {
|
|
|
- title: `详情页`,
|
|
|
- activeMenu: '/music/radio'
|
|
|
- }
|
|
|
- }]
|
|
|
-},
|
|
|
-// 频道管理
|
|
|
-// 官方推荐
|
|
|
-{
|
|
|
- path: '/channel',
|
|
|
- component: Layout,
|
|
|
- hidden: true,
|
|
|
- permissions: ['channel:official:list'],
|
|
|
- children: [{
|
|
|
- path: 'official/detail',
|
|
|
- component: () => import('@/views/channel/official/detail'),
|
|
|
- name: 'detail',
|
|
|
- meta: {
|
|
|
- title: `详情页`,
|
|
|
- activeMenu: '/channel/official'
|
|
|
- }
|
|
|
- }]
|
|
|
-}]
|
|
|
+ path: '/system/user-auth',
|
|
|
+ component: Layout,
|
|
|
+ hidden: true,
|
|
|
+ permissions: ['system:user:edit'],
|
|
|
+ children: [{
|
|
|
+ path: 'role/:userId(\\d+)',
|
|
|
+ component: () => import('@/views/system/user/authRole'),
|
|
|
+ name: 'AuthRole',
|
|
|
+ meta: {
|
|
|
+ title: '分配角色',
|
|
|
+ activeMenu: '/system/user'
|
|
|
+ }
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: '/system/role-auth',
|
|
|
+ component: Layout,
|
|
|
+ hidden: true,
|
|
|
+ permissions: ['system:role:edit'],
|
|
|
+ children: [{
|
|
|
+ path: 'user/:roleId(\\d+)',
|
|
|
+ component: () => import('@/views/system/role/authUser'),
|
|
|
+ name: 'AuthUser',
|
|
|
+ meta: {
|
|
|
+ title: '分配用户',
|
|
|
+ activeMenu: '/system/role'
|
|
|
+ }
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: '/system/dict-data',
|
|
|
+ component: Layout,
|
|
|
+ hidden: true,
|
|
|
+ permissions: ['system:dict:list'],
|
|
|
+ children: [{
|
|
|
+ path: 'index/:dictId(\\d+)',
|
|
|
+ component: () => import('@/views/system/dict/data'),
|
|
|
+ name: 'Data',
|
|
|
+ meta: {
|
|
|
+ title: '字典数据',
|
|
|
+ activeMenu: '/system/dict'
|
|
|
+ }
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: '/monitor/job-log',
|
|
|
+ component: Layout,
|
|
|
+ hidden: true,
|
|
|
+ permissions: ['monitor:job:list'],
|
|
|
+ children: [{
|
|
|
+ path: 'index',
|
|
|
+ component: () => import('@/views/monitor/job/log'),
|
|
|
+ name: 'JobLog',
|
|
|
+ meta: {
|
|
|
+ title: '调度日志',
|
|
|
+ activeMenu: '/monitor/job'
|
|
|
+ }
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: '/tool/gen-edit',
|
|
|
+ component: Layout,
|
|
|
+ hidden: true,
|
|
|
+ permissions: ['tool:gen:edit'],
|
|
|
+ children: [{
|
|
|
+ path: 'index/:tableId(\\d+)',
|
|
|
+ component: () => import('@/views/tool/gen/editTable'),
|
|
|
+ name: 'GenEdit',
|
|
|
+ meta: {
|
|
|
+ title: '修改生成配置',
|
|
|
+ activeMenu: '/tool/gen'
|
|
|
+ }
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: '/content',
|
|
|
+ component: Layout,
|
|
|
+ hidden: true,
|
|
|
+ permissions: ['content:banner:list'],
|
|
|
+ children: [{
|
|
|
+ path: 'banner/:id(\\d+)',
|
|
|
+ component: () => import('@/views/content/banner/detail'),
|
|
|
+ name: 'detail',
|
|
|
+ meta: {
|
|
|
+ title: '详情页',
|
|
|
+ activeMenu: '/content/banner'
|
|
|
+ }
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ // 设备管理
|
|
|
+ // 设备类型
|
|
|
+ {
|
|
|
+ path: '/device',
|
|
|
+ component: Layout,
|
|
|
+ hidden: true,
|
|
|
+ permissions: ['device:list:list'],
|
|
|
+ children: [{
|
|
|
+ path: 'list/detail',
|
|
|
+ component: () => import('@/views/device/list/detail'),
|
|
|
+ name: 'detail',
|
|
|
+ meta: {
|
|
|
+ title: '详情页',
|
|
|
+ activeMenu: '/device/list'
|
|
|
+ }
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ // 设备升级
|
|
|
+ {
|
|
|
+ path: '/device',
|
|
|
+ component: Layout,
|
|
|
+ hidden: true,
|
|
|
+ permissions: ['device:version:list'],
|
|
|
+ children: [{
|
|
|
+ path: 'version/detail',
|
|
|
+ component: () => import('@/views/device/version/detail'),
|
|
|
+ name: 'detail',
|
|
|
+ meta: {
|
|
|
+ title: '详情页',
|
|
|
+ activeMenu: '/device/version'
|
|
|
+ }
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ // 音频管理
|
|
|
+ // 音乐专辑
|
|
|
+ {
|
|
|
+ path: '/music',
|
|
|
+ component: Layout,
|
|
|
+ hidden: true,
|
|
|
+ permissions: ['music:album:list'],
|
|
|
+ children: [{
|
|
|
+ path: 'album/detail',
|
|
|
+ component: () => import('@/views/music/album/detail'),
|
|
|
+ name: 'detail',
|
|
|
+ meta: {
|
|
|
+ title: '详情页',
|
|
|
+ activeMenu: '/music/album'
|
|
|
+ }
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ // 歌曲列表
|
|
|
+ {
|
|
|
+ path: '/music',
|
|
|
+ component: Layout,
|
|
|
+ hidden: true,
|
|
|
+ permissions: ['music:list:list'],
|
|
|
+ children: [{
|
|
|
+ path: 'list/detail',
|
|
|
+ component: () => import('@/views/music/list/detail'),
|
|
|
+ name: 'detail',
|
|
|
+ meta: {
|
|
|
+ title: `详情页`,
|
|
|
+ activeMenu: '/music/list'
|
|
|
+ }
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ // 播客专辑
|
|
|
+ {
|
|
|
+ path: '/music',
|
|
|
+ component: Layout,
|
|
|
+ hidden: true,
|
|
|
+ permissions: ['music:blog:list'],
|
|
|
+ children: [{
|
|
|
+ path: 'blog/detail',
|
|
|
+ component: () => import('@/views/music/blog/detail'),
|
|
|
+ name: 'detail',
|
|
|
+ meta: {
|
|
|
+ title: `详情页`,
|
|
|
+ activeMenu: '/music/blog'
|
|
|
+ }
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ // 节目列表
|
|
|
+ {
|
|
|
+ path: '/music',
|
|
|
+ component: Layout,
|
|
|
+ hidden: true,
|
|
|
+ permissions: ['music:program:list'],
|
|
|
+ children: [{
|
|
|
+ path: 'program/detail',
|
|
|
+ component: () => import('@/views/music/program/detail'),
|
|
|
+ name: 'detail',
|
|
|
+ meta: {
|
|
|
+ title: `详情页`,
|
|
|
+ activeMenu: '/music/program'
|
|
|
+ }
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ // 广播电台
|
|
|
+ {
|
|
|
+ path: '/music',
|
|
|
+ component: Layout,
|
|
|
+ hidden: true,
|
|
|
+ permissions: ['music:radio:list'],
|
|
|
+ children: [{
|
|
|
+ path: 'radio/detail',
|
|
|
+ component: () => import('@/views/music/radio/detail'),
|
|
|
+ name: 'detail',
|
|
|
+ meta: {
|
|
|
+ title: `详情页`,
|
|
|
+ activeMenu: '/music/radio'
|
|
|
+ }
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ // 频道管理
|
|
|
+ // 官方推荐
|
|
|
+ {
|
|
|
+ path: '/channel',
|
|
|
+ component: Layout,
|
|
|
+ hidden: true,
|
|
|
+ permissions: ['channel:official:list'],
|
|
|
+ children: [{
|
|
|
+ path: 'official/detail',
|
|
|
+ component: () => import('@/views/channel/official/detail'),
|
|
|
+ name: 'detail',
|
|
|
+ meta: {
|
|
|
+ title: `详情页`,
|
|
|
+ activeMenu: '/channel/official'
|
|
|
+ }
|
|
|
+ }]
|
|
|
+ }
|
|
|
+]
|
|
|
|
|
|
export default new Router({
|
|
|
mode: 'history', // 去掉url中的#
|