|
|
|
|
@ -1,49 +1,255 @@
|
|
|
|
|
<template>
|
|
|
|
|
<div style="width:100%;height:100%" ref="chartsDOM">
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
import * as echarts from 'echarts';
|
|
|
|
|
import jtmap from './jtmap.json';
|
|
|
|
|
export default{
|
|
|
|
|
data(){
|
|
|
|
|
return{
|
|
|
|
|
// jtmap:jtmap
|
|
|
|
|
myChart:null
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
mounted() {
|
|
|
|
|
// 初始化统计图对象
|
|
|
|
|
this.initEchartsMap()
|
|
|
|
|
},
|
|
|
|
|
methods:{
|
|
|
|
|
initEchartsMap(){
|
|
|
|
|
this.myChart = echarts.init(this.$refs["chartsDOM"]);
|
|
|
|
|
echarts.registerMap('GX', jtmap);
|
|
|
|
|
var option = {
|
|
|
|
|
series: [
|
|
|
|
|
{
|
|
|
|
|
name: '金坛地图',
|
|
|
|
|
type: 'map',
|
|
|
|
|
map: 'GX',// 这个是上面注册时的名字哦,registerMap('这个名字保持一致')
|
|
|
|
|
label: {
|
|
|
|
|
show: true
|
|
|
|
|
}
|
|
|
|
|
<template>
|
|
|
|
|
<div style="width:100%;height:100%" class='chart' id='chart'></div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
// import '../../../../node_modules/echarts/map/js/china.js' // 引入中国地图
|
|
|
|
|
import * as echarts from 'echarts';
|
|
|
|
|
import jtmap from './jtmap.json';
|
|
|
|
|
|
|
|
|
|
export default {
|
|
|
|
|
props: {
|
|
|
|
|
mapData: {
|
|
|
|
|
type: Array,
|
|
|
|
|
default: []
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
myChart: null,
|
|
|
|
|
hookToolTip: {},
|
|
|
|
|
// mapData:[]
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
mounted() {
|
|
|
|
|
this.drawChart()
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
created() {
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
watch: {
|
|
|
|
|
hookToolTip: {
|
|
|
|
|
handler(newVal, oldVal) {
|
|
|
|
|
if(newVal.data!=null){
|
|
|
|
|
let tooltipButton = document.querySelector(".mapsshow" + newVal.data.id)
|
|
|
|
|
let that = this
|
|
|
|
|
tooltipButton.addEventListener('click', function() {
|
|
|
|
|
that.showInfo(newVal.data.id)
|
|
|
|
|
})
|
|
|
|
|
}else{
|
|
|
|
|
this.$router.push({
|
|
|
|
|
path: "/record/map",
|
|
|
|
|
query: {
|
|
|
|
|
street: newVal.name
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
this.myChart.setOption(option);
|
|
|
|
|
},
|
|
|
|
|
resetCharts(){
|
|
|
|
|
this.myChart.resize()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style>
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
showInfo(id) {
|
|
|
|
|
this.$router.push({
|
|
|
|
|
path: "/record/personinfo",
|
|
|
|
|
query: {
|
|
|
|
|
id: id
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
resetCharts() {
|
|
|
|
|
this.myChart.resize()
|
|
|
|
|
},
|
|
|
|
|
drawChart() {
|
|
|
|
|
let that = this
|
|
|
|
|
// console.log("this.mapData",this.mapData)
|
|
|
|
|
this.mapData.forEach((m, index) => {
|
|
|
|
|
if (!m.coord) {
|
|
|
|
|
m.coord = ['', '']
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
// 基于准备好的dom,初始化echarts实例
|
|
|
|
|
this.myChart = echarts.init(document.getElementById('chart'))
|
|
|
|
|
echarts.registerMap('GX', jtmap);
|
|
|
|
|
// 绘制图表
|
|
|
|
|
this.myChart.setOption({
|
|
|
|
|
// 提示框组件
|
|
|
|
|
tooltip: {
|
|
|
|
|
trigger: 'item', // 触发类型, 数据项图形触发,主要在散点图,饼图等无类目轴的图表中使用
|
|
|
|
|
position: 'right',
|
|
|
|
|
enterable: true,
|
|
|
|
|
triggerOn: 'click',
|
|
|
|
|
formatter: function(val) {
|
|
|
|
|
that.hookToolTip = val;
|
|
|
|
|
if (!val.data) {
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
return '<div class="mapsshow' + val.data.id + '" style="cursor:pointer"><p>' + val.data.name +
|
|
|
|
|
'</p><p style="color:red">查看详情</p><div>'
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
geo: {
|
|
|
|
|
map: "GX",
|
|
|
|
|
roam: false, //不开启缩放和平移
|
|
|
|
|
zoom: 1.23, //视角缩放比例
|
|
|
|
|
label: {
|
|
|
|
|
normal: {
|
|
|
|
|
show: false,
|
|
|
|
|
fontSize: "0",
|
|
|
|
|
color: "rgba(0,0,0,0.7)",
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
itemStyle: {
|
|
|
|
|
normal: {
|
|
|
|
|
borderColor: "rgba(0, 0, 0, 0.2)",
|
|
|
|
|
},
|
|
|
|
|
emphasis: {
|
|
|
|
|
// areaColor: "#F3B329", //鼠标选择区域颜色
|
|
|
|
|
shadowOffsetX: 0,
|
|
|
|
|
shadowOffsetY: 0,
|
|
|
|
|
shadowBlur: 20,
|
|
|
|
|
borderWidth: 0,
|
|
|
|
|
shadowColor: "rgba(0, 0, 0, 0.5)",
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
// data:this.dataList
|
|
|
|
|
|
|
|
|
|
regions: [
|
|
|
|
|
//对不同的区块进行着色
|
|
|
|
|
{
|
|
|
|
|
name: "开发区",
|
|
|
|
|
itemStyle: {
|
|
|
|
|
normal: {
|
|
|
|
|
areaColor: "#75bedc",
|
|
|
|
|
},
|
|
|
|
|
emphasis: {
|
|
|
|
|
areaColor: "#75bedc",
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: "指前镇",
|
|
|
|
|
itemStyle: {
|
|
|
|
|
normal: {
|
|
|
|
|
areaColor: "#d7335a",
|
|
|
|
|
},
|
|
|
|
|
emphasis: {
|
|
|
|
|
areaColor: "#d7335a",
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: "朱林镇",
|
|
|
|
|
itemStyle: {
|
|
|
|
|
normal: {
|
|
|
|
|
areaColor: "#fc8251",
|
|
|
|
|
},
|
|
|
|
|
emphasis: {
|
|
|
|
|
areaColor: "#fc8251",
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: "直溪镇",
|
|
|
|
|
itemStyle: {
|
|
|
|
|
normal: {
|
|
|
|
|
areaColor:'#91cd77',
|
|
|
|
|
},
|
|
|
|
|
emphasis: {
|
|
|
|
|
areaColor:'#91cd77',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: "薛埠镇",
|
|
|
|
|
itemStyle: {
|
|
|
|
|
normal: {
|
|
|
|
|
areaColor:'#ef6567',
|
|
|
|
|
},
|
|
|
|
|
emphasis: {
|
|
|
|
|
areaColor:'#ef6567',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: "金城镇",
|
|
|
|
|
itemStyle: {
|
|
|
|
|
normal: {
|
|
|
|
|
areaColor:'#f9c956',
|
|
|
|
|
},
|
|
|
|
|
emphasis: {
|
|
|
|
|
areaColor:'#f9c956',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: "儒林镇",
|
|
|
|
|
itemStyle: {
|
|
|
|
|
normal: {
|
|
|
|
|
areaColor:'#c968e1',
|
|
|
|
|
},
|
|
|
|
|
emphasis: {
|
|
|
|
|
areaColor:'#c968e1',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: "尧塘镇",
|
|
|
|
|
itemStyle: {
|
|
|
|
|
normal: {
|
|
|
|
|
areaColor:'#00ffff',
|
|
|
|
|
},
|
|
|
|
|
emphasis: {
|
|
|
|
|
areaColor:'#00ffff',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
series: [{
|
|
|
|
|
|
|
|
|
|
name: "一户一档",
|
|
|
|
|
type: "map",
|
|
|
|
|
mapType: "china",
|
|
|
|
|
geoIndex: 0,
|
|
|
|
|
markPoint: {
|
|
|
|
|
symbol: 'image://' + require('@/assets/logo-mini.png'), // 自定义图片路径
|
|
|
|
|
symbolSize: [50, 40], // 图片大小
|
|
|
|
|
symbolOffset: [0, -30],
|
|
|
|
|
label: {
|
|
|
|
|
position: 'bottom',
|
|
|
|
|
color: "#fff",
|
|
|
|
|
textAlign: "center",
|
|
|
|
|
padding: [4, 7],
|
|
|
|
|
borderWidth: 2, // 图形描边的宽度。
|
|
|
|
|
borderColor: "#fff", // 边框颜色
|
|
|
|
|
backgroundColor: 'green', // 背景色
|
|
|
|
|
formatter(val) {
|
|
|
|
|
return val.name
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// coord数组存放地址坐标
|
|
|
|
|
data: this.mapData
|
|
|
|
|
}
|
|
|
|
|
}],
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style scoped>
|
|
|
|
|
.chart {
|
|
|
|
|
/* width: 100%;
|
|
|
|
|
height: 100%; */
|
|
|
|
|
/* margin: 100px 50px 0; */
|
|
|
|
|
/* border: 1px solid #eeeeee; */
|
|
|
|
|
/* background: url(../../public/static/bg.png) no-repeat; */
|
|
|
|
|
background-size: 100% 100%;
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
|