VUE之Vxe-table动态生成多级表头及后端返回数据的处理

2023-11-06

需求:
1.第一列为正常列;
2.第二列开始为动态生成列(根据接口返回数据生成);
3.最后一列为编辑列。

步骤:

写入动态html模板

<vxe-table
 id="prdRequest-id"
  ref="clearSort-req"
  border
  :page="page"
  :row-config="{ isHover: true }"
  v-bind="{
    height: tableHeight,
    sortConfig: {remote: true},
    showFooter: true,
    'show-overflow':true
  }"
  auto-resize
  align="center"
  class="content-height mytable-scrollbar"
  :data="tableData"
  :footer-method="footerMethod"
  @sort-change="sortChange"
>
  <vxe-column title="日期" field="recordDate" width="120" sortable />
  <!---将多级表头循环遍历-->
  <template v-for="(item, key) in TableColumns">
  <!---一级表头-->
    <vxe-colgroup
      :key="item.label || key"
      :title="item.label"
      :width="item.width || 100"
    >
    <!---二级表头-->
      <template v-if="item.children">
        <vxe-column
          v-for="(items, index) in item.children"
          :key="index"
          :title="items.label"
          :field="items.prop"
          v-bind="{'show-overflow': true}"
        />
      </template>
    </vxe-colgroup>
  </template>
  <vxe-column
    :width="200"
    type="html"
    title="操作"
  >
    <template slot-scope="scope">
      <div class="table-reload">
        <span class="table-reload-examine" @click="(e) => handleEditRow(e, scope.row)">编辑</span>
      </div>
    </template>
  </vxe-column>
</vxe-table>

核心js方法

centerProcess(response) {
      if (response.code === 200) {
        response.data.records.map(item => {
          // 动态生成colums(由于一级表头对应多个二级表头,而二级表头为三个固定重复表头,故加入index以保证prop唯一性)
          this.TableColumns = item.detail.map((v, index) => {
            return {
              label: v.sectionName,
              children: [
                {
                  prop: 'receiveNum' + index,
                  label: '领料数'
                },
                {
                  prop: 'goodNum' + index,
                  label: '良品数'
                },
                {
                  prop: 'goodRate' + index,
                  label: '良品率'
                }
              ]
            }
          })
        })
        //合计行参数处理
        for (var i = 0; i < this.TableColumns.length; i++) {
          this.totalArr.push(...['receiveNum' + i, 'goodNum' + i])
        }
        // 将detail中三个数量处理为下标对应值(和表头处理类似)
        response.data.records.map((item, index) => {
          item.detail.map((v, i) => {
            item['receiveNum' + i] = v.receiveNum
            item['goodNum' + i] = v.goodNum
            item['goodRate' + i] = v.goodRate
          })
        })
        this.tableData = response.data.records
        this.page.total = response.data.total
        this.loading = false
      } else {
        this.$message({
          message: response.message,
          type: 'error'
        })
      }
    }

