解决elementui表格操作列自适应列宽

业务需要前端根据用户权限动态显示对应按钮,直接把操作列的列宽写死的话,在按钮少的情况下不是那么好看,所以想到了一个骚操作...

写死宽度时是这样的:

开始

给操作列绑定宽度属性

:width="actionColWidth < 80 ? 80 : actionColWidth"

把操作列的所有按钮用一个div套起来

class="action-col"

<div class="action-col">
 <el-button></el-button>
 ...
</div>

data里设置列宽初始值

actionColWidth: 80, //表格操作列宽度

在表格数据请求回来赋值给表格之后,执行计算宽度的操作

这里是用jq获取表格第一行的全部按钮,然后把每个按钮的宽度加起来,就是操作列的宽度。

不用jq的话用原生js也行。

如果表格每一行的操作按钮是不一样的,那么就获取每一行操作按钮的总宽度,然后取最大的就行。这里没有这个需求,就不写了。

 getClerkList(params)
 .then((res) => {
  this.tableData = res.rows;

  this.$nextTick(() => {
  // 给表格操作列宽度多出25px,否则显示不完整
  let width = 25;
  // 使用jq遍历表格第一行操作列里的每一个按钮
  $(".action-col")
   .eq(0)
   .children(".el-button")
   .each(function () {
   // 把每个按钮的宽度加起来
   width += $(this).outerWidth(true);
   });
  // 把计算好的总宽度赋值给操作列宽
  this.actionColWidth = width;
  });
 })
 .catch((err) => {
  console.error(err);
 });

看一下效果

没有按钮时:

有一个按钮:

有两个按钮:

有三个按钮:

到此这篇关于解决elementui表格操作列自适应列宽的文章就介绍到这了,更多相关elementui表格自适应列宽内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • VUE2.0 ElementUI2.0表格el-table自适应高度的实现方法

    在开发中,需要表格控件根据浏览器高度进行调整,固定表头,且然后多余的出滚动条,官方给出的: 只要在el-table元素中定义了height属性,即可实现固定表头的表格,而不需要额外的代码. 然后直接上template代码: <template> <el-table :data="tableData3" height="250" border style="width: 100%"> <el-table-column

  • 解决elementui表格操作列自适应列宽

    业务需要前端根据用户权限动态显示对应按钮,直接把操作列的列宽写死的话,在按钮少的情况下不是那么好看,所以想到了一个骚操作... 写死宽度时是这样的: 开始 给操作列绑定宽度属性 :width="actionColWidth < 80 ? 80 : actionColWidth" 把操作列的所有按钮用一个div套起来 class="action-col" <div class="action-col"> <el-button

  • 解决elementUI 切换tab后 el_table 固定列下方多了一条线问题

    现象: 解决方法 : 1.修改全局css 2.只修改局部css .你的tableClass{ /deep/ .el-table__fixed { height: 100% !important; //设置高优先,以覆盖内联样式 } } 补充知识:解决ElementUI的Table组件固定列,在屏幕刚好够表格显示时,会出现固定列显示不全的问题 在使用ElementUI的Table组件中的固定列时,发现当表格刚好显示全,处于临界值状态时,固定列的高度(height)会于表格高度不一致,导致固定列显示

  • 解决element-ui的table表格控件表头与内容列不对齐问题

    目录 element-ui的table表格控件表头与内容列不对齐 解决方法 el-table表头和表格列宽不一样问题 直接上图 解决办法 element-ui的table表格控件表头与内容列不对齐 解决方法 将以下样式代码添加到index.html.或app.vue中(必须是入口文件,起全局作用!) body .el-table th.gutter{ display: table-cell!important; } 例如(app.vue): <template>   <div id=&q

  • element-ui表格列金额显示两位小数的方法

    对于金额的显示,大多情况下需要保留两位小数,比如下面的(表格采用 element-ui): 在vue.js中,对文本的处理通常是通过设置一系列的过滤器,过滤器可以用在两个地方:双花括号插值 和 v-bind 表达式 (后者从 2.1.0+ 开始支持). 定义过滤器 filters: { rounding (value) { return value.toFixed(2) } } toFixed() 方法可把 Number 四舍五入为指定小数位数的数字,使用语法如下: NumberObject.t

  • EasyUI 数据表格datagrid列自适应内容宽度的实现

    项目初期在加载数据表格的时候为了提高表格数据渲染速度,设置了默认宽度. 现需求需要加一个表格自适应的功能,触发改功能,改变列宽度,但是不重新渲染表格,不发生数据请求. 设计思路,遍历每项的所有数据,比较字节符串长度,取最大长度.再用最大长度和标题长度比较,如果标题长就去标题长度,如果字符串长,就取字符串的. js //表格自适应方法 function changeWidth(agstr){ var dg = $('#'+agstr); dg.datagrid("loading");//

  • C#控制Excel Sheet使其自适应页宽与列宽的方法

    本文实例讲述了C#控制Excel Sheet使其自适应页宽与列宽的方法.分享给大家供大家参考,具体如下: ///// <summary> /// 1.Clear CircleReference /// 2.Set Page to Fit Wide /// 3.Set Column Text fit /// </summary> /// <param name="app"></param> /// <param name="

  • 解决vue 表格table列求和的问题

    最近在给朋友做一个项目,因为是B端,所以少不了表格. 本身就用了element-ui,但是订单管理有个需求使用element-ui table组件实现不了,只能退而求其之用了原生的table,功能是几乎满足需求了,但是还有个小问题就是列求和没搞定,这可咋整啊.看了element-ui是有这么个功能,遂翻开源码看了下也没看出啥话头,心想算了,自己来实现,网上搜了下,偶然看到一位仁兄的写法,拿过来稍微修改了下,果真是有用,在此感谢那位仁兄!(我本身对前端不专业,侧后端) 下面贴代码: /** jav

  • Vue使用el-table实现自适应列宽

    本文实例为大家分享了Vue使用el-table实现自适应列宽的具体代码,供大家参考,具体内容如下 主要思路:每次获取分页表格数据时动态计算每列列宽 我的需求是能实现自适应,且不出现横向滚动条,所以计算出来每列列宽后,把所有列宽加起来,得到total,然后用每列列宽除以total,就能得到每列列宽的长度百分比,比如用width=10%的方式去设置每列宽度,如果想展示完全每列内容,不介意出现横向滚动条,就直接用计算出来的列宽作为列的宽度就可以了,比如width=100 以下是计算列宽的主要方法 后台

  • Asp.net简单代码设置GridView自适应列宽不变形实现思路与代码

    动态绑定的GridView由于列数不固定,而列又太多(博主做的这个项目有150个左右的字段),这样设置GridView固定宽度就不能满足需求了.为此整理了两种方法来达到GridView自适应列宽不变形的效果. .aspx.cs 复制代码 代码如下: //在GridView的行数据绑定完的事件中设置 protected void gvObjectList_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType

  • layui 表格操作列按钮动态显示的实现方法

    1.根据表格数据动态显示操作列按钮 <script type="text/html" id="barDemo"> {{# if (d.event_level ==4){}} <a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="known"><i class="layui-icon">စ</i&g

随机推荐