vue使用echart(地图,弹窗展示多条数据,option定义)
第二次用echart,第一次做地图,

<template>
<div class="echarts" style="background:#3bafde">
<div :style="{height:'600px',width:'100%'}" ref="myEchart"></div>
</div>
</template>
<script>
import config from '@/config'
import echarts from "echarts";
import '../../../node_modules/echarts/map/js/china.js' // 引入中国地图数据,
export default {
name: "echarts",
props: ["userJson"],
data() {
return {
chart: null,
dataIOS:[], //两种类别数据定义
dataAndroid:[],
};
},
mounted() {
this.getBeforeDate() //拿取数据
},
beforeDestroy() {
if (!this.chart) {
return;
}
this.chart.dispose();
this.chart = null;
},
methods: {
getBeforeDate(){
let params = {
token:sessionStorage.getItem('token'),
methodPost:false
}
this.axios(config.API + '/api/aply/statistics/totalInfo',{},params).then((res)=>{
// console.log(res)
if(res.data.code==1&&res.data.data.length!=0){
let datas = res.data.data
let dataIOS = []
let dataAndroid = []
datas.forEach(element => {
let obj = {
name:element.province.replace(/省/,''), //map不识别'省'字
value:parseInt(element.down_number),
}
if(element.phone_type==1) dataIOS.push(obj)
if(element.phone_type==2) dataAndroid.push(obj)
});
let result = []
// console.log(this.addObjnum(dataIOS))
dataIOS = this.addObjnum(dataIOS)
dataAndroid = this.addObjnum(dataAndroid)
this.chinaConfigure(dataIOS,dataAndroid); //传参并绘制echart
}
})
},
// 合并相同省份的某条数据方法,否则有多少条展示多少条
addObjnum(arr, result ) {
var result={};
for(let i=0;i<arr.length;i++){
if(result[arr[i].name]){
result[arr[i].name]+=arr[i].value;
}else{
result[arr[i].name]=arr[i].value;
}
}
var keyvalue=[];
for(var key in result){
keyvalue.push({name:key,value:result[key]})
}
return keyvalue
},
chinaConfigure(dataIOS,dataAndroid) {
let myChart = echarts.init(this.$refs.myEchart); //这里是为了获得容器所在位置
window.onresize = myChart.resize;
console.log(dataIOS,dataAndroid) //确定编辑好的数据已经入echart画图的逻辑
let option = { //let一个option方便处理数据时拿取原数据
backgroundColor: 'transparent',
title : {
text: '下载量统计',
subtext: '',
x:'center'
},
tooltip : {
trigger: 'item',
//formatter()方法将合适的数据格式展示在划过的弹窗里
formatter:function(params){
//定义一个res变量来保存最终返回的字符结果,并且先把地区名称放到里面
var res=params.name+'<br />';
//定义一个变量来保存series数据系列
var myseries=option.series;
//循环遍历series数据系列
for(var i=0;i<myseries.length;i++){
// 在内部继续循环series[i],从data中判断:当地区名称等于params.name的时候就将当前数据和名称添加到res中供显示
for(var k=0;k<myseries[i].data.length;k++){
//如果data数据中的name和地区名称一样
if(myseries[i].data[k].name==params.name){
//将series数据系列每一项中的name和数据系列中当前地区的数据添加到res中
res+=myseries[i].name+':'+myseries[i].data[k].value+'<br />';
}
}
}
return res;
}
},
dataRange: {
min: 0,
max: 2500,
x: 'left',
y: 'bottom',
text:['高','低'], // 文本,默认为数值文本
calculable : true
},
toolbox: {
show : true,
orient : 'vertical',
x: 'right',
y: 'center',
feature : {
mark : {show: true},
dataView : {show: true, readOnly: false},
restore : {show: true},
saveAsImage : {show: true}
}
},
series : [
{
name: 'ios',
type: 'map',
mapType: 'china',
roam: true,
scaleLimit: { //滚轮缩放的极限控制
min: .7,
max: 3
},
label: {
normal: {
show: true, // 是否显示对应地名
textStyle: {
color: 'rgba(0,0,0,0.9)'
}
}
},
itemStyle:{
normal:{label:{show:true},borderColor: 'rgba(0, 0, 0, 0.2)'},//地图版块线条
emphasis: {
areaColor: null,
shadowOffsetX: 0,
shadowOffsetY: 0,
shadowBlur: 20,
borderWidth: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
},
data:dataAndroid
},
{
name: 'android',
type: 'map',
mapType: 'china',
itemStyle:{
normal:{label:{show:true}},
emphasis:{label:{show:true}}
},
data:dataIOS
}
]
};
myChart.setOption(option);
}
}
}
</script>
<style scoped>
#myChart{
background: red;
width: 100%;
}
path{
fill: none;
stroke: #76BF8A;
}
svg{
width: 100%;
height: 300px;
}
</style>
vue使用echart(地图,弹窗展示多条数据,option定义)的更多相关文章
- 基于Vue开发的门户网站展示和后台数据管理系统
基于Vue的前端框架有很多,这几年随着前端技术的官方应用,总有是学不完的前端知识在等着我们,一个人的精力也是有限,不可能一一掌握,不过我们学习很大程度都会靠兴趣驱动,或者目标导向,最终是可以以点破面, ...
- EasyUI 每页展示100条数据
$(function() { //$("#bgAddTime").datebox("setValue", getTimeString()+" 00:0 ...
- for循环每次展示固定条数的数据的写法。
第一种是一组json数据实现分页的效果,也就是每一次展示5条数据.第二种场景是每一秒展示4条数据,直到全部显示完.两种思路都做个笔记记录下. var nums = 5; //每页出现的数量 var p ...
- 每次选中数组中的N条数据, 如果让每条数据被选中的次数做到平均??
经常有这样的需求, 有一组数据, 每次展示其中的1条或N条,希望每条数据展示量可以做到平均. 一开始想依次展示每条数据并做记录,整组数据全展示一遍之后清除记录, 然后一直循环下去. 实现的过程中又觉得 ...
- django学习-27.admin管理后台里:对列表展示页面的数据展示进行相关优化
目录结构 1.前言 2.完整的操作步骤 2.1.第一步:查看ModelAdmin类和BaseModelAdmin类的源码 2.2.第二步:查看表animal对应的列表展示页面默认的数据展示 2.3.第 ...
- Echart - 地图散点图(服务网点图)的实现
Echart是百度开发的一个javascript图表库,可以流程运行于pc和移动端,底层依赖轻量级的 Canvas 类库 ZRender. ECharts 提供了常规的折线图,柱状图,散点图,饼图,K ...
- 主要看思路:区域数据去重 + JavaScript一次性展示几万条数据实例代码
近期做1功能,Gis地图 基于百度地图api , 会遇到的问题的, 如后台接口给的数据很多,大几千上万的,如果拿了数据直接渲染dom ,这滋味爽爽的. 再遇上 客户端浏览器悲催的,这卡顿就来了... ...
- echart地图下钻
需求:展示中国地图,鼠标点击显示对应的省份 在echart的github上下载需要的 地图文件China.js,各个省份的json文件 遇到的问题:直接在浏览器打开报错,跨域问题,用webstrom打 ...
- vue 使用 echart ,自定义样式案例
1.vue 安装 echart 库 npm install echarts --save 2.vue代码 引入 let echarts = require("echarts/lib/echa ...
- vue集成高德地图
vue集成高德地图 前言 二.使用步骤 1.注册高德开发平台 2.vue 结尾 前言 之前玩Thymeleaf的时候玩过高德地图,现在无聊Vue项目也整个地图进去~ 二.使用步骤 1.注册高德开发平台 ...
随机推荐
- Echarts入门案例教程
一.定义容器变量并获取页面div元素 1 var chartDom = document.getElementById('chart3'); 二.初始化容器 1 var myChart = echar ...
- 使用 GitLab CI/CD 和阿里云 CLI 自动部署前端项目
一.什么是 CI/CD? CI(持续交付)是功能迭代后自动构建.打包.校验代码格式.跑单测.单测覆盖率,常见的就是 Webpack.Rollup.ESLint等. CD(持续部署)是经过 CI 后,代 ...
- [一本通1700]PFS集合
题目描述 有一种特殊的集合叫做PFS(Prefix Free Set)集合. 一个PFS集合由若干字符串构成,且不存在一个字符串是另一个字符串的前缀.空集也被看作是PFS集合. 例如 {\(" ...
- C++ 用户输入与数据类型详解:建立基本计算器及变量类型
C++ 用户输入 你已经学习了 cout 用于输出(打印)值.现在我们将使用 cin 来获取用户输入. cin 是一个预定义变量,它使用提取运算符(>>)从键盘读取数据. 在下面的示例中, ...
- 选择排序的基本实现【数据结构与算法—TypeScript 实现】
笔记整理自 coderwhy 『TypeScript 高阶数据结构与算法』课程 概念 本质:两两元素相比较,先扫描一遍未排序数列,把未排序的数列中的最小(大)元素,放到数列的已排序的末尾 特性 选择排 ...
- DevEco Studio 3.1差异化构建打包,提升多版本应用开发效率
原文:https://mp.weixin.qq.com/s/8XtgZ-k0mGXCjKHfSXFoOg,点击链接查看更多技术内容. HUAWEI DevEco Studio是开发Harmo ...
- Centos7、CentOS8、CentOS9 修改硬盘分区大小扩充root分区大小
Centos7 修改硬盘分区大小,实现CentOS无损分区扩容 扩充root分区大小 安装了CentOS7 开发环境及软件后,发现root分区已经才剩下不到1G空间,难不成要干掉重装,OMG,NO! ...
- python实现:有一个列表为num_list,找到一个具有最大和的连续子列表,返回其最大和。
# 有一个列表为num_list,找到一个具有最大和的连续子列表,返回其最大和.# 示例:# 输入: [-3,1,-1,6,-1,2,4,-5,4]# 输出: 11# 解释: 连续子数组 [6,-1, ...
- Kotlin泛型的高级特性
Kotlin中是可以将内联函数中的泛型进行实化的. 那么具体该怎么写才能将泛型实化呢?首先,该函数必须是内联函数才行,也就是要用inline 关键字来修饰该函数.其次,在声明泛型的地方必须加上reif ...
- 大数据ETL开发之图解Kettle工具入门到精通(经典转载)
大数据ETL开发之图解Kettle工具(入门到精通) 置顶 袁袁袁袁满 文章目录 第0章 ETL简介 第1章 Kettle简介 1.1 Kettle是什么 1.2 Kettle的两种设计 1.3 Ke ...