微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

elementUI自定义el-table头部的样式

1、components下新建MyTable/index.vue

<template>
  <div class="my-table">
    <el-table :data='tableData' :header-cell-style='headerCellStyle'>
      <slot></slot>
    </el-table>
  </div>
</template>
<script>
export default {
  name: 'MyTable',
  props: {
    data: {
      type: Array,
      default() {
        return []
      }
    }
  },
  data() {
    return {
      tableData: []
    }
  },
  created() {
    this.tableData = this.data
  },
  methods: {
    headerCellStyle({ row, column, rowIndex, columnIndex }) {
      if (rowIndex === 0) return 'backgroundColor:red;color:#fff;'
    }
  }
}
</script>

2、组件中引入并使用

import MyTable from '@components/MyTable'
  data() {
    return {
      tableData: [
        {
          date: '2016-05-02',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1518 弄'
        },
        {
          date: '2016-05-04',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1517 弄'
        },
        {
          date: '2016-05-01',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1519 弄'
        },
        {
          date: '2016-05-03',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1516 弄'
        }
      ]
    }
  },
  components: { MyTable }

使用:

    <MyTable :data="tableData">
      <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>
    </MyTable>

效果

 

如果需要封装成全局组件:

1、MyTable下新建index.js

import MyTable from './index.vue'
export default (Vue) => {
  Vue.component(MyTable.name, MyTable)
}

2、main.js中引入并注册

import MyTable from '@components/MyTable'
Vue.use(MyTable)

3、组件中不需要引入MyTable,直接使用

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