<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
<el-table v-loading="loading" :summary-method="getSummaries" show-summary :data="abcList" border tooltip-effect="darkTable" >
首先需要在table標籤中新增
:summary-method="getSummaries" // 呼叫方法 show-summary //標籤屬性 methods: { getSummaries(param) { const { columns, data } = param console.log(columns, data, 'columns,data') const sums = [] columns.forEach((column, index) => { // 設定第一列的值為總計 if (index === 0) { sums[index] = '總計' return } sums[3] = this.form.result sums[3] += '元' }) return sums } }
因為Element上計算總計的方法是計算當前頁上金額的總和,稍加修改~
sums[index] = '總計' // 把下標為0的列賦值為總計 sums[3] = this.form.result // this.form.result為init初始化時從介面中拿到的總計,賦值到下標為3的列上 sums[3] += '元' // 得到的總計後加上單位元
<template> <el-card class="box-card"> <!-- 只合計不做其他處理 --> <h2>只合計不做其他處理</h2> <el-table :data="tableData6" border show-summary style="width: 100%"> <el-table-column prop="id" label="ID" width="180" align="center"> </el-table-column> <el-table-column prop="name" label="產品" align="center"> </el-table-column> <el-table-column prop="number" label="數量" align="center"> </el-table-column> <el-table-column prop="price" label="價格" align="center"> </el-table-column> <el-table-column prop="profit" label="利潤率" align="center"> </el-table-column> </el-table> <!-- 簡單求和範例處理 --> <h2 style="margin-top:100px">簡單求和範例處理</h2> <el-table :data="tableData6" border :summary-method="getSummaries01" show-summary style="width: 100%;"> <el-table-column prop="id" label="ID" width="180" align="center"> </el-table-column> <el-table-column prop="name" label="產品" align="center"> </el-table-column> <el-table-column prop="number" label="數量" align="center"> </el-table-column> <el-table-column prop="price" label="價格" align="center"> </el-table-column> <el-table-column prop="profit" label="利潤率" align="center"> </el-table-column> </el-table> <!-- 指定列求和範例處理 --> <h2 style="margin-top:100px">指定列求和範例處理</h2> <el-table :data="tableData6" border :summary-method="getSummaries02" show-summary style="width: 100%;"> <el-table-column prop="id" label="ID" width="180" align="center"> </el-table-column> <el-table-column prop="name" label="產品" align="center"> </el-table-column> <el-table-column prop="number" label="數量" align="center"> </el-table-column> <el-table-column prop="price" label="價格" align="center"> <template slot-scope="scope"> {{$utils.formSum(scope.row.price, 2, '.', ',')}} </template> </el-table-column> <el-table-column prop="profit" label="利潤率" align="center"> <template slot-scope="scope"> {{Number(scope.row.profit).toFixed(2)}} % </template> </el-table-column> </el-table> </el-card> </template>
<script> export default { data() { return { tableData6: [{ id: '12987122', name: '襪子', number: '234', price: '3', profit: '10.9' }, { id: '12987123', name: '鞋子', number: '165', price: '343.8', profit: '12.00' }, { id: '12987124', name: '褲子', number: '324', price: '249.0', profit: '9' }, { id: '12987125', name: '腰帶', number: '621', price: '342.0', profit: '17.00' }, { id: '12987126', name: '手鐲', number: '539', price: '43421', profit: '153333' }] }; }, methods: { //格式化數位,格式化金額 // formSum: function(number, decimals, dec_point, thousands_sep) { // /* // * 引數說明: // * number:要格式化的數位 // * decimals:保留幾位小數 // * dec_point:小數點符號 // * thousands_sep:千分位符號 // * */ // number = (number + '').replace(/[^0-9+-Ee.]/g, ''); // var n = !isFinite(+number) ? 0 : +number, // prec = !isFinite(+decimals) ? 0 : Math.abs(decimals), // sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep, // dec = (typeof dec_point === 'undefined') ? '.' : dec_point, // s = '', // toFixedFix = function(n, prec) { // var k = Math.pow(10, prec); // return '' + Math.ceil(n * k) / k; // }; // s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.'); // var re = /(-?d+)(d{3})/; // while (re.test(s[0])) { // s[0] = s[0].replace(re, "$1" + sep + "$2"); // } // if ((s[1] || '').length < prec) { // s[1] = s[1] || ''; // s[1] += new Array(prec - s[1].length + 1).join('0'); // } // return s.join(dec); // } /** * 將show-summary設定為true就會在表格尾部展示合計行。 * 預設情況下,對於合計行,第一列不進行資料求合操作, * 而是顯示「合計」二字(可通過sum-text設定), * 其餘列會將本列所有數值進行求合操作,並顯示出來。 * 當然,你也可以定義自己的合計邏輯。 * 使用summary-method並傳入一個方法,返回一個陣列, * 這個陣列中的各項就會顯示在合計行的各列中,具體可以參考本例中的第二個表格。 */ //簡單求和範例處理 getSummaries01(param) { const { columns, data } = param; const sums = []; columns.forEach((column, index) => { if (index === 0) { sums[index] = '總價'; return; } const values = data.map(item => Number(item[column.property])); if (!values.every(value => isNaN(value))) { sums[index] = values.reduce((prev, curr) => { const value = Number(curr); if (!isNaN(value)) { return prev + curr; } else { return prev; } }, 0); sums[index] += ' 元'; } else { sums[index] = 'N/A'; } }); return sums; }, //指定列求和範例處理 getSummaries02(param) { const { columns, data } = param; const sums = []; columns.forEach((column, index) => { if (index === 0) { sums[index] = '總價'; } else if (index === 3) { //對價格做處理:保留兩位小數 const values = data.map(item => Number(item[column.property])); if (!values.every(value => isNaN(value))) { sums[index] = values.reduce((prev, curr) => { const value = Number(curr); if (!isNaN(value)) { return prev + curr; } else { return prev; } }, 0); sums[index] = this.$utils.formSum(sums[index], 2, '.', ','); } else { sums[index] = '/'; } } else if (index === 4) { //對利潤率做處理:保留兩位小數 const values = data.map(item => Number(item[column.property])); if (!values.every(value => isNaN(value))) { sums[index] = values.reduce((prev, curr) => { const value = Number(curr); if (!isNaN(value)) { return prev + curr; } else { return prev; } }, 0); sums[index] = sums[index].toFixed(2); sums[index] += ' %'; } else { sums[index] = '/'; } } else { const values = data.map(item => Number(item[column.property])); if (!values.every(value => isNaN(value))) { sums[index] = values.reduce((prev, curr) => { const value = Number(curr); if (!isNaN(value)) { return prev + curr; } else { return prev; } }, 0); } else { sums[index] = '/'; } } }); return sums; } } }; </script>
以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45