Files
his/openhis-ui-vue3/src/router/index.js
chenqi 3188ca5752 build(openhis-ui-vue3): 更新 sass 依赖版本并注释部分路由配置
更新 sass 依赖从 ^1.70.0 到 ^1.77.8,并注释掉 router 中暂时未使用的路由配置项,
包括门诊医生站、套餐管理、预约管理、基础管理、维护系统及系统管理等相关路由。
2025-12-16 13:49:06 +08:00

441 lines
14 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { createWebHistory, createRouter } from 'vue-router'
/* Layout */
import Layout from '@/layout'
/**
* Note: 路由配置项说明
*
* hidden: true // 当设置 true 时该路由不会在侧边栏出现如401、login等页面或一些编辑页面/edit/1
* alwaysShow: true // 当路由下的 children 声明的路由大于1个时自动变为嵌套模式如组件页面
* // 只有一个时,会将子路由作为根路由显示在侧边栏(如引导页面)
* // 若想不管 children 个数都显示根路由,可设置 alwaysShow: true忽略之前定义的规则
* redirect: noRedirect // 当设置 noRedirect 时,该路由在面包屑导航中不可点击
* name:'router-name' // 设定路由的名字,必须填写,否则使用<keep-alive>时会出现问题
* query: '{"id": 1, "name": "ry"}' // 访问路由的默认传递参数
* roles: ['admin', 'common'] // 访问路由的角色权限
* permissions: ['a:a:a', 'b:b:b'] // 访问路由的菜单权限
* meta: {
noCache: true // 如果设置为true则不会被 <keep-alive> 缓存(默认 false
title: 'title' // 设置该路由在侧边栏和面包屑中展示的名字
icon: 'svg-name' // 设置该路由的图标对应路径src/assets/icons/svg
breadcrumb: false // 如果设置为false则不会在breadcrumb面包屑中显示
activeMenu: '/system/user' // 当路由设置了该属性,则会高亮对应的侧边栏
}
*/
// 公共路由 - 所有用户均可访问的路由
export const constantRoutes = [
// 门诊医生站路由
// {
// path: '/doctorstation',
// component: Layout,
// redirect: '/doctorstation',
// name: 'DoctorStation',
// meta: { title: '门诊医生站', icon: 'doctorstation' },
// children: [
// {
// path: '',
// component: () => import('@/views/doctorstation/index.vue'),
// name: 'DoctorStationIndex',
// meta: { title: '门诊医生站', icon: 'doctorstation' }
// }
// ]
// },
// 重定向路由
{
path: '/redirect',
component: Layout,
hidden: true,
children: [
{
path: '/redirect/:path(.*)',
component: () => import('@/views/redirect/index.vue')
}
]
},
// 登录路由
{
path: '/login',
component: () => import('@/views/login'),
hidden: true
},
// 注册路由
{
path: '/register',
component: () => import('@/views/register'),
hidden: true
},
// 401权限不足路由
{
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: '/maintainSystem/Inspection/PackageManagement',
// component: Layout,
// hidden: true,
// children: [
// {
// path: '',
// component: () => import('@/views/maintainSystem/Inspection/PackageManagement.vue'),
// name: 'DirectPackageManagement',
// meta: { title: '套餐管理' }
// }
// ]
// },
// 预约管理直接访问路由 - 兼容外部系统访问
// {
// path: '/reservationRecord2/appoinmentmanage',
// component: Layout,
// hidden: true,
// children: [
// {
// path: '',
// component: () => import('@/views/appoinmentmanage/clinicRoom/index.vue'),
// name: 'DirectClinicRoom',
// meta: { title: '门诊出诊医生诊室设置' }
// }
// ]
// }
]
// 动态路由 - 基于用户权限动态加载的路由
export const dynamicRoutes = [
// 基础管理路由
// {
// path: '/basicmanage',
// component: Layout,
// redirect: '/basicmanage/invoice-management',
// name: 'BasicManage',
// meta: { title: '基础管理', icon: 'component' },
// children: [
// {
// path: 'invoice-management',
// component: () => import('@/views/basicmanage/InvoiceManagement/index.vue'),
// name: 'invoice-management',
// meta: { title: '发票管理' }
// }
// ]
// },
// 兼容系统业务管理路径的发票管理路由
// {
// path: '/system/ywgz',
// component: Layout,
// redirect: '/system/ywgz/InvoiceManagement',
// hidden: true,
// children: [
// {
// path: 'InvoiceManagement',
// component: () => import('@/views/basicmanage/InvoiceManagement/index.vue'),
// name: 'SystemInvoiceManagement',
// meta: { title: '发票管理' }
// }
// ]
// },
// 维护系统路由
// {
// path: '/maintainSystem',
// component: Layout,
// redirect: '/maintainSystem/chargeConfig',
// name: 'MaintainSystem',
// meta: { title: '维护系统', icon: 'system' },
// children: [
// {
// path: '',
// redirect: 'chargeConfig',
// name: 'MaintainSystemIndex' // 添加名称以解决警告
// },
// {
// path: 'chargeConfig', // 收费配置路由
// component: () => import('@/views/maintainSystem/chargeConfig/index.vue'),
// name: 'ChargeConfig',
// meta: { title: '挂号收费系统参数维护', icon: 'config', permissions: ['maintainSystem:chargeConfig:list'] }
// },
// {
// path: 'Inspection', // 检验管理路由
// component: () => import('@/views/maintainSystem/Inspection/index.vue'),
// name: 'Inspection',
// meta: { title: '检验管理', icon: 'inspection' },
// children: [
// {
// path: 'PackageManagement', // 套餐管理路由
// component: () => import('@/views/maintainSystem/Inspection/PackageManagement.vue'),
// name: 'PackageManagement',
// meta: { title: '套餐管理' }
// }
// ]
// }
// ]
// },
// 系统管理路由
// {
// path: '/system',
// component: Layout,
// redirect: '/system/user',
// name: 'System',
// meta: { title: '系统管理', icon: 'system' },
// children: [
// {
// path: 'user', // 用户管理路由
// component: () => import('@/views/system/user/index.vue'),
// name: 'User',
// meta: { title: '用户管理', icon: 'user', permissions: ['system:user:list'] }
// },
// {
// path: 'role', // 角色管理路由
// component: () => import('@/views/system/role/index.vue'),
// name: 'Role',
// meta: { title: '角色管理', icon: 'role', permissions: ['system:role:list'] }
// },
// {
// path: 'menu', // 菜单管理路由
// component: () => import('@/views/system/menu/index.vue'),
// name: 'Menu',
// meta: { title: '菜单管理', icon: 'menu', permissions: ['system:menu:list'] }
// },
// {
// path: 'dept', // 部门管理路由
// component: () => import('@/views/system/dept/index.vue'),
// name: 'Dept',
// meta: { title: '部门管理', icon: 'dept', permissions: ['system:dept:list'] }
// },
// {
// path: 'post', // 岗位管理路由
// component: () => import('@/views/system/post/index.vue'),
// name: 'Post',
// meta: { title: '岗位管理', icon: 'post', permissions: ['system:post:list'] }
// },
// {
// path: 'dict', // 字典管理路由
// component: () => import('@/views/system/dict/index.vue'),
// name: 'Dict',
// meta: { title: '字典管理', icon: 'dict', permissions: ['system:dict:list'] }
// },
// {
// path: 'config', // 参数配置路由
// component: () => import('@/views/system/config/index.vue'),
// name: 'Config',
// meta: { title: '参数配置', icon: 'config', permissions: ['system:config:list'] }
// },
// {
// path: 'notice', // 通知公告路由
// component: () => import('@/views/system/notice/index.vue'),
// name: 'Notice',
// meta: { title: '通知公告', icon: 'notice', permissions: ['system:notice:list'] }
// },
// {
// path: 'tenant', // 租户管理路由
// component: () => import('@/views/system/tenant/index.vue'),
// name: 'Tenant',
// meta: { title: '租户管理', icon: 'tenant', permissions: ['system:tenant:list'] }
// }
// ]
// },
// 租户用户设置路由
{
path: '/system/tenant-user',
component: Layout,
hidden: true,
permissions: ['*:*:*'],
children: [
{
path: 'set/:tenantId(\\d+)',
component: () => import('@/views/system/tenant/setUser'),
name: 'SetUser',
meta: { title: '所属用户', activeMenu: '/system/tenant' }
}
]
},
// 租户合同管理路由
{
path: '/system/tenant-contract',
component: Layout,
hidden: true,
permissions: ['*:*:*'],
children: [
{
path: 'set/:tenantId(\\d+)',
component: () => import('@/views/system/tenant/setContract'),
name: 'SetContract',
meta: { title: '合同管理', activeMenu: '/system/tenant' }
}
]
},
// 用户角色分配路由
{
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',
component: Layout,
redirect: '/monitor/operlog',
name: 'Monitor',
meta: { title: '系统监控', icon: 'monitor' },
children: [
{
path: 'operlog', // 操作日志路由
component: () => import('@/views/monitor/operlog/index.vue'),
name: 'Operlog',
meta: { title: '操作日志', icon: 'operlog', permissions: ['monitor:operlog:list'] }
},
{
path: 'logininfor', // 登录日志路由
component: () => import('@/views/monitor/logininfor/index.vue'),
name: 'Logininfor',
meta: { title: '登录日志', icon: 'logininfor', permissions: ['monitor:logininfor:list'] }
},
{
path: 'job', // 定时任务路由
component: () => import('@/views/monitor/job/index.vue'),
name: 'Job',
meta: { title: '定时任务', icon: 'job', permissions: ['monitor:job:list'] }
}
]
},
// 系统工具路由
{
path: '/tool',
component: Layout,
redirect: '/tool/gen',
name: 'Tool',
meta: { title: '系统工具', icon: 'tool' },
children: [
{
path: 'gen', // 代码生成路由
component: () => import('@/views/tool/gen/index.vue'),
name: 'Gen',
meta: { title: '代码生成', icon: 'gen', permissions: ['tool:gen:list'] }
}
]
},
// 定时任务日志路由
{
path: '/monitor/job-log',
component: Layout,
hidden: true,
permissions: ['monitor:job:list'],
children: [
{
path: 'index/:jobId(\\d+)',
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' }
}
]
}
]
// 合并常量路由和动态路由,确保所有路由都能被访问
const allRoutes = [...constantRoutes, ...dynamicRoutes];
// 添加404路由到所有路由的最后确保捕获所有未匹配的路由
allRoutes.push({
path: "/:pathMatch(.*)*",
component: () => import('@/views/error/404'),
hidden: true
});
// 创建Vue Router实例
const router = createRouter({
history: createWebHistory(), // 使用HTML5历史模式
routes: allRoutes, // 使用合并后的所有路由
scrollBehavior(to, from, savedPosition) {
// 页面滚动行为:如果有保存的位置则恢复,否则滚动到顶部
if (savedPosition) {
return savedPosition
} else {
return { top: 0 }
}
},
});
// 导出路由实例
export default router;