动态获取数据合并el-row和el-col

原本后台返回数据都是各自独立,互不影响的,数据结构如图:

[{
                       "mainContent": "AA",
                      "secondContent": "b",
                      "testProject": "日常运行",
                      "result": "",
                      "note": ""
                      },
                      {
                      "mainContent": "AA",
                      "secondContent": "b",
                      "testProject": "哈哈哈哈哈哈哈哈哈哈",
                      "result": "",
                      "note": ""
                      },
					  {
                      "mainContent": "AA",
                      "secondContent": "c",
                      "testProject": "哈哈哈哈哈哈哈哈哈哈",
                      "result": "",
                      "note": ""
                      }
]

若是一条一条数据显示出来是这样的:

想要实现相同内容合并,如图:

 

关键点在于,将原本没有关系的一条一条的数据进行相应处理,就是改变一下数据结构(如果后台可以给你提供理想的数据结构就不用改了,直接用),这里主要是写如何让前端自己处理数据,实现动态合并。

想要的数据结构为:

解释一下:就是将mainContent相同的数据单独提取出来,到时候页面显示就显示一条,而这条mainContent的行高需要动态渲染,依据mainContent相同的数据的条数(length1)。

若secondContent也相同,也需要合并,将secondContent单独提取出来,里面存放对应的每条需要合并的内容(content),secondContent的行高需要动态渲染,依据content相同数据的条数(length)。

具体的后台返回数据不变,到时候直接遍历显示就好。

{
  "head": [
    {
      "projectName": "热介质锅炉年度检验报告",
      "mainContent": "安全附件和仪表",
      "length1": "4",
      "secondContent": [
        {
          "content": "安全阀",
          "length": "2"
        },
        {
          "content": "压力表",
          "length": "2"
        }
      ],
      "data": [
        {
          "mainContent": "AA",
          "secondContent": "b",
          "testProject": "日常运行",
          "testResult": "",
          "testRemark": ""
        },
        {
          "mainContent": "AA",
          "secondContent": "b",
          "testProject": "安全阀是否在检验有效期",
          "testResult": "",
          "testRemark": ""
        },
        {
          "mainContent": "AA",
          "secondContent": "c",
          "testProject": "是否泄露",
          "testResult": "",
          "testRemark": ""
        },
        {
          "mainContent": "AA",
          "secondContent": "c",
          "testProject": "外观",
          "testResult": "",
          "testRemark": ""
        }
      ]
    },
    {
      "mainContent": "安全管理情况",
      "length1": "4",
      "data": [
        {
          "mainContent": "AA",
          "secondContent": "b",
          "testProject": "锅炉日常运行记录是否齐全",
          "testResult": "",
          "testRemark": ""
        },
        {
          "mainContent": "AA",
          "secondContent": "c",
          "testProject": "哈哈哈哈哈哈哈哈哈哈",
          "testResult": "",
          "testRemark": ""
        },
        {
          "mainContent": "AA",
          "secondContent": "c",
          "testProject": "哈哈哈哈哈哈哈哈哈哈",
          "testResult": "",
          "testRemark": ""
        },
        {
          "mainContent": "AA",
          "secondContent": "c",
          "testProject": "哈哈哈哈哈哈哈哈哈哈",
          "testResult": "",
          "testRemark": ""
        }
      ]
    }
  ]
}

部分页面代码:

<el-row class="b3" v-for="(item,index) in this.form.head" :key="index"
                                :style="{height:px(item.length1)}">
                            <el-col :span="item.secondContent?2:3" class="bdr"
                                    :style="{height:px(item.data.length),lineHeight:px(item.data.length)}">
                                <span style="line-height: normal">{{item.mainContent}}</span>
                            </el-col>
                            <el-col :span="1" :style="{height:px(item.length1)}"
                                    v-if="item.secondContent">
                                <el-row v-for="(item2,index2) in item.secondContent" :key="index2">
                                    <el-col class="bdr bdb"
                                            :style="{height:px(item2.length),lineHeight:px(item2.length)}">
                                        <span>{{item2.content}}</span>
                                    </el-col>
                                </el-row>
                            </el-col>
