Преглед изворни кода

Merge remote-tracking branch 'origin/visu_resources' into visu_resources

wang_xy пре 2 година
родитељ
комит
04a242238b
4 измењених фајлова са 115 додато и 54 уклоњено
  1. 26 0
      src/api/tianzhangzhi.js
  2. 24 0
      src/components/supermap.vue
  3. 1 1
      src/components/v-header.vue
  4. 64 53
      src/views/tianzhangzhi.vue

+ 26 - 0
src/api/tianzhangzhi.js

@@ -7,3 +7,29 @@ export function getTianzhangList() {
     method: 'post',
   })
 }
+
+// 田长获取网格网格长列表
+export function selectVisuGridLength(param) {
+  return request({
+    url: '/center-resources/VisuForestTianzhangzhiController/selectVisuGridLength',
+    method: 'post',
+    data:param
+  })
+}
+
+// 网格长获取耕地和基本田列表
+export function selectGridLandInfo(param) {
+  return request({
+    url: '/center-resources/VisuForestTianzhangzhiController/selectGridLandInfo',
+    method: 'post',
+    data:param
+  })
+}
+
+// 网格长获取耕地和基本田列表
+export function remoteGetRegionalFlag(id) {
+  return request({
+    url: '/center-resources/VisuForestTianzhangzhiController/remoteGetRegionalFlag/'+id,
+    method: 'get',
+  })
+}

+ 24 - 0
src/components/supermap.vue

@@ -121,6 +121,7 @@ export default {
       connectLayer: [],
       connectLayerTwo: [],
       graphicsLayer: [],
+      graphicsLayerTwo: [],
       latLngLayers: [],
       latLngGroup: [],
       isEditableLayers: false, //绘图控件
@@ -676,6 +677,12 @@ export default {
       }
       this.graphicsLayer = []
     },
