已实现的功能
- 地图下钻,国省市三级联动
- 疫情趋势可视化
安装echarts
1 | npm i echarts |
引入中国地图JS
先把大佬的地图js拷贝下来
1 | git clone https://gitee.com/MTrun/echarts-map-json.git |
1 | require("../../map-json/country/china.js"); |
(如果是JSON文件)
1 | import china from 'xxx' |
ps:如果只能显示南海诸岛,那就是地图json没引入.
绘制地图
需要一个用来绘制的盒子,设置一定的宽高,初始化echarts实例。
1 | <template> |
设置每个省市新增疫情数据
接口:https://interface.sina.cn/news/wap/fymap2020_data.d.json.
因为会跨域,所以在vue.config.js中设置代理.
1 | module.exports = { |
1 | axios.get("/api").then((res, err) => { |
点击去往相应省市
路由跳转,携带省市名称和拼音,把对应的数据存在vuex中(可以用插件实现数据持久化).
1 | mapContainer.on("click", function (params) { |
完整代码
1 | <script> |
省级地图
拿到路由参数,去获取对应的省级地图js.
1 | this.provinceName = this.$router.currentRoute.query.provinceName; |
拿到vuex中的省市疫情数据
1 | this.resData = this.$store.state.provinceList; |
这里有个小问题,疫情数据变成了NaN。
而直辖市下钻可以正常显示
一开始以为是异步的原因,但打印结果却是正常的.
而只有直辖市可以正常显示,发现省级下面的城市都没有加‘市’,所以匹配不上.拿我只能糊弄下了,遍历数组,给直辖市以外的下级数组都加上‘市’
1 | this.resData.forEach((el) => { |