vue Element-ui 表格多选 修改选中行背景色

这篇具有很好参考价值的文章主要介绍了vue Element-ui 表格多选 修改选中行背景色。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

转自:https://www.cnblogs.com/Amerys/p/14688342.html
vue Element-ui 表格多选 修改选中行背景色

整体思路方式:

1、给获取到的数据添加自定义的className

2、在点击行(row-click)和手动点击勾选框的事件(select-all)中获取到当前的row的className,直接修改className即可 点击查看事件说明

3、在行的 className 的回调方法中(row-class-name)直接返回className

注:还有另一种方式通过获取row进行循环,判断当前点击row的id或者index与数据的是否相等,然后存放点击后的row到新的数组中,这种方式因为触及到遍历。当我有500行数据或者很多行数据,可想而知这里要遍历多少次,还有另一个就是连续点行的颜色发生变化会有延迟,相对来说性能就不好了。

步骤如下:

1、给数据添加自定义className, 由于这里演示的是本地数据,是直接添加的className; 真实开发是通过接口去加载数据,获取到的数据 直接遍历 赋值就可以,后面就不用管遍历了

data() {
    return {
      tableData: [
        {
          date: "2016-05-03",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄",
          className: "normal",
        },
        {
          date: "2016-05-02",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄",
          className: "normal",
        },
        {
          date: "2016-05-04",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄",
          className: "normal",
        },
        {
          date: "2016-05-01",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄",
          className: "normal",
        },
        {
          date: "2016-05-08",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄",
          className: "normal",
        },
        {
          date: "2016-05-06",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄",
          className: "normal",
        },
        {
          date: "2016-05-07",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄",
          className: "normal",
        },
      ],
    };

2、点击行和点击勾选框的事件

methods: { 
   // 手动点击勾选框触发的事件
    handleSelect(selection, row) {
      // selection,row  传递两个参数,row直接是对象
      // 只传一个参数得到的是数组
      if (row.className === "normal") {
        row.className = "tableSelectedRowBgColor";
      } else {
        row.className = "normal";
      }
    },

    // select-all 手动点击全选触发的事件
    handleSelectAll(selection) {
      if (selection.length > 0) {
        selection.forEach((item) => {
          if (item.className === "normal") {
            item.className = "tableSelectedRowBgColor";
          }
        });
      } else {
        // 空数组初始化className
        this.tableData.forEach((item) => {
          if (item.className === "tableSelectedRowBgColor") {
            item.className = "normal";
          }
        });
      }
    },

    //点击行触发,切换复选框状态
    handleRowClick(row) {
      this.$refs.multipleTable.toggleRowSelection(row);
      if (row.className === "normal") {
        row.className = "tableSelectedRowBgColor";
      } else {
        row.className = "normal";
      }
    },

}

3、className的回调方法

methods: {
    // 选中背景色
    tableRowClassName({ row }) {
      return row.className;
    },
}

4、最后不要忘了写颜色类名喔

<style>
.tableSelectedRowBgColor td {
  background-color: #fedcbd !important;
}
</style>

完整代码:文章来源地址https://www.toymoban.com/news/detail-510741.html

<template>
  <el-table
    ref="multipleTable"
    :data="tableData"
    tooltip-effect="dark"
    style="width: 100%"
    @row-click="handleRowClick"
    @select="handleSelect"
    @select-all="handleSelectAll"
    :row-class-name="tableRowClassName"
  >
    <el-table-column type="selection" width="55"> </el-table-column>
    <el-table-column label="日期" width="120">
      <template slot-scope="scope">{{ scope.row.date }}</template>
    </el-table-column>
    <el-table-column prop="name" label="姓名" width="120"> </el-table-column>
    <el-table-column prop="address" label="地址" show-overflow-tooltip>
    </el-table-column>
  </el-table>
</template>

<script>
export default {
  data() {
    return {
      tableData: [
        {
          date: "2016-05-03",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄",
          className: "normal",
        },
        {
          date: "2016-05-02",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄",
          className: "normal",
        },
        {
          date: "2016-05-04",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄",
          className: "normal",
        },
        {
          date: "2016-05-01",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄",
          className: "normal",
        },
        {
          date: "2016-05-08",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄",
          className: "normal",
        },
        {
          date: "2016-05-06",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄",
          className: "normal",
        },
        {
          date: "2016-05-07",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄",
          className: "normal",
        },
      ],
    };
  },
  methods: {
    // 手动点击勾选框触发的事件
    handleSelect(selection, row) {
      // selection,row  传递两个参数,row直接是对象
      // 只传一个参数得到的是数组
      if (row.className === "normal") {
        row.className = "tableSelectedRowBgColor";
      } else {
        row.className = "normal";
      }
    },

    // select-all 手动点击全选触发的事件
    handleSelectAll(selection) {
      if (selection.length > 0) {
        selection.forEach((item) => {
          if (item.className === "normal") {
            item.className = "tableSelectedRowBgColor";
          }
        });
      } else {
        // 空数组初始化className
        this.tableData.forEach((item) => {
          if (item.className === "tableSelectedRowBgColor") {
            item.className = "normal";
          }
        });
      }
    },

    // 选中背景色
    tableRowClassName({ row }) {
      return row.className;
    },

    //点击行触发,切换复选框状态
    handleRowClick(row) {
      this.$refs.multipleTable.toggleRowSelection(row);
      if (row.className === "normal") {
        row.className = "tableSelectedRowBgColor";
      } else {
        row.className = "normal";
      }
    },
  },
};
</script>

<style>
.tableSelectedRowBgColor td {
  background-color: #fedcbd !important;
}
</style>

到了这里,关于vue Element-ui 表格多选 修改选中行背景色的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue修改element-ui日期下拉框datetimePicker的背景色样式

    在vue项目中,源datetimePicker的背景样式,往往与项目背景不搭,需要修改。   1.先在assets里面新建一个index.css文件来存储全局样式 2.在main.js里面导入这个css文件最后在里面加入我们想要的样式 此时的效果如下图   3.在el-date-picker中设置样式 4.设置对应的背景样式 得到下图效果

    2024年02月11日
    浏览(67)
  • vue | element-ui中 如何修改表格Table组件中滚动条的样式

    在Table表格中,当内容超出容器时就会出现滚动条,elemnt-ui自带的滚动条有时无法满足需求,那么我们可以通过css伪类来实现对滚动条的自定义。 滚动条由两部分组成的: 滑块:可以滑动的部分。 轨道:滚动条的轨道,即滑块的轨道。一般来说滑块的颜色比轨道的颜色深一

    2024年02月11日
    浏览(56)
  • Element-UI表格自定义背景颜色

    笔记 1.如图所示 2. 自定义样式         此处自定义设置时要加 /deep/、important ,否则不生效; 清除鼠标经过时的背景颜色: /deep/.el-table tbody tr:hovertd{     background-color: unset !important; } * 如果未设置!important该效果不生效 自定义样式时使用f12查看元素,找到对应元素的

    2024年02月15日
    浏览(48)
  • element-ui的el-table表格复选框只能单选,不可多选

    element的el-table表格复选框只能选中一条,选择下一条,上一条去掉勾选。使用文档中select方法,el-table绑定一个ref。具体代码实现如下 toggleRowSelection:用于多选表格,切换某一行的选中状态,如果使用了第二个参数,则是设置这一行选中与否(selected 为 true 则选中) 

    2024年02月11日
    浏览(57)
  • element-ui日历组件el-calendar选中特定时间以及样式修改

    项目开发中,有需要用到日历的组件,而且需要把某些日期标注起来,在这边标注的小红点我用了 el-badge 具体效果如下图所示:  页面标签: 变量声明: 样式修改: 参考地址

    2024年02月11日
    浏览(69)
  • < element-Ui表格组件:表格多选功能回显勾选时因分页问题,导致无法勾选回显的全部数据 >

    在 Vue + elementUi 开发中,elementUI中表格在本身是自带多选功能的,但是在某些情况下,并不能完全适用,甚至可能产生bug。例如本次案例所遇Bug,情景如下: 本案例场景 :在表单中, 通过表单参数筛选某个明细表格数据 ,后端要求新增时可多选明细表格中的内容。但由于明

    2024年02月09日
    浏览(58)
  • 关于修改element-ui中Tabs标签页选中标签下划线缩短居中效果的实现方法

    需求描述: 下划线需要改为原来的一半,并且可以根据元素长度动态更换长度。 原样式: 改为以下样式: 思路如下 :element-ui通过一个独立的元素实现tab间切换能够达到下划线滑动的动态效果,所以将下划线独立为一个元素,并非使用tab自身的盒子设置下边框的样式去实现

    2024年02月12日
    浏览(42)
  • Vue+Element-ui实现表格嵌套表格(表头不同)

    data中integrateList根据后端返回的json数据确定,其格式为:

    2024年02月14日
    浏览(67)
  • Vue Element-ui Table表格排序

    一.表格中有时候会有排序的需求,如果只针对当前页进行排序,那么前端就可以实现排序,在对应需要排序的字段中,使用sortable字段即可。 二.存在分页的情况时,前端仅仅使用sortable当前页排序已经不能满足我们的需求,无法对所有数据进行排序。这时候我们就要使用后端

    2024年02月11日
    浏览(51)
  • 修改element-ui中的表格el-table的滚动条样式

    一.单独修改element-ui中的表格el-table的滚动条样式(两种方法) 1. 2.  二.保持整个页面的滚动条的风格是一致(直接改全局的滚动条样式) 三.页面内某一组件滚动条样式美化  scroll-bar是需要滚动条组件的元素,类名自定义

    2024年02月11日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包