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.注册高德开发平台 ...
 
随机推荐
- Oracle字符串分隔函数
			
记录一下 CREATE OR REPLACE TYPE str_split IS TABLE OF VARCHAR2 (4000); CREATE OR REPLACE FUNCTION splits ...
 - layui select onchange事件处理
			
1.html代码如下,不要忘记 lay-filter属性 <div class="layui-input-block"> <select id=& ...
 - MongoDB java.lang.ClassCastException: java.lang.Double cannot be cast to java.lang.Integer
			
详细报错如下: java.lang.ClassCastException: java.lang.Double cannot be cast to java.lang.Integer at or ...
 - quartus之ram的IP测试
			
quartus之ram的IP测试 1.基本原理 ram,读取存储器,用于储存数据.基本的原理就是使用时钟驱动时序,利用地址区分位置,使用使能控制写入.输出的结果以写入的位宽输出. 2.实际操作 顶层代 ...
 - ssh连接相关工具下载地址
			
1.Finalshell 下载地址: http://www.hostbuf.com/t/988.html 2.xShell https://www.xshell.com/zh/xshell/ 3.pu ...
 - KingbaseES V8R6运维案例之---普通表toast表故障修复
			
案例说明: 数据库在日常的维护过程中,在执行表查询(select),如下图所示,出现"could not read block 0 in file "base/16385/1640 ...
 - LCD - 液晶显示原理(一)
			
1. 显示器介绍  显示器属于计算机的I/O设备,即输入输出设备.它是一种将特定电子信息输出到屏幕上再反射到人眼的显示工具.常见的有CRT显示器.液晶显示器. LED点阵显示器及OLED显示器. 液 ...
 - HMS Core上新啦!
			
HMS Core上新啦!分析服务营销分析报告全新上线:运动健康服务支持目标场景事件订阅:音频编辑服务提供专业的三维声音频编辑与渲染能力,更多HMS Core能力可点击网页链接了解. 了解更多详情> ...
 - openGauss/MogDB调用C FUNCTION
			
openGauss/MogDB 调用 C FUNCTION 摘要 之前写过一篇关于postgresql 自定义函数实现,通过 contrib 模块进行扩展的帖子,今天和恩墨工程师进行了一些交流,在 M ...
 - git worktree与分支依赖隔离
			
git worktree介绍 git worktree 是 Git 命令,用于管理多分支工作区. 使用场景: 同时维护不同分支,隔离分支依赖差异:从原有项目开辟一个分支作为另一个新项目,当两个项目依赖 ...