使用vue构建一个可视化大数据平台
使用vue全家桶以及v-charts和datav实现一个github可视化大数据界面展示,没有设计搞的原因,只能忽略设计编写一下界面,
- 用户只需要登录的时候填写自己github用户名。就可以看到数据展示
- 在登录的时候,可能会存在登录失败,可能造成的原因是网络不稳定,
- 最终界面展示效果
功能实现
- 用户登录以及个人信息展示
- 粉丝数量以及粉丝展示
- 仓库 Stars 详情
- 仓库语言详情
接口数据
在这个项目中所需要用到的接口,其实github提供的接口不值这些,如果想访问更多接口的话,地址传送门:https://developer.github.com/v3查询多有的API接口
请求个人信息接口 https://api.github.com/users/用户名
请求粉丝接口 https://api.github.com/users/用户名/followers
仓库信息 https://api.github.com/users/用户名/repos
这个接口里面包含个人仓库所有信息
包含提交信息 https://api.github.com/users/用户名/events
登录页面设计
在登录页面中,对input
做一下校验,不能为空,并封装了一个弹出框,通过弹出框,点击确定触发接口请求数据
- 表单严重完之后,点击确定,用户输入完用户名之后,就会跳转到首页
- 其中
userName
就是用户要输入的用户名, onLogin () {
this.$axios
.get(`https://api.github.com/users/${this.userName}`)
.then(res => {
const { data } = res;
sessionStorage.setItem("userkey", data.login);
localStorage.setItem("userkey", data.login);
this.$router.push({
name: "Home",
query: { user: data.login }
});
});
}登录成功之后,把用户名存储到sessionStorage,方便在首页的时候用到
首页效果
- 当一进到首页的时候,会有一个加载效果,知道数据加载完成。
- 从页面当中,把页面分为左中右三个部分
左边数据展示
- 在左边的内容中展示的主要是自己gitub中开源仓库数量,个人粉丝以及跟随效果
仓库数据展示
- 在这个有分为上下两部分
- 在上面可以看到个人仓库点赞数量,以及仓库所需要的语言
- 仓库Starts中,需要对数据进行处理,后台给我们返回的不是我们想要的格式,需要自己手动处理,按照插件需要的格式进行显示,因为这里我们只需要用到
仓库名称
和点赞量
getStats () {
this.$axios.get(`https://api.github.com/users/${this.userName}/repos`).then((res) => {
let data = res.data;
// 仓库和仓库star 只有star大于0的时候展示
for (var i = ; i < data.length; i++) {
if (data[i].stargazers_count > ) {
this.chartDatas.rows.push({
'名称': data[i].name,
'star数量': data[i].stargazers_count
})
}
}
}在这个table表格中展示的效果
在datav提供的数据格式为
export default {
header: ['列1', '列2', '列3'],
data: [
['行1列1', '行1列2', '行1列3'],
['行2列1', '行2列2', '行2列3'],
['行3列1', '行3列2', '行3列3'],
['行4列1', '行4列2', '行4列3'],
['行5列1', '行5列2', '行5列3'],
['行6列1', '行6列2', '行6列3'],
['行7列1', '行7列2', '行7列3'],
['行8列1', '行8列2', '行8列3'],
['行9列1', '行9列2', '行9列3'],
['行10列1', '行10列2', '行10列3']
]
}
需要我们处理成他们那样,从接口中,获取到需要的数据,遍历循环,在接口中需要拿到用户名
getEvents () {
this.$axios.get(`https://api.github.com/users/${this.userName}/events`).then(res => {
let { data } = res;
let dataAry = [];
if (data) {
for (let i = ; i < data.length; i++) {
let date = data[i].created_at.split('T')[]
if (data[i].payload.commits) {
data[i].payload.commits.forEach(ele => {
dataAry.push([date, data[i].type, data[i].repo.name, ele.message])
})
}
}
} this.config = {
header: ['操作时间', '类型', '操作的仓库', '备注'],
data: dataAry
}
})
}
右边个人数据展示
- 其实在右边数据展示,没有太多复杂行,从接口读取数据,直接渲染就行了
在
https://api.github.com/users/用户名
请求接口就可以拿到了通过接口数据
userName
登录用户名,就可以拿到个人所有粉丝,一开始我就下让展示9个,剩下的需要点击查看更多
会把所有的粉丝都列举出来getFans () {
// 获取粉丝
this.$axios.get(`https://api.github.com/users/${this.userName}/followers`).then((res) => {
let { data } = res
if (data.length > ) {
this.fans = data
}
})
},最后
到这里所有的工作都已接近尾声,剩下的就是在优化优化细节,项目已经上传到github源码仓库,需要的可以取github下载,如果感觉可以的话,求
Star
一下,一次鼓励
另外博客已经全部迁移到https://blog.csdn.net/Govern66这个网址,此博客不在更新了
使用vue构建一个可视化大数据平台的更多相关文章
- 基于Ambari构建自己的大数据平台产品
目前市场上常见的企业级大数据平台型的产品主流的有两个,一个是Cloudera公司推出的CDH,一个是Hortonworks公司推出的一套HDP,其中HDP是以开源的Ambari作为一个管理监控工具,C ...
- 医院大数据平台建设_构建医院智能BI平台的关键技术
在新技术层出不穷的当下,世界各地的组织正在以闪电般的速度变化和进化,以便在新技术可用时加以利用.其中目前最具活力的一个领域是商业智能(BI).想一想,你可能已经习惯以每周或每月IT或数据科学家交付给你 ...
- AI加持的阿里云飞天大数据平台技术揭秘
摘要:2019云栖大会大数据&AI专场,阿里云智能计算平台事业部研究员关涛.资深专家徐晟来为我们分享<AI加持的阿里云飞天大数据平台技术揭秘>.本文主要讲了三大部分,一是原创技术优 ...
- 构建AR视频空间大数据平台(物联网及工业互联网、视频、AI场景识别)
目 录 1. 应用背景... 2 2. 系统框架... 2 3. AI场景识别算法和硬件... 3 4. AR视频空间管理系统... 5 5. ...
- TOP100summit:【分享实录】链家网大数据平台体系构建历程
本篇文章内容来自2016年TOP100summit 链家网大数据部资深研发架构师李小龙的案例分享. 编辑:Cynthia 李小龙:链家网大数据部资深研发架构师,负责大数据工具平台化相关的工作.专注于数 ...
- 如何基于Go搭建一个大数据平台
如何基于Go搭建一个大数据平台 - Go中国 - CSDN博客 https://blog.csdn.net/ra681t58cjxsgckj31/article/details/78333775 01 ...
- 大数据 -- Cloudera Manager(简称CM)+CDH构建大数据平台
一.Cloudera Manager介绍 Cloudera Manager(简称CM)是Cloudera公司开发的一款大数据集群安装部署利器,这款利器具有集群自动化安装.中心化管理.集群监控.报警等功 ...
- FusionInsight,一个融合的大数据平台
随着物联网技术和应用的普及,以运营商.互联网以及实体经济行业为代表的企业产生了越来越多的数据,大数据的发展越来越蓬勃. 从2007年开始,大数据应用成为很多企业的需求,2012年兴起并产生了大数据平台 ...
- CDH构建大数据平台-使用自建的镜像地址安装Cloudera Manager
CDH构建大数据平台-使用自建的镜像地址安装Cloudera Manager 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.搭建CM私有仓库 详情请参考我的笔记: http ...
随机推荐
- Ajax 请求参数过多导致 400 错误 and BCryptPasswordEncoder 加密判断
2019/06/19 先分享一种密码加密方式: Spring Security 提供了 BCryptPasswordEncoder类, 实现Spring的PasswordEncoder接口使用BCry ...
- dTree动态生成树(后台处理,简化前台操作)
dTree是个很方便在页面生成树的 js 控件,如果你下载了,我猜里在几分钟之内便能在页面上显示出一颗树来. 它本身给的例子是通过一些静态数据构造树,下面我说一种通过查询的数据动态构造树的方法. 例子 ...
- Jmeter运行不显示cmd对话框
1.Jmeter运行不显示cmd对话框 如图所示,在Jmeter的bin目录下新建一个vbs的脚本,脚本内容为: Dim wsh Set wsh=WScript.CreateObject(" ...
- 手机视频APP将关闭 生态梦成空的三星如何自救?
生态梦成空的三星如何自救?"> 三星如今的处境,只能用"屋漏偏逢连夜雨"来形容.继营收.利润.智能手机销量等大幅下滑之后,裁员也接踵而来,股价的下跌也自然在情理之中 ...
- 获取网站title的脚本
脚本在此 公司的商城需要添加一个脚本,这个脚本就是观察首页页面是否正常,虽然已经配置了zabbix监控网站是否200,但是有一些特殊的情况,比如网页可以打开但是页面是"file not fo ...
- Tian Tian 菾菾 导游 陪同
自画像系列是梵高的代表作之一,他是一位自学成才的画家,下笔完全自由,主观提取了当时印象派画家学到的技巧,在这幅画中,我们可以看到,颜色在画中的堆叠,色彩与笔在画中表现的形态,都表现出,梵高在他作画中内 ...
- 【译文】使用webpack提高网页性能优化
这篇文章原文来自https://developers.google.com/web/fundamentals/performance/webpack/. 说是译文其实更像是笔者做的笔记,如有错误之处请 ...
- 5G时代,什么将会消失?
5G时代说着说着就来了,当然,它不可能一撮而就,但正如4G.移动互联网和WIFI这些东西基本上是日益精进的水平,现如今饭馆的生意是否火爆,不仅仅在于其菜品和服务的质量,更在于他们有没有WIFI以及 ...
- 在博客中显示图片_Mac版
主要是防止自己忘掉 为了解决一开始自己想在写入的博客中添加本地图片,直接链接的话在自己的电脑倒是可以显示图片,但是在别人的电脑上就没办法加载图片了,问各路大神也没人愿意解答,百度也没有想要的答案,只好 ...
- C++走向远洋——34(友元函数,成员函数和一般函数的区别)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:youyuan.cpp * 作者:常轩 * 微信公众号:Worl ...