表头加自定义内容有很多种方法,包括使用el-icon,插槽,CSS 伪元素添加图标还有font-awesome等等。
render-header
属性
年龄
{{ label }}
npm install @fortawesome/fontawesome-svg-core \
@fortawesome/free-solid-svg-icons \
@fortawesome/free-regular-svg-icons \
@fortawesome/free-brands-svg-icons \
@fortawesome/vue-fontawesome@prerelease
fontawesome-svg-core
:核心库free-solid-svg-icons
:实心图标集free-regular-svg-icons
:常规图标集free-brands-svg-icons
:品牌图标集vue-fontawesome@prerelease
:Vue3 兼容版本src/main.js
中导入并注册常用图标:import { createApp } from 'vue'
import App from './App.vue'
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
import { library } from '@fortawesome/fontawesome-svg-core'
// 导入需要的图标
import {
faUser, faEnvelope, faPhone, faInfoCircle,
faEdit, faTrash, faCheck, faTimes
} from '@fortawesome/free-solid-svg-icons'
// 将图标添加到库中
library.add(faUser, faEnvelope, faPhone, faInfoCircle,
faEdit, faTrash, faCheck, faTimes)
createApp(App)
.component('font-awesome-icon', FontAwesomeIcon) // 全局注册组件
.mount('#app')
组件
我用到的实在特定页面特定表格列使用图标,主要代码:
html:
已填写
{{ scope.row[item.prop] }}项未填写
完善
未完善
{{ scope.row[item.prop] }}项未完善
js:
//引入
import { h } from 'vue';
import { ElTooltip } from 'element-plus';
import 'font-awesome/css/font-awesome.min.css';
/ 表头展示图标及提示
const renderHeaderWithTooltip = (props, item) => {
const tooltipContent = {
'编制信息状态': '该教师除"隶属集团"外的字段未填写的数量',
'教育教学信息状态': '近5年教育教学填写情况',
'个人信息状态': '该教师除"曾用名"外的字段未填写的数量'
}[item.name];
if (tooltipContent) {
return h(
ElTooltip,
{ placement: 'top', content: tooltipContent },
{
default: () => h(
'div',
{ class: 'flex items-center justify-center' },
[
h('i', {
class: 'fa fa-info-circle mr-3 text-primary',
style:{'font-size': '16px','margin-top': '3px'} }),
h('span', props.column.label)
]
)
}
);
} else {
// 对于不需要提示的列,直接显示标签
return h('span', props.column.label);
}
};