Skip to content

大屏:

地图:

背景:调用的亿力的地图,中心点通过geoJson文件来定位坐标点,之后通过坐标点与省市匹配,后端接口返点给到省市编号来匹配。

前端制定了GisData的一套,通过pubsub的方式来传递到地图(后期优化vuex),同时结合定时轮播来改变数据。

注意轮播时发布订阅后取消订阅:

javascript
//在生命周期取消订阅
beforeDestroy(){
    this.$pubsub.unsubscribe(this.token)
}
//也可以用this.$once语法糖
this.$once('hook:beforeDestroy',()=>{
    this.$pubsub.unsubscribe(token)
})

相关:热力图,点少不直观

#项目层级的渲染,地图与缩放倍数的处理判断(zoom)

四周卡片:

基本都是查询接口,查询展示功能,用到比较多的echarts。

相关:echarts的api,3d饼图,折线图。

echarts的api非常多,3d饼图是由2d饼图改造而来,viewControl可以控制饼图是否能缩放,缩放视角等。

轮播时要注意echarts的销毁,未及时销毁会造成内存泄漏,表现为任务管理器的内存不断升高,并且会页面崩溃。

javascript
//echats图表的销毁
beforeDestroy(){
if(this.charts){
	this.charts.dispose();
	this.charts = null;
	}
}

流光

在卡片轮播时,ui要求四周卡片轮播时有高亮流光背景(一开始是高亮背景),采用的方法是对svg进行操作。

监听

watch监听一个下拉选择框,这个选择框是一个树状结构选择框,结构为 全国-省-建管单位(市)-项目工程-单项工程,watch里需要加上deep:true,如果监听到立即执行则需要加上immediate:true。