最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue表格(table)計算總計方式

 更新時間:2022年07月31日 10:02:40   作者:manyuejizhao  
這篇文章主要介紹了vue表格(table)計算總計方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

vue 表格計算總計

<el-table
? ? ? ? v-loading="loading"
? ? ? ? :summary-method="getSummaries"
? ? ? ? show-summary
? ? ? ? :data="abcList"
? ? ? ? border
? ? ? ? tooltip-effect="darkTable"
? ? ? >

首先需要在table標簽中添加

:summary-method="getSummaries" ?// 調(diào)用方法
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] += '元'
// 得到的總計后加上單位元

vue table表格合計 ( Element )

<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="產(chǎn)品" align="center">
			</el-table-column>
			<el-table-column prop="number" label="數(shù)量" 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="產(chǎn)品" align="center">
			</el-table-column>
			<el-table-column prop="number" label="數(shù)量" 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="產(chǎn)品" align="center">
			</el-table-column>
			<el-table-column prop="number" label="數(shù)量" 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: {
			//格式化數(shù)字,格式化金額
			// formSum: function(number, decimals, dec_point, thousands_sep) {
			//   /*   
			//     * 參數(shù)說明:
 
			//     * number:要格式化的數(shù)字
 
			//     * decimals:保留幾位小數(shù)
 
			//     * dec_point:小數(shù)點符號
 
			//     * 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就會在表格尾部展示合計行。
			 * 默認情況下,對于合計行,第一列不進行數(shù)據(jù)求合操作,
			 * 而是顯示「合計」二字(可通過sum-text配置),
			 * 其余列會將本列所有數(shù)值進行求合操作,并顯示出來。
			 * 當然,你也可以定義自己的合計邏輯。
			 * 使用summary-method并傳入一個方法,返回一個數(shù)組,
			 * 這個數(shù)組中的各項就會顯示在合計行的各列中,具體可以參考本例中的第二個表格。
			 */
 
			//簡單求和實例處理
			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) { //對價格做處理:保留兩位小數(shù)
						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) { //對利潤率做處理:保留兩位小數(shù)
						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>

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • vue3中update:modelValue的使用與不生效問題解決

    vue3中update:modelValue的使用與不生效問題解決

    現(xiàn)在vue3的使用越來越普遍了,vue3這方面的學習我們要趕上,下面這篇文章主要給大家介紹了關于vue3中update:modelValue的使用與不生效問題的解決方法,需要的朋友可以參考下
    2022-03-03
  • elementUI Vue 單個按鈕顯示和隱藏的變換功能(兩種方法)

    elementUI Vue 單個按鈕顯示和隱藏的變換功能(兩種方法)

    小編最近遇到這樣的需求,當點擊一個按鈕可以變換里面字的內(nèi)容,剛開始還真是一頭霧水,不知所措。仔細想想屢屢思緒,很容易的解決了。接下來通過本文給大家介紹elementUI Vue 單個按鈕顯示和隱藏的變換功能,需要的朋友可以參考下
    2018-09-09
  • Element中el-input密碼輸入框瀏覽器自動填充賬號密碼問題的解決方法

    Element中el-input密碼輸入框瀏覽器自動填充賬號密碼問題的解決方法

    自己寫了一個管理系統(tǒng),登錄成功之后,瀏覽器提示我保存賬號密碼,每次登錄時就會自動回填記住的賬號密碼,方便用戶快速登錄,下面這篇文章主要給大家介紹了關于Element中el-input密碼輸入框瀏覽器自動填充賬號密碼問題的解決方法,需要的朋友可以參考下
    2022-09-09
  • Vuejs第一篇之入門教程詳解(單向綁定、雙向綁定、列表渲染、響應函數(shù))

    Vuejs第一篇之入門教程詳解(單向綁定、雙向綁定、列表渲染、響應函數(shù))

    組件(Component)是 Vue.js 最強大的功能之一。接下來給大家介紹vuejs單向綁定、雙向綁定、列表渲染、響應函數(shù)的相關知識,非常不錯,感興趣的朋友一起看看吧
    2016-09-09
  • 詳解Vue如何實現(xiàn)自定義動畫與動畫效果設計

    詳解Vue如何實現(xiàn)自定義動畫與動畫效果設計

    在Vue中,動畫效果是非常有用的,它可以使用戶界面變得更加生動、有趣,本文中我們將學習如何在Vue中進行自定義動畫與動畫效果設計,感興趣的可以了解一下
    2023-06-06
  • Vue3中導航守衛(wèi)的基本使用方法

    Vue3中導航守衛(wèi)的基本使用方法

    這篇文章主要給大家介紹了關于Vue3中導航守衛(wèi)的基本使用方法,正如其名vue-router?提供的導航守衛(wèi)主要用來通過跳轉或取消的方式守衛(wèi)導航,下面需要的朋友可以參考下
    2023-03-03
  • 詳解VueRouter 路由

    詳解VueRouter 路由

    本文詳細介紹了VueRouter 路由的概念、規(guī)則、基礎等相關內(nèi)容,文中運用大量的圖片進行講解,感興趣的小伙伴可以看一看這篇文章
    2021-08-08
  • vuex實現(xiàn)簡單的購物車功能

    vuex實現(xiàn)簡單的購物車功能

    這篇文章主要為大家詳細介紹了vuex實現(xiàn)簡單的購物車功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • element-ui?tree?異步樹實現(xiàn)勾選自動展開、指定展開、指定勾選功能

    element-ui?tree?異步樹實現(xiàn)勾選自動展開、指定展開、指定勾選功能

    這篇文章主要介紹了element-ui?tree?異步樹實現(xiàn)勾選自動展開、指定展開、指定勾選,項目中用到了vue的element-ui框架,用到了el-tree組件,由于數(shù)據(jù)量很大,使用了數(shù)據(jù)懶加載模式,即異步樹,需要的朋友可以參考下
    2022-08-08
  • 詳解Vue中的watch和computed

    詳解Vue中的watch和computed

    這篇文章主要介紹了Vue中的watch和computed的相關資料,幫助大家更好的理解和學習vue框架,感興趣的朋友可以了解下
    2020-11-11

最新評論

宝应县| 浙江省| 郯城县| 客服| 海伦市| 安陆市| 汶川县| 喀什市| 开原市| 文化| 德令哈市| 朝阳县| 永胜县| 上杭县| 金平| 鄂托克前旗| 涞水县| 宜川县| 田林县| 西华县| 永清县| 辛集市| 岳阳县| 泰安市| 灵石县| 确山县| 祁东县| 霍州市| 宁化县| 安阳市| 肥乡县| 洪洞县| 济阳县| 宣恩县| 黔西| 湖南省| 南岸区| 宜兰市| 胶州市| 黔西县| 思茅市|