Vue.js 根据数据,进行Table单元格合并

ITKouSyou 2018-10-16 14:29:40  3493  收藏 2
展开
 表格代码

<table cellspacing="0" cellpadding="0" border="0" style="height: auto; width: 100%">
  <thead>
  <tr>
    <th>项目</th>
    <th>类型</th>
    <th>值</th>
  </tr>
  </thead>
  <tbody>
  <tr v-for="item in showList">
    <td :rowspan="item.keycount" v-if="item.keyshow">{{ item.key }}</td>
    <td :rowspan="item.keyDesccount" v-if="item.keyDescshow">{{ item.keyDesc}}</td>
    <td :rowspan="item.valuecount" v-if="item.valueshow">{{ item.value}}</td>
  </tr>
  </tbody>
</table>
开始使用了css的display和hidden标签去尝试,但是没有生效,所以就是用v-if来决定是否生成td

需要显示的list需要先通过下面的js方法进行处理,生成每个参数的对应count和show,count决定合并的个数,show则决定是否显示。当count为1时,说明相同的只有一个,所以show就是true,count大于2时show则为false。

/**

* @param list 要处理的list
* @returns 返回处理好的list
*/
listHandle(list) {
  for (var key in list[0]) {
    var k = 0;
    while (k < list.length) {
      list[k][key + 'count'] = 1;
      list[k][key + 'show'] = true;
      for (var i = k + 1; i <= list.length - 1; i++) {
        if (list[k][key] == list[i][key] && list[k][key] != '') {
          list[k][key + 'count']++;
          list[k][key + 'show'] = true;
          list[i][key + 'count'] = 1;
          list[i][key + 'show'] = false;
        } else {
          break;
        }
      }
      k = i;
    }
  }
  return list
}
list数据举例

[
    {
        "key":"异地使用情况",
        "keyDesc":"最近常用通话地",
        "value":"淮北"
    },
    {
        "key":"异地使用情况",
        "keyDesc":"手机入网地",
        "value":"浙江杭州"
    },
    {
        "key":"互通号码情况",
        "keyDesc":"互通电话号码个数",
        "value":"6"
    },
    {
        "key":"互通号码情况",
        "keyDesc":"互通电话号码占比",
        "value":"21"
    },
    {
        "key":"主被叫通话详情",
        "keyDesc":"主叫通话时长",
        "value":"17124"
    },
    {
        "key":"主被叫通话详情",
        "keyDesc":"被叫通话时长",
        "value":"10800"
    },
    {
        "key":"主被叫通话详情",
        "keyDesc":"主叫被叫比例",
        "value":"158.56%"
    },
    {
        "key":"静默情况",
        "keyDesc":"最长连续静默天数",
        "value":"19"
    },
    {
        "key":"静默情况",
        "keyDesc":"月均手机静默天数",
        "value":"4.10"
    },
    {
        "key":"静默情况",
        "keyDesc":"连续静默天数超过15天的次数",
        "value":"1"
    },
    {
        "key":"静默情况",
        "keyDesc":"连续静默天数超过3天的次数",
        "value":"17"
    }
]
处理后showList数据

[
    {
        "key":"异地使用情况",
        "keyDesc":"最近常用通话地",
        "value":"淮北",
        "keycount":2,
        "keyshow":true,
        "keyDesccount":1,
        "keyDescshow":true,
        "valuecount":1,
        "valueshow":true,
        "listcount":1,
        "listshow":true
    },
    {
        "key":"异地使用情况",
        "keyDesc":"手机入网地",
        "value":"浙江杭州",
        "keycount":1,
        "keyshow":false,
        "keyDesccount":1,
        "keyDescshow":true,
        "valuecount":1,
        "valueshow":true,
        "listcount":1,
        "listshow":true
    },
    {
        "key":"互通号码情况",
        "keyDesc":"互通电话号码个数",
        "value":"6",
        "keycount":2,
        "keyshow":true,
        "keyDesccount":1,
        "keyDescshow":true,
        "valuecount":1,
        "valueshow":true,
        "listcount":1,
        "listshow":true
    },
    {
        "key":"互通号码情况",
        "keyDesc":"互通电话号码占比",
        "value":"21",
        "keycount":1,
        "keyshow":false,
        "keyDesccount":1,
        "keyDescshow":true,
        "valuecount":1,
        "valueshow":true,
        "listcount":1,
        "listshow":true
    },
    {
        "key":"主被叫通话详情",
        "keyDesc":"主叫通话时长",
        "value":"17124",
        "keycount":3,
        "keyshow":true,
        "keyDesccount":1,
        "keyDescshow":true,
        "valuecount":1,
        "valueshow":true,
        "listcount":1,
        "listshow":true
    },
    {
        "key":"主被叫通话详情",
        "keyDesc":"被叫通话时长",
        "value":"10800",
        "keycount":1,
        "keyshow":false,
        "keyDesccount":1,
        "keyDescshow":true,
        "valuecount":1,
        "valueshow":true,
        "listcount":1,
        "listshow":true
    },
    {
        "key":"主被叫通话详情",
        "keyDesc":"主叫被叫比例",
        "value":"158.56%",
        "keycount":1,
        "keyshow":false,
        "keyDesccount":1,
        "keyDescshow":true,
        "valuecount":1,
        "valueshow":true,
        "listcount":1,
        "listshow":true
    },
    {
        "key":"静默情况",
        "keyDesc":"最长连续静默天数",
        "value":"19",
        "keycount":4,
        "keyshow":true,
        "keyDesccount":1,
        "keyDescshow":true,
        "valuecount":1,
        "valueshow":true,
        "listcount":1,
        "listshow":true
    },
    {
        "key":"静默情况",
        "keyDesc":"月均手机静默天数",
        "value":"4.10",
        "keycount":1,
        "keyshow":false,
        "keyDesccount":1,
        "keyDescshow":true,
        "valuecount":1,
        "valueshow":true,
        "listcount":1,
        "listshow":true
    },
    {
        "key":"静默情况",
        "keyDesc":"连续静默天数超过15天的次数",
        "value":"1",
        "keycount":1,
        "keyshow":false,
        "keyDesccount":1,
        "keyDescshow":true,
        "valuecount":1,
        "valueshow":true,
        "listcount":1,
        "listshow":true
    },
    {
        "key":"静默情况",
        "keyDesc":"连续静默天数超过3天的次数",
        "value":"17",
        "keycount":1,
        "keyshow":false,
        "keyDesccount":1,
        "keyDescshow":true,
        "valuecount":1,
        "valueshow":true,
        "listcount":1,
        "listshow":true
    }
]
 
