style(business): 统一优化多个业务弹窗为接近全屏高度

- /business/waybill-manage 新增/编辑弹窗添加 dialogCustomClass 控制高度样式,覆盖默认 max-height 限制
- /business/contract-manage 弹窗同样加 dialogCustomClass,scoped 样式解开 Avue 弹窗默认 body 高度限制并实现底部操作栏粘性
- element-ui.scss 新增对应页 dialog 样式,确保弹窗上下留白20px,内容区高度自动适应,底部操作栏始终可见
- 复用 business-crud-page 组件中传入 option 的 dialogCustomClass 实现页面隔离样式,不影响其他业务
This commit is contained in:
2026-08-14 16:01:12 +08:00
parent b3510cf233
commit 285a281439
6 changed files with 117 additions and 4 deletions
+65
View File
@@ -521,6 +521,71 @@
background: #fff;
}
// 运单管理新增/编辑弹窗:参照 vehicle/customer-archive,弹窗体接近全屏(上下各留 20px 边距);
// 同时覆盖 Avue 库内置 .avue-dialog 的 max-height: calc(100% - 200px) 上限,
// 并解开 .avue-crud__dialog .el-dialog__body 的 max-height: calc(100vh - 200px) 限制;
// 底部操作栏(avue 内置 footer,渲染在 body 内部)sticky 贴底始终可见
// (额外用 margin-top: 0 !important 抵消全局 .avue-crud__dialog .avue-dialog__footer 的 -30px 上移)
.waybill-manage-dialog.el-dialog {
margin-top: 20px !important;
margin-bottom: 20px !important;
height: calc(100vh - 40px);
max-height: calc(100vh - 40px) !important;
display: flex;
flex-direction: column;
}
.waybill-manage-dialog .el-dialog__header {
flex: none;
}
.waybill-manage-dialog .el-dialog__body {
flex: 1 1 auto;
min-height: 0;
max-height: none !important;
display: flex;
flex-direction: column;
overflow-y: auto;
}
.waybill-manage-dialog .avue-dialog__footer {
position: sticky;
bottom: 0;
flex: none;
margin-top: 0 !important;
background: #fff;
}
// 合同管理新增/编辑弹窗(business-crud-page 封装 → avue-crud,弹窗带 avue-crud__dialog class
// 复刻 waybill-manage 方案:接近全屏、压过库内置 .avue-dialog 的 calc(100% - 200px)
// 并解开 body 的 200px 上限、抵消全局 footer 的 -30px 上移
.contract-manage-dialog.el-dialog {
margin-top: 20px !important;
margin-bottom: 20px !important;
height: calc(100vh - 40px);
max-height: calc(100vh - 40px) !important;
display: flex;
flex-direction: column;
}
.contract-manage-dialog .el-dialog__header {
flex: none;
}
.contract-manage-dialog .el-dialog__body {
flex: 1 1 auto;
min-height: 0;
max-height: none !important;
display: flex;
flex-direction: column;
overflow-y: auto;
}
.contract-manage-dialog .avue-dialog__footer {
position: sticky;
bottom: 0;
flex: none;
margin-top: 0 !important;
background: #fff;
}
// 统一表格线条颜色
.el-table {
--el-table-border-color: #eff1f7;