docs(requirement): 添加手术室维护界面需求文档
- 创建手术室维护界面PRD文档 - 定义页面概述、核心功能和用户价值 - 设计整体布局和页面区域详细描述 - 规范交互功能和数据结构说明 - 说明开发实现要点和注意事项 - 移除中医诊断主诊断功能实现说明文档 - 移除公告通知弹窗功能说明文档 - 移除手术人员字段不显示问题解决方案文档 - 移除手术和麻醉信息Redis缓存实现说明文档 - 移除手术室管理添加类型和所属科室字段说明文档
This commit is contained in:
@@ -11,7 +11,7 @@ export default {
|
||||
inDiagName: '急性上呼吸道感染',
|
||||
name: '于浩',
|
||||
officeName: '住院科室',
|
||||
title: '长春市朝阳区中医院',
|
||||
title: '',
|
||||
operaDays: null,
|
||||
outdate: null,
|
||||
sex: '女',
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div class="recordBill">
|
||||
<div :id="'exeSheetTitle' + printData.id" class="printView_header">
|
||||
<div style="text-align: center; height: 60px">
|
||||
长春市朝阳区中医院医嘱执行单
|
||||
{{ userStore.hospitalName }}医嘱执行单
|
||||
</div>
|
||||
<div>
|
||||
<span style="display: inline-block; width: 100px">床号:{{ printData.patientInfo.encounterLocationName }}</span>
|
||||
@@ -87,8 +87,13 @@
|
||||
</template>
|
||||
<script>
|
||||
import {getLodop} from '../../../plugins/print/LodopFuncs'
|
||||
import useUserStore from '@/store/modules/user'
|
||||
|
||||
export default {
|
||||
setup() {
|
||||
const userStore = useUserStore();
|
||||
return { userStore };
|
||||
},
|
||||
props: {
|
||||
printData: {
|
||||
type: Object,
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div class="recordBill">
|
||||
<div id="div1" class="printView_header">
|
||||
<div style="text-align: center; font-size: 20px; height: 40px">
|
||||
长春市朝阳区中医院输液执行单
|
||||
{{ userStore.hospitalName }}输液执行单
|
||||
</div>
|
||||
<div>
|
||||
<span>座位:{{ printData.patientInfo.encounterLocationName }}</span>
|
||||
@@ -61,8 +61,13 @@
|
||||
</template>
|
||||
<script>
|
||||
import {getLodop} from '../../../plugins/print/LodopFuncs'
|
||||
import useUserStore from '@/store/modules/user'
|
||||
|
||||
export default {
|
||||
setup() {
|
||||
const userStore = useUserStore();
|
||||
return { userStore };
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
printData: {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="printTicket">
|
||||
<p>长春市朝阳区中医院</p>
|
||||
<p>{{ userStore.hospitalName }}</p>
|
||||
<div>
|
||||
<span>姓名:</span>
|
||||
<span>{{ printData.patientName }}</span>
|
||||
@@ -26,9 +26,14 @@
|
||||
</template>
|
||||
<script>
|
||||
import JsBarcode from 'jsbarcode';
|
||||
import useUserStore from '@/store/modules/user';
|
||||
|
||||
export default {
|
||||
name: 'TriageTicket',
|
||||
setup() {
|
||||
const userStore = useUserStore();
|
||||
return { userStore };
|
||||
},
|
||||
props: {
|
||||
printData: {
|
||||
type: Object,
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
"top": 15,
|
||||
"height": 16.5,
|
||||
"width": 792,
|
||||
"title": "长春市朝阳区中医院预交金收据",
|
||||
"title": "{{HOSPITAL_NAME}}预交金收据",
|
||||
"coordinateSync": false,
|
||||
"widthHeightSync": false,
|
||||
"fontWeight": "bold",
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
"top": 38,
|
||||
"height": 19.5,
|
||||
"width": 255,
|
||||
"title": "中药长春市朝阳区中医院",
|
||||
"title": "中药{{HOSPITAL_NAME}}",
|
||||
"coordinateSync": false,
|
||||
"widthHeightSync": false,
|
||||
"fontSize": 11.25,
|
||||
|
||||
@@ -108,7 +108,7 @@
|
||||
"top": 58.5,
|
||||
"height": 13.5,
|
||||
"width": 145.5,
|
||||
"title": "机构名称:长春市朝阳区中医院",
|
||||
"title": "机构名称:{{HOSPITAL_NAME}}",
|
||||
"coordinateSync": false,
|
||||
"widthHeightSync": false,
|
||||
"fontSize": 9,
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
"top": 22.5,
|
||||
"height": 19.5,
|
||||
"width": 420,
|
||||
"title": "长春市朝阳区中医院",
|
||||
"title": "{{HOSPITAL_NAME}}",
|
||||
"coordinateSync": false,
|
||||
"widthHeightSync": false,
|
||||
"fontSize": 20.25,
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
"top": 39.5,
|
||||
"height": 19.5,
|
||||
"width": 255,
|
||||
"title": "中药长春市朝阳区中医院",
|
||||
"title": "中药{{HOSPITAL_NAME}}",
|
||||
"coordinateSync": false,
|
||||
"widthHeightSync": false,
|
||||
"fontSize": 11.25,
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
"top": 22.5,
|
||||
"height": 19.5,
|
||||
"width": 595.5,
|
||||
"title": "长春市朝阳区中医院",
|
||||
"title": "{{HOSPITAL_NAME}}",
|
||||
"coordinateSync": false,
|
||||
"widthHeightSync": false,
|
||||
"fontSize": 20.25,
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
"top": 22.5,
|
||||
"height": 19.5,
|
||||
"width": 420,
|
||||
"title": "长春市朝阳区中医院",
|
||||
"title": "{{HOSPITAL_NAME}}",
|
||||
"coordinateSync": false,
|
||||
"widthHeightSync": false,
|
||||
"fontSize": 20.25,
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
"top": 22.5,
|
||||
"height": 19.5,
|
||||
"width": 595.5,
|
||||
"title": "长春市朝阳区中医院",
|
||||
"title": "{{HOSPITAL_NAME}}",
|
||||
"coordinateSync": false,
|
||||
"widthHeightSync": false,
|
||||
"fontSize": 20.25,
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
"top": 15,
|
||||
"height": 16.5,
|
||||
"width": 225,
|
||||
"title": "长春市朝阳区中医院门诊收费结算单",
|
||||
"title": "{{HOSPITAL_NAME}}门诊收费结算单",
|
||||
"coordinateSync": false,
|
||||
"widthHeightSync": false,
|
||||
"fontWeight": "bold",
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
"top": 22.5,
|
||||
"height": 19.5,
|
||||
"width": 595.5,
|
||||
"title": "长春市朝阳区中医院",
|
||||
"title": "{{HOSPITAL_NAME}}",
|
||||
"coordinateSync": false,
|
||||
"widthHeightSync": false,
|
||||
"fontSize": 20.25,
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
"top": 15,
|
||||
"height": 16.5,
|
||||
"width": 226.5,
|
||||
"title": "长春市朝阳区中医院挂号收费明细",
|
||||
"title": "{{HOSPITAL_NAME}}挂号收费明细",
|
||||
"coordinateSync": false,
|
||||
"widthHeightSync": false,
|
||||
"fontWeight": "bold",
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
"top": 20,
|
||||
"height": 19.5,
|
||||
"width": 228,
|
||||
"title": "中药长春市朝阳区中医院",
|
||||
"title": "中药{{HOSPITAL_NAME}}",
|
||||
"coordinateSync": false,
|
||||
"widthHeightSync": false,
|
||||
"fontSize": 11.25,
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
"top": 20,
|
||||
"height": 19.5,
|
||||
"width": 420,
|
||||
"title": "长春市朝阳区中医院",
|
||||
"title": "{{HOSPITAL_NAME}}",
|
||||
"coordinateSync": false,
|
||||
"widthHeightSync": false,
|
||||
"fontSize": 11.25,
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
"top": 38,
|
||||
"height": 19.5,
|
||||
"width": 255,
|
||||
"title": "中药长春市朝阳区中医院",
|
||||
"title": "中药{{HOSPITAL_NAME}}",
|
||||
"coordinateSync": false,
|
||||
"widthHeightSync": false,
|
||||
"fontSize": 11.25,
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
"top": 22.5,
|
||||
"height": 19.5,
|
||||
"width": 420,
|
||||
"title": "长春市朝阳区中医院",
|
||||
"title": "{{HOSPITAL_NAME}}",
|
||||
"coordinateSync": false,
|
||||
"widthHeightSync": false,
|
||||
"fontSize": 20.25,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { createWebHistory, createRouter } from 'vue-router'
|
||||
import {createWebHistory, createRouter} from 'vue-router'
|
||||
/* Layout */
|
||||
import Layout from '@/layout'
|
||||
|
||||
@@ -16,366 +16,86 @@ import Layout from '@/layout'
|
||||
* 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' // 当路由设置了该属性,则会高亮相对应的侧边栏。
|
||||
}
|
||||
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: '/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
|
||||
},
|
||||
{
|
||||
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: '/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
|
||||
},
|
||||
{
|
||||
path: '/401',
|
||||
component: () => import('@/views/error/401'),
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: '',
|
||||
component: () => import('@/views/maintainSystem/Inspection/PackageManagement.vue'),
|
||||
name: 'DirectPackageManagement',
|
||||
meta: { title: '套餐管理' }
|
||||
}
|
||||
]
|
||||
}
|
||||
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 = [
|
||||
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: '/help-center',
|
||||
component: Layout,
|
||||
hidden: true,
|
||||
children: [
|
||||
{
|
||||
path: '',
|
||||
component: () => import('@/views/helpcenter/index.vue'),
|
||||
name: 'HelpCenter',
|
||||
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'
|
||||
// },
|
||||
// {
|
||||
// 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' }
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
path: '/help-center',
|
||||
component: Layout,
|
||||
hidden: true,
|
||||
children: [
|
||||
{
|
||||
path: '',
|
||||
component: () => import('@/views/helpcenter/index.vue'),
|
||||
name: 'HelpCenter',
|
||||
meta: { title: '帮助中心'},
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
// 合并常量路由和动态路由,确保所有路由都能被访问
|
||||
@@ -383,21 +103,21 @@ const allRoutes = [...constantRoutes, ...dynamicRoutes];
|
||||
|
||||
// 添加404路由到所有路由的最后
|
||||
allRoutes.push({
|
||||
path: "/:pathMatch(.*)*",
|
||||
component: () => import('@/views/error/404'),
|
||||
hidden: true
|
||||
path: "/:pathMatch(.*)*",
|
||||
component: () => import('@/views/error/404'),
|
||||
hidden: true
|
||||
});
|
||||
|
||||
const router = createRouter({
|
||||
history: createWebHistory(),
|
||||
routes: allRoutes,
|
||||
scrollBehavior(to, from, savedPosition) {
|
||||
if (savedPosition) {
|
||||
return savedPosition
|
||||
} else {
|
||||
return { top: 0 }
|
||||
}
|
||||
},
|
||||
history: createWebHistory(),
|
||||
routes: allRoutes,
|
||||
scrollBehavior(to, from, savedPosition) {
|
||||
if (savedPosition) {
|
||||
return savedPosition
|
||||
} else {
|
||||
return {top: 0}
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
export default router;
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
patient?.busNo || '未知'
|
||||
}}
|
||||
</div>
|
||||
<h2 style="text-align: center">长春市朝阳区中医院</h2>
|
||||
<h2 style="text-align: center">{{ userStore.hospitalName }}</h2>
|
||||
<h2 style="text-align: center">出院诊断病历</h2>
|
||||
|
||||
<!-- 滚动内容区域 -->
|
||||
@@ -143,6 +143,9 @@ import {nextTick, onMounted, reactive, ref} from 'vue';
|
||||
import {ElMessage} from 'element-plus';
|
||||
import {previewPrint} from '../utils/printUtils';
|
||||
import DisDiagnMedicalRecord from '../views/hospitalRecord/components/disDiagnMedicalRecord.vue';
|
||||
import useUserStore from '@/store/modules/user';
|
||||
|
||||
const userStore = useUserStore();
|
||||
|
||||
defineOptions({
|
||||
name: 'DischargeDiagnosisCertificate',
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
<script lang="ts" setup>
|
||||
import {ref} from 'vue';
|
||||
import useUserStore from '@/store/modules/user';
|
||||
|
||||
const userStore = useUserStore();
|
||||
|
||||
// 1. 基础信息(复用已有变量,补充一致性格式)
|
||||
const patientInfo = ref({
|
||||
@@ -117,8 +120,8 @@ defineExpose({ patientInfo, firstRecordTime, firstRecordIntro, caseFeatures, chi
|
||||
<div class="medical-record">
|
||||
<!-- 1. 医院头部(每一页PDF均包含,复用已有样式) -->
|
||||
<div class="hospital-header">
|
||||
<img src="./imgs/logo.png" alt="长春市朝阳区中医院Logo" class="header-logo" />
|
||||
<h1 class="hospital-name">长春市朝阳区中医院</h1>
|
||||
<img src="./imgs/logo.png" :alt="userStore.hospitalName + 'Logo'" class="header-logo" />
|
||||
<h1 class="hospital-name">{{ userStore.hospitalName }}</h1>
|
||||
</div>
|
||||
|
||||
<!-- 2. 患者信息栏(每一页PDF均包含,下划线样式) -->
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<!-- 医院头部 -->
|
||||
<div class="hospital-header">
|
||||
<h1 class="hospital-name">
|
||||
<span class="hospital-text">长春市朝阳区中医院</span>
|
||||
<span class="hospital-text">{{ userStore.hospitalName }}</span>
|
||||
</h1>
|
||||
</div>
|
||||
<!-- 页面标题 -->
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="medical-form">
|
||||
<h2 style="text-align: center">
|
||||
{{ userStore.hospitalName || '长春市朝阳区中医院' }} -入院记录
|
||||
{{ userStore.hospitalName }} -入院记录
|
||||
</h2>
|
||||
|
||||
<!-- 滚动内容区域 -->
|
||||
|
||||
@@ -232,23 +232,13 @@
|
||||
<script setup>
|
||||
import {onMounted, reactive, ref} from 'vue';
|
||||
import intOperRecordSheet from '../views/hospitalRecord/components/intOperRecordSheet.vue';
|
||||
import {
|
||||
ElButton,
|
||||
ElDatePicker,
|
||||
ElForm,
|
||||
ElFormItem,
|
||||
ElInput,
|
||||
ElMessage,
|
||||
ElMessageBox,
|
||||
ElOption,
|
||||
ElSelect,
|
||||
} from 'element-plus';
|
||||
import {previewPrint} from '../utils/printUtils';
|
||||
import useUserStore from '@/store/modules/user';
|
||||
|
||||
const userStore = useUserStore();
|
||||
const isShowprintDom = ref(false);
|
||||
const recordPrintRef = ref();
|
||||
// 医院名称
|
||||
const hospitalName = '长春市朝阳区中医院';
|
||||
const hospitalName = userStore.hospitalName;
|
||||
defineOptions({
|
||||
name: 'iInHospitalSurgicalRecord',
|
||||
});
|
||||
|
||||
@@ -213,20 +213,11 @@
|
||||
|
||||
<script setup>
|
||||
import {onMounted, reactive, ref} from 'vue';
|
||||
import {
|
||||
ElButton,
|
||||
ElDatePicker,
|
||||
ElForm,
|
||||
ElFormItem,
|
||||
ElInput,
|
||||
ElMessage,
|
||||
ElMessageBox,
|
||||
ElOption,
|
||||
ElSelect,
|
||||
} from 'element-plus';
|
||||
import useUserStore from '@/store/modules/user';
|
||||
|
||||
const userStore = useUserStore();
|
||||
// 医院名称
|
||||
const hospitalName = '长春市朝阳区中医院';
|
||||
const hospitalName = userStore.hospitalName;
|
||||
defineOptions({
|
||||
name: 'InHospitalCommunicate',
|
||||
});
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<template>
|
||||
<div class="container">
|
||||
<div class="header">
|
||||
<h2 class="title">长春市朝阳区中医院</h2>
|
||||
<h2 class="title">{{ userStore.hospitalName }}</h2>
|
||||
<h3 class="subtitle">患者护理记录单</h3>
|
||||
</div>
|
||||
|
||||
@@ -234,8 +234,10 @@
|
||||
defineOptions({
|
||||
name: 'NursingRecordSheet',
|
||||
});
|
||||
import {getCurrentInstance, onBeforeMount, onMounted} from 'vue';
|
||||
import {getCurrentInstance, onBeforeMount, onMounted, ref} from 'vue';
|
||||
import useUserStore from '@/store/modules/user';
|
||||
|
||||
const userStore = useUserStore();
|
||||
const { proxy } = getCurrentInstance();
|
||||
const emits = defineEmits([]);
|
||||
const props = defineProps({
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
patient?.busNo || '未知'
|
||||
}}
|
||||
</div>
|
||||
<h2 style="text-align: center">{{ userStore.hospitalName || '长春市朝阳区中医院' }}</h2>
|
||||
<h2 style="text-align: center">{{ userStore.hospitalName }}</h2>
|
||||
|
||||
<h2 style="text-align: center">门诊病历</h2>
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<div class="surgicalPatientHandover-container">
|
||||
<div class="handover-form">
|
||||
<div class="form-header">
|
||||
<h1 class="hospital-name">长春市朝阳区中医院</h1>
|
||||
<h1 class="hospital-name">{{ userStore.hospitalName }}</h1>
|
||||
<h2 class="form-title">手术患者交接单</h2>
|
||||
</div>
|
||||
|
||||
@@ -562,6 +562,9 @@ defineOptions({
|
||||
});
|
||||
import {getCurrentInstance, onBeforeMount, onMounted, reactive} from 'vue';
|
||||
import useOptionsList from './useOptionsList';
|
||||
import useUserStore from '@/store/modules/user';
|
||||
|
||||
const userStore = useUserStore();
|
||||
// import { A } from '../../dist/assets/api-DmiMW8YF';
|
||||
const { statisticsOptionList, getStatisticsOptionList } = useOptionsList();
|
||||
const { proxy } = getCurrentInstance();
|
||||
|
||||
@@ -228,7 +228,11 @@ export function executePrint(data, template, printerName, options = {}, business
|
||||
throw new Error('打印插件未加载');
|
||||
}
|
||||
|
||||
const hiprintTemplate = new window.hiprint.PrintTemplate({ template });
|
||||
const userStore = useUserStore();
|
||||
const processedTemplate = JSON.parse(
|
||||
JSON.stringify(template).replace(/{{HOSPITAL_NAME}}/g, userStore.hospitalName)
|
||||
);
|
||||
const hiprintTemplate = new window.hiprint.PrintTemplate({ template: processedTemplate });
|
||||
const printOptions = {
|
||||
title: '打印标题',
|
||||
height: 210,
|
||||
|
||||
@@ -674,7 +674,9 @@ async function print() {
|
||||
};
|
||||
console.log(result, '==result.data==');
|
||||
|
||||
const printElements = templateJson;
|
||||
const printElements = JSON.parse(
|
||||
JSON.stringify(templateJson).replace(/{{HOSPITAL_NAME}}/g, userStore.hospitalName)
|
||||
);
|
||||
var hiprintTemplate = new hiprint.PrintTemplate({ template: printElements }); // 定义模板
|
||||
const printerList = hiprintTemplate.getPrinterList();
|
||||
console.log(hiprintTemplate, '打印机列表');
|
||||
|
||||
@@ -110,7 +110,7 @@
|
||||
"top": 57,
|
||||
"height": 13.5,
|
||||
"width": 145.5,
|
||||
"title": "机构名称:长春市朝阳区中医院",
|
||||
"title": "机构名称:{{HOSPITAL_NAME}}",
|
||||
"coordinateSync": false,
|
||||
"widthHeightSync": false,
|
||||
"fontSize": 9,
|
||||
|
||||
@@ -356,7 +356,7 @@ async function print() {
|
||||
...reportValue.value, // 将 reportValue.value 中的所有属性展开到 result 中
|
||||
nickName: userStore.nickName,
|
||||
orgName: userStore.orgName,
|
||||
fixmedinsName: '长春市朝阳区中医院医院',
|
||||
fixmedinsName: userStore.hospitalName,
|
||||
queryTime: queryTime.value[0] + '~' + queryTime.value[1],
|
||||
zfAmount: new Decimal(reportValue.value.zhSum || 0).add(reportValue.value.fundSum || 0),
|
||||
feeAmount: new Decimal(reportValue.value.DIAGNOSTIC_FEE || 0)
|
||||
|
||||
@@ -514,7 +514,9 @@ async function print() {
|
||||
};
|
||||
console.log(result, '==result.data==');
|
||||
|
||||
const printElements = templateJson;
|
||||
const printElements = JSON.parse(
|
||||
JSON.stringify(templateJson).replace(/{{HOSPITAL_NAME}}/g, userStore.hospitalName)
|
||||
);
|
||||
var hiprintTemplate = new hiprint.PrintTemplate({ template: printElements }); // 定义模板
|
||||
const printerList = hiprintTemplate.getPrinterList();
|
||||
console.log(hiprintTemplate, '打印机列表');
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
"top": 22.5,
|
||||
"height": 12,
|
||||
"width": 420,
|
||||
"title": "长春市朝阳区中医院",
|
||||
"title": "{{HOSPITAL_NAME}}",
|
||||
"coordinateSync": false,
|
||||
"widthHeightSync": false,
|
||||
"fontSize": 13.5,
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
"top": 16.5,
|
||||
"height": 22.5,
|
||||
"width": 120,
|
||||
"title": "长春市朝阳区中医院医院",
|
||||
"title": "{{HOSPITAL_NAME}}医院",
|
||||
"coordinateSync": false,
|
||||
"widthHeightSync": false,
|
||||
"fontFamily": "Microsoft YaHei",
|
||||
|
||||
@@ -660,7 +660,9 @@ function printPrescription() {
|
||||
// 将对象转换为 JSON 字符串
|
||||
console.log(result, 'result');
|
||||
// 模板对象获取
|
||||
const printElements = prescriptionTemplate;
|
||||
const printElements = JSON.parse(
|
||||
JSON.stringify(prescriptionTemplate).replace(/{{HOSPITAL_NAME}}/g, userStore.hospitalName)
|
||||
);
|
||||
var hiprintTemplate = new hiprint.PrintTemplate({ template: printElements }); // 定义模板
|
||||
hiprintTemplate.print2(result, {
|
||||
title: '打印标题',
|
||||
@@ -695,7 +697,9 @@ function printDisposal() {
|
||||
.join(',');
|
||||
advicePrint({ requestIds: requestIds }).then((res) => {
|
||||
const result = res.data;
|
||||
const printElements = disposalTemplate;
|
||||
const printElements = JSON.parse(
|
||||
JSON.stringify(disposalTemplate).replace(/{{HOSPITAL_NAME}}/g, userStore.hospitalName)
|
||||
);
|
||||
var hiprintTemplate = new hiprint.PrintTemplate({ template: printElements }); // 定义模板
|
||||
hiprintTemplate.print2(result, {
|
||||
height: 210,
|
||||
@@ -735,7 +739,9 @@ function printBloodBarcode() {
|
||||
} else {
|
||||
printBloodCode({ requestId: selectedRows[0].requestId }).then((res) => {
|
||||
const result = res.data;
|
||||
const printElements = bloodTemplate;
|
||||
const printElements = JSON.parse(
|
||||
JSON.stringify(bloodTemplate).replace(/{{HOSPITAL_NAME}}/g, userStore.hospitalName)
|
||||
);
|
||||
var hiprintTemplate = new hiprint.PrintTemplate({ template: printElements }); // 定义模板
|
||||
hiprintTemplate.print2(result, {
|
||||
height: 210,
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
<span>CF0000000001</span>
|
||||
</div>
|
||||
<div style="text-align: center">
|
||||
<h2>长春市朝阳区中医院医院</h2>
|
||||
<h2>{{ userStore.hospitalName }}</h2>
|
||||
</div>
|
||||
<div style="text-align: center">
|
||||
<h3>处方单</h3>
|
||||
@@ -130,7 +130,9 @@
|
||||
|
||||
<script setup name="historicalPrescriptionDetail">
|
||||
import {getPrescriptionDetail} from './api';
|
||||
import useUserStore from '@/store/modules/user';
|
||||
|
||||
const userStore = useUserStore();
|
||||
const { proxy } = getCurrentInstance();
|
||||
|
||||
const props = defineProps({
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<span>{{ item.prescriptionNo }}</span>
|
||||
</div>
|
||||
<div style="text-align: center">
|
||||
<h2>长春市朝阳区中医院医院</h2>
|
||||
<h2>{{ userStore.hospitalName }}</h2>
|
||||
</div>
|
||||
<div style="text-align: center">
|
||||
<h3>处方单</h3>
|
||||
@@ -144,6 +144,9 @@
|
||||
import {formatDateStr} from '@/utils/index';
|
||||
//高精度库
|
||||
import Decimal from 'decimal.js';
|
||||
import useUserStore from '@/store/modules/user';
|
||||
|
||||
const userStore = useUserStore();
|
||||
|
||||
const props = defineProps({
|
||||
open: {
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
"top": 16.5,
|
||||
"height": 22.5,
|
||||
"width": 120,
|
||||
"title": "长春市朝阳区中医院医院",
|
||||
"title": "{{HOSPITAL_NAME}}医院",
|
||||
"coordinateSync": false,
|
||||
"widthHeightSync": false,
|
||||
"fontFamily": "Microsoft YaHei",
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div style="padding: 20px; max-width: 1200px; margin: 0 auto" ref="bodyRef">
|
||||
<!-- 标题区域 - 居中加粗,增加层次感 -->
|
||||
<div style="text-align: center; margin-bottom: 30px">
|
||||
<div style="font-size: 22px; color: #333; letter-spacing: 1px">长春市朝阳区中医院</div>
|
||||
<div style="font-size: 22px; color: #333; letter-spacing: 1px">{{ userStore.hospitalName }}</div>
|
||||
<div
|
||||
style="
|
||||
font-size: 32px;
|
||||
@@ -614,7 +614,7 @@
|
||||
border-top: 1px solid #eee;
|
||||
"
|
||||
>
|
||||
本记录由长春市朝阳区中医院医师根据患者病情如实记录,仅供临床诊疗参考 |
|
||||
本记录由{{ userStore.hospitalName }}医师根据患者病情如实记录,仅供临床诊疗参考 |
|
||||
地址:长春市朝阳区XX街XX号 | 联系电话:0431-XXXXXXX
|
||||
</div>
|
||||
|
||||
@@ -629,7 +629,9 @@
|
||||
|
||||
<script setup>
|
||||
import {reactive, ref} from 'vue';
|
||||
import useUserStore from '@/store/modules/user';
|
||||
|
||||
const userStore = useUserStore();
|
||||
const bodyRef = ref();
|
||||
|
||||
// 响应式表单数据
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
margin-bottom: 8px;
|
||||
"
|
||||
>
|
||||
长春市朝阳区中医院
|
||||
{{ userStore.hospitalName }}
|
||||
</div>
|
||||
<div
|
||||
style="
|
||||
@@ -500,7 +500,9 @@
|
||||
|
||||
<script setup>
|
||||
import {reactive, ref} from 'vue'; // 补充缺失的reactive导入
|
||||
import useUserStore from '@/store/modules/user';
|
||||
|
||||
const userStore = useUserStore();
|
||||
const bodyRef = ref(null);
|
||||
const showPrintPreview = ref(false); // 控制弹窗显隐
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
word-wrap: break-word;
|
||||
"
|
||||
>
|
||||
长春市朝阳区中医院
|
||||
{{ userStore.hospitalName }}
|
||||
</div>
|
||||
<div
|
||||
style="
|
||||
@@ -721,7 +721,7 @@
|
||||
word-wrap: break-word;
|
||||
"
|
||||
>
|
||||
长春市朝阳区中医院
|
||||
{{ userStore.hospitalName }}
|
||||
</div>
|
||||
<div
|
||||
style="
|
||||
@@ -1346,8 +1346,10 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {reactive, ref} from 'vue';
|
||||
import {computed, reactive, ref} from 'vue';
|
||||
import useUserStore from '@/store/modules/user';
|
||||
|
||||
const userStore = useUserStore();
|
||||
const bodyRef = ref();
|
||||
const printContentRef = ref(); // 新增打印内容的ref
|
||||
const showPrintPreview = ref(false); // 控制打印预览弹窗显示
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<!-- 标题区域 - 强化正式感 -->
|
||||
<div
|
||||
style="text-align: center; margin-bottom: 30px; padding: 20px; background: #fff; border-radius: 12px; box-shadow: 0 2px 6px rgba(0,0,0,0.03);">
|
||||
<div style="font-size: 22px; color: #2d3748; letter-spacing: 1px;">长春市朝阳区中医院</div>
|
||||
<div style="font-size: 22px; color: #2d3748; letter-spacing: 1px;">{{ userStore.hospitalName }}</div>
|
||||
<div
|
||||
style="font-size: 28px; font-weight: 700; margin: 12px 0; padding: 8px 0; border-bottom: 2px solid #e8f4f8; display: inline-block;">
|
||||
住院患者入院沟通记录单</div>
|
||||
@@ -343,5 +343,7 @@
|
||||
}
|
||||
</style>
|
||||
<script setup>
|
||||
import useUserStore from '@/store/modules/user';
|
||||
|
||||
const userStore = useUserStore();
|
||||
</script>
|
||||
@@ -11,7 +11,7 @@
|
||||
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.03);
|
||||
"
|
||||
>
|
||||
<div style="font-size: 22px; color: #2d3748; letter-spacing: 1px">长春市朝阳区中医院</div>
|
||||
<div style="font-size: 22px; color: #2d3748; letter-spacing: 1px">{{ userStore.hospitalName }}</div>
|
||||
<div
|
||||
style="
|
||||
font-size: 28px;
|
||||
@@ -823,7 +823,9 @@
|
||||
|
||||
<script setup>
|
||||
import {reactive, ref} from 'vue';
|
||||
import useUserStore from '@/store/modules/user';
|
||||
|
||||
const userStore = useUserStore();
|
||||
const bodyRef = ref();
|
||||
// 响应式表单数据
|
||||
const formData = reactive({
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<div
|
||||
style="display: flex; flex-direction: column; justify-content: center; align-items: center"
|
||||
>
|
||||
<div style="font-size: 20px">长春市朝阳区中医院</div>
|
||||
<div style="font-size: 20px">{{ userStore.hospitalName }}</div>
|
||||
<div style="font-size: 30px; font-weight: bold; padding-top: 10px">住院病案首页</div>
|
||||
</div>
|
||||
<!-- 线 -->
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
金额已满足应收,不可继续添加
|
||||
</el-text>
|
||||
</div>
|
||||
<div style="margin-top: 10px" v-if="userStore.hospitalName == '长春市朝阳区中医院'">
|
||||
<div style="margin-top: 10px" v-if="userStore.fixmedinsCode == 'H22010200672'">
|
||||
<span>折扣:</span>
|
||||
<el-radio-group v-model="discountRadio" @change="handleDiscountChange">
|
||||
<el-radio-button
|
||||
@@ -352,7 +352,9 @@ function printReceipt(param) {
|
||||
},
|
||||
],
|
||||
};
|
||||
const printElements = templateJson;
|
||||
const printElements = JSON.parse(
|
||||
JSON.stringify(templateJson).replace(/{{HOSPITAL_NAME}}/g, userStore.hospitalName)
|
||||
);
|
||||
var hiprintTemplate = new hiprint.PrintTemplate({ template: printElements }); // 定义模板
|
||||
|
||||
hiprintTemplate.print2(result.data[0], {
|
||||
@@ -463,7 +465,9 @@ async function print() {
|
||||
};
|
||||
console.log(result, '==result.data==');
|
||||
|
||||
const printElements = templateJson;
|
||||
const printElements = JSON.parse(
|
||||
JSON.stringify(templateJson).replace(/{{HOSPITAL_NAME}}/g, userStore.hospitalName)
|
||||
);
|
||||
var hiprintTemplate = new hiprint.PrintTemplate({ template: printElements }); // 定义模板
|
||||
const printerList = hiprintTemplate.getPrinterList();
|
||||
console.log(hiprintTemplate, '打印机列表');
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
"top": 15,
|
||||
"height": 16.5,
|
||||
"width": 142.5,
|
||||
"title": "长春市朝阳区中医院门诊收费结算单",
|
||||
"title": "{{HOSPITAL_NAME}}门诊收费结算单",
|
||||
"coordinateSync": false,
|
||||
"widthHeightSync": false,
|
||||
"fontWeight": "bold",
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div class="container">
|
||||
<el-form :model="state.form">
|
||||
<div class="record-container">
|
||||
<div class="title">长春市朝阳区中医院</div>
|
||||
<div class="title">{{ userStore.hospitalName }}</div>
|
||||
<div class="subtitle">入院记录</div>
|
||||
<div class="header">
|
||||
<span>姓名: [<el-input v-model="state.form.name" class="inline-input" />]</span>
|
||||
@@ -98,6 +98,9 @@
|
||||
<script setup>
|
||||
import {getCurrentInstance, onBeforeMount, onMounted, reactive} from 'vue'
|
||||
|
||||
import useUserStore from '@/store/modules/user'
|
||||
|
||||
const userStore = useUserStore();
|
||||
const { proxy } = getCurrentInstance();
|
||||
const emits = defineEmits([]);
|
||||
const props = defineProps({})
|
||||
|
||||
@@ -432,6 +432,7 @@ function sliceData(data) {
|
||||
const types = data.types.filter((item) => item.weekNo === week.value);
|
||||
// const datas = JSON.parse(JSON.stringify(data));
|
||||
const datas = cloneDeep(data);
|
||||
datas.grParamBOS.title = userStore.hospitalName;
|
||||
datas.rows = rows;
|
||||
datas.types = types;
|
||||
console.log(datas, '666666666666666666');
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
"top": 12,
|
||||
"height": 12,
|
||||
"width": 115.5,
|
||||
"title": "长春市朝阳区中医院医院盘点单",
|
||||
"title": "{{HOSPITAL_NAME}}医院盘点单",
|
||||
"coordinateSync": false,
|
||||
"widthHeightSync": false,
|
||||
"fontSize": 12,
|
||||
@@ -72,7 +72,7 @@
|
||||
"top": 33,
|
||||
"height": 9.75,
|
||||
"width": 120,
|
||||
"title": "机构:长春市朝阳区中医院医院",
|
||||
"title": "机构:{{HOSPITAL_NAME}}医院",
|
||||
"coordinateSync": false,
|
||||
"widthHeightSync": false,
|
||||
"qrCodeLevel": 0
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
"top": 13.5,
|
||||
"height": 12,
|
||||
"width": 75,
|
||||
"title": "长春市朝阳区中医院医院",
|
||||
"title": "{{HOSPITAL_NAME}}医院",
|
||||
"coordinateSync": false,
|
||||
"widthHeightSync": false,
|
||||
"fontSize": 12,
|
||||
@@ -84,7 +84,7 @@
|
||||
"top": 33,
|
||||
"height": 9.75,
|
||||
"width": 120,
|
||||
"title": "机构:长春市朝阳区中医院医院",
|
||||
"title": "机构:{{HOSPITAL_NAME}}医院",
|
||||
"coordinateSync": false,
|
||||
"widthHeightSync": false,
|
||||
"qrCodeLevel": 0
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
placeholder=""
|
||||
clearable
|
||||
style="width: 150px">
|
||||
<el-option label="长春市朝阳区中医院" value="sameHospital" />
|
||||
<el-option :label="userStore.hospitalName" value="sameHospital" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
@@ -120,7 +120,9 @@
|
||||
<script setup name="OutpatientDepartmentMetrics">
|
||||
import {getOutpatientDepartmentMetrics} from './statisticalManagent';
|
||||
import {computed, reactive, ref, toRefs} from 'vue';
|
||||
import useUserStore from '@/store/modules/user';
|
||||
|
||||
const userStore = useUserStore();
|
||||
const loading = ref(true);
|
||||
const total = ref(0);
|
||||
const data = reactive({
|
||||
|
||||
@@ -33,8 +33,13 @@
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd">新增手术室</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete">
|
||||
批量删除
|
||||
<el-button type="success" plain icon="VideoPlay" :disabled="multiple" @click="handleEnable(ids)">
|
||||
批量启用
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="warning" plain icon="VideoPause" :disabled="multiple" @click="handleDisable(ids)">
|
||||
批量停用
|
||||
</el-button>
|
||||
</el-col>
|
||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||
@@ -50,7 +55,7 @@
|
||||
>
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="序号" type="index" align="center" width="60" />
|
||||
<el-table-column label="手术室编码" align="center" prop="busNo" width="120" show-overflow-tooltip />
|
||||
<el-table-column label="房间号" align="center" prop="busNo" width="120" show-overflow-tooltip />
|
||||
<el-table-column label="手术室名称" align="center" prop="name" min-width="150" show-overflow-tooltip />
|
||||
<el-table-column label="类型" align="center" prop="roomTypeEnum_dictText" width="100" />
|
||||
<el-table-column label="所属科室" align="center" prop="organizationName" width="120" show-overflow-tooltip />
|
||||
@@ -65,16 +70,24 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="显示顺序" align="center" prop="displayOrder" width="100" />
|
||||
<el-table-column label="操作" align="center" width="180" fixed="right">
|
||||
<el-table-column label="操作" align="center" width="220" fixed="right">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" icon="Edit" @click="handleEdit(scope.row)">编辑</el-button>
|
||||
<el-button link type="primary" icon="View" @click="handleView(scope.row)">查看</el-button>
|
||||
<el-button
|
||||
v-if="scope.row.statusEnum === 1"
|
||||
link
|
||||
type="danger"
|
||||
icon="Delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
>删除</el-button>
|
||||
type="warning"
|
||||
icon="VideoPause"
|
||||
@click="handleDisable([scope.row.id])"
|
||||
>停用</el-button>
|
||||
<el-button
|
||||
v-else
|
||||
link
|
||||
type="success"
|
||||
icon="VideoPlay"
|
||||
@click="handleEnable([scope.row.id])"
|
||||
>启用</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -92,11 +105,19 @@
|
||||
<el-dialog :title="title" v-model="open" width="700px" append-to-body>
|
||||
<el-form ref="operatingRoomRef" :model="form" :rules="rules" label-width="120px">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="房间号" prop="busNo">
|
||||
<el-input v-model="form.busNo" placeholder="请输入房间号" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="手术室名称" prop="name">
|
||||
<el-input v-model="form.name" placeholder="请输入手术室名称" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="容纳人数" prop="capacity">
|
||||
<el-input-number
|
||||
@@ -231,11 +252,12 @@
|
||||
</template>
|
||||
|
||||
<script setup name="OperatingRoomManage">
|
||||
import { listOperatingRoom, getOperatingRoom, addOperatingRoom, updateOperatingRoom, deleteOperatingRoom } from '@/api/operatingroom'
|
||||
import { listOperatingRoom, getOperatingRoom, addOperatingRoom, updateOperatingRoom, deleteOperatingRoom, enableOperatingRoom, disableOperatingRoom } from '@/api/operatingroom'
|
||||
import { deptTreeSelect } from '@/api/system/user'
|
||||
import { computed } from 'vue'
|
||||
|
||||
const { proxy } = getCurrentInstance()
|
||||
const { operating_room_type } = proxy.useDict('operating_room_type')
|
||||
const loading = ref(true)
|
||||
const showSearch = ref(true)
|
||||
const operatingRoomList = ref([])
|
||||
@@ -291,12 +313,7 @@ const form = ref({
|
||||
const operatingRoomRef = ref()
|
||||
const viewData = ref({})
|
||||
|
||||
const roomTypeOptions = ref([
|
||||
{ value: 1, label: '急诊手术室' },
|
||||
{ value: 2, label: '择期手术室' },
|
||||
{ value: 3, label: '日间手术室' },
|
||||
{ value: 4, label: '复合手术室' }
|
||||
])
|
||||
const roomTypeOptions = operating_room_type
|
||||
|
||||
const statusOptions = ref([
|
||||
{ value: 1, label: '启用' },
|
||||
@@ -304,6 +321,7 @@ const statusOptions = ref([
|
||||
])
|
||||
|
||||
const rules = ref({
|
||||
busNo: [{ required: true, message: '房间号不能为空', trigger: 'blur' }],
|
||||
name: [{ required: true, message: '手术室名称不能为空', trigger: 'blur' }],
|
||||
capacity: [
|
||||
{ required: true, message: '容纳人数不能为空', trigger: 'blur' },
|
||||
@@ -484,17 +502,30 @@ function submitForm() {
|
||||
})
|
||||
}
|
||||
|
||||
/** 删除按钮操作 */
|
||||
function handleDelete(row) {
|
||||
const ids = row.id || ids.value
|
||||
/** 启用按钮操作 */
|
||||
function handleEnable(ids) {
|
||||
proxy.$modal
|
||||
.confirm('是否确认删除选中的手术室?')
|
||||
.confirm('是否确认启用选中的手术室?')
|
||||
.then(function () {
|
||||
return deleteOperatingRoom(ids)
|
||||
return enableOperatingRoom(ids)
|
||||
})
|
||||
.then(() => {
|
||||
getList()
|
||||
proxy.$modal.msgSuccess('删除成功')
|
||||
proxy.$modal.msgSuccess('启用成功')
|
||||
})
|
||||
.catch(() => {})
|
||||
}
|
||||
|
||||
/** 停用按钮操作 */
|
||||
function handleDisable(ids) {
|
||||
proxy.$modal
|
||||
.confirm('是否确认停用选中的手术室?')
|
||||
.then(function () {
|
||||
return disableOperatingRoom(ids)
|
||||
})
|
||||
.then(() => {
|
||||
getList()
|
||||
proxy.$modal.msgSuccess('停用成功')
|
||||
})
|
||||
.catch(() => {})
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
"top": 22.5,
|
||||
"height": 12,
|
||||
"width": 88.5,
|
||||
"title": "长春市朝阳区中医院医院",
|
||||
"title": "{{HOSPITAL_NAME}}医院",
|
||||
"coordinateSync": false,
|
||||
"widthHeightSync": false,
|
||||
"fontSize": 13.5,
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
"top": 16.5,
|
||||
"height": 22.5,
|
||||
"width": 120,
|
||||
"title": "长春市朝阳区中医院医院",
|
||||
"title": "{{HOSPITAL_NAME}}医院",
|
||||
"coordinateSync": false,
|
||||
"widthHeightSync": false,
|
||||
"fontFamily": "Microsoft YaHei",
|
||||
|
||||
Reference in New Issue
Block a user