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!

相关文章
|
7天前
|
前端开发 JavaScript
杨老师课堂之JavaScript案例手动切换轮播图片
杨老师课堂之JavaScript案例手动切换轮播图片
11 2
|
7天前
|
JavaScript 前端开发
杨老师课堂之JavaScript案例全选、全不选、及反选
杨老师课堂之JavaScript案例全选、全不选、及反选
10 1
|
2天前
|
移动开发 前端开发 JavaScript
HTML5+CSS3+JavaScript网页实战
HTML5+CSS3+JavaScript网页实战
|
2天前
|
数据采集 自然语言处理 数据可视化
ECharts 词云案例四—电影《千与千寻》部分短评
**使用ECharts和电影《千与千寻》短评创建的词云案例展示了数据可视化的力量。通过Python处理评论,提取关键词并计算频率,利用jieba和WordCloud生成词云,ECharts进一步增强了视觉效果。词云突出了角色如“千寻”、“无脸男”及关键词“勇气”、“成长”,揭示了观众的情感共鸣。示例代码和资源可在链接中获取。**
8 0
 ECharts 词云案例四—电影《千与千寻》部分短评
|
7天前
|
前端开发 JavaScript
杨校老师课堂之JavaScript案例之跑马灯左右无缝连接图片自动轮播
杨校老师课堂之JavaScript案例之跑马灯左右无缝连接图片自动轮播
9 2
|
7天前
|
JavaScript 前端开发
杨老师课堂之JavaScript定时器案例的红绿灯设计
杨老师课堂之JavaScript定时器案例的红绿灯设计
12 1
|
6天前
|
JavaScript
three.js入门第一个案例
three.js入门第一个案例
|
7天前
|
JavaScript 前端开发
杨校老师课堂之JavaScript定时器案例的红绿灯设计--原始写法
杨校老师课堂之JavaScript定时器案例的红绿灯设计--原始写法
7 0
|
7天前
|
JavaScript 前端开发
杨校老师课堂之Web前端JS类库_JQuery案例[效果图与代码齐全]
杨校老师课堂之Web前端JS类库_JQuery案例[效果图与代码齐全]
14 0
|
7天前
|
JavaScript 前端开发
杨老师课堂之JavaScript定时器限时抢购秒杀商品案例
杨老师课堂之JavaScript定时器限时抢购秒杀商品案例
7 0