91 lines
2.4 KiB
Java
91 lines
2.4 KiB
Java
|
<template>
|
||
|
<a-card :bordered="false">
|
||
|
<a-table
|
||
|
rowKey="id"
|
||
|
bordered
|
||
|
:columns="columns"
|
||
|
:dataSource="dataSource"
|
||
|
:pagination="false"
|
||
|
>
|
||
|
</a-table>
|
||
|
</a-card>
|
||
|
</template>
|
||
|
|
||
|
<script>
|
||
|
export default {
|
||
|
name: 'TableTotal',
|
||
|
data() {
|
||
|
return {
|
||
|
columns: [
|
||
|
{
|
||
|
title: '#',
|
||
|
width: '180px',
|
||
|
align: 'center',
|
||
|
dataIndex: 'rowIndex',
|
||
|
customRender: function (text, r, index) {
|
||
|
return (text !== '合计') ? (parseInt(index) + 1) : text
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
title: '姓名',
|
||
|
dataIndex: 'name',
|
||
|
},
|
||
|
{
|
||
|
title: '贡献点',
|
||
|
dataIndex: 'point',
|
||
|
},
|
||
|
{
|
||
|
title: '等级',
|
||
|
dataIndex: 'level',
|
||
|
},
|
||
|
{
|
||
|
title: '更新时间',
|
||
|
dataIndex: 'updateTime',
|
||
|
},
|
||
|
],
|
||
|
dataSource: [
|
||
|
{ name: '张三', point: 23, level: 3, updateTime: '2019-8-14' },
|
||
|
{ name: '小王', point: 6, level: 1, updateTime: '2019-8-13' },
|
||
|
{ name: '李四', point: 53, level: 8, updateTime: '2019-8-12' },
|
||
|
{ name: '小红', point: 44, level: 5, updateTime: '2019-8-11' },
|
||
|
{ name: '王五', point: 97, level: 10, updateTime: '2019-8-10' },
|
||
|
{ name: '小明', point: 33, level: 2, updateTime: '2019-8-10' },
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
mounted() {
|
||
|
this.tableAddTotalRow(this.columns, this.dataSource)
|
||
|
},
|
||
|
methods: {
|
||
|
|
||
|
/** 表格增加合计行 */
|
||
|
tableAddTotalRow(columns, dataSource) {
|
||
|
let numKey = 'rowIndex'
|
||
|
let totalRow = { [numKey]: '合计' }
|
||
|
columns.forEach(column => {
|
||
|
let { key, dataIndex } = column
|
||
|
if (![key, dataIndex].includes(numKey)) {
|
||
|
|
||
|
let total = 0
|
||
|
dataSource.forEach(data => {
|
||
|
total += /^\d+\.?\d?$/.test(data[dataIndex]) ? Number.parseInt(data[dataIndex]) : Number.NaN
|
||
|
console.log(data[dataIndex], ':', (/^\d+\.?\d?$/.test(data[dataIndex]) ? Number.parseInt(data[dataIndex]) : Number.NaN))
|
||
|
})
|
||
|
|
||
|
if (Number.isNaN(total)) {
|
||
|
total = '-'
|
||
|
}
|
||
|
totalRow[dataIndex] = total
|
||
|
}
|
||
|
})
|
||
|
|
||
|
dataSource.push(totalRow)
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|
||
|
</script>
|
||
|
|
||
|
<style scoped>
|
||
|
|
||
|
</style>
|