ant design 自适应高度表格_element Table组件固定表头且高度自适应
时间: 2023-08-03 11:03:01 浏览: 125
要实现Ant Design自适应高度的表格并且固定表头,可以使用Element UI的Table组件。具体实现步骤如下:
1. 引入Element UI库和样式文件:
```
import Vue from 'vue'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
Vue.use(ElementUI)
```
2. 在模板中使用Table组件,并设置表格高度和固定表头:
```
<template>
<div>
<el-table
:data="tableData"
style="width: 100%; height: 100%;"
:height="tableHeight"
:max-height="maxHeight"
v-loading="loading"
border
stripe
highlight-current-row
ref="table"
>
<el-table-column
prop="name"
label="Name"
fixed
width="200"
></el-table-column>
<el-table-column
prop="age"
label="Age"
width="200"
></el-table-column>
<el-table-column
prop="address"
label="Address"
></el-table-column>
</el-table>
</div>
</template>
```
其中,`:height`绑定表格高度,`:max-height`绑定表格最大高度,`fixed`设置列固定,`width`设置列宽度。
3. 在组件中计算表格高度:
```
<script>
export default {
data() {
return {
tableData: [],
loading: true,
tableHeight: 0,
maxHeight: 0
}
},
methods: {
// 获取表格数据
getData() {
// ...
},
// 计算表格高度
setTableHeight() {
const tableEl = this.$refs.table.$el
const tableHeaderEl = tableEl.querySelector('.el-table__header-wrapper')
const tableFooterEl = tableEl.querySelector('.el-table__footer-wrapper')
const tableBodyEl = tableEl.querySelector('.el-table__body-wrapper')
const tableHeight = tableEl.offsetHeight -
(tableHeaderEl ? tableHeaderEl.offsetHeight : 0) -
(tableFooterEl ? tableFooterEl.offsetHeight : 0) -
(tableBodyEl ? tableBodyEl.offsetHeight : 0)
this.tableHeight = tableHeight
this.maxHeight = tableHeight
}
},
mounted() {
this.getData()
this.$nextTick(() => {
this.setTableHeight()
})
}
}
</script>
```
在mounted钩子函数中,先获取表格数据,然后使用$nextTick方法在DOM渲染完毕后计算表格高度,最后将计算结果绑定到表格的`height`和`max-height`属性上。
阅读全文