refactor(ui): 优化按钮样式和数据加载逻辑

- 将多个按钮组件从 type="text" 改为 link 属性,提升界面美观性
- 修复 PatientList 组件中姓名显示的文本截断功能
- 在住院记录模板中添加对 patientInfo 变化的监听,自动更新表单数据
- 优化打印机列表获取逻辑,添加连接状态检查和警告信息
- 移除不必要的防抖和重复请求防护逻辑,简化代码实现
- 修复多处组件中对 patientInfo 属性访问的安全性问题
- 优化病历数据加载时机,移除防抖包装直接调用加载函数
- 改进数据设置逻辑,避免覆盖未传入字段的原有值
- 调整组件属性定义,使 patientInfo 参数变为可选并设置默认值
- 优化患者切换时的组件重置和数据加载流程
This commit is contained in:
2026-01-27 17:32:03 +08:00
parent 0f0dc70c7e
commit 4f0cc1a0c4
21 changed files with 232 additions and 387 deletions

View File

@@ -565,6 +565,26 @@ const rules = reactive({
chiefComplaint: [{ required: true, message: '请填写主诉', trigger: ['blur', 'submit'] }],
});
// 监听 patientInfo 变化,更新表单数据
watch(
() => props.patientInfo,
(newPatientInfo) => {
if (newPatientInfo) {
// 更新基础信息
formData.patientName = newPatientInfo.patientName || newPatientInfo.name || '';
formData.hospitalNo = newPatientInfo.busNo || newPatientInfo.hospitalNo || '';
formData.gender = newPatientInfo.genderEnum_enumText || newPatientInfo.gender || '';
formData.age = newPatientInfo.age || '';
formData.nation = newPatientInfo.nation || '';
formData.occupation = newPatientInfo.profession || '';
formData.marriage = newPatientInfo.maritalStatus || '';
formData.birthplace = newPatientInfo.birthPlace || '';
// 可以根据需要更新更多字段
}
},
{ deep: true, immediate: true }
);
// 生命周期
onMounted(() => {
// 初始化记录时间为当前时间
@@ -578,16 +598,16 @@ onMounted(() => {
formData.signDate = formatDateTime(new Date());
}
if (!formData.patientName) {
formData.patientName = patient?.patientName || '';
formData.patientName = patient?.patientName || patient?.name || '';
}
if (!formData.gender) {
formData.gender = patient?.genderEnum_enumText || '';
formData.gender = patient?.genderEnum_enumText || patient?.gender || '';
}
if (!formData.age) {
formData.age = patient?.age || '';
}
if (!formData.hospitalNo) {
formData.hospitalNo = patient?.busNo || '';
formData.hospitalNo = patient?.busNo || patient?.hospitalNo || '';
}
});