加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

来试试这个用 Vue 撸的数据可视化后台吧

发布时间:2019-06-20 01:07:47 所属栏目:建站 来源:东索
导读:国际惯例:项目Github地址,欢迎 Star dongsuo/vue-data-board 首先放个线上地址大家感受一下(由于后端用的是 leancloud 的免费套餐,因此可能会比较慢): vue-data-board P.S. 建议大家尽量自己注册一个账号(可以随便填一个密码),如果用默认的测试账号,

看板整合多个图表在后端而言只是一个关联关系的管理,对前端而言则需要根据看板关联的图表来对页面进行布局,然后根据保存的图表来查询数据、可视化渲染。页面布局主要是利用了 vue-grid-layout 进行 grid 布局,同时也支持拖拽和大小调整等。可视化的逻辑跟创建图表时的可视化是一样的,不再赘述。

这里遇到的问题是对于已有布局的看板,添加新图表时,新图表的定位要如何计算。这其实跟图片瀑布流的问题有些相似,但是由于各个 item 不定宽高,其实相对更难一些,我已经找到了思路,做了一些计算,但是目前还不完善,完善后我会再写文章来介绍。

5. 数据的权限问题

公司的数据其实相当敏感,对于上市公司而言,数据会影响股价走势,对非上市公司来说,会影响投融资的进度,都是关系到公司财务甚至生死存亡的大事,因此数据的权限管理是十分重要的。在这个项目里,这一部分的解决方案其实并不简单,但是复杂度主要在于后端而不是前端。简单来说,我们的权限是做到了数据表这一层级,由管理员向系统中添加数据源,添加的同时定义好该数据源的权限范围,如产品、运营、开发等权限角色。用户进入系统后,由管理员给用户分配权限角色,用户只能查询其自身对应角色所能查看的数据。由于权限和数据源管理的部分暂时还没有添加到这个开源项目中来,因此也就不细说了,先挖个坑,以后有机会再填。

6. 其他技术点:

首先项目的构建是用了 Vue-cli@3.0,除了默认的配置之外,还通过 vue.config.js 做了一些自定义的配置。

项目中用到了很多 icon,虽然Element UI 的 icon 在2.8.x版本之后增加了不少, 但是还是不能满足我们的需求(一些常用的 icon 仍然没有,比如保存),因此需要自己来解决 icon 的问题,这里要感谢 iconfont 上的设计师如山提供的这套漂亮的数据可视化图标库。项目的后端接口文档我是用的 postman 进行的管理,其实 postman 有很多强大的功能,不仅仅是一个接口测试工具,接口文档管理就是其中一个。我在开发时一般是在本地同时起前端和后端两个项目,本地开发时通过环境变量判断接入本地的后端接口地址:

  1. const fetchInstance = axios.create({ 
  2.     baseURL: process.env.VUE_APP_BASE_API 
  3.  *}*) 

本地开发完成后,前端打包发布到 gh-page 分支( git subtree push --prefix docs origin gh-pages ),后端通过 leancloud 提供的 cli 工具一键部署,还是挺方便的。前端的打包发布其实可以配置 Travis-ci 来实现自动部署,我暂时还没有配(已弃疗的拖延症患者在此)。

项目的登录授权、图表和看板的增删改查等都是使用了 leancloud 提供的解决方案,其实利用 leancloud 的 js-sdk ,前端也可以很方便地实现对象存储的增删改查,不需要写后端接口。但是为了保持项目代码的纯洁,避免代码中引入奇奇怪怪的 AV.query 这种东西,我还是自己做了后端的部分,当然这部分也做的比较简单,毕竟只是一个 Demo,主要就是基于 koa.js 做的的一些增删改查,基本上是面向文档编程。

项目里的状态管理用到了 vuex, 但是其实目前为止并没有很多全局状态管理的需求,只有用户 token 保存在了 store 里。另外关于状态管理,我在这个项目的创建图表的部分还尝试用了Vue 的简单状态管理模式( 代码在此 ),这个模式用起来是没问题的,对于大型项目里的复杂组件来说是很好用的,很方便地解决了复杂组件内部的状态共享问题。但是目前对于我这个项目而言并不是特别适用,因为这部分的状态管理放在全局状态也挺合适,当然这里是见仁见智了,我觉得就目前这样也挺好。

最后

这个项目的核心功能目前算是已经完成得七七八八了,还有一些功能很不完善,后期会逐步完善起来。数据分析可视化平台国内社区里的讨论貌似不多,一些中文的讨论大多是设计和产品方面的介绍,而且过于理想化,在实践中可能不太容易落地,关于技术实现的讨论不多(当然后端和运维方面还是比较多的),开源项目也没见多少,因此我这个项目也算是做了一些探索,当然我没多少经验,虽然参考了几个商业平台的产品交互设计,但是很多地方都是摸着石头过河,有些地方应该会有更好的解决方案,希望我的这个项目可以抛砖引玉,也希望大家能够多提意见。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读