response返回数据格式:
在这里插入图片描述
来看前端效果
在这里插入图片描述
非常nice!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VUE之Vxe-table动态生成多级表头及后端返回数据的处理 的相关文章

  • 正则表达式中的“g”标志是什么意思?

    的含义是什么g正则表达式中的标志 之间有什么区别 g and g用于全局搜索 这意味着它将匹配所有出现的情况 通常你还会看到i这意味着忽略大小写 参考 全局 JavaScript MDN https developer mozilla or
  • 使用 npm 作为构建工具连接文件

    我最近发现我可以使用 npm 作为任务运行程序 而不是 gulp 或 grunt 到目前为止 一切都很棒 lint stylus jade uglify watch 等 但串联部分 我似乎无法实现 gulp 是这样的 gulp task s
  • 无法填充名为“status”的数组

    我正在尝试做一些非常简单的事情 在 Javascript 中初始化一个数组 而且它在 Google Chrome 中不起作用 这是代码 status for i 0 i lt 8 i status i false alert status
  • 将数组转换为具有默认值的对象的更简洁方法? (洛达什可用)

    我有一个数组 比如说 a b c 我想将其转换为一个对象 该对象以数组值作为键和我可以设置的默认值 所以如果默认值是true 我希望我的输出是 a true b true c true 下面的代码是否有更简洁的版本来实现此目的 var my
  • 如何在提交表单之前删除自动数字格式?

    我正在使用 jQuery 插件自动数字 http www decorplanit com plugin 但是当我提交表单时 我无法删除之前字段上的格式POST 我尝试使用 input autonumeric destroy 和其他方法 但它
  • 卸载/销毁 Angular 延迟加载组件

    我的设置与此处找到的帖子类似http ify io lazy loading in angularjs http ify io lazy loading in angularjs 处理 Angular 中我的应用程序的各种组件的延迟加载 我
  • EJS在JS onload函数中访问express变量

    我知道你可以像这样获取 ejs 文件中变量的值 h1 h1 如果我要在同一个 ejs 页面的 onload javascript 函数中使用相同的标题变量 我将如何使用它 例如 这个函数产生一个控制台错误说 未捕获的语法错误 意外的标识符
  • 如何将函数传递给 JavaScript Web Worker

    我想通过一个 或多个 函数传递postMessage 给网络工作者 因为我无法引用常规文件 为了启动 Web Worker 我将一个对象 URL 从 Blob 创建 传递给Worker构造函数 然后我传递一条消息 但到目前为止还没有在消息中
  • 从网站存储数据的最简单方法(在服务器端)

    我有一个非常简单的网站 实际上是单页 有一个输入字段和一个按钮 我需要将用户提交的数据存储在服务器端的某个位置 完美的方法可能是简单的文本文件 并在每次单击按钮后附加新行 日志文件也可以 据我了解 JavaScript 本身是不可能的 我在
  • 哪些网络浏览器不支持 Javascript?以及如何识别客户端使用的是哪个浏览器?

    是否有不支持 javascript 的网络浏览器 以及如何确定客户端是否正在使用这些浏览器之一 或者客户端禁用了javascript 是否有不支持 javascript 的网络浏览器 当然 Lynx http en wikipedia or
  • 更改时触发跨度文本/html

    jQuery 或 JavaScript 中是否有任何事件在以下情况下触发span标签 text html 已更改 Code span class user location span user location change functio
  • JavaScript:预期的赋值或函数调用,却看到了一个表达式

    我正在使用 JSHint 来确保我的 JavaScript 是 严格的 但我收到以下错误 预期是赋值或函数调用 但看到的是表达式 关于以下代码 var str A B C D var data var strArr str split fo
  • 无法在渲染器进程中使用 Node.js API

    无法在 Electron 中使用任何与 Electron 或节点相关的操作 未定义获取错误过程 我检查了他们指导添加节点支持的各个地方 但这已经完成了 所以卡在这里 我的主要应用程序代码是 const electron require el
  • vue js中的process.env.BASE_URL是什么?

    当我使用 vue cli 安装 vue 时手动选择预设 我偶然发现了 process env BASE URL 我试图在互联网上找到它 但无济于事 我找不到任何像样的解释 这是代码 const router new VueRouter mo
  • ReferenceError 和全局对象

    在浏览器中的 JavaScript 中window是全局对象 这意味着在全局范围内定义的每个变量都是window 那么为什么我会得到这个结果 console log window foo No error logs undefined co
  • 如何在 JavaScript 中对关联数组进行排序?

    我需要为我的一个项目通过 JS 对关联数组进行排序 我发现这个函数在 Firefox 中运行得很好 但不幸的是它在 IE8 OPERA CHROME 中不起作用 无法找到使其在其他浏览器中运行的方法 或者找到另一个适合该目的的函数 我真的很
  • `ie9` - contenteditable false 在父级可编辑时不起作用

    我正在尝试制作内容可编辑和不可编辑的容器 用户可以通过 3 种方式使用它 他们可以将内容与non editable 他们可以将内容与editable 他们可以在不选择其中之一的情况下放置内容 可编辑 我正在努力实现以下目标 content
  • Javascript:更改输入值时设置光标位置

    当您输入公式时 我试图在我的应用程序中重现类似于 Microsoft Excel Google Sheets 的用户体验 并且您可以使用不同的公式和变量来自动完成下拉菜单 为此 在验证自动完成功能后 我希望能够控制光标的位置 例如 如果我输
  • 跨浏览器:禁用输入字段的不同行为(文本可以/不能复制)

    我有一个被禁用的输入 html 字段 在某些浏览器 Chrome Edge Internet Explorer 和 Opera 中可以选择并复制文本 但至少在 Firefox 中这是不可能的 您可以通过在不同浏览器中执行以下代码来测试
  • 使用 JQuery 预填充选择字段的下拉选项验证

    我有这个 JQuery 片段来防止选择已在另一个字段中选择的下拉选项 var coll select name service on change function coll each function var val this value

