官网:http://doc.sougn.com

下载地址:https://pan.baidu.com/share/init?surl=P0O9sjfzC8nuQxirDfjW1A  密码:4oev

先看一段视屏,了解一下系统

视屏地址:https://sougn-test.oss-cn-beijing.aliyuncs.com/media/kk%202020-02-12%2019-06-35.mp4

拖拽式生成报表

看一张比较典型的大屏报表,如下图所示

我们进行报表开发往往经过一下几步

首先:业务专家对客户业务进行分析,给出满意的需求报告

然后:更近需求报告出业务原型图

最后:前端开发工程师拿到的如上图所示的美工图,以及切图,后端开发工程师进行接口开发,或者使用专业工具建立语义层(Universe)

项目中最耗时以及人力资源消耗最大的,往往在于业务的不确定(反复的变更:向领导请示一回,修改一次业务。)以及客户的要求高(客户往往会自己创造一些极度有创造力的图形,highcharts,fusioncharts,echarts。轮番用都不够。手写原生图形)

例如上面的一张大屏,也经过了大量的反复修改以及业务变动。而且部分图形也不是找个插件就可以使用。

先对上图所示的大屏进行分析

主要分为以下几部分:

  背景图:

  标题:

  表格:

  横向柱形图:

  折线图:

  饼图:

  文本:

  关联图:

  地图:

进行技术选型:

  方案一:vue+echarts+spring boot

  方案二:帆软、ireport

方案一是比较传统的报表开发方式。手写编码,基本可以100%实现美工图效果。开发成本极大

方案二可以实现业务需求,但是特殊图形无法实现。开发成本小。软件要钱,最终显示效果不好

  如何解决这两种方案的问题

需要一种不用钱,显示效果好。还可以自己扩展报表图形的方案,并且人工成本低

博客开始视屏里所示的报表开发工具,免费,超强扩展性,降级方案,支持联动,支持多数据源

实现原理:

  如何将各种报表图形组件化?

  目前前端组件化的方式:vue,react,angular这三种。但是react与angular,学习成本太高。国内用的人较少。主要选择vue

  vue组件方式:

  方式一:

  Vue.component('button-counter', { data: function () { return { count: 0 } }, template: '<button v-on:click="count++">You clicked me {{ count }} times.</button>' })

  方式二:

  <template>

    <button v-on:click="count++">You clicked me {{ count }} times.</button>

  </template>

  <script> 

    export default { name: 'button-counter'}

  </script>
  

  方案二依赖node进行编译,无法采用

  方案一正好适合我们的技术要求
  如果我们可以在后端后端解决vue的布局问题,那一样可以生产出上图所示的报表

  如何让后端生产出布局?

  网页的dom节点格式为一颗树,那我们就需要让布局方式也转换成树。这样后端才可以解析布局输出报表了

如何进行数据联动?

  在报表开发中,我们一定会遇到数据联动问题,如何不采取编码方式,进行数据联动

  从vue中得知vuex正好可以实现全局的数据联动,我们只需要将数据放在vuex中,这样就可以支持组件联动。

  只要解决上面这些问题就可以轻而易举的实现一个开放的报表工具

 如果你对该技术感兴趣可以联系开发者合作开发

   微信:

  

