vue + element 实现不刷新页面的情况下点击表格哪一行改变哪一行的样式(字体 ,颜色)类似QQ邮箱已读未读样式

8 篇文章 0 订阅

 

//1.再表格的标签中添加  
    a. :row-class-name  在表格喧嚷的时候就会执行相应的方法toggleRowClassName
    b. :@row-click  指定行的点击事件   

<el-table :data="tableData" border style="width: 100%; cursor: pointer" v-        loading="loading.table" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading" @sort-change="onSortChange" :row-class-name="toggleRowClassName" @row-click="doReaded">
</el-table>

//2.在这个方法中可以根据自己的业务逻辑返回自己定义的样式 'readed-by-admin' 这样就会在表格数据发                
    生变化的时候自动渲染

 toggleRowClassName({ row, rowIndex }) {
      if (row.readByAdmin === false) {
        return 'readed-by-admin';
      } else {
        return '';
      }
    }

//3.点击行进改变样式 执行@row-click 的diReaded方法  这里面就是调用接口进行修改状态之类的

doReaded: debounce(function(row, event, column) {
      if (row.readByAdmin === true) {
        return;
      }
      doReadByAdmin(row.msgId)
        .then(data => {

//4.这里很重要是我自己犯的错误:我修改了状态之后表格并没有重新渲染,因为修改的只是后台的数据前台 
    但是要实现不刷新页面,所以前台表格中的数据没有发生改变 row-class-name 就不会重新渲染,所以当 
    接口调用成功的情况后要手动修改表格数据才会让表格重新渲染
       
          row.readByAdmin = true;

        })
        .catch(error => {});
    }, 500),

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值