点击《el-table》让选中的行变色,亲测实用

9a69fede8b2044a79dd834e3e48f20b4.png前期回顾    89a5d93bcce94f7cbe42539567637cb3.gif 

Vue项目实战 —— 哔哩哔哩移动端开发_0.活在风浪里的博客-CSDN博客撑着下班前半小时我用vue写《哔哩哔哩 项目》移动端、新手还在哭、老鸟一直在笑。。。技术选型Vue2,技术栈有axios、Vh等,下班过来敲哈哈https://blog.csdn.net/m0_57904695/article/details/123594836

公司各种需求又来了,直接看下面文吧,一看就懂就不在说需求了 ,此时我觉得我的表情包是【我就像是一个小朋友站在路标下满头的问号】

 db0764c8e6c045d2a6d0ba3cb06a63ed.gif

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMC7mtLvlnKjpo47mtarph4w=,size_6,color_FFFFFF,t_70,g_se,x_16

目录

第一种选中复选框表格变色

 效果图:

第二种 点击行 表格变色 + 鼠标经过无hover效果

 效果图:

第三种  鼠标经过自定义hover颜色效果

 效果图:

第四种  点击某一事件表格背景色 变化

  效果图:

 结语:


       @selection-change="selected" 复选框被选中的触发事件

       @row-click="rowClickEv" 某一行被点击行触发事件

       :row-style="isRed" 行的 style 的回调方法,也可以使用一个固定的 Object 为所有 

       行设置一样的 Style。  

第一种选中复选框表格变色

 效果图:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMC7mtLvlnKjpo47mtarph4w=,size_20,color_FFFFFF,t_70,g_se,x_16

<template>
  <div id="">
    <el-table
      :data="tableData"
      style="width: 100%"
      :row-style="isRed"
      @selection-change="selected"
    >
     
      <el-table-column type="index" label="序号" width="80"> </el-table-column>
      <el-table-column type="selection" width="50"> </el-table-column>
      <el-table-column prop="date" label="日期" width="220"> </el-table-column>
      <el-table-column prop="name" label="姓名" width="120"> </el-table-column>
      <el-table-column prop="address" label="年龄" width="240">
      </el-table-column>
    </el-table>
  </div>
</template>

<script>
export default {
  name: "",
  data() {
    return {
      selectedArrData: [], // 把选择到的当前行的id存到数组中
      tableData: [
        {
          date: "2016-05-02",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄",
          id: "1",
        },
        {
          date: "2016-05-04",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1517 弄",
          id: "2",
        },
        {
          date: "2016-05-01",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1519 弄",
          id: "3",
        },
        {
          date: "2016-05-03",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1516 弄",
          id: "4",
        },
      ],
    };
  },
  methods: {
   
    // 复选框被选中的事件
    selected(row) {
      // console.log(row);//点击的那行数据
      this.selectedArrData = row;
    },
    isRed({ row }) {
      const checkIdList = this.selectedArrData.map((item) => item.id);
      if (checkIdList.includes(row.id)) {
        return {
          backgroundColor: "#DE6",
          color: "red",
        };
      }
    },
  },
};
</script>

第二种 点击行 表格变色 + 鼠标经过无hover效果

 效果图:

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMC7mtLvlnKjpo47mtarph4w=,size_20,color_FFFFFF,t_70,g_se,x_16

<template>
  <div id="">
    <el-table
      :data="tableData"
      style="width: 100%"
      :row-style="isRed"
      @row-click="rowClickEv"
      border
    >
      <el-table-column type="index" label="序号" width="80"> </el-table-column>
      <el-table-column type="selection" width="50"> </el-table-column>
      <el-table-column prop="date" label="日期" width="220"> </el-table-column>
      <el-table-column prop="name" label="姓名" width="120"> </el-table-column>
      <el-table-column prop="address" label="年龄" width="240">
      </el-table-column>
    </el-table>
  </div>
</template>

