refactor(router): 优化路由配置和打印功能实现

- 统一路由配置中的代码风格,移除多余空格
- 移除医生个人报卡管理菜单项
- 移除检查管理中的医生报告快捷访问路径
- 替换浏览器打印为hiprint打印方案
- 添加vue-plugin-hiprint依赖和相关配置
- 实现门诊挂号单的hiprint打印功能
- 优化WebView环境检测逻辑和错误处理
This commit is contained in:
2026-03-10 16:28:41 +08:00
parent c65db9abc3
commit b69f312611
4 changed files with 217 additions and 628 deletions

View File

@@ -1,4 +1,4 @@
import { createWebHistory, createRouter } from 'vue-router'
import {createWebHistory, createRouter} from 'vue-router'
/* Layout */
import Layout from '@/layout'
@@ -61,7 +61,7 @@ export const constantRoutes = [
path: '/index',
component: () => import('@/views/index'),
name: 'Index',
meta: { title: '首页', icon: 'dashboard', affix: true }
meta: {title: '首页', icon: 'dashboard', affix: true}
}
]
},
@@ -75,7 +75,7 @@ export const constantRoutes = [
path: 'profile',
component: () => import('@/views/system/user/profile/index'),
name: 'Profile',
meta: { title: '个人中心', icon: 'user' }
meta: {title: '个人中心', icon: 'user'}
}
]
},
@@ -89,7 +89,7 @@ export const constantRoutes = [
path: '',
component: () => import('@/views/maintainSystem/Inspection/PackageManagement.vue'),
name: 'DirectPackageManagement',
meta: { title: '套餐管理' }
meta: {title: '套餐管理'}
}
]
}
@@ -108,7 +108,7 @@ export const dynamicRoutes = [
path: 'set/:tenantId(\\d+)',
component: () => import('@/views/system/tenant/setUser'),
name: 'SetUser',
meta: { title: '所属用户', activeMenu: '/system/tenant' }
meta: {title: '所属用户', activeMenu: '/system/tenant'}
}
]
},
@@ -122,7 +122,7 @@ export const dynamicRoutes = [
path: 'set/:tenantId(\\d+)',
component: () => import('@/views/system/tenant/setContract'),
name: 'SetContract',
meta: { title: '合同管理', activeMenu: '/system/tenant' }
meta: {title: '合同管理', activeMenu: '/system/tenant'}
}
]
},
@@ -136,7 +136,7 @@ export const dynamicRoutes = [
path: 'role/:userId(\\d+)',
component: () => import('@/views/system/user/authRole'),
name: 'AuthRole',
meta: { title: '分配角色', activeMenu: '/system/user' }
meta: {title: '分配角色', activeMenu: '/system/user'}
}
]
},
@@ -150,7 +150,7 @@ export const dynamicRoutes = [
path: 'user/:roleId(\\d+)',
component: () => import('@/views/system/role/authUser'),
name: 'AuthUser',
meta: { title: '分配用户', activeMenu: '/system/role' }
meta: {title: '分配用户', activeMenu: '/system/role'}
}
]
},
@@ -159,25 +159,25 @@ export const dynamicRoutes = [
component: Layout,
redirect: '/monitor/operlog',
name: 'Monitor',
meta: { title: '系统监控', icon: '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'] }
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'] }
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'] }
meta: {title: '定时任务', icon: 'job', permissions: ['monitor:job:list']}
}
]
},
@@ -186,13 +186,13 @@ export const dynamicRoutes = [
component: Layout,
redirect: '/tool/gen',
name: 'Tool',
meta: { title: '系统工具', icon: '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'] }
meta: {title: '代码生成', icon: 'gen', permissions: ['tool:gen:list']}
}
]
},
@@ -206,7 +206,7 @@ export const dynamicRoutes = [
path: 'index/:jobId(\\d+)',
component: () => import('@/views/monitor/job/log'),
name: 'JobLog',
meta: { title: '调度日志', activeMenu: '/monitor/job' }
meta: {title: '调度日志', activeMenu: '/monitor/job'}
}
]
},
@@ -220,7 +220,7 @@ export const dynamicRoutes = [
path: 'index/:tableId(\\d+)',
component: () => import('@/views/tool/gen/editTable'),
name: 'GenEdit',
meta: { title: '修改生成配置', activeMenu: '/tool/gen' }
meta: {title: '修改生成配置', activeMenu: '/tool/gen'}
}
]
},
@@ -233,7 +233,10 @@ export const dynamicRoutes = [
path: '',
component: () => import('@/views/helpcenter/index.vue'),
name: 'HelpCenter',
meta: {title: '帮助中心', link: '/help-center/vuepress-theme-vdoing-doc/docs/.vuepress/dist/pages/520e67/index.html'},
meta: {
title: '帮助中心',
link: '/help-center/vuepress-theme-vdoing-doc/docs/.vuepress/dist/pages/520e67/index.html'
},
},
],
},
@@ -242,19 +245,13 @@ export const dynamicRoutes = [
component: Layout,
redirect: '/doctorstation/index',
name: 'DoctorStation',
meta: { title: '医生工作站', icon: 'operation' },
meta: {title: '医生工作站', icon: 'operation'},
children: [
{
{
path: 'pending-emr',
component: () => import('@/views/doctorstation/pendingEmr.vue'),
name: 'PendingEmr',
meta: { title: '待写病历', icon: 'document', permissions: ['doctorstation:pending-emr:view'] }
},
{
path: 'my-card-management',
component: () => import('@/views/doctorstation/mycardmanagement/index.vue'),
name: 'MyCardManagement',
meta: { title: '医生个人报卡管理', icon: 'document', permissions: ['doctorstation:my-card-management:view'] }
meta: {title: '待写病历', icon: 'document', permissions: ['doctorstation:pending-emr:view']}
}
]
},
@@ -262,19 +259,19 @@ export const dynamicRoutes = [
path: '/features',
component: Layout,
name: 'Features',
meta: { title: '全部功能', icon: 'menu' },
meta: {title: '全部功能', icon: 'menu'},
children: [
{
path: '',
component: () => import('@/views/features/index.vue'),
name: 'FeaturesIndex',
meta: { title: '功能列表', icon: 'menu' }
meta: {title: '功能列表', icon: 'menu'}
},
{
path: 'config',
component: () => import('@/views/features/config.vue'),
name: 'FeaturesConfig',
meta: { title: '功能配置', icon: 'setting' }
meta: {title: '功能配置', icon: 'setting'}
}
]
},
@@ -282,13 +279,13 @@ export const dynamicRoutes = [
path: '/todo',
component: Layout,
name: 'Todo',
meta: { title: '待办事项', icon: 'todo' },
meta: {title: '待办事项', icon: 'todo'},
children: [
{
path: '',
component: () => import('@/views/todo/index.vue'),
name: 'TodoIndex',
meta: { title: '待办列表', icon: 'todo' }
meta: {title: '待办列表', icon: 'todo'}
}
]
},
@@ -296,13 +293,13 @@ export const dynamicRoutes = [
path: '/appoinmentmanage',
component: Layout,
name: 'AppoinmentManage',
meta: { title: '预约管理', icon: 'appointment' },
meta: {title: '预约管理', icon: 'appointment'},
children: [
{
path: 'deptManage',
component: () => import('@/views/appoinmentmanage/deptManage/index.vue'),
name: 'DeptManage',
meta: { title: '科室排班管理', icon: 'calendar' }
meta: {title: '科室排班管理', icon: 'calendar'}
}
]
},
@@ -310,13 +307,13 @@ export const dynamicRoutes = [
path: '/clinicmanagement',
component: Layout,
name: 'ClinicManagement',
meta: { title: '门诊管理', icon: 'operation' },
meta: {title: '门诊管理', icon: 'operation'},
children: [
{
path: 'dayEnd',
component: () => import('@/views/clinicmanagement/dayEnd/index.vue'),
name: 'DayEnd',
meta: { title: '门诊日结', icon: 'document' }
meta: {title: '门诊日结', icon: 'document'}
}
]
},
@@ -324,19 +321,19 @@ export const dynamicRoutes = [
path: '/consultationmanagement',
component: Layout,
name: 'ConsultationManagement',
meta: { title: '会诊管理', icon: 'operation' },
meta: {title: '会诊管理', icon: 'operation'},
children: [
{
path: 'consultationapplication',
component: () => import('@/views/consultationmanagement/consultationapplication/index.vue'),
name: 'ConsultationApplication',
meta: { title: '门诊会诊申请管理', icon: 'document' }
meta: {title: '门诊会诊申请管理', icon: 'document'}
},
{
path: 'consultationconfirmation',
component: () => import('@/views/consultationmanagement/consultationconfirmation/index.vue'),
name: 'ConsultationConfirmation',
meta: { title: '门诊会诊申请确认', icon: 'document' }
meta: {title: '门诊会诊申请确认', icon: 'document'}
}
]
},
@@ -344,13 +341,13 @@ export const dynamicRoutes = [
path: '/medicationmanagement',
component: Layout,
name: 'MedicationManagement',
meta: { title: '药房管理', icon: 'medication' },
meta: {title: '药房管理', icon: 'medication'},
children: [
{
path: 'dayEndSettlement',
component: () => import('@/views/medicationmanagement/dayEndSettlement/index.vue'),
name: 'DayEndSettlement',
meta: { title: '日结结算单管理', icon: 'document' }
meta: {title: '日结结算单管理', icon: 'document'}
}
]
},
@@ -359,63 +356,49 @@ export const dynamicRoutes = [
component: Layout,
redirect: '/inspection/report',
name: 'Inspection',
meta: { title: '检查管理', icon: 'inspection' },
meta: {title: '检查管理', icon: 'inspection'},
children: [
{
path: 'report',
component: () => import('@/views/inspection/report/index.vue'),
name: 'Report',
meta: { title: '检查报告', icon: 'document' }
meta: {title: '检查报告', icon: 'document'}
},
{
path: 'sampleType',
component: () => import('@/views/inspection/sampleType/index.vue'),
name: 'SampleType',
meta: { title: '样本类型', icon: 'sample' }
meta: {title: '样本类型', icon: 'sample'}
},
{
path: 'observation',
component: () => import('@/views/inspection/observation/index.vue'),
name: 'Observation',
meta: { title: '观测记录', icon: 'observation' }
meta: {title: '观测记录', icon: 'observation'}
},
{
path: 'lisconfig',
component: () => import('@/views/inspection/lisconfig/index.vue'),
name: 'LisConfig',
meta: { title: 'LIS 配置', icon: 'setting' }
meta: {title: 'LIS 配置', icon: 'setting'}
},
{
path: 'instrument',
component: () => import('@/views/inspection/instrument/index.vue'),
name: 'Instrument',
meta: { title: '仪器管理', icon: 'instrument' }
meta: {title: '仪器管理', icon: 'instrument'}
},
{
path: 'groupRec',
component: () => import('@/views/inspection/groupRec/index.vue'),
name: 'GroupRec',
meta: { title: '组合记录', icon: 'group' }
meta: {title: '组合记录', icon: 'group'}
},
{
path: 'sampleCollection',
component: () => import('@/views/inspection/sampleCollection/index.vue'),
name: 'SampleCollection',
meta: { title: '样本采集', icon: 'collection' }
}
]
},
// 医生报告页面 - 快捷访问路径
{
path: '/doctorreport',
component: Layout,
hidden: true,
children: [
{
path: '',
component: () => import('@/views/inspection/report/index.vue'),
name: 'DoctorReport',
meta: { title: '医生报告', activeMenu: '/inspection/report' }
meta: {title: '样本采集', icon: 'collection'}
}
]
}
@@ -438,7 +421,7 @@ const router = createRouter({
if (savedPosition) {
return savedPosition
} else {
return { top: 0 }
return {top: 0}
}
},
});