Blame view

src/views/jgHome/components/map/index.vue 3.29 KB
任超 committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
<template>
  <div class="map">
    <div class="map-box" ref="mapContain" />
  </div>
</template>
<script>
export default {
  data () {
    return {
      mapName: "汉中市",
      listArr: [{
        name: '汉台区',
        value: '6000'
      },
      {
        name: '南郑区',
        value: '8000'
      },
      {
        name: '城固县',
        value: '3000'
      },
      {
        name: '洋县',
        value: '7000'
      },
      {
        name: '西乡县',
        value: '1000'
      },
      {
        name: '镇巴县',
        value: '2000'
      },
      {
        name: '勉县',
        value: '600'
      },
      {
        name: '留坝县',
        value: '3000'
      },
      {
        name: '佛坪县',
        value: '1000'
      },
      {
        name: '宁强县',
        value: '1000'
      },
      {
        name: '略阳县',
        value: '1000'
      }], //城市json
      max: "9000", //最大value值
      min: "500", // 最小value值
    };
  },
  methods: {
    drawProvinceMap (mapName) {
      this.mapName = mapName;
      // 引入区域数据
      require('./hanzhong.js');
      let _this = this;
      let myChart8 = this.$echarts.init(this.$refs.mapContain);
      const option = {
        visualMap: {
          min: 0,
          max: _this.max,
          top: "bottom",
          right: 10,
          splitNumber: 6,
          seriesIndex: [0],
          itemWidth: 20, // 每个图元的宽度
          itemGap: 2,    // 每两个图元之间的间隔距离,单位为px
          pieces: [      // 自定义每一段的范围,以及每一段的文字
            { gte: 6000, label: '6000以上', color: '#035cf5' }, // 不指定 max,表示 max 为无限大(Infinity)。
            { gte: 2000, lte: 6000, label: '2000-6000', color: '#3375e4' },
            { gte: 1000, lte: 2000, label: '1000-2000', color: '#6797ef' },
            { gte: 500, lte: 1000, label: '500-1000', color: '#96b5ef' },
          ],
          textStyle: {
            color: '#737373'
          }
        },
        // 数据移入显示
        tooltip: {
          trigger: "item",
          formatter: function (params) {
            return params.value ? params.name + ':' + params.value + '件' : params.name + ':' + '0件'
          },
          // 边框颜色
          borderColor: "#CB000C",
          // 边框宽度
          borderWidth: "1",
        },
        series: [
          {
            type: "map",
            map: this.mapName,
            itemStyle: {
              normal: {  //正常状态
                label: {
                  show: true,
                  formatter: '{b}',   //地图上显示的数据,分别对应data中的name和value
                  color: '#fff',
                },
                areaColor: '#409EFF'   //地图区域的颜色
              },
              emphasis: {
                label: { show: true },
                areaColor: "#67C23A", //鼠标进入时的颜色
              },
            },
            data: _this.listArr,
          },
        ],
      };
      myChart8.setOption(option);
    },
  },
  mounted () {
    // 初始化数据
    this.drawProvinceMap("汉中市");
  }
}
</script>
<style scoped>
.map {
  width: 100%;
}

.map-box {
  display: inline-block;
  width: 100%;
任超 committed
136
  height: calc(100vh - 153px);
任超 committed
137 138
}
</style>