1 <el-table
2 ref="table"
3 id="ascendDetailTable"
4 :data="tableData"
5 border
6 height="100%"
7 :summary-method="getSummaries"
8 show-summary
9 style="width:100%;height:99%;overflow:hidden;">
10 <el-table-column
11 prop="name"
12 label="名称"
13 width="180"
14 sortable>
15 </el-table-column>
16 <el-table-column
17 prop="addr"
18 showOverflowTooltip
19 sortable
20 label="地址">
21 </el-table-column>
22 <el-table-column
23 prop="customerNum"
24 label="户数"
25 sortable>
26 </el-table-column>
27 <el-table-column
28 prop="contacter"
29 label="联系人">
30 </el-table-column>
31 </el-table>
1 getSummaries(param) {
2 this.$nextTick(() => {
3 if (data.length > 1) document.getElementById('ascendDetailTable').style.height = '98%'
4 })
5 const { columns, data } = param
6 const sums = []
7 columns.forEach((column, index) => {
8 if (index === 0) {
9 sums[index] = '合计:'
10 return
11 }
12 if (index === 1) {
13 sums[index] = this.tableData.length + '个'
14 return
15 }
16 if (index === 2) {
17 const values = data.map(item => Number(item[column.property]))
18 if (!values.every(value => isNaN(value))) {
19 sums[index] = values.reduce((prev, curr) => {
20 const value = Number(curr)
21 if (!isNaN(value)) {
22 return prev + curr
23 } else {
24 return prev
25 }
26 }, 0)
27 sums[index] += ' 户'
28 } else {
29 sums[index] = 'N/A'
30 }
31 return
32 } else {
33 sums[index] = ''
34 return
35 }
36 })
37 return sums
38 }