+    clearGTwo: async function() { //清理地图图形
+      if (this.graphicsLayerTwo != undefined && this.graphicsLayerTwo != false) {
+        this.graphicsLayerTwo.clearLayers()
+      }
+      this.graphicsLayerTwo = []
+    },
     clearP: async function() { //清理点击事件落点
       if (this.latLngGroup != undefined && this.latLngGroup != false) {
         this.latLngGroup.clearLayers()
@@ -1223,6 +1230,23 @@ export default {
         _that.graphicsLayer.addLayer(polygon)
       }
     },
+    setGraphicsTwoList: function(graphicsList, color) { //地图图形
+      const _that = this
+      let points = []
+      for (let i = 0; i < graphicsList.length; i++) {
+        points.push([graphicsList[i].lat, graphicsList[i].lng]) //创建点
+      }
+      let polygon = window.L.polygon(points, {
+        color: color
+      })
+      polygon.addTo(this.map)
+      if (this.graphicsLayerTwo != undefined && this.graphicsLayerTwo != false) {
+        _that.graphicsLayerTwo.addLayer(polygon)
+      } else {
+        _that.graphicsLayerTwo = window.L.featureGroup().addTo(this.map)
+        _that.graphicsLayerTwo.addLayer(polygon)
+      }
+    },
     dropLocation: function(lat, lng) { //落点定位
       this.map.flyTo([lat, lng], 13, { duration: 2 })
     },

+ 1 - 1
src/components/v-header.vue

@@ -37,7 +37,7 @@
 		},
 		created(){
 			this.navbar
-      this.fontConfig();
+      this.fontConfig
 		},
 		data(){
 			return{

+ 64 - 53
src/views/tianzhangzhi.vue

@@ -5,7 +5,7 @@
     <!--主体-->
     <div class="visual-body">
       <!-- 左侧 -->
-      <div class="leftbar" :class="indentleft" ref="left">
+      <div class="leftbar" ref="left">
         <div class="forthis">
           <dv-border-box-13 backgroundColor="rgba(12, 19, 38, .90)" style="padding-bottom: 1rem;">
             <img src="../assets/images/integrated/light.png" style="width: 100%; margin-top: .4rem;"/>
@@ -15,8 +15,8 @@
             </div>
             <div class="i-list-con h-27">
               <div class="d-l-con-icon">
-                <div class="icon-con" :class="{on:listCurrentIndex1==item.userId}"
-                     v-for="(item,index) in visuTianzhangList" @click="getLeaderTrack(item.id)">
+                <div class="icon-con" :class="{on:listCurrentIndex1==item.id}"
+                     v-for="(item,index) in visuTianzhangList" @click="selectVisuGridLength(item.id)">
                   <div class="icon icon-mid el-icon-user"></div>
                   <div class="icon-text personnel-name">
                     <h6>姓名:{{ item.tianName }}</h6>
@@ -31,17 +31,17 @@
           <dv-border-box-13 backgroundColor="rgba(12, 19, 38, .90)" style="padding-bottom: 1rem;">
             <img src="../assets/images/integrated/light.png" style="width: 100%; margin-top: .4rem;"/>
             <div class="this-title">
-              <span>网格</span>
+              <span>网格信息</span>
               <dv-decoration-3 style="width:150px;height:15px;margin-right: 1rem;"/>
             </div>
             <div class="i-list-con h-27">
               <div class="d-l-con-icon">
-                <div class="icon-con" :class="{on:listCurrentIndex1==item.userId}"
-                     v-for="(item,index) in visuTianzhangList" @click="getLeaderTrack(item.userId)">
+                <div class="icon-con" :class="{on:listCurrentIndex2==item. gridId}"
+                     v-for="(item,index) in visuGridLengthList" @click="selectGridLandInfo(item.gridId)">
                   <div class="icon icon-mid el-icon-user"></div>
                   <div class="icon-text personnel-name">
-                    <h6>{{ item.nickName }}</h6>
-                    <h5>{{ item.deptName }}</h5>
+                    <h6>网格名称:{{ item.gridName }}</h6>
+                    <h6>网格长:{{ item.gridLengthName }}</h6>
                   </div>
                 </div>
               </div>
@@ -53,22 +53,22 @@
       <supermap ref="supermap" style="width: 100%;height: 100vh;" :mapDiv="'forestMap'" class="indexSupermapClass"
                 :mapSite="{doubleClickZoom:false}" :codes="['9fa5']" :isSideBySide="false"></supermap>
       <!-- 右侧 -->
-      <div class="rightbar" :class="indentright" ref="right">
+      <div class="rightbar" ref="right">
         <div class="forthis">
           <dv-border-box-13 backgroundColor="rgba(12, 19, 38, .90)" style="padding-bottom: 1rem;">
             <img src="../assets/images/integrated/light.png" style="width: 100%; margin-top: .4rem;"/>
             <div class="this-title">
-              <span>田长列表</span>
+              <span>资源耕地列表</span>
               <dv-decoration-3 style="width:150px;height:15px;margin-right: 1rem;"/>
             </div>
             <div class="i-list-con h-27">
               <div class="h-19 overflow-y">
-                <div class="d-l-con" :class="{on:listCurrentIndex2==item.planName}"
-                     v-for="(item,index) in visuTianzhangList"
-                     @click="getPointList(item.id)">
+                <div class="d-l-con" :class="{on:listCurrentIndex3==item.id}"
+                     v-for="(item,index) in gengdiList"
+                     @click="getPointListByGd(item.id)">
                   <div class="d-l-l-text">
                     <i class="i-small"></i>
-                    <h4>{{ item.timeBegin }} - {{ item.timeEnd }}</h4>
+                    <h4>{{ item.name }}</h4>
                   </div>
                 </div>
               </div>
@@ -79,31 +79,25 @@
           <dv-border-box-13 backgroundColor="rgba(12, 19, 38, .90)" style="padding-bottom: 1rem;">
             <img src="../assets/images/integrated/light.png" style="width: 100%; margin-top: .4rem;"/>
             <div class="this-title">
-              <span>巡查时段</span>
+              <span>永久基本田列表</span>
               <dv-decoration-3 style="width:150px;height:15px;margin-right: 1rem;"/>
             </div>
             <div class="i-list-con h-27">
               <div class="h-19 overflow-y">
-                <div class="d-l-con" :class="{on:listCurrentIndex2==item.planName}"
-                     v-for="(item,index) in visuTianzhangList"
-                     @click="getPointList(item.id)">
+                <div class="d-l-con" :class="{on:listCurrentIndex4==item.id}"
+                     v-for="(item,index) in yongjiutianList"
+                     @click="getPointListByYjt(item.id)">
                   <div class="d-l-l-text">
                     <i class="i-small"></i>
-                    <h4>{{ item.timeBegin }} - {{ item.timeEnd }}</h4>
+                    <h4>{{ item.name }}</h4>
                   </div>
                 </div>
               </div>
             </div>
           </dv-border-box-13>
         </div>
-
       </div>
       <vBottomMenu ref="bottomMenu"></vBottomMenu>
-<!--      <el-tooltip :content="indentText" placement="top" :disabled="indentdisabled">-->
-<!--        <div class="mascot" ref="mascot" :class="indentStyle" @click="indent">-->
-<!--          <img src="@/assets/images/mascot.png"/>-->
-<!--        </div>-->
-<!--      </el-tooltip>-->
     </div>
     <eventLocation ref="eventLocation"></eventLocation>
     <TVWall ref="TVWall"></TVWall>
@@ -112,14 +106,14 @@
 
 <script>
 import {
-  getTianzhangList,
+  getTianzhangList,selectVisuGridLength,selectGridLandInfo,remoteGetRegionalFlag
 } from '@/api/tianzhangzhi'
 
 import supermap from '@/components/supermap' //超图
 import vheader from '@/components/v-header.vue' //一体化共用头部
 import vBottomMenu from '@/components/vBottomMenu.vue' //一体化公共底部菜单
 import eventLocation from '@/components/eventLocation.vue' //事件定位弹窗
-import TVWall from '@/components/TVWall.vue' //电视墙弹窗
+import TVWall from '@/components/TVWall.vue'
 
 let echarts = require('echarts')
 export default {
@@ -132,16 +126,14 @@ export default {
   },
   data() {
     return {
-      iconCurrentIndex1: '1',
       listCurrentIndex1: '',
       listCurrentIndex2: '',
-      //左右缩进
-      indentStyle: '',
-      indentleft: '',
-      indentright: '',
-      indentText: '收起左右栏',
-      indentdisabled: false,
-      visuTianzhangList: [], //人员类型列表
+      listCurrentIndex3: '',
+      listCurrentIndex4: '',
+      visuTianzhangList: [], //田长列表
+      visuGridLengthList: [], //网格网格长列表
+      gengdiList: [], //耕地列表
+      yongjiutianList: [], //永久田列表
     }
   },
   created() {
@@ -153,6 +145,41 @@ export default {
     /** ----------------------------------底部按钮公用组件结束------------------------------------- */
   },
   methods: {
+    getPointListByGd(id){
+      //耕地地图展示区域
+      remoteGetRegionalFlag(id).then(res => {
+        this.listCurrentIndex3=id
+        this.$refs.supermap.clearG()
+        this.$refs.supermap.setGraphicsList(res.data,"green")
+      })
+    },
+    getPointListByYjt(id){
+      //永久田地图展示区域
+      remoteGetRegionalFlag(id).then(res => {
+        this.listCurrentIndex4=id
+        this.$refs.supermap.clearGTwo()
+        this.$refs.supermap.setGraphicsTwoList(res.data,"red")
+      })
+    },
+    selectVisuGridLength(id){
+      //田长获取网格网格长列表
+      selectVisuGridLength({ chiefTianId: id }).then(res => {
+        this.$refs.supermap.clearGTwo()
+        this.$refs.supermap.clearG()
+        this.visuGridLengthList = res.data
+        this.listCurrentIndex1=id
+      })
+    },
+    selectGridLandInfo(id){
+      //网格获取耕地和基本田列表
+      selectGridLandInfo({ gridId: id }).then(res => {
+        this.$refs.supermap.clearGTwo()
+        this.$refs.supermap.clearG()
+        this.gengdiList = res.data.gd
+        this.yongjiutianList = res.data.yjt
+        this.listCurrentIndex2=id
+      })
+    },
     /** ----------------------------------底部按钮公用组件开始------------------------------------- */
     showDialog(click) {
       if (click == 'eventLocation') {
@@ -219,31 +246,15 @@ export default {
     //初始化
     getInit() {
       let that = this
-      this.iconCurrentIndex1 = '1'
       this.listCurrentIndex1 = ''
       this.listCurrentIndex2 = ''
+      this.listCurrentIndex3 = ''
+      this.listCurrentIndex4 = ''
       //获取田长列表
       getTianzhangList().then(res => {
         that.visuTianzhangList = res.data
       })
     },
-
-    //吉祥物收起左右框
-    indent() {
-      let list = document.getElementsByClassName('el-tooltip__popper')
-      list[list.length - 1].style.display = 'none'
-      if (this.indentStyle == '') {
-        this.indentStyle = 'indent-style'
-        this.indentleft = 'indent-left'
-        this.indentright = 'indent-right'
-        this.indentText = '展开左右栏'
-      } else if (this.indentText == '展开左右栏') {
-        this.indentStyle = ''
-        this.indentleft = ''
-        this.indentright = ''
-        this.indentText = '收起左右栏'
-      }
-    },
   }
 
 }