element ui table组件自定义合计栏,后台给的数据

合计的数据是后台传的,所以用table组件自定义一行用来合计

                      <el-table
                        border
                        fit
                        v-loading.body="listLoading"
                        element-loading-text="拼命加载中"
                        :data="getChannelData"
                        style="width: 100%"
                        :default-sort = "{prop: 'date', order: 'descending'}"
                        ref="multipleTable"
                        @select-all="getAllCheck"
                        @select="getSomeCheck"
                        :summary-method="getSummaries"
                        show-summary
                        >
                        <el-table-column
                        type="selection"
                        align="center"
                        width="55">
                        </el-table-column>
                        <el-table-column
                        prop="channel"
                        label="渠道"
                        align="center"
                        width="120">
                        </el-table-column>
                        <el-table-column
                        prop="intentionNum"
                        label="生成意向数量"
                        sortable
                        align="center"
                        width="120">
                        </el-table-column>
                        <el-table-column
                        prop="clueNum"
                        label="生成线索数量"
                        sortable
                        align="center"
                        width="120">
                        </el-table-column>
                        <el-table-column
                        prop="conversionRate"
                        label="转化率"
                        align="center"
                        sortable
                        >
                        </el-table-column>
                        <el-table-column
                        prop="levelOne"
                        label="级别A"
                        align="center"
                        >
                        </el-table-column>
                        <el-table-column
                        prop="levelTwo"
                        label="级别B"
                        align="center"
                        >
                        </el-table-column>
                        <el-table-column
                        prop="levelThree"
                        label="级别C"
                        align="center"
                        >
                        </el-table-column>
                        <el-table-column
                        prop="levelFour"
                        label="级别D"
                        align="center"
                        >
                        </el-table-column>
                        <el-table-column
                        prop="highQuality"
                        label="优质线索率"
                        align="center"
                        sortable
                        >
                        </el-table-column>
                        <el-table-column
                        prop="pubishNum"
                        label="上架数量"
                        align="center"
                        >
                        </el-table-column>
                        <el-table-column
                        prop="buyCount"
                        label="购买数量"
                        sortable
                        align="center"
                        >
                        </el-table-column>
                    </el-table>

:summary-method="getSummaries"
show-summary这两个是必要的,上面的是自定义,下面的是显示table栏的作用
接下来的写在method里面就好

getSummaries(param) {
       const { columns, data } = param;
       const sums = [];
       console.log(this.getAllTotalData,'this.getAllTotalData2')
       columns.forEach((column, index) => {
        if (index === 0) {
          sums[index] = '合计';    //这里就是显示你要写的啥名字,是合计还是汇总什么
          return;
        }
        switch(column.property) {  //column.property是prop="highQuality" prop里面的东西,实在不知道可以打印出来是什么
        case "channel":
        sums[index] = '--'
        case "levelOne":   //这是是根据prop来判断是那一列的数据
        sums[index] = this.getAllTotalData.levelOneTotal //sums[index]是固定写法  this.getAllTotalData.levelOneTotal 表示的是每一空格是要写什么内容,this.getAllTotalData就是后台的数据
        case "levelTwo":
        sums[index] = this.getAllTotalData.levelTwoTotal
        case "levelThree":
        sums[index] =this.getAllTotalData.levelThreeTotal
        case "levelFour":
        sums[index] = this.getAllTotalData.levelFourTotal
        case "intentionNum":
        sums[index] = this.getAllTotalData.intentionNum
        break;
        case "clueNum":
        sums[index] = this.getAllTotalData.clueNum
        break;
        case "conversionRate":
        sums[index] = this.getAllTotalData.conversionRate
        break;
        case "highQuality":
        sums[index] = this.getAllTotalData.highQuality
        break;
        case "pubishNum":
        sums[index] = this.getAllTotalData.pubishNum
        break;
        case "buyCount":
        sums[index] = this.getAllTotalData.buyCount
        break;
        default:
        break;
        }
       });
       return sums;
    }

参考 https://www.jianshu.com/p/c3826f38e6cd

原文地址:https://www.cnblogs.com/antyhouse/p/10006756.html

时间: 2024-11-07 16:37:46

element ui table组件自定义合计栏,后台给的数据的相关文章

ivew | element ui- 关于table组件自定义sortMethod排序不生效或错误问题处理

最近项目需求需要,需要对表格列进行自定义排序,用的是iview的组件,看了文档,table 排序这部分,但是没有给出相关例子.以为不难搞的,是不难搞,就是折腾了好一会... Iview table 排序 data () { return { columns5: [ { title: 'Date', key: 'date', sortable: true, }, { title: 'Name', key: 'name' }, { title: 'Age', key: 'age', sortable

vue+element ui table组件封装,使用render渲染

后台管理经常会用到表格,一开始封装了一个常用的功能性表格,点击这里: 后来由于需求增加,在表格中还会用到switch,select,input等多种组件,每次都要在html中增加<el-table-column></el-table-column>, 维护起来相当麻烦,就想到了使用render渲染. 组件内部封装代码: <template> <el-table :data="tableData" size="medium"

vue封装element中table组件

后台系统,table被用的次数比较多,所以决定提出来作为组件 1.新建一个Table.vue文件 <!--region 封装的分页 table--> <template>  <div class="table">  <el-table id="iTable" v-loading.iTable="options.loading" :data="list" :stripe="op

Snail—UI学习之自定义导航栏NSNavigationController

首先新建一个RootViewController 再建一个FirstViewController 在RootViewController.m中写入 #import "WJJRootViewController.h" #import "WJJFirstViewController.h" @interface WJJRootViewController () @end @implementation WJJRootViewController - (id)initWit

Element UI分页组件prev-text和mext-text属性无效?

前情提要 /(ㄒoㄒ)/~~ 作为刚刚接触 Element 组件的人来说,看文档是第一步,但是当我想要修改分页组件里面的按钮时却遇到了问题. 文档中写到是需要给 prev-text 和 next-text 属性就可以将下图中划红线的小箭头修改成想要的文字,比如“上一页”和“下一页”. 于是我试了两种方式去使用这两个属性,都没有成功,分页组件“一动不动”,简直就是黑人问号脸! //第一种方法无效 <div class="block"> <el-pagination la

vue + element ui table表格二次封装 常用功能

因为在做后台管理项目的时候用到了大量的表格, 且功能大多相同,因此封装了一些常用的功能, 方便多次复用. 组件封装代码: <template> <el-table :data="tableData" size="medium" ref="multipleTable" border fit @sort-change="handleSort" @filter-change="filterHandler&

element ui table的所有属性

1. table 的props: data: { type: Array, default: function() { return []; } }, size: String, width: [String, Number], height: [String, Number], maxHeight: [String, Number], fit: { type: Boolean, default: true }, stripe: Boolean, border: Boolean, rowKey:

关于Element UI tree组件 懒加载的更新操作

近期根据需求,要做一个懒加载的组织树,并且可以编辑组织树.但是编辑了之后无法进行实时更新. 一开始想到了很多解决方案,也在网上参考了很多方案,但是都又种种不足. 所以我去看了elementUI的tree组件的懒加载方法的源代码 Node.prototype.loadData = function loadData(callback) { var _this5 = this; var defaultProps = arguments.length > 1 && arguments[1]

element ui table单选框点击全选问题

<template slot-scope="scope"> <el-radio-group v-model="scope.row.HandleState" size="small"> <el-radio :label="0" @change="operation(scope.row, RepairOrChangeListTwo[0].value,scope.row.ID)"&g