feat(login): 添加租户名称获取功能并优化前端布局

- 在登录控制器中注入租户服务并获取租户名称信息
- 添加租户名称到登录响应结果中
- 更新样式变量定义侧边栏宽度和Logo高度
- 重构公告面板组件统一公告通知显示逻辑
- 简化公告类型图标和样式映射关系
- 更新侧边栏为垂直菜单布局并添加折叠功能
- 优化Logo组件显示租户名称和系统标题
- 调整导航栏布局结构和响应式样式
- 重构主应用容器样式和标签页显示逻辑
This commit is contained in:
2025-12-31 10:28:52 +08:00
parent 10e738edd9
commit 4d4828ea71
54 changed files with 3510 additions and 754 deletions

View File

@@ -6,7 +6,7 @@ spring:
druid:
# 主库数据源
master:
url: jdbc:postgresql://47.116.196.11:15432/postgresql?currentSchema=hisdev&characterEncoding=UTF-8&client_encoding=UTF-8
url: jdbc:postgresql://192.168.110.252:15432/postgresql?currentSchema=hisdev&characterEncoding=UTF-8&client_encoding=UTF-8
username: postgresql
password: Jchl1528
# 从库数据源
@@ -64,9 +64,9 @@ spring:
# redis 配置
redis:
# 地址
host: 47.116.196.11
host: 192.168.110.252
# 端口默认为6379
port: 26379
port: 6379
# 数据库索引
database: 1
# 密码

View File

@@ -0,0 +1,85 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.openhis.clinical.mapper.SurgeryMapper">
<resultMap type="com.openhis.clinical.domain.Surgery" id="SurgeryResult">
<result property="id" column="id" />
<result property="surgeryNo" column="surgery_no" />
<result property="patientId" column="patient_id" />
<result property="patientName" column="patient_name" />
<result property="encounterId" column="encounter_id" />
<result property="surgeryName" column="surgery_name" />
<result property="surgeryCode" column="surgery_code" />
<result property="surgeryTypeEnum" column="surgery_type_enum" />
<result property="surgeryLevel" column="surgery_level" />
<result property="statusEnum" column="status_enum" />
<result property="plannedTime" column="planned_time" />
<result property="actualStartTime" column="actual_start_time" />
<result property="actualEndTime" column="actual_end_time" />
<result property="mainSurgeonId" column="main_surgeon_id" />
<result property="mainSurgeonName" column="main_surgeon_name" />
<result property="assistant1Id" column="assistant_1_id" />
<result property="assistant1Name" column="assistant_1_name" />
<result property="assistant2Id" column="assistant_2_id" />
<result property="assistant2Name" column="assistant_2_name" />
<result property="anesthetistId" column="anesthetist_id" />
<result property="anesthetistName" column="anesthetist_name" />
<result property="scrubNurseId" column="scrub_nurse_id" />
<result property="scrubNurseName" column="scrub_nurse_name" />
<result property="anesthesiaTypeEnum" column="anesthesia_type_enum" />
<result property="bodySite" column="body_site" />
<result property="incisionLevel" column="incision_level" />
<result property="healingLevel" column="healing_level" />
<result property="operatingRoomId" column="operating_room_id" />
<result property="operatingRoomName" column="operating_room_name" />
<result property="orgId" column="org_id" />
<result property="orgName" column="org_name" />
<result property="preoperativeDiagnosis" column="preoperative_diagnosis" />
<result property="postoperativeDiagnosis" column="postoperative_diagnosis" />
<result property="surgeryDescription" column="surgery_description" />
<result property="postoperativeAdvice" column="postoperative_advice" />
<result property="complications" column="complications" />
<result property="surgeryFee" column="surgery_fee" />
<result property="anesthesiaFee" column="anesthesia_fee" />
<result property="totalFee" column="total_fee" />
<result property="remark" column="remark" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="deleteFlag" column="delete_flag" />
</resultMap>
<sql id="selectSurgeryVo">
SELECT
id, surgery_no, patient_id, patient_name, encounter_id, surgery_name, surgery_code,
surgery_type_enum, surgery_level, status_enum, planned_time, actual_start_time, actual_end_time,
main_surgeon_id, main_surgeon_name, assistant_1_id, assistant_1_name, assistant_2_id, assistant_2_name,
anesthetist_id, anesthetist_name, scrub_nurse_id, scrub_nurse_name, anesthesia_type_enum,
body_site, incision_level, healing_level, operating_room_id, operating_room_name,
org_id, org_name, preoperative_diagnosis, postoperative_diagnosis, surgery_description,
postoperative_advice, complications, surgery_fee, anesthesia_fee, total_fee, remark,
create_by, create_time, update_by, update_time, delete_flag
FROM cli_surgery
</sql>
<select id="selectByPatientId" parameterType="Long" resultMap="SurgeryResult">
<include refid="selectSurgeryVo"/>
WHERE patient_id = #{patientId} AND delete_flag = '0'
ORDER BY create_time DESC
</select>
<select id="selectByEncounterId" parameterType="Long" resultMap="SurgeryResult">
<include refid="selectSurgeryVo"/>
WHERE encounter_id = #{encounterId} AND delete_flag = '0'
ORDER BY create_time DESC
</select>
<select id="selectBySurgeryNo" parameterType="String" resultMap="SurgeryResult">
<include refid="selectSurgeryVo"/>
WHERE surgery_no = #{surgeryNo} AND delete_flag = '0'
</select>
</mapper>

View File

