element-ui自定义table表头,render-header使用

html 复制代码
<el-table-column header-align="right" align="right" :render-header="renderHeader">
    <el-table-column prop="week" label="日期"></el-table-column>
    <el-table-column prop="name" label="项目"></el-table-column>
</el-table-column>

js部分

javascript 复制代码
renderHeader(h, {column}) {
                return h('el-button', {
                    style: 'margin-top: 2px;', // 样式
                    class: '', 
                    props: { // 标签自定义属性
                        size: 'medium',
                        type: 'success'
                    },
                    on: {
                        click: this.exportExcel, // 选中事件
                    },
                }, '导出');
            },

标签多层嵌套

在表头添加el-tooltip

javascript 复制代码
renderHeader(h, { column }) {
            return h('div', [
                h('span', column.label),
                h(
                    'el-tooltip',
                    {
                        props: {
                            effect: 'dark',
                            content: '这是一个提示',
                            placement: 'top',
                        },
                    },
                    [
                        h('i', {
                            class: 'el-icon-question',
                            style: 'color:#409eff;margin-left:5px;',
                        }),
                    ],
                ),
            ]);
        },

在表头后添加一个单选框

javascript 复制代码
renderHeader(h, { column }) {
            // h即为cerateElement的简写,具体可看vue官方文档
            return h('div', [
                h('span', column.label),
                h('el-checkbox', {
                    style: 'margin-left:5px',
                    on: {
                        change: this.select, // 选中事件
                    },
                }),
            ]);
        },
        // 添加选中事件
        select(data) {
            console.log(data);
        },
}

其它资料还有这种方式

<el-table-column

prop="date"

label="日期/(生产旺季)"

width="180"

align='center'

:render-header="renderHeader"/>

methods:{

renderHeader(h, { column, $index }) {

let columnArr = column.label.split("/");//此处换行标志

if (columnArr.length >= 2) {

let divArr = \[\];

columnArr.map((item) => {

if(item == columnArr0){

divArr.push(h("div", { style: "text-align: center "}, item));

}else{

divArr.push(h("span", { style:"text-align:right;color:#fc5563;font-size:12px"}, item));

}

});

return h("span", {style:"display: line-block"}, divArr);

}

return h("span", {}, column.label);

},

}

相关推荐
IT_陈寒5 小时前
Java中equals方法比了个寂寞?原来这才是正确的重写姿势
前端·人工智能·后端
默_笙5 小时前
🚓 分诊台与拆题术:让 RAG 学会判断和规划
前端·javascript
CopyCode5 小时前
用 AI 迁项目有多爽?我把 Webpack 迁 Vite 的全过程记下来了
前端·架构
去伪存真5 小时前
Electron 自动化发布指南:GitHub Actions 跨平台打包全纪录
前端·electron
计算机魔术师5 小时前
OpenAI智能体失控闯进美国政府网站,53张用户图片外泄背后
前端
颜进强5 小时前
14 · NestJS ExecutionContext 执行上下文:守卫、拦截器、过滤器拿到的"同一个 context",为什么能力不一样?
前端·后端·ai编程
程序员Flycan5 小时前
🚀 跨域终结者:前端代理服务器(Proxy)原理解析与配置总结
前端
怕浪猫5 小时前
顶级模型一句话,AI 写出了能玩的 QQ飞车
前端·面试·github
huakoh5 小时前
MCP 报错分不清?先看响应里是 result 还是 error
前端
呃呃呃呃ex5 小时前
10. 现代前端工程化:ES6 React 项目实战与原理解析
前端·javascript