JNBusiness/ruoyi-ui/src/directive/table/tableHeight.js

36 lines
1.1 KiB
JavaScript
Raw Normal View History

2024-07-10 16:36:34 +08:00
import { addResizeListener, removeResizeListener } from 'element-ui/src/utils/resize-event'
// 设置表格高度
const doResize = (el, binding) => {
// 获取调用传递过来的数据
const { value } = binding
// 获取距底部距离(用于展示页码等信息)
const customHeight = (value && value.customHeight) || 76
// 计算列表高度
const height = window.innerHeight - el.getBoundingClientRect().top - customHeight
// 设置高度
el.style.height = height + "px"
}
export default {
// 初始化设置
bind(el, binding) {
// 设置resize监听方法
el.resizeListener = () => {
doResize(el, binding)
}
// 绑定监听方法到addResizeListener
addResizeListener(window.document.body, el.resizeListener)
},
// 所在组件的 VNode 更新时设置
// 页面上搜索表单是可以展开收起的,当展开更多表单搜索时,表格高度没变
update(el, binding) {
doResize(el, binding)
},
// 销毁时设置
unbind(el) {
// 移除resize监听
removeResizeListener(window.document.body, el.resizeListener)
}
}