ソースを参照

Merge branch 'master' into mock

# Conflicts:
#	src/views/gis/layout/index.vue
CzRger 1 年間 前
コミット
97e522eb16

+ 6 - 0
src/style/cus.scss

@@ -378,6 +378,12 @@
     .el-table-v2__body {
       .el-virtual-scrollbar {
         width: 4px !important;
+        right: 0 !important;
+        opacity: 1 !important;
+        .el-scrollbar__thumb {
+          background-color: #8FFFFF !important;
+          opacity: 1 !important;
+        }
       }
       .el-table-v2__row {
         border: none;

+ 1 - 0
src/views/gis/business/clue/index.vue

@@ -308,6 +308,7 @@ export default defineComponent({
 <style scoped lang="scss">
 @import "../main";
 .clue {
+  width: 410px;
   flex: 1;
   padding: 20px 0 10px 12px;
   display: flex;

+ 6 - 0
src/views/gis/business/common/VideoPlayKeda.vue

@@ -78,6 +78,12 @@ export default defineComponent({
 });
 </script>
 <style scoped lang="scss">
+.drag {
+  color: red;
+  :deep(.vdr-stick-tm), :deep(.vdr-stick-mr), :deep(.vdr-stick-bm), :deep(.vdr-stick-ml) {
+    display: none;
+  }
+}
 .video-play-keda {
   width: 100%;
   height: 100%;

+ 2 - 3
src/views/gis/business/common/business-main.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="business-main-com">
     <div class="business-main-com_expend __hover" :class="{'business-main-com_expend-not': !expend}" @click="expend = !expend"></div>
-    <div class="business-main-com_content __box-shadow" v-show="expend">
+    <div class="business-main-com_content __box-shadow __background-grid" v-show="expend">
       <div class="business-main-com_content-head">
         {{title}}
         <div class="close __hover">
@@ -58,7 +58,7 @@ export default defineComponent({
   position: fixed;
   left: 10px;
   top: 10px;
-  width: 410px;
+  width: auto;
   height: calc(100% - 20px);
   .business-main-com_expend {
     width: 20px;
@@ -77,7 +77,6 @@ export default defineComponent({
   .business-main-com_content {
     width: 100%;
     height: 100%;
-    background-color: #FFFFFF;
     display: flex;
     flex-direction: column;
     .business-main-com_content-head {

+ 1 - 0
src/views/gis/business/enterprise/index.vue

@@ -251,6 +251,7 @@ export default defineComponent({
 <style scoped lang="scss">
 @import "../main";
 .enterprise {
+  width: 410px;
   flex: 1;
   padding: 0 12px 10px 12px;
   display: flex;

+ 1 - 0
src/views/gis/business/power/index.vue

@@ -237,6 +237,7 @@ export default defineComponent({
 <style scoped lang="scss">
 @import "../main";
 .unable {
+  width: 410px;
   flex: 1;
   padding: 0 12px 10px 12px;
   display: flex;

+ 1 - 0
src/views/gis/business/resources/index.vue

@@ -168,6 +168,7 @@ export default defineComponent({
 <style scoped lang="scss">
 @import "../main";
 .resources {
+  width: 410px;
   flex: 1;
   padding: 0 12px 10px 12px;
   display: flex;

+ 1 - 0
src/views/gis/business/situation/index.vue

@@ -319,6 +319,7 @@ export default defineComponent({
 <style scoped lang="scss">
 @import "../main";
 .situation {
+  width: 410px;
   flex: 1;
   padding: 0 0 10px 12px;
   display: flex;

+ 117 - 105
src/views/gis/layout/index.vue

@@ -85,27 +85,27 @@
         </template>
       </div>
       <div v-if="qyParams.qyInfo.tab === '1'" class="qy-main-content-1">
-        <div>企业名称:{{qyParams.qyInfo[qyParams.qyInfo.tab].name}}</div>
-        <div>企业法人:{{qyParams.qyInfo[qyParams.qyInfo.tab].people}}</div>
-        <div>统一社会信用代码:{{qyParams.qyInfo[qyParams.qyInfo.tab].number}}</div>
-        <div>经营地址:{{qyParams.qyInfo[qyParams.qyInfo.tab].address}}</div>
+        <div>企业名称{{qyParams.qyInfo[qyParams.qyInfo.tab].name}}</div>
+        <div>企业法人{{qyParams.qyInfo[qyParams.qyInfo.tab].people}}</div>
+        <div>统一社会信用代码{{qyParams.qyInfo[qyParams.qyInfo.tab].number}}</div>
+        <div>经营地址{{qyParams.qyInfo[qyParams.qyInfo.tab].address}}</div>
       </div>
       <div v-else-if="qyParams.qyInfo.tab === '5'" class="qy-main-content-5">
         <div class="qy-main-content-5-radius">
           周边范围:
-          <div class="radius-min __hover" @click="qyParams.qyInfo[qyParams.qyInfo.tab].radius > 1 ? (qyParams.qyInfo[qyParams.qyInfo.tab].radius--) : undefined">-</div>
+          <div class="radius-min __hover" @click="qyParams.qyInfo[qyParams.qyInfo.tab].radius > 1 ? (qyParams.qyInfo[qyParams.qyInfo.tab].radius--, handleRangeInput(qyParams.qyInfo[qyParams.qyInfo.tab].radius)) : undefined">-</div>
           <CusFormColumn
               link="number"
               label=""
-              :min="1"
-              :max="60"
               :clearable="false"
               v-model:param="qyParams.qyInfo[qyParams.qyInfo.tab].radius"
+              @input="handleRangeInput"
               @blur="handleRangeBlur"/>
-          <div class="radius-max __hover" @click="qyParams.qyInfo[qyParams.qyInfo.tab].radius < 60 ? (qyParams.qyInfo[qyParams.qyInfo.tab].radius++) : undefined">+</div>
+          <div class="radius-max __hover" @click="qyParams.qyInfo[qyParams.qyInfo.tab].radius < 60 ? (qyParams.qyInfo[qyParams.qyInfo.tab].radius++, handleRangeInput(qyParams.qyInfo[qyParams.qyInfo.tab].radius)) : undefined">+</div>
           km
-          <div class="submit __hover" @click="onRadiusSubmit">确定</div>
+          <div class="submit __hover" :style="`cursor: ${qyParams.qyInfo[qyParams.qyInfo.tab].radiusTips ? 'not-allowed' : ''};`" @click="onRadiusSubmit">确定</div>
           <div class="reset __hover" @click="onRadiusReset">重置</div>
+          <div class="tips" v-if="qyParams.qyInfo[qyParams.qyInfo.tab].radiusTips"><SvgIcon name="tips" size="16" color="#FFB878"/>请输入1~60的正整数!</div>
         </div>
         <div class="qy-main-content-5-table" :style="`height: ${25 + (qyParams.qyInfo[qyParams.qyInfo.tab].tableData.length > 5 ? 5 * 25 : qyParams.qyInfo[qyParams.qyInfo.tab].tableData.length * 25)}px;`" v-loading="qyParams.qyInfo[qyParams.qyInfo.tab].loading" element-loading-background="rgba(0, 0, 0, 0.3)">
           <el-auto-resizer>
@@ -114,7 +114,7 @@
                   :width="width"
                   :height="height"
                   :data="qyParams.qyInfo[qyParams.qyInfo.tab].tableData"
-                  :center="qyParams.qyInfo['5'].center"
+                  :center="qyParams.qyInfo.coordinates"
               />
               <!--                <el-table-v2-->
               <!--                    class="__gis-overlay_table-v2"-->
@@ -148,9 +148,9 @@
       </div>
       <div class="sb-item">
         <div class="sb-item-label">状态:</div>
-        <div class="sb-item-value">{{qyParams.sbInfo?.online === '0' ? '在线' : '离线'}}</div>
+        <div class="sb-item-value">{{qyParams.sbInfo?.online == '1' ? '在线' : '离线'}}</div>
       </div>
-      <div class="play-button __hover" @click="showVideo = true">视频调阅</div>
+      <div class="play-button __hover" @click="onPlay">视频调阅</div>
     </div>
   </div>
   <GisDefaultDom ref="ref_gisDefault"/>
@@ -242,10 +242,7 @@ export default defineComponent({
         analysisCircle: <any>null,
         tempSbFeature: <any>null,
         sbOverlay: <any>null,
-        sbInfo: <any>{
-          name: '505县道新安村路口1-枪机-0110580',
-          code: '46044123124125125',
-        },
+        sbInfo: <any>{},
       },
       videoLayout: {
         width: 640,
@@ -282,9 +279,7 @@ export default defineComponent({
             if (f.get('featureType') === 'qy') {  //  企业
               //  恢复上一个要素的样式
               if (f.getId() !== state.qyParams.tempFeature?.getId()) {
-                state.qyParams.tempFeature?.get('resetStyle')?.()
-                state.qyParams.analysisSource?.clear()
-                //  新的要素
+                onCloseQy()
                 if (f.get('isAnalysis')) {
                   f.setStyle(f.get('analysisActiveStyle'))
                 } else {
@@ -294,8 +289,14 @@ export default defineComponent({
                 store.dispatch('gis/LOAD_ACTIVE_QY_ID', f.getId())
                 //  备份新的要素
                 state.qyParams.tempFeature = f
+                state.qyParams.overlay.setPosition(f.getGeometry().getCoordinates())
+              } else {
+                if (state.qyParams.overlay.getPosition() === undefined) {
+                  state.qyParams.overlay.setPosition(f.getGeometry().getCoordinates())
+                } else {
+                  state.qyParams.overlay.setPosition(undefined)
+                }
               }
-              state.qyParams.overlay.setPosition(f.getGeometry().getCoordinates())
             } else if (f.get('featureType') === 'sb') { //  设备
               //  恢复上一个要素的样式
               if (f.getId() !== state.qyParams.tempSbFeature?.getId()) {
@@ -418,7 +419,8 @@ export default defineComponent({
                   radius: 10,
                   center: feat.getGeometry().getCoordinates(),
                   tableData: [],
-                  loading: false
+                  loading: false,
+                  radiusTips: false
                 },
               }
               feat.set('info', obj)
@@ -495,6 +497,10 @@ export default defineComponent({
       state.qyParams.qyInfo = {}
       state.qyParams.analysisSource?.clear()
       store.dispatch('gis/LOAD_ACTIVE_QY_ID', null)
+      state.qyParams.sbOverlay?.setPosition(undefined)
+      state.qyParams.tempSbFeature?.get('resetStyle')()
+      state.qyParams.tempSbFeature = null
+      state.qyParams.sbInfo = {}
     }
     const onCloseSb = () => {
       state.qyParams.sbOverlay?.setPosition(undefined)
@@ -502,29 +508,24 @@ export default defineComponent({
       state.qyParams.tempSbFeature = null
     }
     const handleRangeBlur = () => {
-      if (!state.qyParams.qyInfo['5'].radius) {
-        state.qyParams.qyInfo['5'].radius = 10
-      }
+      // if (!state.qyParams.qyInfo['5'].radius) {
+      //   state.qyParams.qyInfo['5'].radius = 10
+      // }
       // setCircle()
     }
-    const setCircle = () => {
-      const transformProjection = (arr, EPSG, EPSG2) => {
-        try {
-          if (EPSG2 && EPSG) {
-            if (arr && arr.length === 4) {
-              return proj.transformExtent(arr, EPSG, EPSG2);
-            } else {
-              return proj.transform(arr, EPSG, EPSG2);
-            }
-          }
-          return undefined;
-        } catch (e) {
-          console.error(e);
+    const handleRangeInput = (v) => {
+      const nV = Number(v)
+      if (!isNaN(Number(nV))) {
+        if (nV < 1 || nV > 60) {
+          state.qyParams.qyInfo['5'].radiusTips = true
+        } else {
+          state.qyParams.qyInfo['5'].radiusTips = false
         }
       }
-      //  @ts-ignore
-      state.qyParams.analysisCircle.getGeometry().setRadius(transformProjection([state.qyParams.qyInfo['5'].radius * 1000, 0], 'EPSG:3857', 'EPSG:4326')[0] - transformProjection([0, 0], 'EPSG:3857', 'EPSG:4326')[0],'XY')
-      state.qyParams.analysisCircle.getGeometry().setCenter(state.qyParams.qyInfo.coordinates)
+    }
+    const setCircle = () => {
+      const circle = turf.circle(state.qyParams.qyInfo.coordinates, state.qyParams.qyInfo['5'].radius, {steps: 1024, units: 'kilometers'})
+      state.qyParams.analysisCircle.setGeometry(new geom.Polygon(circle.geometry.coordinates))
     }
     const onRadiusSubmit = () => {
       if (!state.qyParams.analysisLayer) {
@@ -545,79 +546,80 @@ export default defineComponent({
             })
           ]
         });
-        state.qyParams.analysisCircle = new ol.Feature({
-          geometry: new geom.Circle(state.qyParams.qyInfo.coordinates, 0),
-        })
+        state.qyParams.analysisCircle = new ol.Feature()
         state.qyParams.analysisSource.addFeature(state.qyParams.analysisCircle)
         setCircle()
         state.map.addLayer(state.qyParams.analysisLayer)
       }
-      state.qyParams.analysisSource.clear()
-      state.qyParams.analysisSource.addFeature(state.qyParams.analysisCircle)
-      setCircle()
-      state.qyParams.qyInfo['5'].tableData = []
-      state.qyParams.qyInfo['5'].loading = true
-      that.$api.deviceQuery({
-        lon: state.qyParams.qyInfo.coordinates[0],
-        lat: state.qyParams.qyInfo.coordinates[1],
-        radius: state.qyParams.qyInfo['5'].radius
-      }).then((res: any) => {
-        // console.log(res)
-        // for (let i = 0; i < 500; i++) {
-        //   state.qyParams.qyInfo['5'].tableData.push({
-        //     name: '505县道新安村路口1-枪机-0110580_' + i,
-        //     code: '46044123124125125',
-        //     status: i % 3 === 0 ? '1' : '0',
-        //     typeName: '公安类',
-        //     type: i % 3 === 0 ? 'galsb' : (i % 3 === 1 ? 'shlsb' : 'mylsb'),
-        //     wkt: `POINT(${that.$util.randomNum(108.738329, 110.912130, 6)} ${that.$util.randomNum(18.154784, 20, 6)})`
-        //   })
-        // }
-        if (res.resp_code === 0 && res.datas?.length > 0) {
-          console.log(res.datas?.length)
-          const features: any = []
-          res.datas?.forEach(v => {
-            try {
-              const feat: any = new format.WKT().readFeature(`POINT(${v.longitude} ${v.latitude})`)
-              let type = ''
-              if (v.type === '公安类') {
-                type = 'galsb'
-              } else if (v.type === '社会类') {
-                type = 'shlsb'
-              } else if (v.type === '民用类') {
-                type = 'mylsb'
-              }
-              feat.set('defaultStyle', SbStyle.sbStyle(type))
-              feat.set('activeStyle', [...CommonStyle.activeStyle(), ...SbStyle.sbStyle(type)])
-              feat.set('analysisStyle', [...CommonStyle.analysisStyle(), ...SbStyle.sbStyle(type)])
-              feat.set('analysisActiveStyle', [...CommonStyle.activeStyle(), ...CommonStyle.analysisStyle(), ...SbStyle.sbStyle(type)])
-              feat.set('isAnalysis', true)
-              feat.set('resetStyle', () => {
-                if (feat.get('isAnalysis')) {
-                  feat.setStyle(feat.get('analysisStyle'))
-                } else {
-                  feat.setStyle(feat.get('defaultStyle'))
-                }
-              })
-              feat.setStyle(feat.get('analysisStyle'))
-              feat.set('featureType', 'sb')
-              feat.set('info', v)
-              feat.setId(v.deviceid)
-              features.push(feat)
-              state.qyParams.qyInfo['5'].tableData.push(v)
-            } catch (e) {
-              console.error('异常设备', v)
-            }
-          })
-          state.qyParams.analysisSource.addFeatures(features)
-        }
-        state.qyParams.qyInfo['5'].loading = false
-      }).catch(() => {
+      if (!state.qyParams.qyInfo['5'].radiusTips) {
+        state.qyParams.analysisSource.clear()
+        state.qyParams.analysisSource.addFeature(state.qyParams.analysisCircle)
+        setCircle()
+        state.qyParams.qyInfo['5'].tableData = []
         state.qyParams.qyInfo['5'].loading = true
-      })
+        that.$api.deviceQuery({
+          lon: state.qyParams.qyInfo.coordinates[0],
+          lat: state.qyParams.qyInfo.coordinates[1],
+          radius: state.qyParams.qyInfo['5'].radius
+        }).then((res: any) => {
+          // console.log(res)
+          // for (let i = 0; i < 500; i++) {
+          //   state.qyParams.qyInfo['5'].tableData.push({
+          //     name: '505县道新安村路口1-枪机-0110580_' + i,
+          //     code: '46044123124125125',
+          //     status: i % 3 === 0 ? '1' : '0',
+          //     typeName: '公安类',
+          //     type: i % 3 === 0 ? 'galsb' : (i % 3 === 1 ? 'shlsb' : 'mylsb'),
+          //     wkt: `POINT(${that.$util.randomNum(108.738329, 110.912130, 6)} ${that.$util.randomNum(18.154784, 20, 6)})`
+          //   })
+          // }
+          if (res.resp_code === 0 && res.datas?.length > 0) {
+            console.log(res.datas?.length)
+            const features: any = []
+            res.datas?.forEach(v => {
+              try {
+                const feat: any = new format.WKT().readFeature(`POINT(${v.longitude} ${v.latitude})`)
+                let type = ''
+                if (v.type === '公安类') {
+                  type = 'galsb'
+                } else if (v.type === '社会类') {
+                  type = 'shlsb'
+                } else if (v.type === '民用类') {
+                  type = 'mylsb'
+                }
+                feat.set('defaultStyle', SbStyle.sbStyle(type))
+                feat.set('activeStyle', [...CommonStyle.activeStyle(), ...SbStyle.sbStyle(type)])
+                feat.set('analysisStyle', [...CommonStyle.analysisStyle(), ...SbStyle.sbStyle(type)])
+                feat.set('analysisActiveStyle', [...CommonStyle.activeStyle(), ...CommonStyle.analysisStyle(), ...SbStyle.sbStyle(type)])
+                feat.set('isAnalysis', true)
+                feat.set('resetStyle', () => {
+                  if (feat.get('isAnalysis')) {
+                    feat.setStyle(feat.get('analysisStyle'))
+                  } else {
+                    feat.setStyle(feat.get('defaultStyle'))
+                  }
+                })
+                feat.setStyle(feat.get('analysisStyle'))
+                feat.set('featureType', 'sb')
+                feat.set('info', v)
+                feat.setId(v.deviceid)
+                features.push(feat)
+                state.qyParams.qyInfo['5'].tableData.push(v)
+              } catch (e) {
+                console.error('异常设备', v)
+              }
+            })
+            state.qyParams.analysisSource.addFeatures(features)
+          }
+          state.qyParams.qyInfo['5'].loading = false
+        }).catch(() => {
+          state.qyParams.qyInfo['5'].loading = true
+        })
+      }
     }
     const onRadiusReset = () => {
       state.qyParams.qyInfo['5'].radius = 10
+      state.qyParams.qyInfo['5'].radiusTips = false
       onRadiusSubmit()
     }
     const mockSB1 = () => {
@@ -742,6 +744,7 @@ export default defineComponent({
       onCloseQy,
       onCloseSb,
       handleRangeBlur,
+      handleRangeInput,
       setCircle,
       onRadiusSubmit,
       onRadiusReset,
@@ -1127,6 +1130,15 @@ export default defineComponent({
             color: #8FFFFF;
             margin-left: 8px;
           }
+          .tips {
+            margin-left: auto;
+            display: flex;
+            align-items: center;
+            color: #FFB878;
+            .svg-icon {
+              margin-right: 2px;
+            }
+          }
         }
         .qy-main-content-5-table {
           margin-top: 10px;

+ 22 - 34
src/views/gis/layout/tools/analysis.vue

@@ -121,6 +121,7 @@ import {fromCircle} from "ol/geom/Polygon";
 import {unByKey} from "ol/Observable";
 import * as sphere from "ol/sphere";
 import SelectChartCom from "@/views/gis/layout/tools/select-chart.vue";
+import * as turf from "@turf/turf";
 
 export default defineComponent({
   name: '',
@@ -150,7 +151,7 @@ export default defineComponent({
         },
         analysisFeat: <any>null,
         analysisLayer: <any>null,
-        analysisModify: <any>null,
+        // analysisModify: <any>null,
         analysisDraw: <any>null,
         switchType: 'power',
         result: {
@@ -198,9 +199,9 @@ export default defineComponent({
     const initLayer = () => {
       if (state.cusTransfer.analysisLayer) {
         state.cusTransfer.analysisLayer.setVisible(true)
-        if (state.cusTransfer.analysisModify) {
-          props.map.addInteraction(state.cusTransfer.analysisModify);
-        }
+        // if (state.cusTransfer.analysisModify) {
+        //   props.map.addInteraction(state.cusTransfer.analysisModify);
+        // }
         if (state.cusTransfer.analysisDraw) {
           props.map.addInteraction(state.cusTransfer.analysisDraw);
         }
@@ -229,17 +230,17 @@ export default defineComponent({
         });
         state.cusTransfer.analysisLayer.set(layerFlag[0], layerFlag[1])
         props.map.addLayer(state.cusTransfer.analysisLayer);
-        state.cusTransfer.analysisModify = new interaction.Modify({
-          source: state.cusTransfer.analysisSource,
-        });
-        props.map.addInteraction(state.cusTransfer.analysisModify)
-        state.cusTransfer.analysisModify.on('modifyend', evt => {
-          try {
-            const feat = evt.features.item(0)
-            getCircleParams(feat.getGeometry())
-          } catch {
-          }
-        })
+        // state.cusTransfer.analysisModify = new interaction.Modify({
+        //   source: state.cusTransfer.analysisSource,
+        // });
+        // props.map.addInteraction(state.cusTransfer.analysisModify)
+        // state.cusTransfer.analysisModify.on('modifyend', evt => {
+        //   try {
+        //     const feat = evt.features.item(0)
+        //     getCircleParams(feat.getGeometry())
+        //   } catch {
+        //   }
+        // })
 
         let sketch;
         let helpTooltip;
@@ -293,7 +294,7 @@ export default defineComponent({
           props.map.un('pointermove', pointerMoveHandler)
           state.cusTransfer.analysisDraw = null
           state.cusTransfer.analysisFeat = evt.feature
-          getCircleParams(state.cusTransfer.analysisFeat.getGeometry())
+          getCircleParams(evt.feature.getGeometry())
         }
         state.cusTransfer.analysisDraw.on('drawend', drawendHandle);
         const getCircleParams = (circle) => {
@@ -320,21 +321,8 @@ export default defineComponent({
       }
     }
     const  setCircle = () => {
-      const transformProjection = (arr, EPSG, EPSG2) => {
-        try {
-          if (EPSG2 && EPSG) {
-            if (arr && arr.length === 4) {
-              return proj.transformExtent(arr, EPSG, EPSG2);
-            } else {
-              return proj.transform(arr, EPSG, EPSG2);
-            }
-          }
-          return undefined;
-        } catch (e) {
-          console.error(e);
-        }
-      }
-      state.cusTransfer.analysisFeat.getGeometry().setRadius(transformProjection([state.cusTransfer.draw.radius * 1000, 0], 'EPSG:3857', 'EPSG:4326')[0] - transformProjection([0, 0], 'EPSG:3857', 'EPSG:4326')[0],'XY')
+      const circle = turf.circle(state.cusTransfer.draw.center, state.cusTransfer.draw.radius, {steps: 1024, units: 'kilometers'})
+      state.cusTransfer.analysisFeat.setGeometry(new geom.Polygon(circle.geometry.coordinates))
     }
     const initData = () => {
       state.cusTransfer.result.power.data = []
@@ -409,9 +397,9 @@ export default defineComponent({
     })
     onUnmounted(() => {
       state.cusTransfer.analysisLayer.setVisible(false)
-      if (state.cusTransfer.analysisModify) {
-        props.map.removeInteraction(state.cusTransfer.analysisModify);
-      }
+      // if (state.cusTransfer.analysisModify) {
+      //   props.map.removeInteraction(state.cusTransfer.analysisModify);
+      // }
       if (state.cusTransfer.analysisDraw) {
         props.map.removeInteraction(state.cusTransfer.analysisDraw);
       }

+ 2 - 2
src/views/gis/layout/v2-table.vue

@@ -52,14 +52,14 @@ export default defineComponent({
       {width: 1, title: '序号', align: 'center', cellRenderer: ({ rowIndex }) => `${rowIndex + 1}`},
       {width: 1, title: '名称', dataKey: 'name'},
       {width: 1, title: '状态', align: 'center', cellRenderer: ({rowData}) => (
-          <span style={rowData.online === '1' ? "color: #4CFFFF;" : ""}>{rowData.online === '1' ? '在线' : '离线'}</span>
+          <span style={rowData.online == '1' ? "color: #4CFFFF;" : ""}>{rowData.online === '1' ? '在线' : '离线'}</span>
         )},
       {width: 1, title: '类型', align: 'center', dataKey: 'type'},
       {width: 1, title: '距离', align: 'right', cellRenderer: ({rowData}) => {
           // const start = props.feat.getGeometry().getCoordinates()
           // const end = that.$easyMap.formatPosition.wptTcpt(rowData.wkt)
           const end = [Number(rowData.longitude), Number(rowData.latitude)]
-          return turf.distance(props.center, end, {units: 'kilometers'}).toFixed(1) + 'km';
+          return turf.distance(props.center, end, {units: 'kilometers'}).toFixed(2) + 'km';
         }
       },
     ]