基于vue 通过数据过滤 实现表格合并


需求

  • 基于vue渲染的数据表格
  • 需要对相同的列进行合并

思路

自从使用了vue,就再也不想直接操作dom节点了,所以还是对数据操作。
要合并单元格需要用到rowspan属性,所有想法是针对数据添加rowspan属性使其多行显示,但下面的行再去渲染就重复了,所以用hidden 隐藏掉。
所以,针对每一行数据 ,用rowspan和display来控制每一个单元格的合并行数和是否显示

代码

<table id="search_table" class="table table-bordered table-striped" cellspacing="0" width="100%"><thead><tr class="table_bg"><th class="" colspan="12">征期日历信息</th></tr><tr class="cell_bg"><th class="" style="">月份</th><th class="" style="" >征期</th><th class="" style="" >缴款期</th><th class="" style="" >税种</th></tr></thead><tbody id="tbody"><tr class="" v-for="(i,index) in result"><td :rowspan="i.ydspan" :class="{hidden: i.yddis}" class="text-center">{{i.yd}}</td><td :rowspan="i.zqspan" :class="{hidden: i.zqdis}">{{i.zq}}</td><td <%--:rowspan="i.jkqspan" :class="{hidden: i.jkqdis}"--%>>{{i.jkq}}</td><td>{{i.sz}}</td></tr></tbody></table>

这里,对需要合并的单元格添加 :rowspan=”i.ydspan” :class=”{hidden: i.yddis}”

接着,设计一个算法,对用于渲染table渲染的数组,每个数据项添加两个属性,rowspan和hidden,计算出rowspan的值为 本列中该 值相同的行数,(当然,数据在sql中是经过group by的)以及依据rowspan的值计算hidden的值是否显示true/false,最后将此改变后的数组输出。
然而 ,需求是复杂的,,,

如图,要求第二列不能跨过第一列的维度合并,所以,没有办法一劳永逸,只能分别处理
先对月份处理,再对征期处理,,
talk is cheap ,show you the code ,,
号称是算法,就俩for 循环

  combineZQ:function (list) {var k = 0;let field ="zq";while (k < list.length) {list[k][field + 'span'] = 1;list[k][field + 'dis'] = false;for (var i = k + 1; i <= list.length - 1; i++) {if (list[k][field] == list[i][field] && list[k][field] != ''&&list[k]['yd']==list[i]['yd']&&list[k]['yd']!='') {list[k][field + 'span']++;list[k][field + 'dis'] = false;list[i][field + 'span'] = 1;list[i][field + 'dis'] = true;} else {break;}}k = i;}return list;},

名字是拼音没毛病,我也不想,人家大公司的规范(-,-)

 combineYd:function (list) {var k = 0;let field ="yd";while (k < list.length) {list[k][field + 'span'] = 1;list[k][field + 'dis'] = false;for (var i = k + 1; i <= list.length - 1; i++) {if (list[k][field] == list[i][field] && list[k][field] != '') {list[k][field + 'span']++;list[k][field + 'dis'] = false;list[i][field + 'span'] = 1;list[i][field + 'dis'] = true;} else {break;}}k = i;}return list;},

然后

这样就搞定了
效果图: 这里前两列进行了合并

就是这样,by 一位即将成为 前端 的 后台程序员

(已经成为后台的算法学生 0,0)

