詳解vue結(jié)合el-table實(shí)現(xiàn)表格小計(jì)總計(jì)需求(summary-method)
1. 實(shí)現(xiàn)效果

2. 核心部分
1.el-table 添加如下配置,添加 show-summary 屬性,配置 summary-method 函數(shù)
<el-table ....... show-summary :summary-method="getSummaries" > ...... </el-table>
2.getSummaries 計(jì)算小計(jì)/總計(jì)邏輯
getSummaries(param) {
// 計(jì)算小計(jì)
let result = this.tableData
let sumTotalData = Object.assign({}, emptyTotalData)
result.forEach((item) => {
sumTotalData.age += Number(item.age)
sumTotalData.height += Number(item.height)
})
// 計(jì)算總計(jì)
let totalResult = this.statistics
return [
<span>
<strong> 小計(jì) </strong>
<br />
<strong> 總計(jì) </strong>
</span>,
<span> </span>,
<span> </span>,
<span>
<span> {sumTotalData.age} </span> <br />
<span> {totalResult.age} </span>
</span>,
<span>
<span> {sumTotalData.height} </span> <br />
<span> {totalResult.height} </span>
</span>,
]
},3. 完整組件代碼
<template>
<div class="home">
<div class="body">
<el-table
:data="tableData"
border
row-key="date"
class="draggable-table"
style="width: 100%"
show-summary
:summary-method="getSummaries"
>
<el-table-column type="index" label="序號(hào)" width="200" />
<el-table-column prop="date" label="日期" />
<el-table-column prop="name" label="姓名" />
<el-table-column prop="age" label="年齡" />
<el-table-column prop="height" label="身高" />
</el-table>
</div>
</div>
</template>
<script>
import Sortable from 'sortablejs'
let emptyTotalData = {
age: 0,
height: 0,
}
export default {
name: 'Demo',
data() {
return {
tableData: [], //table數(shù)據(jù)
statistics: 0, //總計(jì)數(shù)據(jù)
}
},
mounted() {
// 調(diào)用后端接口table數(shù)據(jù)
this.tableData = [
{ date: '2024-01-02', name: '張三1', age: '10', height: '165' },
{ date: '2024-01-03', name: '李四2', age: '11', height: '174' },
{ date: '2024-01-04', name: '王五3', age: '12', height: '174' },
{ date: '2024-01-05', name: '麻六4', age: '14', height: '185' },
{ date: '2024-01-07', name: 'kk5', age: '44', height: '179' },
{ date: '2024-01-08', name: 'fantay6', age: '21', height: '171' },
]
// 調(diào)用后端接口返回的總計(jì)數(shù)據(jù)
this.statistics = {
age: '112',
height: '1048',
}
},
methods: {
getSummaries(param) {
// 計(jì)算小計(jì)
let result = this.tableData
let sumTotalData = Object.assign({}, emptyTotalData)
result.forEach((item) => {
sumTotalData.age += Number(item.age)
sumTotalData.height += Number(item.height)
})
// 計(jì)算總計(jì)
let totalResult = this.statistics
return [
<span>
<strong> 小計(jì) </strong>
<br />
<strong> 總計(jì) </strong>
</span>,
<span> </span>,
<span> </span>,
<span>
<span> {sumTotalData.age} </span> <br />
<span> {totalResult.age} </span>
</span>,
<span>
<span> {sumTotalData.height} </span> <br />
<span> {totalResult.height} </span>
</span>,
]
},
},
}
</script>
<style scoped lang="scss">
.home {
.body {
width: 890px;
height: 500px;
border: #31aab2 solid 10px;
box-sizing: border-box;
padding: 20px;
box-sizing: border-box;
}
}
</style>到此這篇關(guān)于vue結(jié)合el-table實(shí)現(xiàn)表格小計(jì)總計(jì)需求(summary-method)的文章就介紹到這了,更多相關(guān)vue el-table表格小計(jì)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- vue3插槽:el-table表頭插入tooltip及更換表格背景色方式
- vue3?el-table結(jié)合seamless-scroll實(shí)現(xiàn)表格數(shù)據(jù)滾動(dòng)的思路詳解
- vue實(shí)現(xiàn)動(dòng)態(tài)控制el-table表格列的展示與隱藏
- VUE2.0+ElementUI2.0表格el-table實(shí)現(xiàn)表頭擴(kuò)展el-tooltip
- VUE2.0+ElementUI2.0表格el-table循環(huán)動(dòng)態(tài)列渲染的寫法詳解
- VUE2.0 ElementUI2.0表格el-table自適應(yīng)高度的實(shí)現(xiàn)方法
相關(guān)文章
three.js實(shí)現(xiàn)vr全景圖功能實(shí)例(vue)
去年全景圖在微博上很是火爆了一陣,正好我也做過一點(diǎn)全景相關(guān)的項(xiàng)目,下面這篇文章主要給大家介紹了關(guān)于three.js實(shí)現(xiàn)vr全景圖功能的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-05-05
Electron+vue從零開始打造一個(gè)本地播放器的方法示例
這篇文章主要介紹了Electron+vue從零開始打造一個(gè)本地播放器的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
基于Vue2實(shí)現(xiàn)簡易的省市區(qū)縣三級(jí)聯(lián)動(dòng)組件效果
這是一個(gè)基于Vue2的簡易省市區(qū)縣三級(jí)聯(lián)動(dòng)組件,可以控制只顯示省級(jí)或只顯示省市兩級(jí),可設(shè)置默認(rèn)值等。提供原始省市縣代碼和名稱數(shù)據(jù),適用于各種有關(guān)城市區(qū)縣的應(yīng)用。需要的朋友可以參考下2018-11-11
vue中v-for循環(huán)數(shù)組,在方法中splice刪除數(shù)組元素踩坑記錄
這篇文章主要介紹了vue中v-for循環(huán)數(shù)組,在方法中splice刪除數(shù)組元素踩坑記錄,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
unplugin-auto-import的配置以及eslint報(bào)錯(cuò)解決詳解
unplugin-auto-import?解決了vue3-hook、vue-router、useVue等多個(gè)插件的自動(dòng)導(dǎo)入,也支持自定義插件的自動(dòng)導(dǎo)入,是一個(gè)功能強(qiáng)大的typescript支持工具,這篇文章主要給大家介紹了關(guān)于unplugin-auto-import的配置以及eslint報(bào)錯(cuò)解決的相關(guān)資料,需要的朋友可以參考下2022-08-08

