vue.js实战案例(1):外部直接引入渲染echarts地图的实战案例

简介: vue.js实战案例(1):外部直接引入渲染echarts地图的实战案例


文件引入

    <!--Echarts图表库-->
    <script src="js/echarts.min.js"></script>
    <!--VUE核心框架-->
    <script src="js/vue.js"></script>
    <script src="js/axios.min.js"></script>
    <!--省份geoJson文件-->
    <script src="js/henan.js"></script>

容器

<div id="hnmap" style="height: 100%"></div>

VUEJS代码

 let app = new Vue({
        el: "#hnmap",
        data: {},
        methods: {
            //获取数据;
            getHenanJson(){
                axios.get('./js/getOnsInfo.json').then(res => {
                    var sum = JSON.parse(res.data.data);
                    sum.areaTree[0].children.forEach((item) => {
                        //console.log(item);
                        if (item.name == "河南") {
                            //console.log(item);
                            let dealData = this.dealData(item);
                            this.chart(dealData);
                        }
                    });
                });
            },
            //数据处理函数;
            dealData(data) {
                let realData = [];
                let axisData = [];
                for (let key in data.children) {
                    if (key == 1 || key == 2) {
                        continue;
                    } else {
                        let obj = {name: '', datas: [], label: {fontSize: 18, fontStyle: 'lighter'}};
                        if (data.children[key].name == "济源示范区") {
                            obj.name = "济源市";
                        } else {
                            obj.name = data.children[key].name + "市";
                        }
                        obj.value = data.children[key].total.confirm;
                        obj.datas[0] = data.children[key].total.suspect;
                        obj.datas[1] = data.children[key].total.heal;
                        obj.datas[2] = data.children[key].total.dead;
                        realData.push(obj);
                    }
                }
                return {'realData': realData, 'axisData': axisData};
            },
            //图表渲染;
            chart(getRealData) {
                //console.log(getRealData.realData);
                let myChart = echarts.init(document.getElementById('hnmap'));
                myChart.setOption(
                        {
                            backgroundColor: 'rgb(20,28,52)',
                            title: [
                                {
                                    text: '河南省人才环境评分',
                                    subtext:"虚构数据",
                                    textStyle: {
                                        fontSize: 20,
                                        color:'rgba(255,255,255,0.7)'
                                    },
                                    x:"center",
                                    top:"15"
                                }
                            ],
                            tooltip: {
                                trigger: 'item',
                                formatter: function (params) {
                                    //console.log(params);
                                    return (`地区:${params.data.name}<br>本科学历:${params.data.value}<br>专科学历:${params.data.datas[0]}<br>高中学历:${params.data.datas[1]}<br>初中学历:${params.data.datas[2]}`)
                                },
                            },
                            visualMap: {
                                type: 'piecewise',
                                splitNumber: 5,
                                pieces: [
                                    {min: 200, color: '#6ead51', label: `>200人`},
                                    {min: 150, max: 200, color: '#92b733', label: `150-200人`},
                                    {min: 100, max: 150, color: '#c4aa29', label: `100-150人`},
                                    {min: 50, max: 100, color: '#ce6c2b', label: `50-100人`},
                                    {min: 0, max: 50, color: '#c92626"', label: `0-50人`},
                                ],
                                textStyle: {
                                    fontSize: 14,
                                    color:'rgba(255,255,255,0.7)'
                                },
                                itemGap: 10,
                                left:"5%",
                                bottom:"5%"
                            },
                            series: [
                                {
                                    type: "map",
                                    name: "henan",
                                    map: "河南",
                                    label: {
                                        show: true
                                    },
                                    itemStyle: {
                                        normal: {
                                            show: true,
                                            areaColor: 'rgba(0,0,0,0)',
                                            borderColor: 'rgba(255,255,255,0.7)',
                                            borderWidth: '1',
                                        },
                                        emphasis: {
                                            areaColor: '#FF0000'
                                        }
                                    },
                                    data: getRealData.realData
                                }
                            ]
                        });
                /*自适应浏览器窗口*/
                window.onresize = myChart.resize;
            },
        },
        mounted(){
            this.getHenanJson();
        }
    })


