测试开发实战[提测平台]19-Echarts图表在项目的应用
微信搜索【大奇测试开】,关注这个坚持分享测试开发干货的家伙。
Apache Echarts
VUE项目使用步骤
npm install echarts --save
执行完成后可以在 package.json 的 dependencies 配置有出现 "echarts": "^5.2.2"
<template>
<div class="app-container">
<div ref="pieChartDemo" style="width: 600px;height:400px;"></div>
</div>
</template> <script>
import * as echarts from 'echarts'
...
</script>
export default {
name: 'EchartsDemo',
// 使用mounted在页面控件加载在完成后mounted方法进行echart初始化非created
mounted() {
this.initPieChart()
},
methods: {
initPieChart() {
// 采用的是vue ref的方式获取容器
var chartDom = this.$refs['pieChartDemo']
var myChart = echarts.init(chartDom)
var option = {
title: {
text: '大奇测试开发',
subtext: '文章类型分布',
left: 'center'
},
tooltip: {
trigger: 'item'
},
legend: {
orient: 'vertical',
left: 'left'
},
series: [
{
name: 'Access From',
type: 'pie',
radius: '50%',
data: [
{ value: 20, name: '提测平台' },
{ value: 2, name: '性能测试' },
{ value: 1, name: '流量回放' },
{ value: 3, name: '好文分享' },
{ value: 5, name: '杂谈' }
]
}
]
}
option && myChart.setOption(option);
}
}
}
<div id="pieChartDemo" style="width: 600px;height:400px;"></div>
...略...
var chartDom = document.getElementById('pieChartDemo')
Echarts的示例运用
- 文档说明中的概念和应用篇,有基础解释与演示;
- 文档选项下的“配置项手册” 可以进行搜索得到更多配置说明
- 文档下还有一个是API文档,是对一些方法的使用说明,相当于之前项目使用 element ui 组件的事件,比演示代码中的 init()、setOption()。
提测数据报表实战
表SQL查询
周提测接口
# dashboard.py
@test_dashboard.route("/api/dashboard/stacked", methods=['POST'])
def get_request_stacked():
# body = json.loads(request.get_data())
connection = pool.connection() with connection.cursor() as cursor:
sql_select = 'SELECT DATE_FORMAT(request.createDate,"%Y%u") weeks, apps.note, COUNT(apps.id) counts FROM request LEFT JOIN apps ON request.appId = apps.id GROUP BY weeks, apps.note;'
cursor.execute(sql_select)
table_data = cursor.fetchall() # 第一次循环过滤生成week和notes,并生成做临时关键词储备数据,
# 用户第二次循环生成 series 需要数据
weeks = []
notes = []
key_value = {}
for row in table_data:
week = row['weeks']
note = row['note']
if not week in weeks:
weeks.append(week)
if not note in notes:
notes.append(note) key_value[week+note] = row['counts'] # 做一个排序 小到大
weeks.sort() # 做对应日期下应用数据列表生成,没有数据的week用0填充,保证顺序长度一致
series = {}
for note in notes:
series[note] = []
for week in weeks:
if week+note in key_value:
series[note].append(key_value[week+note])
else:
series[note].append(0)
resp_data = {
'weeks': weeks,
'note': notes,
'series': series
} resp = format.resp_format_success
resp['data'] = resp_data
return resp
堆叠面积图
<template>
<div class="dashboard-container">
<div ref="LineChartBoard" style="width: 95%;height:500px;"></div>
</div>
</template> <script>
import * as echarts from 'echarts'
import { requestStacked } from '@/api/board' export default {
name: 'Dashboard',
mounted() {
this.getApList()
},
methods: {
getApList() {
requestStacked().then(resp => {
this.initStackedChart(resp.data)
})
},
initStackedChart(data) {
const chartDom = this.$refs['LineChartBoard']
const myChart = echarts.init(chartDom)
const series = []
// 唯一处理需要额外逻辑处理的地方,根据接口数据动态生成series数据
for (var key in data.series) {
series.push(
{
name: key,
type: 'line',
stack: 'Total',
areaStyle: {},
emphasis: {
focus: 'series'
},
data: data.series[key]
}
)
}
var option = {
title: {
text: '周需求提测趋势'
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross',
label: {
backgroundColor: '#6a7985'
}
}
},
legend: {
// 数据标题展示
data: data.note
},
toolbox: {
feature: {
saveAsImage: {}
}
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: [
{
type: 'category',
boundaryGap: false,
data: data.weeks
}
],
yAxis: [
{
type: 'value'
}
],
series: series
}
option && myChart.setOption(option)
}
}
}
</script>
- Vue 中如何使用Echart并根据项目需要找到合适图表应用
- SQL 分组和联合表的组合查询语句实现
- 趋势查询接口数据格式化返回的逻辑处理
关于后续更多进展和分享欢迎持续关注公众号或博客。
测试开发实战[提测平台]19-Echarts图表在项目的应用的更多相关文章
- 测试开发实战[提测平台]20-图表G2Plot在项目的实践实录
微信搜索[大奇测试开],关注这个坚持分享测试开发干货的家伙. G2Plot项目应用 上一篇<提测平台19-Echarts图表在项目的实践>讲解了Echarts的图表应用,此篇来看下开箱即用 ...
- 测试开发实战[提测平台]17-Flask&Vue文件上传实现
微信搜索[大奇测试开],关注这个坚持分享测试开发干货的家伙. 先回顾下在此系列第8次分享给出的预期实现的产品原型和需求说明,如下图整体上和前两节实现很相似,只不过一般测试报告要写的内容可能比较多,就多 ...
- Element Vue 开箱即用框架如何使用-测试开发【提测平台】阶段小结(二)
微信搜索[大奇测试开],关注这个坚持分享测试开发干货的家伙. 上一篇总结了后端服务接口的开发,这篇我们主要来总结下前后端分离开发中的前端部分,主要是开箱即用的框架介绍和之前章节组件的梳理和部分的扩展内 ...
- 测试开发【提测平台】分享13-远程搜索和路由$route使用实现新建提测需求
微信搜索[大奇测试开],关注这个坚持分享测试开发干货的家伙. 本篇继续提测平台开发,按惯例先给出学习的思维导图,以便快速了解学习知识和平台功能实现的重点. 基本知识点学习 远程搜索 显示的数据通过输入 ...
- Python Flask API实现方法-测试开发【提测平台】阶段小结(一)
微信搜索[大奇测试开],关注这个坚持分享测试开发干货的家伙. 本篇主要是对之前几次分享的阶阶段的总结,温故而知新,况且虽然看起来是一个小模块简单的增删改查操作,但其实涉及的内容点是非常的密集的,是非常 ...
- 测试开发【提测平台】分享3-正式开发产品需求&项目初始化
上两个分享主要是介绍和演示基本前后端所要使用的框架,接下来我们将正式进入到[提测平台的开发] 提要先给出依赖和内容点: 提测平台定义和产品原型需求说明 使用github创建代码仓库进行项目管理 Fla ...
- 测试开发【提测平台】分享10-Element UI抽屉和表单校验&增改接口合并实现应用管理
微信搜索[大奇测试开],关注这个坚持分享测试开发干货的家伙. 开篇说个小讨论,一个群里聊天聊到关于更新篇章的长度,是小篇幅多次,还是每次按照一个小完整的功能,我个人的是按照后种来的,主要的思考就是希望 ...
- 测试开发【提测平台】分享11-Python实现邮件发送的两种方法实践
微信搜索[大奇测试开],关注这个坚持分享测试开发干货的家伙. 按照开发安排,本篇本应该是关于提测页面的搜索和显示实现,怕相似内容疲劳,这期改下内容顺序,将邮件服务的相关的提前,在之前的产品需求和原型中 ...
- 测试开发【提测平台】分享12-掌握日期组件&列表状态格式化最终实现提测管理多条件搜索展示功能
微信搜索[大奇测试开],关注这个坚持分享测试开发干货的家伙. 本章内容思维导图如下,由于需要各种状态下的菜单操作,所以需要先实现提测信息的列表基础页面,然后再推进其他需求开发 基本知识点学习 Date ...
随机推荐
- 【LeetCode】544. Output Contest Matches 解题报告 (C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 遍历 日期 题目地址:https://leetcode ...
- 【LeetCode】959. Regions Cut By Slashes 由斜杠划分区域(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题思路 代码 日期 题目地址:https://leetcod ...
- 【LeetCode】515. Find Largest Value in Each Tree Row 解题报告(Python & C++ & Java)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 BFS DFS 日期 题目地址:https://le ...
- 【LeetCode】617. Merge Two Binary Trees 解题报告
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 递归 日期 题目地址:https://leetcod ...
- 【LeetCode】831. Masking Personal Information 解题报告(Python)
[LeetCode]831. Masking Personal Information 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzh ...
- 海康威视摄像机Java SDK拉流(二)开启关闭实时预览
本篇介绍海康威视摄像机通过SDK开启关闭实时预览接口 下篇介绍实时预览的回调函数及解码库 测试环境: 系统:Centos 7 SDK:设备网络SDK Linux64 实时预览模块流程: 图中虚线框部分 ...
- python语法糖之有参装饰器、无参装饰器
python的装饰器简单来说就是函数的一种形式,是为了扩展原来的函数功能而设计的. 装饰器的特别之处在于它的返回值也是一个函数,可以在不改变原有函数代码的基础上添加新的功能 # 先定义一个函数及引用# ...
- css的鼠标手势总结
css的鼠标手势 cursor:pointer; 或 cursor:hand : 手型 cursor:crosshair : 十字 cursor:text : 文本 cursor:wait : 等待 ...
- Azure Data Lake(一) 在NET Core 控制台中操作 Data Lake Storage
一,引言 Azure Data Lake Storage Gen2 是一组专用于大数据分析的功能,基于 Azure Blob Storage 构建的.Data Lake Storage Gen2 包含 ...
- InfoGAN
目录 概 主要内容 Chen X., Duan Y., Houthooft R., Schulman J., Sutskever I., Abbeel P. InfoGAN: Interpretabl ...