VUE 开发报表,非编码方式的更多相关文章

  1. 浏览器中直接是使用react系列包开发,非打包方式。

    直接上代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...

  2. 非接触IC卡中typeA卡和typeB卡的区别--总结,二者的调制方式和编码方式不同

    非接触IC卡中typeA卡和typeB卡的区别--总结,二者的调制方式和编码方式不同 1.非接触式IC卡的国际规范ISO/IEC14443的由来? 在非接触式IC卡的发展过程中,这些问题逐渐被解决并形 ...

  3. 从Qt5开始只剩下setCodecForLocale这一个了,只是影响Qt对toLocal8Bit相关函数的编码方式(在源码里写非英文,官方推荐“\xE4\xBD...”这种)good

    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); QTextCodec::setCodecFo ...

  4. 使用vue开发输入型组件更好的一种解决方式(子组件向父组件传值,基于2.2.0)

    (本人想封装一个带有input输入框的组件) 之前使用vue开发组件的时候,在遇到子组件向父组件传递值时我采用的方法是这样的: 比如子组件是一个输入框,父组件调用时需要获取到子组件输入的值,子组件通过 ...

  5. Web前端开发最佳实践(11):使用更严格的JavaScript编码方式,提高代码质量

    前言 JavaScript语言由于其固有的灵活性,所以导致开发者可以写出很多诡异的代码,甚至一些较为正常的特性,如类型隐式转换.this的指代等等,也会让刚接触此语言的开发者头大不已.尤其是那些熟知其 ...

  6. 【开发笔记】- 修改tomcat默认的编码方式

    tomcat8以后默认编码格式是utf-8:7之前的都是iso8859-1 如果默认情况下,tomcat使用的的编码方式:iso8859-1 修改tomcat下的conf/server.xml文件 找 ...

  7. C#操作Excel开发报表系列整理(转)

    C#操作Excel进行报表开发系列共写了七篇,也已经有很久没有新东西了,现在整理一下,方便以后查阅,如果有写新的,会同时更新.需要注意的是因为Office的版本不同,实际的代码可能会有所不同,但是都是 ...

  8. C#操作Excel开发报表系列整理

    C#操作Excel进行报表开发系列共写了八篇,也已经有很久没有新东西了,现在整理一下,方便以后查阅,如果有写新的,会同时更新.需要注意的是因为Office的版本不同,实际的代码可能会有所不同,但是都是 ...

  9. JavaScript是如何工作的:事件循环和异步编程的崛起 + 5种使用 async/await 更好地编码方式!

    摘要: 深度理解JS事件循环!!! 原文:JavaScript是如何工作的:事件循环和异步编程的崛起+ 5种使用 async/await 更好地编码方式! 作者:前端小智 Fundebug经授权转载, ...

随机推荐

  1. Redo与Undo的理解

    本文概要本文的原意是一篇个人学习笔记,为了避免成为草草记录一下的流水账,尝试从给人介绍的角度开写.但在整理的过程中,越来越感觉力不从心,一是细节太多了,原以为足够了解的一个小知识点下可能隐藏了很多细节 ...

  2. win10纯净版安装及其常用软件集锦(2020新年湘岳阳万江波整理)

    win10纯净版安装及其常用软件集锦 1.安装win10纯净版:链接:https://pan.baidu.com/s/1L9yl-LNxxDQbEN_TGswzcA 提取码:u0pt 2.安装WPS2 ...

  3. echarts在一个折线/柱状图浮窗显示多条数据

    解决问题就在data里面,首先 data里面是可以json数组形式,如官方API上的 name:”“, value:”“,等 value是echart识别折线图的key值.1.来看数据格式 data: ...

  4. zabbix 4.04 安装文档 - 基于CentOS 7.6

    1    安装前准备: 1.1   安装JDK 卸载openjdk # rpm -qa | grep java # yum remove java-1.8.0-openjdk # yum remove ...

  5. MySQL快速回顾:更新和删除操作

    前提要述:参考书籍<MySQL必知必会> 6.1 更新数据 为了更新(修改)表中的数据,可使用UPDATE语句.可采用两种方式使用UPDATE: 更新表中特定的行: 更新表中所有的行. U ...

  6. XSS基础学习

    XSS基础学习 By:Mirror王宇阳 什么是XSS XSS攻击是指在网页中嵌入一段恶意的客户端Js脚本代码片段,JS脚本恶意代码可以获取用户的Cookie.URL跳转.内容篡改.会话劫持--等. ...

  7. mongo windows 安装

    下载安装包 一路next 打开cmd 或者 power shell 准备本地目录. D: #进入d盘 md data #创建目录 data cd data #进入目录 data md config # ...

  8. 重拾c++第二天(4):复合类型

    1.定义:种类 数组名[元素个数] = {元素1,...,元素n} ,或者直接赋值:数组名[元素位置] = 值; 2.部分初始化,其他全为0,可以就定义一个0,这样得到0数组(或者就一个{},别的啥也 ...

  9. Jenkins-正则表达式提取Cookie

    场景描述:用户登录查询数据:登录时响应头返回Cookie,将Cookie使用正则表达式提取出来,在下一个请求“查询数据”时,在请求头中使用此Cookie 1.添加“登录”http请求 2.在后置处理器 ...

  10. CSS中设置元素的圆角矩形

    圆角矩形介绍 在CSS中通过border-radius属性可以实现元素的圆角矩形. border-radius属性值一共有4个,左上.右上.左下.右下. border-radius属性值规则如下:第一 ...