当前位置:   article > 正文

vue 基于Element Table 动态表头宽度自适应实现_vue table如何实现宽度占满

vue table如何实现宽度占满

Vue + ElementUI el-table动态生成表格,表头宽度自适应实现

问题 :由于不同的情况拿不同的列表数据。我们需要去动态渲染表头及数据。这个时候我们会发现一个问题,就是表头长度都是不规律的。这个时候我们如何去做成自适应的呢

方法:

ElementUI针对表格,开放了一个自定义render方法,我们直接使用这个自定义方法对每个表头按lable长度设置宽度

 

代码实现

在表格中直接使用render-header方法:

  1. <el-table
  2. v-loading="loading"
  3. :data="dataList"
  4. border
  5. :header-cell-style="{background: '#EEF2F5'}"
  6. :highlight-current-row="true"
  7. >
  8. <!-- <el-table-column label="序号" type="index" width="50"></el-table-column> -->
  9. <el-table-column
  10. v-for="(item, index) in tableColumn"
  11. :label="item.label"
  12. :render-header="labelHead"
  13. :key="index"
  14. align="center"
  15. :prop="item.prop"
  16. :show-overflow-tooltip="true"
  17. >
  18. </el-table-column>
  19. </el-table>

 在methods中定义headSpanFit方法:

  1. methods: {
  2. labelHead: function (h, { column }) {
  3. let l = column.label.length // 表头label长度
  4. let f = 14 // 根据需要定义标尺,直接使用字体大小确定就行,也可以根据需要定义
  5. column.minWidth = f * (l + 2) //加上一个文字长度
  6. return h("div", { class: "table-head", style: { width: "100%" } }, [column.label])
  7. },
  8. }

 效果:

注:可做到自适应占满一行 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/117912
推荐阅读
相关标签
  

闽ICP备14008679号