Compare commits

...

2 Commits

Author SHA1 Message Date
f1e1aad754 Fix Bug #536: [门诊手术安排]手术申请查询弹窗底部,分页组件与界面底部元素重叠
根因:弹窗底部存在多层冗余间距叠加(分页容器inline样式+48px spacer div+
footer margin-top+CSS padding),导致弹窗尺寸变化时分页与footer重叠。

修复:移除冗余spacer div和分页容器inline样式,统一用CSS管理分页与footer
间距,避免固定高度堆叠导致的布局溢出问题。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 21:13:58 +08:00
1a5014b3ea Fix Bug #512: [住院护士站-汇总发药申请] 全选开关功能失效 - 增加nextTick确保DOM就绪后操作表格选择,修复handleExecute始终调用prescriptionRefs的问题
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 21:13:55 +08:00
2 changed files with 43 additions and 26 deletions

View File

@@ -106,7 +106,7 @@
</template>
<script setup>
import {getCurrentInstance, ref} from 'vue';
import {getCurrentInstance, nextTick, ref} from 'vue';
import {useRouter} from 'vue-router';
import PatientList from '../components/patientList.vue';
import PrescriptionList from './components/prescriptionList.vue';
@@ -173,15 +173,29 @@ function handleGetPrescription() {
}
}
function handelSwicthChange(value) {
if (!prescriptionRefs.value) {
chooseAll.value = false;
return;
}
if (value) {
prescriptionRefs.value.selectAllRows();
async function handelSwicthChange(value) {
if (isDetails.value == '1') {
if (!prescriptionRefs.value) {
chooseAll.value = false;
return;
}
await nextTick();
if (value) {
prescriptionRefs.value.selectAllRows();
} else {
prescriptionRefs.value.clearSelection();
}
} else {
prescriptionRefs.value.clearSelection();
if (!summaryMedicineRefs.value) {
chooseAll.value = false;
return;
}
await nextTick();
if (value) {
summaryMedicineRefs.value.selectAllRows();
} else {
summaryMedicineRefs.value.clearSelection();
}
}
}
@@ -198,7 +212,11 @@ function handleTherapyChange() {
}
function handleExecute() {
proxy.$refs['prescriptionRefs'].handleMedicineSummary();
if (isDetails.value == '1') {
prescriptionRefs.value?.handleMedicineSummary();
} else {
summaryMedicineRefs.value?.handleExecute();
}
}
function handleBack() {
@@ -206,7 +224,11 @@ function handleBack() {
}
provide('handleGetPrescription', (value) => {
prescriptionRefs.value.handleGetPrescription();
if (isDetails.value == '1') {
prescriptionRefs.value?.handleGetPrescription();
} else {
summaryMedicineRefs.value?.handleGetPrescription();
}
});
</script>

View File

@@ -781,7 +781,7 @@
</el-table>
<!-- 底部分页区 -->
<div class="pagination-container apply-pagination" style="margin-top: 10px; padding-bottom: 20px">
<div class="pagination-container apply-pagination">
<pagination
v-show="applyTotal > 0"
:total="applyTotal"
@@ -792,12 +792,9 @@
@pagination="getSurgicalScheduleList"
/>
</div>
<!-- 分页与底部操作区之间的间隔 -->
<div style="height: 48px"></div>
<!-- 底部操作区 -->
<template #footer>
<div class="dialog-footer" style="margin-top: 24px; padding-top: 12px; border-top: 1px solid #ebeef5">
<div class="dialog-footer" style="padding-top: 12px; border-top: 1px solid #ebeef5">
<el-button @click="cancelApplyDialog">取消</el-button>
<el-button type="primary" @click="confirmApply">确认</el-button>
</div>
@@ -2418,15 +2415,14 @@ function getRowClassName({ row, rowIndex }) {
/* 手术申请查询弹窗 — 分页与footer间距 */
.surgery-apply-dialog :deep(.el-dialog__body) {
padding-bottom: 32px;
padding-bottom: 16px;
}
.surgery-apply-dialog :deep(.el-dialog__footer) {
padding-top: 0;
padding-top: 8px;
}
.surgery-apply-dialog :deep(.apply-pagination) {
padding-bottom: 24px;
margin-bottom: 16px;
border-bottom: 1px solid #ebeef5;
padding-top: 12px;
padding-bottom: 16px;
}
.surgery-apply-dialog :deep(.apply-pagination .el-pagination) {
margin-right: 80px;
@@ -2446,17 +2442,16 @@ function getRowClassName({ row, rowIndex }) {
<style>
/* 手术申请查询弹窗 — 非 scoped 确保穿透 teleport */
.surgery-apply-dialog .apply-pagination {
padding-bottom: 24px !important;
margin-bottom: 16px !important;
border-bottom: 1px solid #ebeef5 !important;
padding-top: 12px !important;
padding-bottom: 16px !important;
}
.surgery-apply-dialog .apply-pagination .el-pagination {
margin-right: 80px !important;
}
.surgery-apply-dialog .el-dialog__body {
padding-bottom: 32px !important;
padding-bottom: 16px !important;
}
.surgery-apply-dialog .el-dialog__footer {
padding-top: 0 !important;
padding-top: 8px !important;
}
</style>