diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/appointmentmanage/appservice/impl/SchedulePoolAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/appointmentmanage/appservice/impl/SchedulePoolAppServiceImpl.java index 8dda55da..93714363 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/appointmentmanage/appservice/impl/SchedulePoolAppServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/appointmentmanage/appservice/impl/SchedulePoolAppServiceImpl.java @@ -18,11 +18,11 @@ public class SchedulePoolAppServiceImpl implements ISchedulePoolAppService { @Override public R> addSchedulePool(SchedulePoolDto schedulePoolDto) { - //12/15 实体封装过程数据关系复杂 尚未完全理清 下次继续改 + //1.数据检验 if(ObjectUtil.isNull(schedulePoolDto)){ return R.fail("号源不能为空"); } - + //2.封装实体 SchedulePool schedulePool = new SchedulePool(); schedulePool.setHospitalId(schedulePoolDto.getHospitalId()); schedulePool.setDeptId(schedulePoolDto.getDeptId()); @@ -35,6 +35,7 @@ public class SchedulePoolAppServiceImpl implements ISchedulePoolAppService { schedulePool.setRegType(schedulePoolDto.getRegType()); schedulePool.setFee(schedulePoolDto.getFee()); + //3.保存 boolean save = schedulePoolService.save(schedulePool); return R.ok(save); } diff --git a/openhis-ui-vue3/package-lock.json b/openhis-ui-vue3/package-lock.json index 4b106bf0..6e2324e6 100644 --- a/openhis-ui-vue3/package-lock.json +++ b/openhis-ui-vue3/package-lock.json @@ -3,14 +3,6 @@ "version": "3.8.7", "lockfileVersion": 3, "requires": true, - "resolutions": { - "stable": "^0.1.8", - "source-map-url": "^0.4.1", - "urix": "^0.1.0", - "resolve-url": "^0.2.1", - "source-map-resolve": "^0.6.0", - "sourcemap-codec": "^1.4.8" - }, "packages": { "": { "name": "openhis", @@ -8329,5 +8321,13 @@ "tslib": "2.3.0" } } + }, + "resolutions": { + "resolve-url": "^0.2.1", + "source-map-resolve": "^0.6.0", + "source-map-url": "^0.4.1", + "sourcemap-codec": "^1.4.8", + "stable": "^0.1.8", + "urix": "^0.1.0" } -} \ No newline at end of file +} diff --git a/openhis-ui-vue3/package.json b/openhis-ui-vue3/package.json index 7a3002f7..e8cb36d0 100644 --- a/openhis-ui-vue3/package.json +++ b/openhis-ui-vue3/package.json @@ -51,7 +51,7 @@ "devDependencies": { "@vitejs/plugin-vue": "^5.0.0", "@vue/compiler-sfc": "^3.5.25", - "sass": "^1.70.0", + "sass": "^1.77.8", "unplugin-auto-import": "^0.19.0", "unplugin-vue-setup-extend-plus": "^1.0.0", "vite": "^5.0.4", diff --git a/openhis-ui-vue3/src/api/system/config.js b/openhis-ui-vue3/src/api/system/config.js index a404d825..f22408e5 100644 --- a/openhis-ui-vue3/src/api/system/config.js +++ b/openhis-ui-vue3/src/api/system/config.js @@ -18,10 +18,11 @@ export function getConfig(configId) { } // 根据参数键名查询参数值 -export function getConfigKey(configKey) { +export function getConfigKey(configKey, options = {}) { return request({ url: '/system/config/configKey/' + configKey, - method: 'get' + method: 'get', + ...options }) } diff --git a/openhis-ui-vue3/src/assets/styles/btn.scss b/openhis-ui-vue3/src/assets/styles/btn.scss index 3590d8d2..150ed1c9 100644 --- a/openhis-ui-vue3/src/assets/styles/btn.scss +++ b/openhis-ui-vue3/src/assets/styles/btn.scss @@ -1,15 +1,43 @@ @import './variables.module.scss'; +// Element Plus风格的颜色按钮样式 @mixin colorBtn($color) { - background: $color; + display: inline-flex; + align-items: center; + justify-content: center; + padding: 8px 16px; + font-size: 14px; + font-weight: 400; + line-height: 1; + white-space: nowrap; + text-align: center; + background-image: none; + border: 1px solid $color; + border-radius: 4px; + cursor: pointer; + transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + box-sizing: border-box; + color: #fff; + background-color: $color; - &:hover { - color: $color; + &:hover, + &:focus { + background-color: lighten($color, 10%); + border-color: lighten($color, 10%); + color: #fff; + } - &:before, - &:after { - background: $color; - } + &:active { + background-color: darken($color, 5%); + border-color: darken($color, 5%); + color: #fff; + } + + &:disabled { + color: #c0c4cc; + background-color: #f5f7fa; + border-color: #e4e7ed; + cursor: not-allowed; } } @@ -42,42 +70,110 @@ } .pan-btn { + display: inline-flex; + align-items: center; + justify-content: center; + padding: 8px 16px; font-size: 14px; - color: #fff; - padding: 14px 36px; - border-radius: 8px; + font-weight: 400; + line-height: 1; + white-space: nowrap; + text-align: center; + background-image: none; + border: 1px solid #dcdfe6; + border-radius: 4px; + cursor: pointer; + transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + box-sizing: border-box; + color: #606266; + background-color: #fff; + + &:hover, + &:focus { + color: #409eff; + border-color: #c6e2ff; + background-color: #ecf5ff; + } + + &:active { + color: #3a8ee6; + border-color: #3a8ee6; + background-color: #ecf5ff; + } + + &:disabled { + color: #c0c4cc; + background-color: #f5f7fa; + border-color: #e4e7ed; + cursor: not-allowed; + } +} + +// Element Plus风格的链接按钮样式 +.pan-btn-link { + display: inline-flex; + align-items: center; + justify-content: center; + padding: 8px 16px; + font-size: 14px; + font-weight: 400; + line-height: 1; + white-space: nowrap; + text-align: center; + background-image: none; border: none; + border-radius: 4px; + cursor: pointer; + transition: color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + box-sizing: border-box; + background-color: transparent; + text-decoration: none; outline: none; - transition: 600ms ease all; - position: relative; - display: inline-block; - - &:hover { - background: #fff; - - &:before, - &:after { - width: 100%; - transition: 600ms ease all; - } + + &:hover, + &:focus { + text-decoration: underline; } - - &:before, - &:after { - content: ''; - position: absolute; - top: 0; - right: 0; - height: 2px; - width: 0; - transition: 400ms ease all; + + &:active { + opacity: 0.8; } + + &:disabled { + color: #c0c4cc; + cursor: not-allowed; + text-decoration: none; + } +} - &::after { - right: inherit; - top: inherit; - left: 0; - bottom: 0; +// 不同颜色的链接按钮 +.blue-btn-link { + @extend .pan-btn-link; + color: #409eff; + + &:hover, + &:focus { + color: #66b1ff; + } +} + +.red-btn-link { + @extend .pan-btn-link; + color: #f56c6c; + + &:hover, + &:focus { + color: #f78989; + } +} + +.info-btn-link { + @extend .pan-btn-link; + color: #909399; + + &:hover, + &:focus { + color: #a6a9ad; } } diff --git a/openhis-ui-vue3/src/router/index.js b/openhis-ui-vue3/src/router/index.js index f5a83904..04b2e900 100644 --- a/openhis-ui-vue3/src/router/index.js +++ b/openhis-ui-vue3/src/router/index.js @@ -26,21 +26,21 @@ import Layout from '@/layout' // 公共路由 - 所有用户均可访问的路由 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: '/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', @@ -101,167 +101,167 @@ export const constantRoutes = [ ] }, // 套餐管理相关路由 - 添加到公共路由确保始终可用 - { - path: '/maintainSystem/Inspection/PackageManagement', - component: Layout, - hidden: true, - children: [ - { - path: '', - component: () => import('@/views/maintainSystem/Inspection/PackageManagement.vue'), - name: 'DirectPackageManagement', - meta: { title: '套餐管理' } - } - ] - }, + // { + // 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: '门诊出诊医生诊室设置' } - } - ] - } + // { + // 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: '/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: '/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: '/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', + // 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', diff --git a/openhis-ui-vue3/src/views/basicmanage/InvoiceManagement/index.vue b/openhis-ui-vue3/src/views/basicmanage/InvoiceManagement/index.vue index fba73240..f94a16c6 100644 --- a/openhis-ui-vue3/src/views/basicmanage/InvoiceManagement/index.vue +++ b/openhis-ui-vue3/src/views/basicmanage/InvoiceManagement/index.vue @@ -8,12 +8,12 @@
@@ -119,7 +119,7 @@