iview+vue3-table 自定义表头-给表头加icon加悬浮提醒效果

文章介绍了如何在Vue中使用view-ui-plus库来实现表格表头的自定义,包括添加图标和悬浮提醒。通过renderHeader方法和Tooltip组件,可以创建带有点击事件和提示信息的表头单元格。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • table 自定义表头-给表头加icon加悬浮提醒
    https://www.codeleading.com/article/76305365520/
    https://www.bilibili.com/read/cv17615394
// 基础模板 render是对行自定义,renderHeader是对表头自定义
 render/renderHeader: (h, params) => {
      return h(' 定义的元素 ', { 元素的性质 }, ' 元素的内容' / [元素的内容]);
   }
// 基础格式

// script setup 模式下
import {Icon,Tooltip } from 'view-ui-plus'

{//这是表格表头数据 columns里的其中一个
                title: 'xxx',
				key: 'test表格自定义',
                align: 'center',
                renderHeader: (h, params) => { // Render 函数,自定义列头显示内容
                return h(
                    Tooltip,//标签名如果是普通html 加引号 'div'
                    { //定义标签的样式,事件,熟悉
                        on: {
                            click: () => {
                            // 
                            }
                        } ,
                        // class: 'container',
                        style:{
                            fontweight:'normal',
                        },
                        transfer:true,// 建议添加此属性,它将不受父级样式影响,从而达到更好的效果
                        transferClassName:'',//开启 transfer 时,给浮层添加额外的 class 名称
                        popperClass:'',//给 Poptip 设置 class-name,在使用 transfer 时会很有用
                        placement:'bottom',// Tooltip的属性
                        maxWidth:400,// Tooltip的属性
                        theme:'light',// Tooltip的属性
                        content:'想提示的文字',// Tooltip的属性
                    },
                    ()=>[//内容
                        h('span', 'xxxx'),
                        h(),
                        h(), 
                        //...
                    ],)
                },
            },
// 使用案例
{
                title: 'xxx',
                // key: 'ccgnum',
                slot: 'ccgnum',
                // sortable: true, // 筛选
                align: 'center',
                renderHeader: (h, params) => { // Render 函数,自定义列头显示内容
                return h(
                    Tooltip,
                    { 
                        on: {
                            click: () => {
                            this.allSelected();
                            }
                        } ,
                        // class: 'container',
                        style:{
                            fontweight:'normal',
                        },
                         transfer:true,// 建议添加此属性,它将不受父级样式影响,从而达到更好的效果
                        placement:'bottom',
                        maxWidth:400,
                        theme:'light',
                        content:'提示文字',
                    },
                   ()=> [
                        h('span', 'xxx'),
                        h(Icon, {
                            type:'md-help-circle', 
                            style:{
                                fontSize:'16px',
                                marginLeft:'4px',
                            } 
                            // class:'quest',
                            }, ''),
                        h() //内容
                    ],)
                },
            },

使用上面写法你会发现一个浏览器报了一个错误
[Vue warn]: Non-function value encountered for default slot. Prefer function slots for better performance.
翻译一下:大致是那样写性能不太好,下面优化一下写法,就是当内容有很多个时使用函数形式
[Vue warn]:默认槽位遇到非函数值。为获得更好的性能,建议使用函数槽。

// 基础模板 render是对行自定义,renderHeader是对表头自定义
 render/renderHeader: (h, params) => {
      return h(' 定义的元素 ', { 元素的性质 }, ' 元素的内容' / ()=>[元素的内容]);
   }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值