</el-row>

关键点在于样式的动态显示,如::style="{height:px(item.length1)}

最终实现效果:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/56366.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

新版塔罗占卜网站源码八字合婚风水起名附带搭建视频

新版塔罗占卜网站源码八字合婚风水起名PHP源码附带搭建视频,附带文本教学及视频教程安装方法以linux为例: 1、建议在服务器上面安装宝塔面板,以便操作,高逼格技术员可以忽略这步操作。 2、把安装包文件解压到根目录,同时建立数据库,把数据文件导入数据库 3、修改核心文件…

补充JDK源码-IDEA集成工具

在阅读JDK8源码的时候发现&#xff0c;只有一小部分常用包是存在源码及其注释的&#xff0c;而很多内部包是没有源码&#xff0c;class文件在阅读的时候对阅读者十分不友好。在网上搜集了很多资料都没有解决问题。 解决问题办法&#xff1a;参考文档。本文主要是根据这篇文章记…

Linux下基于Dockerfile构建镜像应用(1)

目录 基于已有容器创建镜像 Dockerfile构建SSHD镜像 构建镜像 测试容器 可以登陆 Dockerfile构建httpd镜像 构建镜像 测试容器 Dockerfile构建nginx镜像 构建镜像 概述&#xff1a; Docker 镜像是Docker容器技术中的核心&#xff0c;也是应用打包构建发布的标准格式。…

史上最细,接口自动化测试框架-Pytest+Allure+Excel整理(代码)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 Allure框架 Allu…

Vue 自定义事件绑定与解绑

绑定自定义事件 说到 Vue 自定义事件&#xff0c;那就需要搞清楚一个问题&#xff0c;为啥有这个玩意。 说到自定义事件之前&#xff0c;需要理解 组件基础的概念。理解了基础概念之后&#xff0c;我们就知道 Vue 的父子之间的通信&#xff0c; 一是 父组件通过 Prop 向子组件…

qt系列-qt6在线安装慢的问题

.\qt-unified-windows-x64-online.exe --mirror https://mirrors.aliyun.com/qt/下载速度飞快

就业并想要长期发展选数字后端还是ic验证?

“就业并想要长期发展选数字后端还是ic验证&#xff1f;” 这是知乎上的一个热点问题&#xff0c;浏览量达到了13,183。看来有不少同学对这个问题感到疑惑。之前更新了数字后端&数字验证的诸多文章&#xff0c;从学习到职业发展&#xff0c;都写过&#xff0c;唯一没有做过…

Mybatis 知识点

Mybatis 知识点 1.1 Mybatis 简介 1.1.1 什么是 Mybatis Mybatis 是一款优秀的持久层框架支持定制化 SQL、存储过程及高级映射Mybatis 几乎避免了所有的 JDBC 代码和手动设置参数以及获取结果集MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO…

代码随想录算法训练营第三十二天 | 全是没接触过的知识点,要复习

以下题目多次复习 200 岛屿数量未看解答自己编写的青春版重点本题的解题思路&#xff0c;也是之前没有接触过的&#xff0c;四字总结&#xff1a;学会感染&#xff01; 题解的代码日后复习重新编写 32 最长有效括号未看解答自己编写的青春版重点这道题&#xff0c;动态规划的思…

小鹏遭遇“动荡”,自动驾驶副总裁吴新宙离职,现已完成团队过渡

根据最新消息&#xff0c;小鹏汽车的自动驾驶副总裁吴新宙宣布将加入全球GPU芯片巨头英伟达。吴新宙将成为该公司全球副总裁&#xff0c;直接向英伟达全球CEO黄仁勋汇报。小鹏汽车董事长何小鹏和吴新宙本人已在微博上确认该消息&#xff0c;并解释离职原因涉及家庭和多方面因素…

