205 lines
8.9 KiB
Vue
205 lines
8.9 KiB
Vue
|
<template>
|
|||
|
<div class="container">
|
|||
|
<div id="main" class="chart-container">dasd</div>
|
|||
|
</div>
|
|||
|
|
|||
|
</template>
|
|||
|
|
|||
|
<script>
|
|||
|
import * as echarts from "echarts";
|
|||
|
import 'echarts-gl';
|
|||
|
export default {
|
|||
|
data(){
|
|||
|
return {
|
|||
|
myChart:null,
|
|||
|
}
|
|||
|
},
|
|||
|
methods:{
|
|||
|
shapeChart(mapName,boundaryName){
|
|||
|
// 基于准备好的dom,初始化echarts实例
|
|||
|
if(!this.myChart){
|
|||
|
this.myChart = echarts.init(document.getElementById('main'));
|
|||
|
}
|
|||
|
// 指定图表的配置项和数据
|
|||
|
let option = {
|
|||
|
tooltip: {
|
|||
|
show: false,
|
|||
|
formatter: (params) => {
|
|||
|
return `<div style="position:absolute;left:0;top:0;width:8px;height:8px;background-color:#FD9A5A;"></div>
|
|||
|
<div class='tips' style="padding:0 12px;">
|
|||
|
<h1 style='font-size:16px;'>${params.name}</h1>
|
|||
|
<p style="font-size:14px;"><span style="opacity:0.75">办理人数:</span>22人</p>
|
|||
|
<p style="font-size:14px;"><span style="opacity:0.75">待办人数:</span>22人</p>
|
|||
|
<p style="font-size:14px;"><span style="opacity:0.75">办结人数:</span>22人</p>
|
|||
|
</div>`;
|
|||
|
},
|
|||
|
borderColor: "#998484",
|
|||
|
borderWidth: 1,
|
|||
|
padding: [0, 0],
|
|||
|
backgroundColor: "#1B212B",
|
|||
|
borderRadius: 0,
|
|||
|
// textStyle: { color: "blue" },
|
|||
|
},
|
|||
|
visualMap: {
|
|||
|
show: false,
|
|||
|
min: 1, //指定 visualMapContinuous 组件的允许的最小值。
|
|||
|
max: 9, //指定 visualMapContinuous 组件的允许的最大值
|
|||
|
inRange: {
|
|||
|
color: ["#074b4f"],
|
|||
|
},
|
|||
|
calculable: true, //是否显示拖拽用的手柄(手柄能拖拽调整选中范围)。
|
|||
|
},
|
|||
|
series: [
|
|||
|
{
|
|||
|
name: boundaryName,
|
|||
|
type: "map3D",
|
|||
|
map: boundaryName, //地图类型。echarts-gl 中使用的地图类型同 geo 组件相同
|
|||
|
zlevel:1,
|
|||
|
regionHeight: 1, //模型的高度
|
|||
|
boxWidth: 100, //三维地图在三维场景中的宽度
|
|||
|
//boxHeight:50,
|
|||
|
boxDepth: 65, //三维地图在三维场景中的深度
|
|||
|
label: {
|
|||
|
show: false, //是否显示标签。
|
|||
|
},
|
|||
|
itemStyle: {
|
|||
|
normal: {
|
|||
|
// 静态模式下显示的默认样式
|
|||
|
borderWidth: 2,
|
|||
|
borderColor: "#1dc7c6",
|
|||
|
color: [0,0,0,0],
|
|||
|
}, //阴影效果
|
|||
|
|
|||
|
},
|
|||
|
emphasis: {
|
|||
|
// 鼠标移上去的样式
|
|||
|
borderWidth: 2,
|
|||
|
borderColor: "#1dc7c6",
|
|||
|
color: [0,0,0,0],
|
|||
|
textStyle: {
|
|||
|
// color:'blue'
|
|||
|
},
|
|||
|
label:{
|
|||
|
show:false
|
|||
|
},
|
|||
|
itemStyle:{
|
|||
|
color:[0,0,0,0]
|
|||
|
}
|
|||
|
},
|
|||
|
viewControl: {
|
|||
|
center:[0,0,0],//视角中心点,旋转也会围绕这个中心点旋转,默认为[0,0,0]。
|
|||
|
//用于鼠标的旋转,缩放等视角控制。
|
|||
|
autoRotate: false, //是否开启视角绕物体的自动旋转查看
|
|||
|
distance: 70, //默认视角距离主体的距离,对于 globe 来说是距离地球表面的距离,对于 grid3D 和 geo3D 等其它组件来说是距离中心原点的距离。在 projection 为'perspective'的时候有效。
|
|||
|
alpha:65,//视角绕 x 轴,即上下旋转的角度。配合 beta 可以控制视角的方向。
|
|||
|
beta:0,//视角绕 y 轴,即左右旋转的角度。
|
|||
|
distance:120,//默认视角距离主体的距离,对于 globe 来说是距离地球表面的距离,对于 grid3D 和 geo3D 等其它组件来说是距离中心原点的距离。在 projection 为'perspective'的时候有效。
|
|||
|
},
|
|||
|
},
|
|||
|
{
|
|||
|
name: mapName,
|
|||
|
type: "map3D",
|
|||
|
zlevel:2,
|
|||
|
map: mapName, //地图类型。echarts-gl 中使用的地图类型同 geo 组件相同
|
|||
|
regionHeight: 2, //模型的高度
|
|||
|
boxWidth: 100, //三维地图在三维场景中的宽度
|
|||
|
//boxHeight:50,
|
|||
|
boxDepth: 65, //三维地图在三维场景中的深度
|
|||
|
// top: "10%",
|
|||
|
//left:'10%',
|
|||
|
// 配置为垂直渐变的背景
|
|||
|
// environment: 'images/53bg.png',
|
|||
|
groundPlane:{
|
|||
|
show:false
|
|||
|
},
|
|||
|
label: {
|
|||
|
show: false, //是否显示标签。
|
|||
|
position: ["50%", "50%"],
|
|||
|
formatter: (params) => {
|
|||
|
params.name;
|
|||
|
},
|
|||
|
textStyle: {
|
|||
|
color: "rgba(255,255,255,0.65)", //地图初始化区域字体颜色
|
|||
|
fontSize: 16,
|
|||
|
opacity: 1,
|
|||
|
backgroundColor: "#1B212B ",
|
|||
|
borderColor: "#998484",
|
|||
|
borderWidth: 1,
|
|||
|
position: "insideTop",
|
|||
|
padding: [6, 8],
|
|||
|
borderRadius: 0,
|
|||
|
distanca: 20,
|
|||
|
},
|
|||
|
|
|||
|
// emphasis: {
|
|||
|
// //对应的鼠标悬浮效果
|
|||
|
// show: false,
|
|||
|
// // textStyle: { color: "blue" }
|
|||
|
// },
|
|||
|
},
|
|||
|
itemStyle: {
|
|||
|
normal: {
|
|||
|
// 静态模式下显示的默认样式
|
|||
|
borderWidth: 1,
|
|||
|
borderColor: "#21cac7",
|
|||
|
color: "#0e838b",
|
|||
|
}, //阴影效果
|
|||
|
emphasis: {
|
|||
|
// 鼠标移上去的样式
|
|||
|
borderWidth: 1.6,
|
|||
|
borderColor: "#95FFFF",
|
|||
|
color: "#108f97",
|
|||
|
textStyle: {
|
|||
|
// color:'blue'
|
|||
|
},
|
|||
|
},
|
|||
|
},
|
|||
|
viewControl: {
|
|||
|
center:[0,0,0],//视角中心点,旋转也会围绕这个中心点旋转,默认为[0,0,0]。
|
|||
|
//用于鼠标的旋转,缩放等视角控制。
|
|||
|
autoRotate: false, //是否开启视角绕物体的自动旋转查看
|
|||
|
distance: 70, //默认视角距离主体的距离,对于 globe 来说是距离地球表面的距离,对于 grid3D 和 geo3D 等其它组件来说是距离中心原点的距离。在 projection 为'perspective'的时候有效。
|
|||
|
alpha:65,//视角绕 x 轴,即上下旋转的角度。配合 beta 可以控制视角的方向。
|
|||
|
beta:0,//视角绕 y 轴,即左右旋转的角度。
|
|||
|
distance:120,//默认视角距离主体的距离,对于 globe 来说是距离地球表面的距离,对于 grid3D 和 geo3D 等其它组件来说是距离中心原点的距离。在 projection 为'perspective'的时候有效。
|
|||
|
},
|
|||
|
},
|
|||
|
]
|
|||
|
};
|
|||
|
// 使用刚指定的配置项和数据显示图表。
|
|||
|
this.myChart.setOption(option);
|
|||
|
},
|
|||
|
initChart(){
|
|||
|
let url = "/data/gd.json";
|
|||
|
let url1 = "/data/gd_item.json";
|
|||
|
let promiseArr = [];
|
|||
|
promiseArr.push(fetch(url).then(res=>res.json()))
|
|||
|
promiseArr.push(fetch(url1).then(res=>res.json()))
|
|||
|
Promise.allSettled(promiseArr).then((result)=>{
|
|||
|
//在echarts中注册地图矢量数据
|
|||
|
echarts.registerMap('gd',result[0].value);
|
|||
|
echarts.registerMap('gdItem',result[1].value);
|
|||
|
this.shapeChart('gd','gdItem');
|
|||
|
});
|
|||
|
}
|
|||
|
},
|
|||
|
created(){
|
|||
|
|
|||
|
},
|
|||
|
mounted() {
|
|||
|
this.initChart();
|
|||
|
},
|
|||
|
}
|
|||
|
</script>
|
|||
|
|
|||
|
<style lang='stylus' scoped>
|
|||
|
.container{
|
|||
|
display flex
|
|||
|
justify-content center
|
|||
|
align-content center
|
|||
|
}
|
|||
|
.chart-container{
|
|||
|
width 100%
|
|||
|
height 80vh
|
|||
|
}
|
|||
|
</style>
|