elementui table列宽自适应,vue table 宽度自适应

  elementui table列宽自适应,vue table 宽度自适应

  本文主要详细介绍Vue使用el-table实现自适应列宽。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下。

  本文分享了Vue使用el-table实现自适应列宽的具体代码,供大家参考。具体内容如下

  主要思路:每次获取分页表数据时动态计算每列的列宽。

  我的要求是自适应,没有水平滚动条,所以在计算出每一列的宽度后,把所有的列宽加起来得到总和,再把每一列的宽度除以总和得到每一列宽度的长度百分比。例如,将每列的宽度设置为width=10%。如果您想显示每一列的所有内容,并且不介意水平滚动条,只需使用计算出的列宽作为列宽,例如

  以下是计算列宽的主要方法

  这是后台返回给我的数据的格式。field0表示第一列,field1表示第二列,依此类推…

  主要方法如下

  //获取列表的总长度

  getWidth (list,tableData2) {

  //list是上图对应的表格字段名数据的cloumnList。

  //tableData2是表格数据,对应上图中的列表。

  this.allTotal=0

  list.map((item,index)={

  //这里根据自己的数据自己算

  this . all total=this . flex column width(` field $ { index } `,tableData2)

  })

  },

  //计算每列的列宽

  flexColumnWidth (str,tableData,flag=max) {

  //str是该列的字段名(传递字符串);TableData是该表的数据源(传递的变量);这里的Str是指姓名、身份证.

  //tableData是表格内容。

  //flag是可选值,所以可以传递这个参数。传递参数时可以选择 max 或 equal ,默认值为 max

  //当flag为“max”时,列宽设置为适合列中最长的内容,当flag为“equal”时,列宽设置为适合列中第一行的长度。

  str=str

  让columnContent=

  如果(!tableData !table data . length table data . length===0 table data===undefined){

  返回

  }

  如果(!str !str . length str . length===0 str===undefined){

  返回

  }

  if (flag===equal) {

  //获取该列中的第一个非空数据(内容)

  for(设I=0;I table data . length;i ) {

  if (tableData[i][str]。长度0) {

  //console . log( this column data[0]:,tableData[0][str])

  column content=tableData[I][str]

  破裂

  }

  }

  }否则{

  //获取该列中最长的数据(内容)

  让索引=0

  for(设I=0;I table data . length;i ) {

  if (tableData[i][str]===null) {

  tableData[i][str]=

  }

   const now _ temp=tableData[I][str]

   const max _ temp=tableData[index][str]

  if(现在临时长度最大临时长度){

  指数=i

  }

  }

  column content=tableData[index][str]

  }

  //console . log( this column data[I]:,columnContent)

  //以下分配的单位长度可以根据实际需求进行调整。

  设flexWidth=0

  for(column content的const char

  if((char= A char= Z ) (char= A char= Z ){

  //如果是英文字符,给字符分配8个单位宽度。

  弹性宽度=8

  } else if(char= \ u4e 00 char= \ u9fa 5 ){

  //如果是汉字,给字符分配15个单位宽度。

  弹性宽度=15

  }否则{

  //其他种类的字符,给字符分配8个单位宽度。

  弹性宽度=8

  }

  }

  if (flexWidth 60) {

  //设置最小宽度

  柔性宽度=60

  }

  if (flexWidth 250) {

  //设置最大宽度

  弹性宽度=250

  }

  //console.warn(flexWidth)

  返回弹性宽度

  },

  El表部件

  el-table :data=tableData2

  身高=515

  force-scroll=垂直

  style=宽度:100%

  El-表格-列类型=选择/El-表格-列

  el-table-column v-for=(item,index)in column list

  :key=index

  :prop=`field${index} `

  //这里用每列的列宽除以总列宽,计算出列宽的百分比。

  :width=tableData2.length0?(flexColumnWidth(`field${index} `,table data 2)/all total)* 100% :100

  :label=item

  /El-表格-列

  /el-table

  最后实现效果如图所示,满足表格列宽适配的要求。

  这就是本文的全部内容。希望对大家的学习有帮助,支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: