|  | @@ -1,12 +1,22 @@
 | 
											
												
													
														|  |  <template>
 |  |  <template>
 | 
											
												
													
														|  | -  <div>
 |  | 
 | 
											
												
													
														|  | 
 |  | +  <div class="map-wrap">
 | 
											
												
													
														|  |      <div id="container" tabindex="0"></div>
 |  |      <div id="container" tabindex="0"></div>
 | 
											
												
													
														|  | 
 |  | +    <div id="mask"></div>
 | 
											
												
													
														|  | 
 |  | +    <div class="yun-wrap">
 | 
											
												
													
														|  | 
 |  | +      <img class="yun yun1" src="../assets/img/云1.png" alt />
 | 
											
												
													
														|  | 
 |  | +    </div>
 | 
											
												
													
														|  | 
 |  | +    <div class="yun-wrap">
 | 
											
												
													
														|  | 
 |  | +      <img class="yun yun2" src="../assets/img/云2.png" alt />
 | 
											
												
													
														|  | 
 |  | +    </div>
 | 
											
												
													
														|  | 
 |  | +    <div class="yun-wrap">
 | 
											
												
													
														|  | 
 |  | +      <img class="yun yun3" src="../assets/img/云3.png" alt />
 | 
											
												
													
														|  | 
 |  | +    </div>
 | 
											
												
													
														|  |    </div>
 |  |    </div>
 | 
											
												
													
														|  |  </template>
 |  |  </template>
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  <script>
 |  |  <script>
 | 
											
												
													
														|  |  import AMapLoader from '@amap/amap-jsapi-loader';
 |  |  import AMapLoader from '@amap/amap-jsapi-loader';
 | 
											
												
													
														|  | -import { smallClassMap, forestSample } from '@/service/index.js';
 |  | 
 | 
											
												
													
														|  | 
 |  | +import { smallClassMap,rightScrollData, forestSample } from '@/service/index.js';
 | 
											
												
													
														|  |  import { mapMutations, mapState, mapGetters } from 'vuex';
 |  |  import { mapMutations, mapState, mapGetters } from 'vuex';
 | 
											
												
													
														|  |  export default {
 |  |  export default {
 | 
											
												
													
														|  |    name: 'amap',
 |  |    name: 'amap',
 | 
											
										
											
												
													
														|  | @@ -45,7 +55,7 @@ export default {
 | 
											
												
													
														|  |            this.map.clearMap();
 |  |            this.map.clearMap();
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |        }
 |  |        }
 | 
											
												
													
														|  | -    },
 |  | 
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  |      // '$store.state.addr.page':{
 |  |      // '$store.state.addr.page':{
 | 
											
												
													
														|  |      //   handler(val) {
 |  |      //   handler(val) {
 | 
											
												
													
														|  |      //     console.log(val);
 |  |      //     console.log(val);
 | 
											
										
											
												
													
														|  | @@ -254,7 +264,6 @@ export default {
 | 
											
												
													
														|  |        });
 |  |        });
 | 
											
												
													
														|  |        this.switch2AreaNode(adcode);
 |  |        this.switch2AreaNode(adcode);
 | 
											
												
													
														|  |        that.getDistrict(adName, mapLevel);
 |  |        that.getDistrict(adName, mapLevel);
 | 
											
												
													
														|  | -      
 |  | 
 | 
											
												
													
														|  |      },
 |  |      },
 | 
											
												
													
														|  |      //根据Hover状态设置相关样式
 |  |      //根据Hover状态设置相关样式
 | 
											
												
													
														|  |      toggleHoverFeature(feature, isHover, position) {
 |  |      toggleHoverFeature(feature, isHover, position) {
 | 
											
										
											
												
													
														|  | @@ -338,9 +347,12 @@ export default {
 | 
											
												
													
														|  |          if (mapLevel == 'city' || mapLevel == undefined) {
 |  |          if (mapLevel == 'city' || mapLevel == undefined) {
 | 
											
												
													
														|  |            this.setMarker();
 |  |            this.setMarker();
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  | 
 |  | +        console.log(this.$store.state.addr.page);
 | 
											
												
													
														|  |          if (mapLevel === 'district') {
 |  |          if (mapLevel === 'district') {
 | 
											
												
													
														|  |            if (this.$store.state.addr.page === 'forest') {
 |  |            if (this.$store.state.addr.page === 'forest') {
 | 
											
												
													
														|  | -             this.addPolygon();
 |  | 
 | 
											
												
													
														|  | 
 |  | +            this.addForestPolygon();
 | 
											
												
													
														|  | 
 |  | +          } else if (this.$store.state.addr.page === 'treeSpecies') {
 | 
											
												
													
														|  | 
 |  | +            this.addTreeSpeciesPolygon();
 | 
											
												
													
														|  |            }
 |  |            }
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |          //设置当前使用的定位用节点
 |  |          //设置当前使用的定位用节点
 | 
											
										
											
												
													
														|  | @@ -373,9 +385,10 @@ export default {
 | 
											
												
													
														|  |          this.smallClassMapArr = res.rows;
 |  |          this.smallClassMapArr = res.rows;
 | 
											
												
													
														|  |        });
 |  |        });
 | 
											
												
													
														|  |      },
 |  |      },
 | 
											
												
													
														|  | -    addPolygon() {
 |  | 
 | 
											
												
													
														|  | 
 |  | +    addForestPolygon() {
 | 
											
												
													
														|  |        let that = this;
 |  |        let that = this;
 | 
											
												
													
														|  |        this.smallClassMapArr.forEach((item) => {
 |  |        this.smallClassMapArr.forEach((item) => {
 | 
											
												
													
														|  | 
 |  | +        
 | 
											
												
													
														|  |          let polyData = JSON.parse(item.mapInfo);
 |  |          let polyData = JSON.parse(item.mapInfo);
 | 
											
												
													
														|  |          let polygon = new AMap.Polygon({
 |  |          let polygon = new AMap.Polygon({
 | 
											
												
													
														|  |            map: this.map,
 |  |            map: this.map,
 | 
											
										
											
												
													
														|  | @@ -391,7 +404,6 @@ export default {
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          polygon.on('mouseover', (e) => {
 |  |          polygon.on('mouseover', (e) => {
 | 
											
												
													
														|  |            lanLatArr = [e.lnglat.lng, e.lnglat.lat];
 |  |            lanLatArr = [e.lnglat.lng, e.lnglat.lat];
 | 
											
												
													
														|  | -          console.log(lanLatArr);
 |  | 
 | 
											
												
													
														|  |            let smallLabel =
 |  |            let smallLabel =
 | 
											
												
													
														|  |              "<div class='info-small'>" +
 |  |              "<div class='info-small'>" +
 | 
											
												
													
														|  |              "<h5 class='marker-title'>" +
 |  |              "<h5 class='marker-title'>" +
 | 
											
										
											
												
													
														|  | @@ -469,6 +481,74 @@ export default {
 | 
											
												
													
														|  |          });
 |  |          });
 | 
											
												
													
														|  |        });
 |  |        });
 | 
											
												
													
														|  |      },
 |  |      },
 | 
											
												
													
														|  | 
 |  | +    addTreeSpeciesPolygon() {
 | 
											
												
													
														|  | 
 |  | +      this.smallClassMapArr.forEach((item) => {
 | 
											
												
													
														|  | 
 |  | +        let polyData = JSON.parse(item.mapInfo);
 | 
											
												
													
														|  | 
 |  | +        let polygon = new AMap.Polygon({
 | 
											
												
													
														|  | 
 |  | +          map: this.map,
 | 
											
												
													
														|  | 
 |  | +          path: polyData.features[0].geometry.coordinates,
 | 
											
												
													
														|  | 
 |  | +          strokeOpacity: 1,
 | 
											
												
													
														|  | 
 |  | +          fillOpacity: 0,
 | 
											
												
													
														|  | 
 |  | +          strokeColor: 'red',
 | 
											
												
													
														|  | 
 |  | +          strokeWeight: 2,
 | 
											
												
													
														|  | 
 |  | +          zIndex: 999,
 | 
											
												
													
														|  | 
 |  | +          cursor: 'pointer'
 | 
											
												
													
														|  | 
 |  | +        });
 | 
											
												
													
														|  | 
 |  | +        var lanLatArr = [];
 | 
											
												
													
														|  | 
 |  | +        polygon.on('mouseover', (e) => {
 | 
											
												
													
														|  | 
 |  | +          lanLatArr = [e.lnglat.lng, e.lnglat.lat];
 | 
											
												
													
														|  | 
 |  | +          let smallLabel =
 | 
											
												
													
														|  | 
 |  | +            "<div class='info-small'>" +
 | 
											
												
													
														|  | 
 |  | +            "<h5 class='marker-title'>" +
 | 
											
												
													
														|  | 
 |  | +            item.countyName +
 | 
											
												
													
														|  | 
 |  | +            '-' +
 | 
											
												
													
														|  | 
 |  | +            item.smallNumber +
 | 
											
												
													
														|  | 
 |  | +            '</h5>' +
 | 
											
												
													
														|  | 
 |  | +            "<div class='marker-content'>" +
 | 
											
												
													
														|  | 
 |  | +            '<p>小班号:' +
 | 
											
												
													
														|  | 
 |  | +            item.smallNumber +
 | 
											
												
													
														|  | 
 |  | +            '</p>' +
 | 
											
												
													
														|  | 
 |  | +            '<p>样地数:' +
 | 
											
												
													
														|  | 
 |  | +            item.sampleCount +
 | 
											
												
													
														|  | 
 |  | +            '</p>' +
 | 
											
												
													
														|  | 
 |  | +            '<p>村(林班):' +
 | 
											
												
													
														|  | 
 |  | +            polyData.features[0].properties.CUN +
 | 
											
												
													
														|  | 
 |  | +            '</p>' +
 | 
											
												
													
														|  | 
 |  | +            '<p>乡镇(林场):' +
 | 
											
												
													
														|  | 
 |  | +            item.townName +
 | 
											
												
													
														|  | 
 |  | +            '</p>' +
 | 
											
												
													
														|  | 
 |  | +            '</div>' +
 | 
											
												
													
														|  | 
 |  | +            '</div>';
 | 
											
												
													
														|  | 
 |  | +          this.smallMarker = new AMap.Marker({
 | 
											
												
													
														|  | 
 |  | +            position: lanLatArr,
 | 
											
												
													
														|  | 
 |  | +            icon: require('@/assets/img/small-marker.png'),
 | 
											
												
													
														|  | 
 |  | +            anchor: 'bottom-center',
 | 
											
												
													
														|  | 
 |  | +            offset: new AMap.Pixel(0, 0)
 | 
											
												
													
														|  | 
 |  | +          });
 | 
											
												
													
														|  | 
 |  | +          this.smallMarker.setLabel({
 | 
											
												
													
														|  | 
 |  | +            direction: 'right',
 | 
											
												
													
														|  | 
 |  | +            offset: new AMap.Pixel(-150, -90), //设置文本标注偏移量
 | 
											
												
													
														|  | 
 |  | +            content: smallLabel //设置文本标注内容
 | 
											
												
													
														|  | 
 |  | +          });
 | 
											
												
													
														|  | 
 |  | +          this.smallMarker.setMap(this.map);
 | 
											
												
													
														|  | 
 |  | +          polygon.setOptions({
 | 
											
												
													
														|  | 
 |  | +            fillOpacity: 0.7,
 | 
											
												
													
														|  | 
 |  | +            fillColor: 'yellow'
 | 
											
												
													
														|  | 
 |  | +          });
 | 
											
												
													
														|  | 
 |  | +        });
 | 
											
												
													
														|  | 
 |  | +        polygon.on('mouseout', () => {
 | 
											
												
													
														|  | 
 |  | +          if (this.smallMarker) {
 | 
											
												
													
														|  | 
 |  | +            this.smallMarker.setMap(null);
 | 
											
												
													
														|  | 
 |  | +            this.smallMarker = null;
 | 
											
												
													
														|  | 
 |  | +          }
 | 
											
												
													
														|  | 
 |  | +          polygon.setOptions({
 | 
											
												
													
														|  | 
 |  | +            fillOpacity: 0,
 | 
											
												
													
														|  | 
 |  | +            fillColor: '#ccebc5'
 | 
											
												
													
														|  | 
 |  | +          });
 | 
											
												
													
														|  | 
 |  | +        });
 | 
											
												
													
														|  | 
 |  | +        this.map.add(polygon);
 | 
											
												
													
														|  | 
 |  | +      });
 | 
											
												
													
														|  | 
 |  | +    },
 | 
											
												
													
														|  |      setMarker() {
 |  |      setMarker() {
 | 
											
												
													
														|  |        let forestFarm = [
 |  |        let forestFarm = [
 | 
											
												
													
														|  |          {
 |  |          {
 | 
											
										
											
												
													
														|  | @@ -586,4 +666,66 @@ export default {
 | 
											
												
													
														|  |    border: 0;
 |  |    border: 0;
 | 
											
												
													
														|  |    background-color: transparent;
 |  |    background-color: transparent;
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +#mask {
 | 
											
												
													
														|  | 
 |  | +  width: 100%;
 | 
											
												
													
														|  | 
 |  | +  height: 100vh;
 | 
											
												
													
														|  | 
 |  | +  box-shadow: inset 0px 0px 10vw 8vw rgba(38, 80, 179, 0.54);
 | 
											
												
													
														|  | 
 |  | +  position: fixed;
 | 
											
												
													
														|  | 
 |  | +  left: 0;
 | 
											
												
													
														|  | 
 |  | +  right: 0;
 | 
											
												
													
														|  | 
 |  | +  bottom: 0;
 | 
											
												
													
														|  | 
 |  | +  pointer-events: none;
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +@keyframes imageAnimation_32630606 {
 | 
											
												
													
														|  | 
 |  | +  0% {
 | 
											
												
													
														|  | 
 |  | +    // opacity: 0;
 | 
											
												
													
														|  | 
 |  | +    transform: none;
 | 
											
												
													
														|  | 
 |  | +  }
 | 
											
												
													
														|  | 
 |  | +  34% {
 | 
											
												
													
														|  | 
 |  | +    // opacity: 1;
 | 
											
												
													
														|  | 
 |  | +    transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg) scaleX(1) scaleY(1)
 | 
											
												
													
														|  | 
 |  | +      translate3d(34vw, 0px, 0px);
 | 
											
												
													
														|  | 
 |  | +  }
 | 
											
												
													
														|  | 
 |  | +  67% {
 | 
											
												
													
														|  | 
 |  | +    // opacity: 1;
 | 
											
												
													
														|  | 
 |  | +    transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg) scaleX(1) scaleY(1)
 | 
											
												
													
														|  | 
 |  | +      translate3d(67vw, 0px, 0px);
 | 
											
												
													
														|  | 
 |  | +  }
 | 
											
												
													
														|  | 
 |  | +  100% {
 | 
											
												
													
														|  | 
 |  | +    // opacity: 0;
 | 
											
												
													
														|  | 
 |  | +    transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg) scaleX(1) scaleY(1)
 | 
											
												
													
														|  | 
 |  | +      translate3d(160vw, 0px, 0px);
 | 
											
												
													
														|  | 
 |  | +  }
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +.yun-wrap {
 | 
											
												
													
														|  | 
 |  | +  position: fixed;
 | 
											
												
													
														|  | 
 |  | +  left: 0;
 | 
											
												
													
														|  | 
 |  | +  top: 350px;
 | 
											
												
													
														|  | 
 |  | +  width: 100vw;
 | 
											
												
													
														|  | 
 |  | +  pointer-events: none;
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +.yun {
 | 
											
												
													
														|  | 
 |  | +  position: fixed;
 | 
											
												
													
														|  | 
 |  | +  left: -500px;
 | 
											
												
													
														|  | 
 |  | +  animation-name: imageAnimation_32630606;
 | 
											
												
													
														|  | 
 |  | +  animation-iteration-count: infinite;
 | 
											
												
													
														|  | 
 |  | +  animation-timing-function: linear;
 | 
											
												
													
														|  | 
 |  | +  animation-duration: 110s;
 | 
											
												
													
														|  | 
 |  | +  animation-delay: 0s;
 | 
											
												
													
														|  | 
 |  | +  -webkit-user-drag: none;
 | 
											
												
													
														|  | 
 |  | +  filter: none;
 | 
											
												
													
														|  | 
 |  | +  pointer-events: none;
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +.yun2 {
 | 
											
												
													
														|  | 
 |  | +  bottom: 20px;
 | 
											
												
													
														|  | 
 |  | +  animation-duration: 90s;
 | 
											
												
													
														|  | 
 |  | +  animation-delay: 10s;
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +.yun3 {
 | 
											
												
													
														|  | 
 |  | +  top: 100px;
 | 
											
												
													
														|  | 
 |  | +  animation-duration: 120s;
 | 
											
												
													
														|  | 
 |  | +  animation-delay: 15s;
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  |  </style>
 |  |  </style>
 |