From 755baaf11dd4e5c8eb7a5c2aa0ea23732fe47c85 Mon Sep 17 00:00:00 2001
From: 徐旺旺 <11530253@qq.com>
Date: 星期二, 18 五月 2021 15:16:53 +0800
Subject: [PATCH] 弹窗信息补全

---
 src/conf/Constants.js                             |  214 ++++++++++++++++++++++++++++++++---
 src/components/panel/topicSearch/SewersSearch.vue |    7 
 src/components/helpers/MapManager.js              |   44 ++++---
 src/components/helpers/LocateHelper.js            |   71 ++++++++++-
 src/utils/utils.js                                |    2 
 5 files changed, 288 insertions(+), 50 deletions(-)

diff --git a/src/components/helpers/LocateHelper.js b/src/components/helpers/LocateHelper.js
index 4160b89..2454138 100644
--- a/src/components/helpers/LocateHelper.js
+++ b/src/components/helpers/LocateHelper.js
@@ -1,6 +1,33 @@
 import { pulseEffect, reversePolyLine } from '../../utils/utils'
 import Popup from '@views/popup/Popup'
 import { LAYERPROPS, LAYERS } from '../../conf/Constants'
+
+/**
+ * 鏁村悎瀹氫綅銆侀珮浜�佸脊绐�
+ * @param feature  geojson
+ * @param config   鍥惧眰鐨刢onfig
+ */
+export const locate = function (feature, config, filter) {
+  fitBounds(feature)
+  highlight(feature, config)
+  setTimeout(() => {
+    const centerPoint = getCenterPoint(feature)
+    const params = { LAYERS: config.layerGroup || config.typeName, QUERY_LAYERS: config.layerGroup || config.typeName }
+    const filters = []
+    if (config.filter) {
+      filters[filters.length] = config.filter
+    }
+    if (filter) {
+      filters[filters.length] = filter
+    }
+    if (filters.length > 0) {
+      params.CQL_FILTER = filters.join(' AND ')
+    }
+    window.mapManager.loadWfsDatas(centerPoint, params).then((res) => {
+      openPropsPopup(centerPoint, res.features)
+    })
+  }, 1000)
+}
 /**
  * 鏍规嵁浼犵殑 feature瀵硅薄瀹氫綅锛�
  * @param code
@@ -23,7 +50,7 @@
   }
 }
 
-export const highlight = function (feature, config) {
+export const highlight = function (feature, icon) {
   const L = window.L
   const type = feature.geometry.type
   window.mapManager.clearHighlight()
@@ -42,26 +69,30 @@
     let point = feature.geometry.coordinates
     point = [point[1], point[0]]
 
-    if (config) {
+    if (icon) {
       L.marker(point, {
         icon: L.icon({
-          iconUrl: '/assets/images/map/' + config.icon,
+          iconUrl: '/assets/images/map/' + icon,
           iconSize: [30, 30],
           iconAnchor: [15, 15]
         })
       }).addTo(highlightLayer)
     }
     pulseEffect(point)
-    const features = window.mapManager.loadWfsDatas(point)
-    openPopup(point, features)
   } else if (type === 'LineString') {
     L.polyline(reversePolyLine(feature), { color: 'red' }).addTo(highlightLayer)
   }
 }
 
-export const openPopup = function (xy, features) {
+/**
+ * 寮瑰嚭灞炴�у垪琛ㄥ睍绀虹獥鍙�
+ * @param xy      寮瑰嚭绐楀彛璺熼殢瑕佺礌鐨勭粡绾害
+ * @param layer   鏌ヨ鎸囧畾鐨勫浘灞傘�備笉鎸囧畾鏃讹紝榛樿涓哄嬀閫夌殑鍥惧眰
+ */
+export const openPropsPopup = function (xy, features) {
   const lt = window.map.latLngToContainerPoint(xy)
   const datas = popupDatas(features)
+  console.log(datas)
   if (datas.length > 0) {
     window.$layer.open({
       content: {
@@ -77,6 +108,31 @@
   }
 }
 
+export const getCenterPoint = function (feature) {
+  const type = feature.geometry.type
+  var point = []
+  switch (type) {
+    case 'Point':
+      point = feature.geometry.coordinates
+      break
+    case 'MultiLineString':
+      var coordinates = feature.geometry.coordinates
+      var coordinate = coordinates[parseInt(coordinates.length / 2)][0]
+      if (coordinate.length > 2) {
+        point = [coordinate[0], coordinate[1]]
+      }
+      break
+    case 'LineString':
+      var lineString = feature.geometry.coordinates
+      point = lineString[parseInt(lineString.length / 2)][0]
+      break
+  }
+  if (point.length > 2) {
+    point.splice(2, 1)
+  }
+  return point.reverse()
+}
+
 const popupDatas = function (features) {
   const datas = []
   if (features) {
@@ -88,6 +144,9 @@
 
       const propValues = LAYERPROPS[ids[0]]
       const contents = {}
+      if (!propValues) {
+        continue
+      }
       for (const k in properties) {
         if (propValues[k]) {
           contents[propValues[k]] = properties[k]
diff --git a/src/components/helpers/MapManager.js b/src/components/helpers/MapManager.js
index 9795d33..8399486 100644
--- a/src/components/helpers/MapManager.js
+++ b/src/components/helpers/MapManager.js
@@ -1,6 +1,6 @@
 import AjaxUtils from '../../utils/AjaxUtils'
 import { WMS_URL } from '../../conf/Constants'
-import { openPopup } from './LocateHelper'
+import { highlight, openPropsPopup } from './LocateHelper'
 
 class MapManager {
   constructor () {
@@ -27,27 +27,33 @@
     this.map.on('click', (e) => {
       // console.log(e)
       this.clearHighlight()
-      this.loadWfsDatas(e.latlng)
+      this.loadWfsDatas(e.latlng).then((res) => {
+        console.log(res)
+        highlight(res.features)
+        openPropsPopup(e.latlng, res.features)
+      })
     })
   }
 
-  loadWfsDatas (latlng) {
-    const size = this.map.getSize()
-    var point = this.map.latLngToContainerPoint(latlng, this.map.getZoom())
-    const wmsLayerService = window.layerFactory.wmsLayerService
-    const layers = wmsLayerService.wmsLayerList.getLayers()
-    // const filters = wmsLayerService.wmsLayerList.getFilters()
-    const params = Object.assign({
-      LAYERS: layers,
-      QUERY_LAYERS: layers,
-      WIDTH: size.x,
-      HEIGHT: size.y,
-      X: Math.round(point.x),
-      Y: Math.round(point.y),
-      BBOX: this.map.getBounds().toBBoxString()
-    }, this.defaultWmsParams)
-    AjaxUtils.get4JsonDataByUrl(WMS_URL, params, (res) => {
-      openPopup(latlng, res.data.features)
+  loadWfsDatas (latlng, params) {
+    return new Promise((resolve, reject) => {
+      const size = this.map.getSize()
+      var point = this.map.latLngToContainerPoint(latlng, this.map.getZoom())
+      const wmsLayerService = window.layerFactory.wmsLayerService
+      const layers = wmsLayerService.wmsLayerList.getLayers()
+      // const filters = wmsLayerService.wmsLayerList.getFilters()
+      const wmsParams = Object.assign({
+        LAYERS: layers,
+        QUERY_LAYERS: layers,
+        WIDTH: size.x,
+        HEIGHT: size.y,
+        X: Math.round(point.x),
+        Y: Math.round(point.y),
+        BBOX: this.map.getBounds().toBBoxString()
+      }, this.defaultWmsParams, params)
+      AjaxUtils.get4JsonDataByUrl(WMS_URL, wmsParams, (res) => {
+        resolve(res.data)
+      })
     })
   }
 
diff --git a/src/components/panel/topicSearch/SewersSearch.vue b/src/components/panel/topicSearch/SewersSearch.vue
index 03c28d5..c6fe249 100644
--- a/src/components/panel/topicSearch/SewersSearch.vue
+++ b/src/components/panel/topicSearch/SewersSearch.vue
@@ -83,7 +83,7 @@
 // 寮曞叆缁勪欢鍐呭
 import SewersAnalysis from '@components/panel/topicSearch/SewersSelect/SewersAnalysis'
 import SewersHistory from '@components/panel/topicSearch/SewersSelect/SewersHistory'
-import { fitBounds, highlight } from '../../helpers/LocateHelper'
+import { fitBounds, highlight, locate } from '../../helpers/LocateHelper'
 
 export default {
   name: 'SewersSearch',
@@ -162,12 +162,11 @@
       }
     },
     handleLocation (val, index) {
-      console.log(this.form.dataType)
       // console.log(val)
       this.activeNum = index
       // layer && layer.openPopup()
-      fitBounds(val, this.form.dataType.code)
-      highlight(val, this.form.dataType)
+      const config = this.form.dataType
+      locate(val, config)
     },
     btnAffiliatedFacilities (val, index) {
       this.activeNum = index
diff --git a/src/conf/Constants.js b/src/conf/Constants.js
index 0935f69..2b89144 100644
--- a/src/conf/Constants.js
+++ b/src/conf/Constants.js
@@ -40,14 +40,14 @@
   pipeline: '绠$嚎',
   manhole: '绐ㄤ簳',
   valve: '闃�闂�',
-  pipegallery: '绠″粖锛堝甫锛�',
-  piperack: '绠℃灦锛堝ⅸ锛�',
+  pipegallery: '绠″粖(甯�)',
+  piperack: '绠℃灦(澧�)',
   tee: '涓夐��',
   fourlink: '鍥涢��',
   elbow: '寮ご',
   raingate: '闆ㄧ瀛�',
   firedike: '闃茬伀鍫�',
-  collectingbasin: '闆嗘按姹狅紙缃愶級',
+  collectingbasin: '闆嗘按姹�(缃�)',
   dischargeport: '鎺掓斁鍙�',
   overflowweir: '婧㈡祦鍫�',
   oilseparator: '闅旀补姹�',
@@ -64,18 +64,18 @@
   pipenetwork: {
     // 绠$綉
     name: '鍚嶇О',
-    LINENUMTYPE: '绠$嚎绫诲瀷',
-    PIPENAME: '绠$嚎鍚嶇О',
-    MEDIUMTYPE: '杈撻�佷粙璐�',
-    LENGTH: '闀垮害(m)',
-    STARTPOSNAME: '璧风偣浣嶇疆鍚嶇О',
-    ENDPOSNAME: '缁堢偣浣嶇疆鍚嶇О',
-    BURIEDTIME: '鍩嬭鏃堕棿',
-    COATINGMATERIAL: '闃茶厫鐘跺喌',
-    INSERVICETIME: '鎶曚骇鏃堕棿',
-    UNITNAME: '鎵�灞炲崟浣嶅悕绉�',
-    ORGNAME: '鎵�灞炰紒涓氬悕绉�',
-    OPERATIONALSTATUS: '杩愯鐘舵��'
+    linenumtype: '绠$嚎绫诲瀷',
+    pipename: '绠$嚎鍚嶇О',
+    mediumtype: '杈撻�佷粙璐�',
+    length: '闀垮害(m)',
+    startposname: '璧风偣浣嶇疆鍚嶇О',
+    endposname: '缁堢偣浣嶇疆鍚嶇О',
+    buriedtime: '鍩嬭鏃堕棿',
+    coatingmaterial: '闃茶厫鐘跺喌',
+    inservicetime: '鎶曚骇鏃堕棿',
+    unitname: '鎵�灞炲崟浣嶅悕绉�',
+    orgname: '鎵�灞炰紒涓氬悕绉�',
+    operationalstatus: '杩愯鐘舵��'
   },
   // 绠$嚎
   pipeline: {
@@ -96,74 +96,191 @@
   },
   // 绐ㄤ簳
   manhole: {
+    wellid: '浜曠紪鍙�',
+    wellname: '浜曞悕绉�',
     type: '绫诲瀷',
     wellmaterial: '浜曠洊鏉愯川',
+    spesize: '浜曠洊鐩村緞(mm)',
+    welldeepth: '绐ㄤ簳娣卞害(m)',
+    wellneckheight: '浜曡剸楂樺害(cm)',
     havesafetynet: '鏄惁鏈夊畨鍏ㄧ綉',
     datasource: '鏁版嵁鏉ユ簮',
     operationalstatus: '杩愯鐘舵��'
   },
   // 闃�闂�
   valve: {
+    pointnumber: '娴嬬偣缂栧彿',
+    devicecode: '闃�闂ㄧ紪鐮�',
+    devicename: '闃�闂ㄥ悕绉�',
     valvetype: '闃�闂ㄧ被鍨�',
+    manufmodel: '鍒堕�犲瀷鍙�',
+    assetmanufact: '璧勪骇鍒堕�犲晢',
+    startdate: '鎶曠敤鏃ユ湡',
+    factorytime: '鍑哄巶鏃堕棿',
+    nominaldiamet: '鍏О鐩村緞(mm)',
+    nominalpress: '鍏О鍘嬪姏(MPa)',
+    operatingtype: '鎺у埗鏂瑰紡',
     executagencyf: '鎵ц鏈烘瀯褰㈠紡',
-    datasource: '鏁版嵁鏉ユ簮',
+    valveplatem: '闃�鏉�(鑺�)鏉愯川',
+    installunit: '瀹夎鍗曚綅',
+    sealform: '瀵嗗皝褰㈠紡',
+    constprange: '瀹氬帇鑼冨洿(MPa)',
+    valvebodytype: '闃�浣撳舰寮�',
+    spoolform: '闃�鑺舰寮�',
+    nominald: '鍏О閫氬緞(mm)',
+    leakaglevel: '娉勬紡绛夌骇(绾�)',
+    circulcap: '娴侀�氳兘鍔�(m3/h)',
+    workpress: '宸ヤ綔鍘嬪姏(MPa)',
+    worktemp: '宸ヤ綔娓╁害(鈩�)',
+    flowcharact: '娴侀噺鐗规��',
+    spooldiamet: '闃�鑺洿寰�(mm)',
+    valvegroupname: '鎵�灞為榾缁�',
+    valvegroupcode: '闃�缁勭紪鍙�',
     operationalstatus: '杩愯鐘舵��'
   },
   // 绠″粖锛堝甫锛�
   pipegallery: {
+    pipecorridname: '绠″粖(甯�)鍚嶇О',
+    pipecorridcode: '绠″粖(甯�)缂栫爜',
+    pipename: '鎵�灞炵绾垮悕绉�',
+    pipecorridsname: '璧风偣绠″粖(甯�)鍚嶇О',
+    pipecorridename: '缁堢偣绠″粖(甯�)鍚嶇О',
     datasource: '鏁版嵁鏉ユ簮',
     operationalstatus: '杩愯鐘舵��'
   },
   // 绠℃灦锛堝ⅸ锛�
   piperack: {
+    piperackcode: '绠℃灦(澧�)缂栫爜',
+    piperackname: '绠℃灦(澧�)鍚嶇О',
+    pipename: '鎵�灞炵绾垮悕绉�',
     piperacktype: '绫诲瀷',
-    piperackst: '绠℃灦(澧╋級缁撴瀯绫诲瀷',
+    piperackst: '绠℃灦(澧�)缁撴瀯绫诲瀷',
     longitudinalpiperack: '鏄惁鏈夌旱鍚戞灦',
     datasource: '鏁版嵁鏉ユ簮',
     operationalstatus: '杩愯鐘舵��'
   },
   // 涓夐��
   tee: {
-    teetype: '涓夐�氱被鍨�',
+    code: '涓夐�氱紪鐮�',
+    branchdiamet: '鏀嚎鐩村緞(mm)',
+    branchthickness: '鏀嚎澹佸帤(mm)',
+    exportdiamet: '鍑哄彛鐩村緞(mm)',
+    exportthickness: '鍑哄彛澹佸帤(mm)',
     exportconnectm: '鍑哄彛杩炴帴鏂瑰紡',
     entrycontype: '鍏ュ彛杩炴帴鏂瑰紡',
+    entrdiamet: '鍏ュ彛鐩村緞',
+    entrthick: '鍏ュ彛澹佸帤',
     teem: '涓夐�氭潗鏂�',
+    puttingindate: '鎶曠敤鏃ユ湡',
+    manufactdate: '鐢熶骇鏃ユ湡',
+    pressuregrade: '鍘嬪姏绛夌骇(mpa)',
+    constructunit: '鏂藉伐鍗曚綅',
+    supervisionunit: '鐩戠悊鍗曚綅',
+    detectunit: '妫�娴嬪崟浣�',
+    manufacturer: '鐢熶骇鍘傚晢',
     branchconntype: '鏀杩炴帴绫诲瀷',
+    installdate: '瀹夎鏃ユ湡',
+    strengthgrade: '寮哄害绛夌骇',
     operationalstatus: '杩愯鐘舵��'
+
   },
   // 鍥涢��
   fourlink: {
+    code: '鍥涢�氱紪鐮�',
     fourtype: '鍥涢�氱被鍨�',
-    exportcontype: '鍑哄彛杩炴帴鏂瑰紡',
     entrycontype: '鍏ュ彛杩炴帴鏂瑰紡',
+    entrydiamet: '鍏ュ彛鐩村緞(mm)',
+    entrythick: '鍏ュ彛澹佸帤(mm)',
+    branchdiamet1: '鏀嚎1鐩村緞(mm)',
+    branchthickness1: '鏀嚎1澹佸帤(mm)',
+    branchdiamet2: '鏀嚎2鐩村緞(mm)',
+    branchthickness2: '鏀嚎2澹佸帤(mm)',
+    exportdiamet: '鍑哄彛鐩村緞(mm)',
+    exportthickness: '鍑哄彛澹佸帤(mm)',
+    exportcontype: '鍑哄彛杩炴帴鏂瑰紡',
     fourm: '鍥涢�氭潗鏂�',
+    appdate: '鎶曠敤鏃ユ湡',
+    manufactdate: '鐢熶骇鏃ユ湡',
+    pressuregrade: '鍘嬪姏绛夌骇(mpa)',
+    constructunit: '鏂藉伐鍗曚綅',
+    supervisionunit: '鐩戠悊鍗曚綅',
+    detectunit: '妫�娴嬪崟浣�',
+    manufacturer: '鐢熶骇鍘傚晢',
     branchconntype1: '鏀嚎1杩炴帴鏂瑰紡',
     branchconntype2: '鏀嚎2杩炴帴鏂瑰紡',
+    installdate: '瀹夎鏃ユ湡',
     operationalstatus: '杩愯鐘舵��'
   },
   // 寮ご
   elbow: {
+    pointnumber: '娴嬬偣缂栧彿',
+    code: '寮ご缂栫爜',
+    pipename: '鎵�灞炵绾垮悕绉�',
+    pipecode: '鎵�灞炵绾跨紪鐮�',
+    bendangle: '寮ご瑙掑害',
     elbowtype: '寮ご绫诲瀷',
     elbowmaterial: '寮ご鏉愭枡',
     anticorros: '闃茶厫鏉愭枡',
     entryconntype: '鍏ュ彛杩炴帴鏂瑰紡',
     outletconntype: '鍑哄彛杩炴帴鏂瑰紡',
+    entrdiameter: '鍏ュ彛鐩村緞(mm)',
+    entrwallthick: '鍏ュ彛澹佸帤(mm)',
+    exitdiameter: '鍑哄彛鐩村緞(mm)',
+    exitwallthick: '鍑哄彛澹佸帤(mm)',
+    classes: '鍘嬪姏绛夌骇(mpa)',
+    unitname: '鎵�灞炲崟浣嶅悕绉�',
+    unitcode: '鎵�灞炲崟浣嶄唬鐮�',
+    productdate: '鐢熶骇鏃ユ湡',
+    installationdate: '瀹夎鏃ユ湡',
+    puttingindate: '鎶曠敤鏃ユ湡',
+    constructunit: '鏂藉伐鍗曚綅',
+    supervisionunit: '鐩戠悊鍗曚綅',
+    detectionunit: '妫�娴嬪崟浣�',
+    elbowcurvrad: '鏇茬巼鍗婂緞(d)',
+    manufacturer: '鐢熶骇鍘傚晢',
+    bendlength: '寮ご闀垮害',
+    benddirection: '寮ご鏂瑰悜',
+    pipewalldiameter: '绠¢亾澶栧鐩村緞(mm)',
+    strengthgrade: '寮哄害绛夌骇',
+    curvelength: '鏇茬嚎闀�',
+    tangentlength: '鍒囩嚎闀�',
+    vectordistance: '澶栫煝璺�',
+    mintemperature: '鏈�浣庤璁℃俯搴�',
+    maxtemperature: '鏈�楂樿璁℃俯搴�',
     operationalstatus: '杩愯鐘舵��'
   },
   // 闆ㄧ瀛�
   raingate: {
+    raingrateid: '闆ㄧ瀛愮紪鍙�',
+    rgshape: '闆ㄧ瀛愬舰鐘�',
+    rgmaterial: '闆ㄧ瀛愭潗璐�',
+    spesize: '闆ㄧ瀛愬昂瀵�(cm)',
+    rgdeepth: '闆ㄧ瀛愬帤搴�(mm)',
     operationalstatus: '杩愯鐘舵��'
   },
   // 闃茬伀鍫�
   firedike: {
+    name: '鍚嶇О',
+    code: '缂栫爜',
+    ownertanks: '鎵�灞炵綈鍖�',
+    tankscode: '缃愬尯缂栧彿',
     operationalstatus: '杩愯鐘舵��'
   },
   // 闆嗘按姹狅紙缃愶級
   collectingbasin: {
+    companyname: '鍚嶇О',
+    code: '缂栫爜',
+    mediumtype: '浠嬭川',
+    size: '灏哄',
+    volume: '瀹圭Н',
+    ownersite: '鎵�灞炵珯鍦�',
+    startdate: '鎶曠敤鏃ユ湡',
     operationalstatus: '杩愯鐘舵��'
   },
   // 鎺掓斁鍙�
   dischargeport: {
+    name: '鍚嶇О',
+    code: '缂栫爜',
     mediumtype: '浠嬭川',
     pfktype: '鎺掓斁鍙g被鍨�',
     level: '绾у埆',
@@ -173,41 +290,98 @@
 
   // 婧㈡祦鍫�
   overflowweir: {
+    name: '鍚嶇О',
+    code: '缂栫爜',
     mediumtype: '闃叉孩浠嬭川',
+    material: '鏉愯川',
+    height: '楂�(m)',
+    length: '闀垮害(m)',
     operationalstatus: '杩愯鐘舵��'
   },
   // 闅旀补姹�
   oilseparator: {
+    poolname: '鍚嶇О',
+    no: '缂栫爜',
+    size: '灏哄',
+    volume: '瀹圭Н',
     operationalstatus: '杩愯鐘舵��'
   },
   // 姘翠綋
   pointhydrology: {
+    name: '鍚嶇О',
+    telphonenumber: '鑱旂郴鏂瑰紡',
+    velocityaverage: '骞村钩鍧囨祦閫�(m/s)',
+    erosiondepthavg: '骞村钩鍧囧啿鍒锋繁搴�',
+    velocitymax: '鏈�澶ч�熷害(m/s)',
+    velocitymin: '鏈�灏忛�熷害(m/s)',
+    highestwaterlevel: '鏈�楂樻按浣嶏紙m锛�',
+    minwaterlevel: '鏈�浣庢按浣嶏紙m锛�',
+    maximumflux: '鏈�澶ф祦閲�',
+    erosiondepthmax: '鏈�澶у啿鍒锋繁搴�',
+    flowdirection: '娌虫祦娴佸悜',
+    length: '闀垮害锛坢锛�',
     hydrotype: '姘寸郴绫诲瀷',
     drinkingresourceind: '鏄惁鏄ギ鐢ㄦ按婧�',
     seasonalriverind: '鏄惁鏄鑺傛�ф渤娴�',
+    highriskmonth: '楂橀闄╂湀浠�',
     reservoirlocation: '姘村簱浣嶇疆',
+    coverdepth: '绠¢亾鍩嬫繁',
+    gbcode: '鍥芥爣鐮�',
     operationalstatus: '杩愯鐘舵��'
   },
   // 鑷劧淇濇姢鍖�
   pointpreservationzone: {
-    datasource: '鏁版嵁鏉ユ簮'
+    name: '鍚嶇О',
+    datasource: '鏁版嵁鏉ユ簮',
+    type: '淇濇姢鍖虹被鍨�',
+    structureoridsitearea: '鍗犲湴闈㈢Н',
+    preservationobject: '涓昏淇濇姢瀵硅薄',
+    adminzonename: '琛屾斂闅跺睘'
   },
   // 鍖婚櫌
   hospital: {
+    companyname: '鍖婚櫌鍚嶇О',
+    telephone: '鑱旂郴鐢佃瘽',
     hospitalleaval: '鍖婚櫌璧勮川绛夌骇',
+    maxinjurednumber: '鍙绾充激鍛�',
+    sickbednumber: '鐥呭簥鏁伴噺',
+    doctornumber: '鍖荤敓鏁伴噺',
+    nursenumber: '鎶ゅ+鏁伴噺',
+    ambulancenumber: '鏁戞姢杞︽暟閲�',
     subtypecd: '鍖婚櫌绫诲瀷',
+    address: '鍗曚綅鍦板潃',
+    hyperbaricoxygencabin: '楂樺帇姘ц埍',
+    distance: '璺濈',
     datasource: '鏁版嵁鏉ユ簮'
   },
   // 绀句細涓撲笟搴旀�ユ晳鎻撮槦浼�
   emergencyres: {
+    name: '鍚嶇О',
+    numberteam: '鏁戞彺浜烘暟',
+    rescueobject: '涓昏鏁戞彺瀵硅薄',
+    resperson: '璐熻矗浜�',
+    telephone: '鑱旂郴鐢佃瘽',
     datasource: '鏁版嵁鏉ユ簮'
   },
   // 搴旀�ョ墿璧�
   emergencyesources: {
+    resourcesname: '鐗╄祫鍚嶇О',
+    resourcesnumber: '鐗╄祫鏁伴噺',
+    ownedstatus: '鏄惁鑷湁鐗╄祫',
+    sourceschargestandard: '鐗╄祫鏀惰垂鏍囧噯',
+    resperson: '璐熻矗浜�',
+    telephone: '鑱旂郴鐢佃瘽',
     datasource: '鏁版嵁鏉ユ簮'
   },
   // 娑堥槻鍗曚綅
   firefightingunit: {
+    companyname: '娑堥槻鍗曚綅鍚嶇О',
+    pumpernumber: '娑堥槻杞︽暟閲�',
+    contacttelephone: '鑱旂郴鐢佃瘽',
+    address: '鍗曚綅鍦板潃',
+    supportradius: '鏈嶅姟鍗婂緞',
+    ficroute: '浜ら�氳矾绾�',
+    distance: '璺濈',
     datasource: '鏁版嵁鏉ユ簮'
   }
 }
diff --git a/src/utils/utils.js b/src/utils/utils.js
index 304c202..31e0afa 100644
--- a/src/utils/utils.js
+++ b/src/utils/utils.js
@@ -27,7 +27,7 @@
  * 鑴夊啿鏁堟灉
  */
 export function pulseEffect (xy) {
-  let times = 50
+  let times = 1000
   const colors = ['#00f100', '#ff0000']
   // 鎻掍欢 鏁堟灉瀹炵幇
   var pulsingIcon = window.L.icon.pulse({

--
Gitblit v1.8.0