全部
常见问题
产品动态
精选推荐

你知道吗?Element UI 可以这样修改组件默认样式

管理 管理 编辑 删除

我们在 Element 官网看到的表格默认样式大概是这样的:

e883a202310311743135386.png

默认的el-table 表格无边框

默认的el-table-column 行信息居左展示

默认的el-table-column 当内容过长也没有溢出和显示tooltip的效果


尤其是第三点的体验在用户使用时很不友好。

如果我们需要改成这样:

d43f1202310311730494792.png


那我们需要给el-tableel-table-column添加相应的props

<el-table border>
  <el-table-column prop="xxx" label="xxx" align="center" show-overflow-tooltip />
  <el-table-column prop="xxx" label="xxx" align="center" show-overflow-tooltip />
  <el-table-column prop="xxx" label="xxx" align="center" show-overflow-tooltip />
  <!-- ... -->
</el-table>

这样,每个使用el-tableel-table-column的地方,都需要添加相应的props,这不仅会增加我们的工作量,也让代码显得很多余。

我们能否让每个组件的代码都简化成以下这样,并且仍然保留边框、居中和超出文本溢出的效果呢?

<el-table>
  <el-table-column prop="xxx" label="xxx" />
  <el-table-column prop="xxx" label="xxx" />
  <el-table-column prop="xxx" label="xxx" />
  <!-- ... -->
</el-table>


我们可以在导入Element UI / Plus组件的入口处,修改组件内部props的默认值default的值

在Vue2中

import Vue from 'vue'
import { Table, TableColumn } from 'element-ui'

// 获取组件的props
const TableProps = Table.props
const TableColumnProps = TableColumn.props

// 修改默认props
// 全局el-table设置
TableProps.border.default = true // 边框

// 全局el-table-column设置
TableColumnProps.align.default = 'center' // 居中
TableColumnProps.showOverflowTooltip.default = true // 文本溢出

Vue.use(Table)
Vue.use(TableColumn)


在Vue3中

import { createApp } from 'vue'
import App from './App.vue'
import ElementPlus from 'element-plus'
import { ElTable, ElTableColumn } from 'element-plus'
const app = createApp(App)

// 获取组件的props
const TableProps = ElTable.props
const TableColumnProps = ElTableColumn.props

// 修改默认props
// 全局el-table设置
TableProps.border = { type: Boolean, default: true } // 边框线
// 全局el-table-column设置
TableColumnProps.align = { type: String, default: 'center' } // 居中
TableColumnProps.showOverflowTooltip = { type: Boolean, default: true } // 文本溢出

app.use(ElementPlus)

这样只需要在全局设置一次props,就可以在每个组件中生效,这样就可以少写很多代码了。

同理也可以在全局设置其他组件的默认props

其它拓展

如何让表格在没有数据的情况下,显示 -- 呢 ?

606e8202310311738387311.png

在全局CSS中添加以下样式即可:

.el-table tbody td .cell span:empty::after {
  content: '--'!important;
}

.el-table tbody td .cell:empty::after {
  content: '--';
}

大家可以根据自身项目情况进行调整~


请登录后查看

ANG 最后编辑于2023-10-31 17:46:09

快捷回复
回复({{post_count}}) {{!is_user ? '我的回复' :'全部回复'}}
回复从新到旧

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}}

作者 管理员 企业

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest==1? '取消推荐': '推荐'}}
{{item.floor}}#
{{item.user_info.title}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
{{item.like_count}}
{{item.showReply ? '取消回复' : '回复'}}
删除
回复
回复

{{itemc.user_info.nickname}}

{{itemc.user_name}}

作者 管理员 企业

回复 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}   {{itemc.ip_address}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回复' : '回复'}}
删除
回复
回复
查看更多
回复
回复
1738
{{like_count}}
{{collect_count}}
添加回复 ({{post_count}})

相关推荐

ANG 企业
暂无简介

回答

2356

发布

56

经验

140

快速安全登录

使用微信扫码登录
{{item.label}} {{item.label}} {{item.label}} 板块推荐 常见问题 产品动态 精选推荐 首页头条 首页动态 首页推荐
加精
取 消 确 定
回复
回复
问题:
问题自动获取的帖子内容,不准确时需要手动修改. [获取答案]
答案:
提交
bug 需求 取 消 确 定

微信登录/注册

切换手机号登录

{{ bind_phone ? '绑定手机' : '手机登录'}}

{{codeText}}
切换微信登录/注册
暂不绑定
CRMEB客服

CRMEB咨询热线 咨询热线

400-8888-794

微信扫码咨询

CRMEB开源商城下载 开源下载 CRMEB官方论坛 帮助文档
返回顶部 返回顶部
CRMEB客服