el-table 表格自定义表头

element-ui 和 element-plus 设置表头的用法不同

element-ui

element-ui 版本中,使用render-header属性进行设置,官网如下定义:
在这里插入图片描述

el-table-column 属性

重点::render-header="renderHeader"

<el-table-column label="数据异常掉线正常上传" prop="dataStatus" :render-header="renderHeader" width="200" align="center"></el-table-column>

renderHeader 方法

renderHeader(h, { column, $index }) {
	return h('div',{},[
		h('svg',{
            class: ['icon'],
            'aria-hidden': "true"
        },[
            h('use',{
                'xlink:href': '#icon-form_icon_normal'
            })
        ]),
        h('span',{},'正常上传 '),
        // h('br',{},''),
        h('svg',{
            class: ['icon'],
            'aria-hidden': "true"
        },[
            h('use',{
                'xlink:href': '#icon-yichang'
            })
        ]),
        h('span',{},'数据异常掉线'),
])
},

element-plus

element-plus版本也可使用第一种方法,但控制台会有警告,同时renderHeader中的h标签,需在组件中引入import { h } from 'vue';
因此,我们可通过第二种办法进行设置,代码简洁且不生成警告:
重点:<template slot="header" #header="scope">

 <el-table-column label="数据异常掉线正常上传" prop="dataStatus" width="200" align="center">
 	<!-- 表头 -->
    <template slot="header" #header="scope">
        <svg class="icon" aria-hidden="true">
            <use xlink:href="#icon-form_icon_normal"></use>
        </svg>
        <span>正常上传&nbsp;&nbsp;</span>
        <svg class="icon" aria-hidden="true">
            <use xlink:href="#icon-yichang"></use>
        </svg>
        <span>数据异常掉线</span>
    </template>
    <!-- 内容 -->
    <template #default="scope">
        <svg class="icon" aria-hidden="true" v-if="scope.row.dataStatus">
            <use xlink:href="#icon-form_icon_normal"></use>
        </svg>
        <svg class="icon" aria-hidden="true" v-else>
            <use xlink:href="#icon-yichang"></use>
        </svg>
    </template> 
</el-table-column>

效果

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
el-tableElement UI中的一个表格组件,它提供了丰富的功能和灵活的配置选项。在el-table中,可以通过自定义表头筛选来实现对表格数据的筛选功能。 要实现el-table表头自定义筛选,可以按照以下步骤进行操作: 1. 首先,在el-table表头中定义一个自定义筛选组件。可以使用slot-scope来获取表头的数据和方法。例如: ```html <el-table :data="tableData"> <el-table-column prop="name" label="姓名"> <template slot="header" slot-scope="scope"> <custom-filter :column="scope.column"></custom-filter> </template> </el-table-column> <!-- 其他列 --> </el-table> ``` 2. 在自定义筛选组件中,可以使用el-input、el-select等Element UI提供的组件来实现具体的筛选功能。同时,需要监听筛选条件的变化,并触发表格数据的重新筛选。例如: ```html <template> <div> <el-input v-model="filterValue" placeholder="请输入筛选条件"></el-input> <el-button @click="handleFilter">筛选</el-button> </div> </template> <script> export default { props: ['column'], data() { return { filterValue: '' }; }, methods: { handleFilter() { // 根据筛选条件对表格数据进行筛选 this.$emit('filter-change', this.filterValue); } } }; </script> ``` 3. 在父组件中,监听自定义筛选组件的filter-change事件,并根据筛选条件对表格数据进行筛选。例如: ```html <el-table :data="tableData"> <el-table-column prop="name" label="姓名"> <template slot="header" slot-scope="scope"> <custom-filter :column="scope.column" @filter-change="handleFilterChange"></custom-filter> </template> </el-table-column> <!-- 其他列 --> </el-table> ``` ```javascript methods: { handleFilterChange(value) { // 根据筛选条件对表格数据进行筛选 this.tableData = this.tableData.filter(item => item.name.includes(value)); } } ``` 这样,就可以实现el-table表头自定义筛选功能了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值