<script>
export default {
  name: "",
  data() {
    return {
      selectedArrData: [], // 把选择到的当前行的id存到数组中
      tableData: [
        {
          date: "2016-05-02",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄",
          id: "1",
        },
        {
          date: "2016-05-04",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1517 弄",
          id: "2",
        },
        {
          date: "2016-05-01",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1519 弄",
          id: "3",
        },
        {
          date: "2016-05-03",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1516 弄",
          id: "4",
        },
      ],
    };
  },
  methods: {
    // 某一行被点击行触发事件,默认形参代表一整行数据
    rowClickEv(row) {
      // console.log(row);//点击的那行数据默认是对象{__ob__: Observer},将其转数组
      this.selectedArrData = [row];
    },

    isRed({ row }) {
      const checkIdList = this.selectedArrData.map((item) => item.id);
      if (checkIdList.includes(row.id)) {
        return {
          backgroundColor: "#DE6",
          color: "red",
        };
      }
    },
  },
};
</script>
<style lang="scss" scoped>
// 修改鼠标经过表格的颜色
/deep/ .el-table tbody tr:hover > td {
  // background-color: rebeccapurple !important;
  // color: #ffffff;

  // 可以选择隐藏
  background-color: transparent !important;

}

</style>

第三种  鼠标经过自定义hover颜色效果

 效果图:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMC7mtLvlnKjpo47mtarph4w=,size_20,color_FFFFFF,t_70,g_se,x_16

第四种  点击某一事件表格背景色 变化

  效果图:

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMC7mtLvlnKjpo47mtarph4w=,size_20,color_FFFFFF,t_70,g_se,x_16

<template>
  <div id="">
    <el-table
      :data="tableData"
      style="width: 100%"
      :row-style="isRed"
      border
    >
    <!-- 
       @selection-change="selected" 复选框被选中的触发事件
       @row-click="rowClickEv" 某一行被点击行触发事件
       :row-style="isRed" 行的 style 的回调方法,也可以使用一个固定的 Object 为所有  
       行设置一样的 Style。  
     -->
      <el-table-column type="index" label="序号" width="80"> </el-table-column>
      <el-table-column type="selection" width="50"> </el-table-column>
      <el-table-column prop="date" label="日期" width="220"> </el-table-column>
      <el-table-column prop="name" label="姓名" width="120"> </el-table-column>
      <el-table-column prop="address" label="年龄" width="240">
      </el-table-column>
      <el-table-column label="操作">
        <template slot-scope="scope">
          <!--(scope.$index, scope.row) 下标和行 -->
          <el-button size="mini" @click="handleEdit(scope.$index, scope.row)"
            >编辑</el-button
          >
        </template>
      </el-table-column>
    </el-table>
  </div>
</template>

<script>
export default {
  name: "",
  data() {
    return {
      selectedArrData: [], // 把选择到的当前行的id存到数组中
      tableData: [
        {
          date: "2016-05-02",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄",
          id: "1",
        },
        {
          date: "2016-05-04",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1517 弄",
          id: "2",
        },
        {
          date: "2016-05-01",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1519 弄",
          id: "3",
        },
        {
          date: "2016-05-03",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1516 弄",
          id: "4",
        },
      ],
    };
  },
  methods: {
    // 编辑事件
    handleEdit(index,row) {
      this.selectedArrData = [row];
    },
// 操作表格变色
    isRed({ row }) {
      const checkIdList = this.selectedArrData.map((item) => item.id);
      if (checkIdList.includes(row.id)) {
        return {
          backgroundColor: "#DE6",
          color: "red",
        };
      }
    },
  },
};
</script>
<style lang="scss" scoped>
// 修改鼠标经过表格的颜色
/deep/ .el-table tbody tr:hover > td {
  // background-color: rebeccapurple !important;
  // color: #ffffff;

  // 可以选择隐藏
  background-color: transparent !important;
}
</style>

 结语:

       最后祝大家都可以早早下班,早早回家,不为bug而烦恼,

,如果对你有微乎帮助,请点个收藏以备找时方便

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龙雨溪 彩色之外

你的打赏是我创作的氮气加速动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值