elementUI中使用formatter对table中时间格式化

elementUI中的table提供了formatter这个属性来对传入的数据进行用户自定义的格式化

table的写法如下:

 <el-table
	:data="list"
	border
	style="width: 100%"
	:header-cell-style="{color:'black',textAlign:'center'}">
	<el-table-column
		prop="date"
		:formatter="common.formatDate"
		label="时间"
		width="100">
    </el-table-column>
</el-table>

该table只有一列数据, table数据来自el-table中:data绑定的data中的list变量的值, 该列内容是list中每项的date属性的值

使用formatter绑定了外部工具js中的formatDate方法,

这里我只使用了formatter方法的cellValue值, 该值表示当前单元格的值, 也就是el-table-column的prop的值

var common = {

  formatDate:function(row, column, cellValue, index) {
    if(cellValue==null || cellValue=="") return "";
    let date = new Date(parseInt(cellValue) * 1000);
    let Y = date.getFullYear() + '-';
    let M = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) + '-' : date.getMonth() + 1 + '-';
    let D = date.getDate() < 10 ? '0' + date.getDate() + ' ' : date.getDate() + ' ';
    let h = date.getHours() < 10 ? '0' + date.getHours() + ':' : date.getHours() + ':';
    let m = date.getMinutes()  < 10 ? '0' + date.getMinutes() + ':' : date.getMinutes() + ':';
    let s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
    return Y + M + D ;
  },
}
export default common;

在main.js中全局定义了Vue.prototype.common = common; 固在需要的vue中只要使用common.formatDate即可, 如果在methods中使用this.common.formateDate

formatter有四个参数: Function(row, column, cellValue, index), 使用row可以把table改行的内容传回去, 比如list如下:

[{

date:1535472000

name:'xxxx'

},{

date:1535471000

name:'xxxx1'

}],

,在formatDate:function(row, column, cellValue, index) {}中使用row.date则可以获取当前行的date属性的值, row.name可以获取当前行的name属性

### 回答1: elementuitableformatter是一个函数,用于格式表格的数据。它可以将数据转换为需要的格式,例如将日期格式为特定的格式,将数字格式为货币格式等等。在使用table组件时,可以通过设置formatter属性来指定需要使用的格式函数。 ### 回答2: Element UI 是一个基于 Vue.js 的 UI 框架,其 table 组件是常用的表格展示组件之一,提供了许多有用的属性和方法来满足不同的需求,其 formatter 是其比较常用的一个属性。 formattertable 组件的一个列属性,用于统一对列数据进行格式。其接受一个函数作为参数,该函数接收两个参数:该列数据和当前行数据,返回格式后的数据作为该列的内容展示。 使用 formatter 可以解决一些常见的需求,比如将日期字符串转换为时间戳,将数字保留固定小数位等。具体实现如下: ```html <el-table :data="tableData"> <el-table-column label="时间" prop="time" :formatter="formatTimestamp"></el-table-column> <el-table-column label="价格" prop="price" :formatter="formatPrice"></el-table-column> ... </el-table> ``` ```javascript export default { data() { return { tableData: [ { time: '2022-11-11 11:11:11', price: 19.99, ... }, { time: '2022-12-12 12:12:12', price: 29.99, ... }, ... ] } }, methods: { formatTimestamp(row, column) { return new Date(row[column.property]).getTime() / 1000 }, formatPrice(row, column) { return row[column.property].toFixed(2) }, ... } } ``` 上述代码,`formatTimestamp` 函数将时间字符串转换为时间戳,`formatPrice` 函数将价格保留两位小数。这两个函数都会接收当前行数据和该列数据作为参数,在函数内部进行处理后返回格式后的数据。 除了传递函数作为参数,formatter 属性还可以直接传递字符串,这可以用于简单的文本格式,例如使用字体样式或颜色。 总而言之,formatterElement UI table 组件十分实用的一个属性,能够轻松地对列数据进行格式。在实际开发,需要根据具体需求选择合适的函数或方法来实现对数据的格式。 ### 回答3: ElementUI 是一个基于 Vue.js 的桌面端组件库,其table 组件是非常常用的一种,它可以方便的展示数据,并支持多种自定义操作。其formattertable 组件的一个非常常用的属性,下面将详细介绍它的用法和意义。 1. formatter 属性的作用是什么? formatter 属性可以用于表格单元格内展示的数据格式,我们可以通过 formatter 属性来将所有的单元格内容格式,达到更好的显示效果和更合理的数据管理。 2. formatter 属性的使用方法是什么? formatter 属性的使用方法如下: ``` <el-table-column prop="date" label="日期" formatter={row, column, cellValue, index}></el-table-column> ``` 其的 row 和 column 是当前行和当前列对象,cellValue 是当前单元格的值,index 是当前行的索引。在 formatter 函数,我们可以对 cellValue 进行任意的操作,并通过 return 返回新的值,这样就可以格式单元格内容了。 3. formatter 属性的常用例子有哪些? (1)金额格式 我们有时候需要将单元格的金额转为一定的格式,比如加上逗号,保留两位小数等,可以通过 formatter 函数实现,代码如下: ``` <el-table-column prop="amount" label="金额" formatter={row, column, cellValue, index}> {`¥${cellValue.toFixed(2).replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,')}`} </el-table-column> ``` 这里使用了正则表达式来给金额后面添加逗号,保留两位小数。注意,这里的 currency 是在 formatter 单独处理了的,前面加上了 ¥ 符号。 (2)状态显示 表格有些列需要根据状态显示相应的图标,比如进行、完成或失败等,我们可以在 formatter 函数内判断状态,并展示相应的图标,代码如下: ``` <el-table-column prop="status" label="状态" formatter={row, column, cellValue, index}> {cellValue === '进行' ? <i class="el-icon-loading"></i> : cellValue === '已完成' ? <i class="el-icon-circle-check"></i> : <i class="el-icon-circle-close"></i>} </el-table-column> ``` 在这个例子,我们将不同状态对应的图标展示出来,所有的图标 HTML 都是在 formatter 设置的,最终会生成对应的图标。 (3)课程展示 如果我们是一个在线培训网站,那么课程列表展示的效果就非常重要了,我们可以通过在 formatter 函数内自定义显示样式,来提高用户对课程的体验,代码如下: ``` <el-table-column label="内容" formatter={row, column, cellValue, index}> <div class="lesson-block"> <img :src="row.poster" alt="封面" class="lesson-cover"> <div class="lesson-info"> <h3 class="lesson-title">{row.title}</h3> <p class="lesson-teacher">{row.teacher}</p> <div class="lesson-footer"> <span class="lesson-duration">{row.duration}</span> <el-button type="primary" class="lesson-button">播放</el-button> </div> </div> </div> </el-table-column> ``` 这里我们展示的是课程方块,使用了一个包含图片、标题、作者、阅读量、时长等多项信息的方块来展示课程,大大提高了用户的使用体验。 除了上面这些例子,还有很多其他的使用 formatter 属性的方式,比如时间格式、性别转换、数字转等,通过 formatter 属性,我们可以实现表格数据的灵活呈现,提高用户使用体验。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值