随机推荐

  • Linux系列之:9秒钟掌握多种实时查询日志的方法,再也不用cat命令了。

    实时查询日志 1 引言 2 less 3 tail 3 1 单文件实时查询 3 2 多文件实时查询 3 3 目标名称查询 3 4 跟踪日志 4 multitail 4 1 安装 4 2 用法 5 总结 1 引言 由于最近从某些企业毕业的同学
  • 查看当前SHELL的种类

    shell种类 shell种类常见的有sh bash csh zsh tcsh等 方法 echo 0
  • 【C语言程序设计】C语言渔夫打鱼晒网问题!

    如果一个渔夫从 2011 年 1 月 1 日开始每三天打一次渔 两天晒一次网 编程实现当输入 2011 1 月 1 日以后的任意一天 输出该渔夫是在打渔还是在晒网 实现过程 1 自定义函数 leap 用来判断输入的年份是否是闰年 2 自定义
  • 软件测试---用例篇

    软件测试 用例篇 测试用例 Test Case 概念 是为了实施测试而向被测试系统提供的一组集合 这组集合包括 测试环境 操作步骤 测试数据 预期结果等要素 好的测试用例是不熟悉业务的人也能根据用例很go准 用例表达清楚 无二义性 不能出项
  • 自增与自减运算符号&&赋值运算符

    自增运算符为 其功能是使变量的值自增1 自减运算符为 其功能是使变量值自减1 它们经常使用在循环中 自增自减运算符有以下几种形式 注意 无论是a 还是 a都等同于a a 1 在表达式执行完毕后a的值都自增了1 无论是a 还是 a都等同于a
  • Unsafe学习

    一 介绍 一个管理内存的类 Unsafe类是 final 的 不允许继承 且构造函数是private的 使用单列模式模式获取类对象 1 1 测试的类 public class UnsafeBean private static int st
  • 计算机程序存储在哪里,计算机正在运行的程序存放在哪里?

    计算机正在运行的程序存放在RAM 内存 里 RAM是与CPU进行沟通的桥梁 计算机中所有程序的运行都是在内存中进行的 因此内存的性能对计算机的影响非常大 计算机正在运行的程序存放在RAM 内存 里 RAM是与CPU进行沟通的桥梁 计算机中所
  • 使用Requests库来进行爬虫的详解

    Requests是用Python编写 基于urllib 采用Apache2 Licensed开源协议的HTTP库 它比urllib更方便 可以节约我们大量的工作 完全满足HTTP测试需求 安装 pip3 install requests 使
  • 【知识普及】神经网络架构搜索(Neural Architecture Search,NAS)

    文章目录 1 背景引入 2 网络架构搜索 NAS 2 1 NAS 搜索策略 2 1 1 基于强化学习 2 1 2 基于进化算法 2 1 3 基于梯度的方法 2 2 NAS 加速 2 2 1 层次化表示 2 2 2 权值共享 2 2 3 表现
  • 教你一招删除休眠文件hiberfil.sys节省大量C盘空间

    教你一招删除休眠文件hiberfil sys节省大量C盘空间首先分清SLEEP睡眠和HIBERNATE休眠两个概念 我们常用的是SLEEP功能 也就是电脑经过一定时间后 进入低功耗状态 工作态度保存在内存里 恢复时1 2秒就可以恢复原状态
  • 最新配置安装的centos7,解决xshell连接问题,安装docker

    配置初始的centos7 1 更新yum yum update y 2 安装vim yum install y vim 3 解决xshell连接显示警告 The remote SSH server rejected X11 forwardi
  • 用深度学习和CNN进行年龄识别

    DIP大作业 用深度学习和CNN进行年龄识别 基于深度学习的方法 基本步骤 深度学习方法 1 10 需求分析 系统设计 环境搭建 2 10 数据集及预处理 3 40 卷积神经网络模型设计 模型程序编写 模型训练 模型测试 4 30 实验结构
  • OpenWRT安装管理界面中文包

    如果刚刷的openwrt18点多的没有中文界面 用ssh连接路由后用opkg安装 root openWRT opkg install luci i18n base zh cn Unknown package luci i18n base z
  • 顺序栈——基础

    时间限制 1000ms 内存限制 256M 实验目的 编写代码 实现一个简单的顺序栈 实验要求 1 每个栈元素是一个union类型 例如 union unData 栈元素的数据类型为Union Union共用同一块存储空间 int d ch
  • 分布式任务 + 消息队列框架 go-queue

    为什么写这个库 应用场景有哪些 如何使用 总结 为什么要写这个库 在开始自研 go queue 之前 针对以下我们调研目前的开源队列方案 beanstalkd beanstalkd 有一些特殊好用功能 支持任务priority 延时 del
  • 文献学习-联合抽取C-Joint Extraction of Biomedical Entities and Relations based on Decomposition and Recombio

    论文信息 1 题目 Joint Extraction of Biomedical Entities and Relations based on Decomposition and Recombination Strategy 基于分解重组
  • QT 编码格式问题

    一 QT客户端与服务端通信 客户端先将数据进行序列化xml形式 然后利用SharpZipLib GZip Compress进行压缩 转换成Base64格式 源数据 Function GetSysTime IsMutipleReturn fa
  • 脑筋急转弯-3

    小明爱捉迷藏 却总被人找得到 为什么 答案 因为他总是喊着 我在这里 什么东西你越给它 它变得越短 答案 蜡烛 小华拿着空杯子站在雨中 为什么他的头发却没有湿 答案 因为小华是个雨伞销售员 他用雨伞遮住了头发 什么桥不能过 答案 音乐桥 因
  • spring cloud gateway集成sentinel并扩展支持restful api进行url粒度的流量治理

    sentinel集成网关支持restful接口进行url粒度的流量治理 前言 使用网关进行总体流量治理 sentinel版本 1 8 6 1 cloud gateway添加依赖 2 sentinel配置 3 网关类型项目配置 4 通过zk事
  • VUE之Vxe-table动态生成多级表头及后端返回数据的处理

    需求 1 第一列为正常列 2 第二列开始为动态生成列 根据接口返回数据生成 3 最后一列为编辑列 步骤 写入动态html模板