Done!

相关文章
|
5月前
|
编解码 数据可视化 前端开发
如何使用 D3.js 创建一个交互式的地图可视化?
如何使用 D3.js 创建一个交互式的地图可视化?
|
1月前
|
JavaScript 前端开发 Java
深入理解 JavaScript 中的 Array.find() 方法:原理、性能优势与实用案例详解
Array.find() 是 JavaScript 数组方法中一个非常实用和强大的工具。它不仅提供了简洁的查找操作,还具有性能上的独特优势:返回的引用能够直接影响原数组的数据内容,使得数据更新更加高效。通过各种场景的展示,我们可以看到 Array.find() 在更新、条件查找和嵌套结构查找等场景中的广泛应用。 在实际开发中,掌握 Array.find() 的特性和使用技巧,可以让代码更加简洁高效,特别是在需要直接修改原数据内容的情形。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一
|
1月前
|
监控 JavaScript 前端开发
MutationObserver详解+案例——深入理解 JavaScript 中的 MutationObserver:原理与实战案例
MutationObserver 是一个非常强大的 API,提供了一种高效、灵活的方式来监听和响应 DOM 变化。它解决了传统 DOM 事件监听器的诸多局限性,通过异步、批量的方式处理 DOM 变化,大大提高了性能和效率。在实际开发中,合理使用 MutationObserver 可以帮助我们更好地控制 DOM 操作,提高代码的健壮性和可维护性。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
MutationObserver详解+案例——深入理解 JavaScript 中的 MutationObserver:原理与实战案例
|
2月前
|
JavaScript 前端开发 索引
40个JS常用使用技巧案例
大家好,我是V哥。在日常开发中,JS是解决页面交互的利器。V哥总结了40个实用的JS小技巧,涵盖数组操作、对象处理、函数使用等,并附带案例代码和解释。从数组去重到异步函数,这些技巧能显著提升开发效率。先赞再看后评论,腰缠万贯财进门。关注威哥爱编程,全栈开发就你行!
88 16
|
6月前
|
编解码 数据可视化 前端开发
如何使用 D3.js 创建一个交互式的地图可视化?
如何使用 D3.js 创建一个交互式的地图可视化?
204 6
|
1月前
|
缓存 JavaScript 前端开发
mapbox没有token/token失效,地图闪烁后变空白,报错Error: A valid Mapbox access token is required to use Mapbox GL JS.
本博客介绍了mapbox如何去除token验证,暴力破解mapbox的token验证机制。一劳永逸解决mapbox地图闪现一下然后变成空白,报错Error: A valid Mapbox access token is required to use Mapbox GL JS.的方法,还介绍了类似问题的具体解决思路。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
8月前
|
数据采集 Web App开发 JavaScript
利用Selenium和XPath抓取JavaScript动态加载内容的实践案例
利用Selenium和XPath抓取JavaScript动态加载内容的实践案例
|
6月前
|
存储 JavaScript 前端开发
前端开发:Vue.js入门与实战
【10月更文挑战第9天】前端开发:Vue.js入门与实战
|
6月前
|
JavaScript 前端开发
Vue开发必备:$nextTick方法的理解与实战场景
Vue开发必备:$nextTick方法的理解与实战场景
473 1
|
5月前
|
JavaScript UED
"Vue实战技巧大揭秘:一招解决路由跳转页面不回顶部难题,让你的单页面应用用户体验飙升!"
【10月更文挑战第23天】在Vue单页面应用中,点击路由跳转时,默认情况下页面不会自动滚动到顶部,这可能影响用户体验。本文通过一个新闻网站的案例,介绍了如何使用Vue-router的全局前置守卫和`scrollBehavior`方法,实现路由跳转时页面自动滚动到顶部的功能,提升用户浏览体验。
231 0