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.注册高德开发平台 ...
随机推荐
- AntSK 0.2.3 版本更新:轻松集成 AI 本地离线模型
大家好,今天和大家分享 AntSK 知识库/智能体项目的最新进展. AntSK 是一个基于 .Net 8.Blazor 及 SemanticKernel 开发的 AI 项目,旨在为开发者提供一个强大的 ...
- Linux修改账户密码
打开终端并登录到要修改密码的账户 输入 passwd 命令,然后 Enter 系统会提示你输入 Current password. 如果是第一次登录或者忘记密码,使用 passwd -d userna ...
- 添加AvalonEdit控件到WinForm
public frmTest() { InitializeComponent(); ElementHost host = new ElementHost(); host.Size = new Size ...
- KingbaseES V8R6集群运维案例之---sys_monitor.sh start启动动态库错误
案例说明: 在KingbaseES V8R6集群部署了postgis后,执行sys_monitor.sh start启动集群时,出现动态库错误,如下图所示: 适用版本: KingbaseES V8R6 ...
- KingbaseES V8R6 中syssql_tmp目录说明
前言 不久前有前端人员咨询过一个问题,为什么syssql_tmp目录下会产生如此多的大文件. 针对这个目录的解释是:临时文件(用于排序超出内存容量的数据等操作)是在$KINGBASE_DATA/bas ...
- python [pymysql] 操作MySQL数据库
python [pymysql] 操作MySQL数据库 连接.关闭数据库 def get_conn_(): """ :return: 连接,游标 "" ...
- Luna likes Love 题解
Problem Link 简要题意 题目很清楚. 分析 定理 两个人中左边的人一直向右运动,和两人向中间走所用的 步数相同 证明 假设有两组人为 \(a_l , a_r , b_l , b_r (a_ ...
- #dp,概率期望#AT4513 [AGC030D] Inversion Sum
题目 分析 考虑每次交换最多影响到\(2n\)个点对的逆序对判断 不妨设\(dp[i][j]\)表示\(a[i]>a[j]\)的概率,一开始按照\(a\)求出初始的\(dp\) 之后每次交换或不 ...
- Pandas高级教程之:Dataframe的重排和旋转
目录 简介 使用Pivot 使用Stack 使用melt 使用Pivot tables 使用crosstab get_dummies 简介 使用Pandas的pivot方法可以将DF进行旋转变换,本文 ...
- win7自带屏幕录像工具
win7自带屏幕录像工具 2012-03-28 09:23:05 我来说两句 收藏 我要投稿 相信win7自带的屏幕录像工具很多朋友都没用过甚至没有听说过, 但是这款实 ...