基于vue 通过数据过滤 实现表格合并相关推荐

  1. 基于Vue的数据可视化设计框架,数据大屏可视化编辑器

    开发文档(★★★★★) 请访问 https://lizhensheng.github.io/vue-data-view/ 完整代码下载地址:基于Vue的数据可视化设计框架,数据大屏可视化编辑器 简介 ...

  2. 毕业设计之基于Vue的数据可视化平台

    真正的大师,永远都怀着一颗学徒的心! 一.项目简介 今天说的这个软件是一款基于Vue的数据可视化平台,后端采用的是go语言. 二.实现功能 布局与缩放 拖拽 旋转 刻度尺 吸附 图表(柱状图.折线图. ...

  3. 基于vue大数据可视化(大屏展示)案例

    项目地址: vue-big-screen 点击这里 一.项目描述 1,一个基于 vue.datav.Echart 框架的 " 数据大屏项目 ",通过 vue 组件 实现数据动态刷新 ...

  4. 基于vue+echarts 数据可视化大屏展示[附源码]

    获取 ECharts 的路径有以下几种,请根据您的情况进行选择: 1) 最直接的方法是在 ECharts 的官方网站中挑选适合您的版本进行下载,不同的打包下载应用于不同的开发者功能与体积的需求,或者您 ...

  5. vue 大数据 渲染_技术专栏 | DMap——实战Vue百万条数据渲染表格组件开发

    作者:TalkingData 李志刚 本文由TalkingData原创,转载请获取授权. 李志刚:近几个月在开发一个基于Vue的数据可视化分析辅助应用---DMap(谛听),一套为数据分析师和数据科学 ...

  6. 说说如何基于 Vue.js 实现表格组件

    我们基于 Vue.js 实现一个可根据某列进行排序的表格组件. 一个表格包含表头和数据两部分内容.因此,我们定义两个数组,columns 表示表头信息,在 <thread> 中渲染,并可在 ...

  7. SAP UI5 应用开发教程之六十四 - 基于 OData V4 的 SAP UI5 表格控件如何实现 filter(过滤) 和 sort(排序)功能试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

  8. vue php 分页组件,基于Vue.js的表格分页组件

    有一段时间没更新文章了,主要是因为自己一直在忙着学习新的东西而忘记分享了,实在惭愧. 这不,大半夜发文更一篇文章,分享一个自己编写的一个Vue的小组件,名叫BootPage.不了解Vue.js的童鞋可 ...

  9. 基于Vue.js的表格分页组件

    转载自 基于Vue.js的表格分页组件 有一段时间没更新文章了,主要是因为自己一直在忙着学习新的东西而忘记分享了,实在惭愧. 这不,大半夜发文更一篇文章,分享一个自己编写的一个Vue的小组件,名叫Bo ...

最新文章

  1. 结构张量用于区分平坦、边缘、角点区域
  2. axios 跨域_当遇到跨域开发时,我们如何处理好前后端配置和请求库封装
  3. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol52]40一般来说SPA和DPA的区别是什么
  4. 2017甘肃省计算机二级考试,甘肃省2017年计算机二级考试网上报名须知及流程
  5. Spring mvc 参数类型转换
  6. C# List的方法和属性
  7. PHP_CodeSniffer HG 服务端部署篇
  8. 如何在服务器上上传手游源码,【仙变3手游】跨服服务端游戏源码+架设教程+双端+后台...
  9. Kconfig 和 Kbuild
  10. ZUC加密算法实现-软件版本Java
  11. Matlab读取fig文件并还原信号
  12. 文华财经期货指标公式,期货交易用什么指标信号简单,准确率高,
  13. CET-6--2018.6--2
  14. Linux安装RabbitMQ详细教程
  15. 大数据面试技巧——个人总结(持续更新)
  16. cellpadding 与cellspace 属性
  17. 使用GeoGebra来进行项目辅助开发
  18. php书籍免费下载,《坐即瘦》_坐即瘦_NEWS下载网
  19. HCIE-Security Day47:AC准入控制MAC
  20. 2016年的美国虚拟经济策略的对全球的影响

热门文章

  1. 挖掘G13金矿让150M手机内存变成250M
  2. avalonia 控件-Image(显示图片)
  3. (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  4. 太意外了!链家、贝壳创始人左晖突然离世!
  5. Java-网络编程-完全自学指南
  6. 敏捷开发的特点(转自MBAlib)
  7. mx linux默认字体,世界排名第一的Linux系统—MX Linux 19.2 KDE 版正式发布
  8. 关于 runat=server
  9. 怎么给PDF加上水印,只需三分钟,轻松为PDF加水印
  10. 第二节:数据仓库系统的体系结构