Browse Source

企业列表定位

caozhaorui 1 year ago
parent
commit
d4eaf29282

+ 6 - 2
src/store/modules/gis.ts

@@ -1,5 +1,6 @@
 const state = {
   menuRootName: '9cd5fbf9-35fd-4fb2-8c24-1f871afd67be',
+  map: null,
   gisLayer: null,
   gisSource: null
 }
@@ -8,11 +9,14 @@ const getters = {
 }
 
 const mutations = {
+  SET_GIS_MAP(state, map) {
+    state.map = map
+  }
 }
 
 const actions = {
-  LOAD_GIS_QY({ commit }: any, type: any) {
-
+  LOAD_GIS_MAP({ commit }: any, map: any) {
+    commit('SET_GIS_MAP', map)
   },
 }
 

+ 15 - 2
src/views/gis/business/enterprise/index.vue

@@ -64,7 +64,7 @@
       <div class="table">
         <div class="table-card">
           <template v-for="(item, index) in enterprise.table.data">
-            <div class="table-card-item __hover" :class="{active: index === 0}">
+            <div class="table-card-item __hover" :class="{active: index === 0}" @click="handleClick(item)">
               <img src="@/assets/images/gis-business/enterprise_list-icon1.png" alt=""/>
               <div class="table-card-item-right">
                 <div class="table-card-item-right-top">
@@ -204,6 +204,18 @@ export default defineComponent({
         state.loading.statistic = false
       })
     }
+    const handleClick = (item) => {
+      const qyLayer = store.state.gis.map.getLayers().getArray().filter(v => v.get('layerName') === 'qy')?.[0]
+      if (qyLayer) {
+        const f = qyLayer.getSource().getFeatureById(item.id)
+        f?.get('mockClick')()
+        store.state.gis.map.getView().animate({
+          center: f.getGeometry().getCoordinates(),
+          zoom: store.state.gis.map.getView().getMaxZoom(),
+        });
+      }
+      console.log(item)
+    }
     onMounted(() => {
       state.enterprise.form = JSON.parse(JSON.stringify(state.enterprise.tempForm))
       handleSearch()
@@ -213,7 +225,8 @@ export default defineComponent({
       ...toRefs(state),
       onSearch,
       onReset,
-      handleCurrentChange
+      handleCurrentChange,
+      handleClick
     }
   },
 })

+ 21 - 3
src/views/gis/layout/index.vue

@@ -256,6 +256,7 @@ export default defineComponent({
     const ref_search = ref()
     const mapLoad = (map, func) => {
       state.map = map
+      store.dispatch('gis/LOAD_GIS_MAP', state.map)
       state.mapFunc = func
       state.map.on('singleclick', e => {
         let flag = false
@@ -273,7 +274,7 @@ export default defineComponent({
                 } else {
                   f.setStyle(f.get('activeStyle'))
                 }
-                state.qyParams.qyInfo = f.get('info')
+                state.qyParams.qyInfo = JSON.parse(JSON.stringify(f.get('info')))
                 //  备份新的要素
                 state.qyParams.tempFeature = f
               }
@@ -288,7 +289,7 @@ export default defineComponent({
                 } else {
                   f.setStyle(f.get('activeStyle'))
                 }
-                state.qyParams.sbInfo = f.get('info')
+                state.qyParams.sbInfo = JSON.parse(JSON.stringify(f.get('info')))
                 state.qyParams.sbOverlay.setPosition(f.getGeometry().getCoordinates())
                 //  备份新的要素
                 state.qyParams.tempSbFeature = f
@@ -420,6 +421,20 @@ export default defineComponent({
               feat.set('featureType', 'qy')
               feat.setStyle(feat.get('defaultStyle'))
               feat.setId(v.id)
+              feat.set('mockClick', () => {
+                state.qyParams.tempFeature?.get('resetStyle')?.()
+                state.qyParams.analysisSource?.clear()
+                //  新的要素
+                if (feat.get('isAnalysis')) {
+                  feat.setStyle(feat.get('analysisActiveStyle'))
+                } else {
+                  feat.setStyle(feat.get('activeStyle'))
+                }
+                state.qyParams.qyInfo = JSON.parse(JSON.stringify(feat.get('info')))
+                //  备份新的要素
+                state.qyParams.tempFeature = feat
+                state.qyParams.overlay.setPosition(feat.getGeometry().getCoordinates())
+              })
               features.push(feat)
             } catch (e) {
               console.error('异常企业:', v)
@@ -431,7 +446,8 @@ export default defineComponent({
           })
           state.qyParams.layer = new layer.VectorImage({
             source: state.qyParams.source,
-            zIndex: 10
+            zIndex: 10,
+            layerName: 'qy'
           })
           state.map.addLayer(state.qyParams.layer)
           //  详情
@@ -467,6 +483,8 @@ export default defineComponent({
       state.qyParams.overlay.setPosition(undefined)
       state.qyParams.tempFeature.get('resetStyle')()
       state.qyParams.tempFeature = null
+      state.qyParams.qyInfo = {}
+      state.qyParams.analysisSource?.clear()
     }
     const onCloseSb = () => {
       state.qyParams.sbOverlay.setPosition(undefined)

+ 2 - 1
vite.config.ts

@@ -69,7 +69,8 @@ export default defineConfig({
         }
       },
       '/business-api/': {
-        target: 'http://192.168.31.26:7074/',
+        // target: 'http://192.168.31.26:7074/',
+        target: 'http://8.140.240.182:18087/',
         changeOrigin: true,
         rewrite: path => {
           return path.replace(/^\/business-api/, '')