————————————————
版权声明:本文为CSDN博主「ITKouSyou」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hx765287443/article/details/83085483

Vue.js 根据数据,进行Table单元格合并相关推荐

  1. 【EasyExcel】EasyExcel列表填充数据时指定单元格合并

    EasyExcel列表填充数据时指定单元格合并 package com.susing.security.handler;import com.alibaba.excel.metadata.CellDa ...

  2. Vue.js 根据数据,进行Table单元格合并(原生方式以及element组件方式)

    表格代码 <table cellspacing="0" cellpadding="0" border="0" style=" ...

  3. Element UI 的 table 单元格合并

    项目中遇到表格单元格合并的需求,在此记录整个解决过程. 项目使用的是 Element UI,表格使用的是 table 组件.Element UI 的 table 表格组件中对单元格进行合并,需要使用 ...

  4. 阿里 easyExcel 动态写入数据,多级表头,单元格合并示例

    excel写入流程 public static void main(String[] args) throws Exception {//标题List<List<String>> ...

  5. element ui 的table单元格合并

    element ui中的table表格数据是动态生成的,如果说后台要求我们对单元格进行合并,这个时候需要借助一个api,:span-method="arraySpanMethod" ...

  6. layui table 单元格合并

    在表格加载完成方法执行 done:function(res, curr, count){                 merge(res);             } //合并单元格 funct ...

  7. table单元格合并

    colspan是横向合并:rowspan是纵向合并.如 <td class="subject" colspan="2">回复觉得很分阶段方</ ...

  8. js/jquery循环提取table单元格值

    <table id="tbitem"><tr><td>测试数据1</td></tr><tr><td&g ...

  9. 表格(table属性、th/td属性、单元格合并)

    表格 现在HTML 表格应该用于表格数据 ​语法:表格的容器<table>行<tr><td>普通单元格</td><th>表头单元格</ ...

最新文章

  1. 移动机器人传感器---IMU
  2. 掌握这些PPT技巧,让你的工作效率提高10倍
  3. gedit把关键字符替换为回车键
  4. Confluence 6 管理协同编辑 - 关于 Synchrony
  5. ftp 客户端 使用http代理 源码_代理服务器连接HTTPS过程
  6. 全网最详细TCP参数讲解,再也不用担心没有面试机会了......
  7. 台式电脑连接蓝牙耳机_怎样知道电脑(台式机)有没有蓝牙?
  8. ORM框架之Mybatis(二)数据库连接池、事务及动态SQL
  9. 这是不是你想要的h5手机端弹窗
  10. 一个简单到令人发指的 ADRCI 工具操作方法
  11. 非著名不专业Teambition网盘评测
  12. 2020双十一商家物流迎来大考:看拙燕仓如何破局?
  13. 单元测试是什么?为什么要做单元测试?
  14. Excel累加上一行的数值
  15. 骁龙8+gen1和a15差距 骁龙8+和苹果a15对比哪个好
  16. 7-7 公路村村通(题解)
  17. 理光Ricoh Aficio MP 2014 一体机驱动
  18. 机房计算机安装的软件,关于2019-2020学年第二学期公共机房安装新软件的通知
  19. LeetCode另一棵树的子树
  20. 第三讲 i.MX系列芯片简介

热门文章

  1. 41-17 linux端口号与进程号
  2. 趟出学雷锋的暖心路,用好温润人心的“吉祥三宝”
  3. 正厚知识 | 还记得时代的眼泪熊猫烧香吗?
  4. 2020资料员-通用基础(资料员)模拟考试题库及资料员-通用基础(资料员)考试试题
  5. ROS学习记录002:机器语音学习
  6. 大数据时代下房地产市场变革,微构房产大数据信息化应用简析
  7. Reinforcement Learning with Evolutionary Trajectory Generator
  8. 白鹭游戏引擎html5,Egret Engine(白鹭引擎)V2.5.6 官方版
  9. Qml tricks
  10. 数据湖YYDS! Flink+IceBerg实时数据湖实践