IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 【vue+element】合计行不显示,除页面缩放或者F12,合计行的实现及问题解决 -> 正文阅读

[JavaScript知识库]【vue+element】合计行不显示,除页面缩放或者F12,合计行的实现及问题解决

早上刚遇到这个问题,弹窗选完数据后,在页面的table表格中展示选好的内容,并且要有合计行
结果发现合计行不展示,但是我按F12或上下拖动页面,合计行就出来了

原因在于页面刚渲染的时候表格是空的,页面渲染在数据接收前。页面缩放会再次渲染,因为才会在拖动的时候才能看见合计行,刚渲染好的时候看不到。

解决方案很简单,通过v-if判断数据源数组的长度,当有长度的时候代表数据已经渲染,表格不是空的。(ps:下午更新一下,方法可行,但是因为一些原因,组件被封装过,导致我这么做的时候,高度无法渲染,只有在合计行出现的时候表格才会被内容撑开,换了另一种方法也可行,方法放在最下面了)

在这里插入图片描述
有这两个就可以实现合计行了
在这里插入图片描述

 <el-table
                ref="standTable"
                v-if="assetTableData.length"                    
                :data="assetTableData"
                show-summary
                :summary-method="getSummaries"              
              >
                <el-table-column width="100" label="序号" type="index" align="center">
                  <template slot-scope="scope">
                    <span>{{ (queryParams.pageNum - 1) * queryParams.pageNum + scope.$index + 1 }}</span>
                  </template>
                </el-table-column>
  
                <el-table-column label="数量" :show-overflow-tooltip="true" align="center" prop="qty" />

                <el-table-column label="xx值" :show-overflow-tooltip="true" align="center" prop="cost" />
                <el-table-column label="xx值" :show-overflow-tooltip="true" align="center" prop="depLeft" />

                <el-table-column label="操作" :show-overflow-tooltip="true" align="center">
                  <template slot-scope="scope">
                    <button>删除</button>
                  </template>
                </el-table-column>
              </el-table>
   getSummaries(param) {
      const { columns, data } = param
      const sums = []  
      columns.forEach((column, index) => {
        if (index === 0) {//给哪一列加‘合计’
          sums[index] = '合计'
          return
        }
        const tempArr = ['qty', 'cost', 'depLeft']//给需要的列加求和计算
        if (tempArr.includes(column.property)) {
          const values = data.map(item => Number(item[column.property]))
          if (!values.every(value => isNaN(value))) {
            sums[index] = this.moneyFilter(
              values.reduce((prev, curr) => {
                const value = Number(curr)
                if (!isNaN(value)) {
                  return prev + curr
                } else {
                  return prev
                }
              }, 0)
            )
          }
        } else {
          sums[index] = '-'
        }
      })

      return sums
    },

选择给哪一列加合计,给哪些需要的列做求和计算,其他的代码不需要改,基本上这个就是文档上的方法

方法二

在update函数中这样写,主要doLayout的L要大写,我手打的dolayout导致没生效

 updated() {
    this.$nextTick(() => {
      this.$refs['standTable'].doLayout()
    })

  },
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-30 08:37:40  更:2022-04-30 08:40:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:14:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码