• elementui table中 tableRowClassName 不生效


    场景:给列表数据中,每行根据不同状态显示不同颜色。

    官方教程使用table组件中的tableRowClassName属性

    <template>
      <el-table
        :data="tableData"
        style=" 100%"
        :row-class-name="tableRowClassName">
        <el-table-column
          prop="date"
          label="日期"
          width="180">
        </el-table-column>
        <el-table-column
          prop="name"
          label="姓名"
          width="180">
        </el-table-column>
        <el-table-column
          prop="address"
          label="地址">
        </el-table-column>
      </el-table>
    </template>
    
    <style>
      .el-table .warning-row {
        background: oldlace;
      }
    
      .el-table .success-row {
        background: #f0f9eb;
      }
    </style>
    
    <script>
      export default {
        methods: {
          tableRowClassName({row, rowIndex}) {
            if (rowIndex === 1) {
              return 'warning-row';
            } else if (rowIndex === 3) {
              return 'success-row';
            }
            return '';
          }
        },
        data() {
          return {
            tableData: [{
              date: '2016-05-02',
              name: '王小虎',
              address: '上海市普陀区金沙江路 1518 弄',
            }, {
              date: '2016-05-04',
              name: '王小虎',
              address: '上海市普陀区金沙江路 1518 弄'
            }, {
              date: '2016-05-01',
              name: '王小虎',
              address: '上海市普陀区金沙江路 1518 弄',
            }, {
              date: '2016-05-03',
              name: '王小虎',
              address: '上海市普陀区金沙江路 1518 弄'
            }]
          }
        }
      }
    </script>

    在测试过程中,此方法没有生效,百度了解到,需要使用全局属性

    在elementUI中,row-class-name、row-style、cell-class-name等属性要想生效必须使用全局class才能生效。因为之前的代码都是在组件中编写的,所以去除<style scoped></style>中的scoped即可该组件中的样式变为全局属性。
    试了下果然有效。

    但是去掉scoped的话,scoped控制局部显示样式的,去掉的话,可能会与其他的页面有重复。

    在不去掉scoped的情况,可以选择通过引用的方式。

    单独写个css文件,写入样式

    .el-table .warning-row {
        background-color: oldlace;
    }
    
    .el-table .success-row {
        background-color: #f0f9eb;
    }   
    

    通过引用的方式可达到全局的效果:

    <style scoped>
    @import "../../styles/table_style.css";
    .input {
       170px;
      margin-left: 10px;
    }
    .btn {
      display: flex;
      margin-top: 10px;
      margin-left: 10px;
    }
    .tab {
      margin-top: 10px;
      margin-left: 20px;
    }
    
    </style>
  • 相关阅读:
    查看uCOS-II的CPU使用率
    ARM的工作环境和工作模式
    一个简单的 JSON 生成/解析库
    [转] libtool的作用及应用
    Qt 使用 net-snmp 包的过程记录
    Qt 立体水晶按键实现
    xampp 修改 mysql 默认 root 密码
    mint 设置无线 AP
    dpkg 小记
    转-ubuntu清理卸载wine的残余项目
  • 原文地址:https://www.cnblogs.com/TestingShare/p/14863463.html
Copyright © 2020-2023  润新知