@@ -0,0 +1,135 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.openhis.web.clinicalmanage.mapper.SurgeryAppMapper">
<resultMap type="com.openhis.web.clinicalmanage.dto.SurgeryDto" id="SurgeryResult">
<result property="id" column="id" />
<result property="surgeryNo" column="surgery_no" />
<result property="patientId" column="patient_id" />
<result property="patientName" column="patient_name" />
<result property="patientGender" column="patient_gender" />
<result property="patientAge" column="patient_age" />
<result property="encounterId" column="encounter_id" />
<result property="encounterNo" column="encounter_no" />
<result property="surgeryName" column="surgery_name" />
<result property="surgeryCode" column="surgery_code" />
<result property="surgeryTypeEnum" column="surgery_type_enum" />
<result property="surgeryTypeEnum_dictText" column="surgery_type_enum_dictText" />
<result property="surgeryLevel" column="surgery_level" />
<result property="surgeryLevel_dictText" column="surgery_level_dictText" />
<result property="statusEnum" column="status_enum" />
<result property="statusEnum_dictText" column="status_enum_dictText" />
<result property="plannedTime" column="planned_time" />
<result property="actualStartTime" column="actual_start_time" />
<result property="actualEndTime" column="actual_end_time" />
<result property="mainSurgeonId" column="main_surgeon_id" />
<result property="mainSurgeonName" column="main_surgeon_name" />
<result property="assistant1Id" column="assistant_1_id" />
<result property="assistant1Name" column="assistant_1_name" />
<result property="assistant2Id" column="assistant_2_id" />
<result property="assistant2Name" column="assistant_2_name" />
<result property="anesthetistId" column="anesthetist_id" />
<result property="anesthetistName" column="anesthetist_name" />
<result property="scrubNurseId" column="scrub_nurse_id" />
<result property="scrubNurseName" column="scrub_nurse_name" />
<result property="anesthesiaTypeEnum" column="anesthesia_type_enum" />
<result property="anesthesiaTypeEnum_dictText" column="anesthesia_type_enum_dictText" />
<result property="bodySite" column="body_site" />
<result property="incisionLevel" column="incision_level" />
<result property="incisionLevel_dictText" column="incision_level_dictText" />
<result property="healingLevel" column="healing_level" />
<result property="healingLevel_dictText" column="healing_level_dictText" />
<result property="operatingRoomId" column="operating_room_id" />
<result property="operatingRoomName" column="operating_room_name" />
<result property="orgId" column="org_id" />
<result property="orgName" column="org_name" />
<result property="preoperativeDiagnosis" column="preoperative_diagnosis" />
<result property="postoperativeDiagnosis" column="postoperative_diagnosis" />
<result property="surgeryDescription" column="surgery_description" />
<result property="postoperativeAdvice" column="postoperative_advice" />
<result property="complications" column="complications" />
<result property="surgeryFee" column="surgery_fee" />
<result property="anesthesiaFee" column="anesthesia_fee" />
<result property="totalFee" column="total_fee" />
<result property="remark" column="remark" />
<result property="createTime" column="create_time" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="selectSurgeryVo">
SELECT
s.id,
s.surgery_no,
s.patient_id,
p.name as patient_name,
CASE p.gender_enum WHEN 1 THEN '男' WHEN 2 THEN '女' ELSE '未知' END as patient_gender,
EXTRACT(YEAR FROM AGE(p.birth_date)) as patient_age,
s.encounter_id,
e.bus_no as encounter_no,
s.surgery_name,
s.surgery_code,
s.surgery_type_enum,
s.surgery_type_enum as surgery_type_enum_dictText,
s.surgery_level,
s.surgery_level as surgery_level_dictText,
s.status_enum,
s.status_enum as status_enum_dictText,
s.planned_time,
s.actual_start_time,
s.actual_end_time,
s.main_surgeon_id,
s.main_surgeon_name,
s.assistant_1_id,
s.assistant_1_name,
s.assistant_2_id,
s.assistant_2_name,
s.anesthetist_id,
s.anesthetist_name,
s.scrub_nurse_id,
s.scrub_nurse_name,
s.anesthesia_type_enum,
s.anesthesia_type_enum as anesthesia_type_enum_dictText,
s.body_site,
s.incision_level,
s.incision_level as incision_level_dictText,
s.healing_level,
s.healing_level as healing_level_dictText,
s.operating_room_id,
s.operating_room_name,
s.org_id,
o.name as org_name,
s.preoperative_diagnosis,
s.postoperative_diagnosis,
s.surgery_description,
s.postoperative_advice,
s.complications,
s.surgery_fee,
s.anesthesia_fee,
s.total_fee,
s.remark,
s.create_time,
s.update_time
FROM cli_surgery s
LEFT JOIN adm_patient p ON s.patient_id = p.id
LEFT JOIN adm_encounter e ON s.encounter_id = e.id
LEFT JOIN adm_organization o ON s.org_id = o.id
</sql>
<select id="getSurgeryPage" parameterType="com.baomidou.mybatisplus.core.conditions.query.QueryWrapper" resultMap="SurgeryResult">
<include refid="selectSurgeryVo"/>
<where>
s.delete_flag = '0'
<if test="ew.sqlSegment != null and ew.sqlSegment != ''">
AND ${ew.sqlSegment}
</if>
</where>
</select>
<select id="getSurgeryDetail" parameterType="Long" resultMap="SurgeryResult">
<include refid="selectSurgeryVo"/>
WHERE s.id = #{id} AND s.delete_flag = '0'
</select>
</mapper>