Spark提交流程

客户端通过脚本将任务提交到yarn执行&#xff0c;yarn启动APPMaster&#xff0c;APPMaster启动Driver线程&#xff0c;Driver负责初始化SparkContext并进行任务的切分和分配任务&#xff0c;交给Executor进行计算。

质数(判定质数 分解质因数 筛质数)

这里写目录标题 一、判定质数思路分析代码实现 二、分解质因数思路分析典型题目代码实现 三、质数筛经典题目思路分析1. 朴素筛法2. 埃氏筛法3. 欧拉筛法 一、判定质数 思路分析 由于每个合数的因子是成对出现的&#xff0c;即如果 d d d 是 n n n 的因子&#xff0c;那么 …

Qt实现引导界面UITour

介绍 最近做了一款键鼠自动化&#xff0c;想第一次安装打开后搞一个引导界面&#xff0c;找了好多资料没啥参考&#xff0c;偶然发现qt有引导界面如下图。 Qt整挺好&#xff0c;但是未找到源码&#xff0c;真的不想手撸&#xff0c;(源码找到了但是Qt整起来太复杂,没法拿来直接…

Python系统学习1-2

目录 一、硬件 二、软件&#xff1a;程序文档 三、基础知识 四、python执行过程 五、Pycharm使用技巧 一、硬件 计算机五大部件&#xff1a;运算器&#xff0c;存储器&#xff0c;控制器、输入设备&#xff0c;输出设备。 运算器和控制器 集成在CPU中。 存储&#xff1a…

Qt Creator 11 开放源码集成开发环境新增集成终端和 GitHub Copilot 支持

导读Qt 项目今天发布了 Qt Creator 11&#xff0c;这是一款开源、免费、跨平台 IDE&#xff08;集成开发环境&#xff09;软件的最新稳定版本&#xff0c;适用于 GNU/Linux、macOS 和 Windows 平台。 Qt Creator 11 的亮点包括支持标签、多外壳、颜色和字体的集成终端模拟器&am…

hcip——BGP实验

要求 1.搭建toop 2.地址规划 路由器AS接口地址R11 loop0:1.1.1.1 24 loop1 : 192.168.1.1 24 g0/0/0 12.0.0.1 24 R22 64512 g0/0/0: 12.0.0.2 24 g/0/01: 172.16.0.2 19 g0/0/2: 172.16.96.2 19 R32 64512g0/0/0: 172.16.0.3 19 g0/0/1:1…

在使用Python爬虫时遇到解析错误解决办法汇总

在进行Python爬虫任务时&#xff0c;遇到解析错误是常见的问题之一。解析错误可能是由于网页结构变化、编码问题、XPath选择器错误等原因导致的。为了帮助您解决这个问题&#xff0c;本文将提供一些实用的解决办法&#xff0c;并给出相关的代码示例&#xff0c;希望对您的爬虫任…

实现Feed流的三种模式:拉模式、推模式和推拉结合模式

在互联网产品中&#xff0c;Feed流是一种常见的功能&#xff0c;它可以帮助我们实时获取我们关注的用户的最新动态。Feed流的实现有多种模式&#xff0c;包括拉模式、推模式和推拉结合模式。在本文中&#xff0c;我们将详细介绍这三种模式&#xff0c;并通过Java代码示例来实现…

Centos7 安装man中文版手册

查找man中文安装包&#xff1a; yum search man-pages 安装man-pages-zh-CN.noarch: yum install -y man-pages-zh-CN.noarch

05|Oracle学习(UNIQUE约束)

1. UNIQUE约束介绍 也叫&#xff1a;唯一键约束&#xff0c;用于限定数据表中字段值的唯一性。 1.1 UNIQUE和primary key区别&#xff1a; 主键/联合主键每张表中只有一个。UNIQUE约束可以在一张表中&#xff0c;多个字段中存在。例如&#xff1a;学生的电话、身份证号都是…