|
@@ -24,219 +24,219 @@ import Layout from '@/layout/index.vue';
|
|
|
}
|
|
|
*/
|
|
|
declare module 'vue-router' {
|
|
|
- interface RouteMeta {
|
|
|
- hidden?: boolean;
|
|
|
- title?: string;
|
|
|
- icon?: string;
|
|
|
- elSvgIcon?: string;
|
|
|
- permissions?: string[];
|
|
|
- }
|
|
|
- interface _RouteRecordBase {
|
|
|
- hidden?: boolean;
|
|
|
- parentPath?: string;
|
|
|
- permissions?: string[];
|
|
|
- }
|
|
|
- interface _RouteLocationBase {
|
|
|
- title?: string;
|
|
|
- }
|
|
|
+ interface RouteMeta {
|
|
|
+ hidden?: boolean;
|
|
|
+ title?: string;
|
|
|
+ icon?: string;
|
|
|
+ elSvgIcon?: string;
|
|
|
+ permissions?: string[];
|
|
|
+ }
|
|
|
+ interface _RouteRecordBase {
|
|
|
+ hidden?: boolean;
|
|
|
+ parentPath?: string;
|
|
|
+ permissions?: string[];
|
|
|
+ }
|
|
|
+ interface _RouteLocationBase {
|
|
|
+ title?: string;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// 公共路由
|
|
|
export const constantRoutes: RouteRecordRaw[] = [
|
|
|
- {
|
|
|
- path: '/redirect',
|
|
|
- component: Layout,
|
|
|
- hidden: true,
|
|
|
- children: [
|
|
|
- {
|
|
|
- path: '/redirect/:path(.*)',
|
|
|
- component: () => import('@/views/redirect/index.vue'),
|
|
|
- },
|
|
|
- ],
|
|
|
- },
|
|
|
- {
|
|
|
- path: '/login',
|
|
|
- component: () => import('@/views/login.vue'),
|
|
|
- hidden: true,
|
|
|
- },
|
|
|
- {
|
|
|
- path: '/register',
|
|
|
- component: () => import('@/views/register.vue'),
|
|
|
- hidden: true,
|
|
|
- },
|
|
|
- {
|
|
|
- path: '/:pathMatch(.*)*',
|
|
|
- component: () => import('@/views/error/404.vue'),
|
|
|
- hidden: true,
|
|
|
- },
|
|
|
- {
|
|
|
- path: '/401',
|
|
|
- component: () => import('@/views/error/401.vue'),
|
|
|
- hidden: true,
|
|
|
- },
|
|
|
- {
|
|
|
- path: '',
|
|
|
- component: Layout,
|
|
|
- redirect: '/index',
|
|
|
- children: [
|
|
|
- {
|
|
|
- path: '/index',
|
|
|
- component: () => import('@/views/index.vue'),
|
|
|
- name: 'index',
|
|
|
- meta: { title: '首页', activeMenu: '/index', icon: 'user' },
|
|
|
- },
|
|
|
- ],
|
|
|
- },
|
|
|
- {
|
|
|
- path: '/user',
|
|
|
- component: Layout,
|
|
|
- hidden: true,
|
|
|
- redirect: 'noredirect',
|
|
|
- children: [
|
|
|
- {
|
|
|
- path: 'profile',
|
|
|
- component: () => import('@/views/system/user/profile/index.vue'),
|
|
|
- name: 'Profile',
|
|
|
- meta: { title: '个人中心', icon: 'user' },
|
|
|
- },
|
|
|
- ],
|
|
|
- },
|
|
|
- // TODO 临时路由建立,仅供静态页面搭建使用
|
|
|
- {
|
|
|
- path: '/illegalInformation',
|
|
|
- component: Layout,
|
|
|
- children: [
|
|
|
- {
|
|
|
- path: 'address',
|
|
|
- component: () => import('@/views/addressBook/index.vue'),
|
|
|
- name: 'address',
|
|
|
- meta: { title: '违法信息通报通讯录', icon: 'user' },
|
|
|
- },
|
|
|
- ],
|
|
|
- },
|
|
|
- {
|
|
|
- path: '/matters',
|
|
|
- component: Layout,
|
|
|
- children: [
|
|
|
- {
|
|
|
- path: 'notification',
|
|
|
- component: () => import('@/views/notificationListManage/index.vue'),
|
|
|
- name: 'notification',
|
|
|
- meta: { title: '违法信息通报事项清单管理', icon: 'user' },
|
|
|
- },
|
|
|
- ],
|
|
|
- },
|
|
|
- {
|
|
|
- path: '/illegalSwitch',
|
|
|
- component: Layout,
|
|
|
- children: [
|
|
|
- {
|
|
|
- path: 'switch',
|
|
|
- component: () => import('@/views/illegalInfoSwitch/index.vue'),
|
|
|
- name: 'switch',
|
|
|
- meta: { title: '违法信息发布和关闭管理', icon: 'user' },
|
|
|
- },
|
|
|
- ],
|
|
|
- },
|
|
|
- {
|
|
|
- path: '/notificationListManage',
|
|
|
- component: Layout,
|
|
|
- children: [
|
|
|
- {
|
|
|
- path: 'notificationList',
|
|
|
- component: () => import('@/views/InformationDisposalManage/index.vue'),
|
|
|
- name: 'notificationList',
|
|
|
- meta: { title: '信息处置管理', icon: 'user' },
|
|
|
- },
|
|
|
- ],
|
|
|
- },
|
|
|
+ {
|
|
|
+ path: '/redirect',
|
|
|
+ component: Layout,
|
|
|
+ hidden: true,
|
|
|
+ children: [
|
|
|
+ {
|
|
|
+ path: '/redirect/:path(.*)',
|
|
|
+ component: () => import('@/views/redirect/index.vue'),
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: '/login',
|
|
|
+ component: () => import('@/views/login.vue'),
|
|
|
+ hidden: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: '/register',
|
|
|
+ component: () => import('@/views/register.vue'),
|
|
|
+ hidden: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: '/:pathMatch(.*)*',
|
|
|
+ component: () => import('@/views/error/404.vue'),
|
|
|
+ hidden: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: '/401',
|
|
|
+ component: () => import('@/views/error/401.vue'),
|
|
|
+ hidden: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: '',
|
|
|
+ component: Layout,
|
|
|
+ redirect: '/index',
|
|
|
+ children: [
|
|
|
+ {
|
|
|
+ path: '/index',
|
|
|
+ component: () => import('@/views/index.vue'),
|
|
|
+ name: 'index',
|
|
|
+ meta: { title: '首页', activeMenu: '/index', icon: 'user' },
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: '/user',
|
|
|
+ component: Layout,
|
|
|
+ hidden: true,
|
|
|
+ redirect: 'noredirect',
|
|
|
+ children: [
|
|
|
+ {
|
|
|
+ path: 'profile',
|
|
|
+ component: () => import('@/views/system/user/profile/index.vue'),
|
|
|
+ name: 'Profile',
|
|
|
+ meta: { title: '个人中心', icon: 'user' },
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ // TODO 临时路由建立,仅供静态页面搭建使用
|
|
|
+ {
|
|
|
+ path: '/illegalInformation',
|
|
|
+ component: Layout,
|
|
|
+ children: [
|
|
|
+ {
|
|
|
+ path: 'address',
|
|
|
+ component: () => import('@/views/addressBook/index.vue'),
|
|
|
+ name: 'address',
|
|
|
+ meta: { title: '违法信息通报通讯录', icon: 'user' },
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: '/matters',
|
|
|
+ component: Layout,
|
|
|
+ children: [
|
|
|
+ {
|
|
|
+ path: 'notification',
|
|
|
+ component: () => import('@/views/notificationListManage/index.vue'),
|
|
|
+ name: 'notification',
|
|
|
+ meta: { title: '违法信息通报事项清单管理', icon: 'user' },
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: '/illegalSwitch',
|
|
|
+ component: Layout,
|
|
|
+ children: [
|
|
|
+ {
|
|
|
+ path: 'switch',
|
|
|
+ component: () => import('@/views/illegalInfoSwitch/index.vue'),
|
|
|
+ name: 'switch',
|
|
|
+ meta: { title: '违法信息发布和关闭管理', icon: 'user' },
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: '/notificationListManage',
|
|
|
+ component: Layout,
|
|
|
+ children: [
|
|
|
+ {
|
|
|
+ path: 'notificationList',
|
|
|
+ component: () => import('@/views/InformationDisposalManage/index.vue'),
|
|
|
+ name: 'notificationList',
|
|
|
+ meta: { title: '信息处置管理', icon: 'user' },
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
];
|
|
|
|
|
|
// 动态路由,基于用户权限动态去加载
|
|
|
export const dynamicRoutes: RouteRecordRaw[] = [
|
|
|
- {
|
|
|
- path: '/system/user-auth',
|
|
|
- component: Layout,
|
|
|
- hidden: true,
|
|
|
- permissions: ['system:user:edit'],
|
|
|
- children: [
|
|
|
- {
|
|
|
- path: 'role/:userId(\\d+)',
|
|
|
- component: () => import('@/views/system/user/authRole.vue'),
|
|
|
- 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.vue'),
|
|
|
- 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.vue'),
|
|
|
- name: 'Data',
|
|
|
- meta: { title: '字典数据', activeMenu: '/system/dict' },
|
|
|
- },
|
|
|
- ],
|
|
|
- },
|
|
|
- {
|
|
|
- path: '/monitor/job-log',
|
|
|
- component: Layout,
|
|
|
- hidden: true,
|
|
|
- permissions: ['monitor:job:list'],
|
|
|
- children: [
|
|
|
- {
|
|
|
- path: 'index/:jobId(\\d+)',
|
|
|
- component: () => import('@/views/monitor/job/log.vue'),
|
|
|
- name: 'JobLog',
|
|
|
- meta: { title: '调度日志', activeMenu: '/monitor/job' },
|
|
|
- },
|
|
|
- ],
|
|
|
- },
|
|
|
+ {
|
|
|
+ path: '/system/user-auth',
|
|
|
+ component: Layout,
|
|
|
+ hidden: true,
|
|
|
+ permissions: ['system:user:edit'],
|
|
|
+ children: [
|
|
|
+ {
|
|
|
+ path: 'role/:userId(\\d+)',
|
|
|
+ component: () => import('@/views/system/user/authRole.vue'),
|
|
|
+ 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.vue'),
|
|
|
+ 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.vue'),
|
|
|
+ name: 'Data',
|
|
|
+ meta: { title: '字典数据', activeMenu: '/system/dict' },
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: '/monitor/job-log',
|
|
|
+ component: Layout,
|
|
|
+ hidden: true,
|
|
|
+ permissions: ['monitor:job:list'],
|
|
|
+ children: [
|
|
|
+ {
|
|
|
+ path: 'index/:jobId(\\d+)',
|
|
|
+ component: () => import('@/views/monitor/job/log.vue'),
|
|
|
+ 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.vue'),
|
|
|
- name: 'GenEdit',
|
|
|
- meta: { title: '修改生成配置', activeMenu: '/tool/gen' },
|
|
|
- },
|
|
|
- ],
|
|
|
- },
|
|
|
+ {
|
|
|
+ path: '/tool/gen-edit',
|
|
|
+ component: Layout,
|
|
|
+ hidden: true,
|
|
|
+ permissions: ['tool:gen:edit'],
|
|
|
+ children: [
|
|
|
+ {
|
|
|
+ path: 'index/:tableId(\\d+)',
|
|
|
+ component: () => import('@/views/tool/gen/editTable.vue'),
|
|
|
+ name: 'GenEdit',
|
|
|
+ meta: { title: '修改生成配置', activeMenu: '/tool/gen' },
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
];
|
|
|
|
|
|
const router = createRouter({
|
|
|
- history: createWebHistory(),
|
|
|
- routes: constantRoutes,
|
|
|
- scrollBehavior(to, from, savedPosition) {
|
|
|
- if (savedPosition) {
|
|
|
- return savedPosition;
|
|
|
- } else {
|
|
|
- return { top: 0 };
|
|
|
- }
|
|
|
- },
|
|
|
+ history: createWebHistory(),
|
|
|
+ routes: constantRoutes,
|
|
|
+ scrollBehavior(to, from, savedPosition) {
|
|
|
+ if (savedPosition) {
|
|
|
+ return savedPosition;
|
|
|
+ } else {
|
|
|
+ return { top: 0 };
|
|
|
+ }
|
|
|
+ },
|
|
|
});
|
|
|
|
|
|
export default router;
|