459242451@qq.com 3 лет назад
Родитель
Сommit
bd2b112b8a
1 измененных файлов с 835 добавлено и 834 удалено
  1. 835 834
      ruoyi-ui/src/components/map/index.vue

+ 835 - 834
ruoyi-ui/src/components/map/index.vue

@@ -1,209 +1,210 @@
 <template>
-    <div style="width:100%;height:100%">
-        <div id="map" ref="rootmap"></div>
-
-        <div class="shipDiv" v-show="deviceShow">
-            <div class="shipTitle">
-                <span style="float:left">{{ deviceData.name }}</span>
-                <i class="el-icon-close" style="font-size:9rem;margin-top:2rem;float:right" @click="deviceShow=false"></i>
-            </div>
-            <div style="padding—left:10rem" class="shipContent">
-
-                <el-tabs v-model="d_activeName" @tab-click="handleClick1">
-                    <el-tab-pane label="设备信息" name="d_first">
-                        <el-row :gutter="3" style="margin-top:5rem">
-                            <el-col :span="4">
-                                <div class="grid-content bg-purple contentFont" style="float:right;color:#959595;">设备名称:</div>
-                            </el-col>
-                            <el-col :span="8">
-                                <div class="grid-content bg-purple contentFont" style="float:left">{{ deviceData.name }}</div>
-                            </el-col>
-                            <el-col :span="4">
-                                <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">监测点:</div>
-                            </el-col>
-                            <el-col :span="8">
-                                <div class="grid-content bg-purple contentFont" style="float:left">{{ deviceData.monitorName }}</div>
-                            </el-col>
-                        </el-row>
-                        <el-row :gutter="3" style="margin-top:3rem">
-                            <el-col :span="4">
-                                <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">设备状态:</div>
-                            </el-col>
-                            <el-col :span="8">
-                                <div class="grid-content bg-purple contentFont" style="float:left">{{ deviceData.status }}</div>
-                            </el-col>
-                            <el-col :span="4">
-                                <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">管辖机构:</div>
-                            </el-col>
-                            <el-col :span="8">
-                                <div class="grid-content bg-purple contentFont" style="float:left">{{ deviceData.orgName }}</div>
-                            </el-col>
-                        </el-row>
-                        <el-row :gutter="3" style="margin-top:3rem">
-                            <el-col :span="4">
-                                <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">更新时间:</div>
-                            </el-col>
-                            <el-col :span="8">
-                                <div class="grid-content bg-purple contentFont" style="float:left">{{ deviceData.updateTime }}</div>
-                            </el-col>
-                            <el-col :span="4">
-                                <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">经纬度:</div>
-                            </el-col>
-                            <el-col :span="8">
-                                <div class="grid-content bg-purple contentFont" style="float:left">{{ deviceData.latilongti }}</div>
-                            </el-col>
-                        </el-row>
-
-                    </el-tab-pane>
-                    <el-tab-pane label="嫌疑船舶" name="d_second">
-                        <el-table :header-cell-style="{ background: '#e4eafc'}" ref="singleTable" :data="tabledatas" height="200px" highlight-current-row style="width: 100%;" class="tableSc">
-                            <el-table-column type="index" label="序号" width="50">
-                            </el-table-column>
-                            <el-table-column property="mmsi" label="MMSI" width="100">
-                            </el-table-column>
-                            <el-table-column property="shipName" label="船名" width="100">
-                            </el-table-column>
-                            <el-table-column property="values" label="监测值" width="100">
-                            </el-table-column>
-                            <el-table-column property="createTime" label="监测时间">
-                            </el-table-column>
-                        </el-table>
-
-                    </el-tab-pane>
-
-                    <el-tab-pane label="违规船舶" name="d_thrid">
-                        <el-table :header-cell-style="{ background: '#e4eafc'}" ref="singleTable" :data="tabledatas" height="200px" highlight-current-row style="width: 100%;" class="tableSc">
-                            <el-table-column type="index" label="序号" width="50">
-                            </el-table-column>
-                            <el-table-column property="mmsi" label="MMSI" width="100">
-                            </el-table-column>
-                            <el-table-column property="shipName" label="船名" width="100">
-                            </el-table-column>
-                            <el-table-column property="values" label="监测值" width="100">
-                            </el-table-column>
-                            <el-table-column property="createTime" label="监测时间">
-                            </el-table-column>
-                        </el-table>
-
-                    </el-tab-pane>
-                </el-tabs>
-
-                <!-- <el-row :gutter="3" style="margin-top:3rem">
-                  <el-col :span="4">
-                    <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">对地航速:</div>
-                  </el-col>
-                  <el-col :span="8">
-                    <div class="grid-content bg-purple contentFont" style="float:left">11111</div>
-                  </el-col>
-                  <el-col :span="4">
-                    <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">对地航向:</div>
-                  </el-col>
-                  <el-col :span="8">
-                    <div class="grid-content bg-purple contentFont" style="float:left">11111</div>
-                  </el-col>
-                </el-row>
-                <el-row :gutter="3" style="margin-top:3rem">
-                  <el-col :span="4">
-                    <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">风向:</div>
-                  </el-col>
-                  <el-col :span="8">
-                    <div class="grid-content bg-purple contentFont" style="float:left">11111</div>
-                  </el-col>
-                  <el-col :span="4">
-                    <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">风速:</div>
-                  </el-col>
-                  <el-col :span="8">
-                    <div class="grid-content bg-purple contentFont" style="float:left">11111</div>
-                  </el-col> -->
-                <!-- <el-button style="margin-top:5rem;margin-left:10rem;background-color:#0d25a5;color:white;font-size:7rem" icon="el-icon-location-information">历史轨迹</el-button> -->
-            </div>
-        </div>
-
-        <div class="shipDiv" v-show="shipShow">
-            <div class="shipTitle">
-                <span style="float:left">{{ shipName.shipName }}</span>
-                <i class="el-icon-close" style="font-size:9rem;margin-top:2rem;float:right" @click="shipShow=false"></i>
-            </div>
-            <div style="padding—left:10rem" class="shipContent">
-                <el-tabs v-model="activeName" @tab-click="handleClick">
-                    <el-tab-pane label="AIS信息" name="first">
-                        <el-row :gutter="3" style="margin-top:3rem">
-                            <el-col :span="4">
-                                <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">MMSI:</div>
-                            </el-col>
-                            <el-col :span="8">
-                                <div class="grid-content bg-purple contentFont" style="float:left">{{ shipName.mmsi }}</div>
-                            </el-col>
-                            <el-col :span="4">
-                                <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">监测点:</div>
-                            </el-col>
-                            <el-col :span="8">
-                                <div class="grid-content bg-purple contentFont" style="float:left">{{shipName.monitorPointName}}</div>
-                            </el-col>
-                        </el-row>
-                        <el-row :gutter="3" style="margin-top:3rem">
-                            <el-col :span="4">
-                                <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">经度:</div>
-                            </el-col>
-                            <el-col :span="8">
-                                <div class="grid-content bg-purple contentFont" style="float:left">{{shipName.lng}}</div>
-                            </el-col>
-                            <el-col :span="4">
-                                <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">纬度:</div>
-                            </el-col>
-                            <el-col :span="8">
-                                <div class="grid-content bg-purple contentFont" style="float:left">{{shipName.lat}}</div>
-                            </el-col>
-                        </el-row>
-                        <el-row :gutter="3" style="margin-top:3rem">
-                            <el-col :span="4">
-                                <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">对地航速:</div>
-                            </el-col>
-                            <el-col :span="8">
-                                <div class="grid-content bg-purple contentFont" style="float:left">{{shipName.speed}}</div>
-                            </el-col>
-                            <el-col :span="4">
-                                <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">实际航向:</div>
-                            </el-col>
-                            <el-col :span="8">
-                                <div class="grid-content bg-purple contentFont" style="float:left">{{shipName.head}}</div>
-                            </el-col>
-                        </el-row>
-                        <el-row :gutter="3" style="margin-top:3rem">
-                            <el-col :span="4">
-                                <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">地面航线:</div>
-                            </el-col>
-                            <el-col :span="8">
-                                <div class="grid-content bg-purple contentFont" style="float:left">{{shipName.course}}</div>
-                            </el-col>
-                            <el-col :span="4">
-                                <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">位置接收时间:</div>
-                            </el-col>
-                            <el-col :span="8">
-                                <div class="grid-content bg-purple contentFont" style="float:left">{{shipName.receive}}</div>
-                            </el-col>
-                        </el-row>
-                        <el-button style="margin-top:5rem;margin-left:10rem;background-color:#0d25a5;color:white;font-size:7rem;display:none" icon="el-icon-location-information">历史轨迹</el-button>
-                    </el-tab-pane>
-                    <el-tab-pane label="主要监测数据" name="second">
-                        <el-table :header-cell-style="{ background: '#e4eafc'}" ref="singleTable" :data="tableData.main" highlight-current-row height="200px" style="width: 100%" class="tableSc">
-                            <el-table-column type="index" label="序号" width="50">
-                            </el-table-column>
-                            <el-table-column property="monitorPointName" label="监测点" width="100">
-                            </el-table-column>
-                            <el-table-column :label="'硫含量'">
-                                <template slot-scope="scope">
-                          <div v-if="scope.row.so2Percent!=null && scope.row.so2Percent > normalPer" style="color:red">{{ scope.row.so2Percent }}% ↑ {{ ((scope.row.so2Percent - normalPer) / normalPer * 100).toFixed(0) }}%</div>
-                          <div v-if="scope.row.so2Percent!=null && scope.row.so2Percent <= normalPer">{{ scope.row.so2Percent }}%</div>
-                   </template>
+  <div style="width:100%;height:100%">
+    <div id="map" ref="rootmap"></div>
+
+    <div class="shipDiv" v-show="deviceShow">
+      <div class="shipTitle">
+        <span style="float:left">{{ deviceData.name }}</span>
+        <i class="el-icon-close" style="font-size:9rem;margin-top:2rem;float:right" @click="deviceShow=false"></i>
+      </div>
+      <div style="padding—left:10rem" class="shipContent">
+
+        <el-tabs v-model="d_activeName" @tab-click="handleClick1">
+          <el-tab-pane label="设备信息" name="d_first">
+            <el-row :gutter="3" style="margin-top:5rem">
+              <el-col :span="4">
+                <div class="grid-content bg-purple contentFont" style="float:right;color:#959595;">设备名称:</div>
+              </el-col>
+              <el-col :span="8">
+                <div class="grid-content bg-purple contentFont" style="float:left">{{ deviceData.name }}</div>
+              </el-col>
+              <el-col :span="4">
+                <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">监测点:</div>
+              </el-col>
+              <el-col :span="8">
+                <div class="grid-content bg-purple contentFont" style="float:left">{{ deviceData.monitorName }}</div>
+              </el-col>
+            </el-row>
+            <el-row :gutter="3" style="margin-top:3rem">
+              <el-col :span="4">
+                <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">设备状态:</div>
+              </el-col>
+              <el-col :span="8">
+                <div class="grid-content bg-purple contentFont" style="float:left">{{ deviceData.status }}</div>
+              </el-col>
+              <el-col :span="4">
+                <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">管辖机构:</div>
+              </el-col>
+              <el-col :span="8">
+                <div class="grid-content bg-purple contentFont" style="float:left">{{ deviceData.orgName }}</div>
+              </el-col>
+            </el-row>
+            <el-row :gutter="3" style="margin-top:3rem">
+              <el-col :span="4">
+                <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">更新时间:</div>
+              </el-col>
+              <el-col :span="8">
+                <div class="grid-content bg-purple contentFont" style="float:left">{{ deviceData.updateTime }}</div>
+              </el-col>
+              <el-col :span="4">
+                <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">经纬度:</div>
+              </el-col>
+              <el-col :span="8">
+                <div class="grid-content bg-purple contentFont" style="float:left">{{ deviceData.latilongti }}</div>
+              </el-col>
+            </el-row>
+
+          </el-tab-pane>
+          <el-tab-pane label="嫌疑船舶" name="d_second">
+            <el-table :header-cell-style="{ background: '#e4eafc'}" ref="singleTable" :data="tabledatas" height="200px" highlight-current-row style="width: 100%;" class="tableSc">
+              <el-table-column type="index" label="序号" width="50">
+              </el-table-column>
+              <el-table-column property="mmsi" label="MMSI" width="100">
+              </el-table-column>
+              <el-table-column property="shipName" label="船名" width="100">
+              </el-table-column>
+              <el-table-column property="values" label="监测值" width="100">
+              </el-table-column>
+              <el-table-column property="createTime" label="监测时间">
+              </el-table-column>
+            </el-table>
+
+          </el-tab-pane>
+
+          <el-tab-pane label="违规船舶" name="d_thrid">
+            <el-table :header-cell-style="{ background: '#e4eafc'}" ref="singleTable" :data="tabledatas" height="200px" highlight-current-row style="width: 100%;" class="tableSc">
+              <el-table-column type="index" label="序号" width="50">
+              </el-table-column>
+              <el-table-column property="mmsi" label="MMSI" width="100">
+              </el-table-column>
+              <el-table-column property="shipName" label="船名" width="100">
+              </el-table-column>
+              <el-table-column property="values" label="监测值" width="100">
+              </el-table-column>
+              <el-table-column property="createTime" label="监测时间">
+              </el-table-column>
+            </el-table>
+
+          </el-tab-pane>
+        </el-tabs>
+
+        <!-- <el-row :gutter="3" style="margin-top:3rem">
+          <el-col :span="4">
+            <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">对地航速:</div>
+          </el-col>
+          <el-col :span="8">
+            <div class="grid-content bg-purple contentFont" style="float:left">11111</div>
+          </el-col>
+          <el-col :span="4">
+            <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">对地航向:</div>
+          </el-col>
+          <el-col :span="8">
+            <div class="grid-content bg-purple contentFont" style="float:left">11111</div>
+          </el-col>
+        </el-row>
+        <el-row :gutter="3" style="margin-top:3rem">
+          <el-col :span="4">
+            <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">风向:</div>
+          </el-col>
+          <el-col :span="8">
+            <div class="grid-content bg-purple contentFont" style="float:left">11111</div>
+          </el-col>
+          <el-col :span="4">
+            <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">风速:</div>
+          </el-col>
+          <el-col :span="8">
+            <div class="grid-content bg-purple contentFont" style="float:left">11111</div>
+          </el-col> -->
+        <!-- <el-button style="margin-top:5rem;margin-left:10rem;background-color:#0d25a5;color:white;font-size:7rem" icon="el-icon-location-information">历史轨迹</el-button> -->
+      </div>
+    </div>
+
+    <div class="shipDiv" v-show="shipShow">
+      <div class="shipTitle">
+        <span style="float:left">{{ shipName.shipName }}</span>
+        <i class="el-icon-close" style="font-size:9rem;margin-top:2rem;float:right" @click="shipShow=false"></i>
+      </div>
+      <div style="padding—left:10rem" class="shipContent">
+        <el-tabs v-model="activeName" @tab-click="handleClick">
+          <el-tab-pane label="AIS信息" name="first">
+            <el-row :gutter="3" style="margin-top:3rem">
+              <el-col :span="4">
+                <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">MMSI:</div>
+              </el-col>
+              <el-col :span="8">
+                <div class="grid-content bg-purple contentFont" style="float:left">{{ shipName.mmsi }}</div>
+              </el-col>
+              <el-col :span="4">
+                <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">监测点:</div>
+              </el-col>
+              <el-col :span="8">
+                <div class="grid-content bg-purple contentFont" style="float:left">{{ shipName.monitorPointName }}</div>
+              </el-col>
+            </el-row>
+            <el-row :gutter="3" style="margin-top:3rem">
+              <el-col :span="4">
+                <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">经度:</div>
+              </el-col>
+              <el-col :span="8">
+                <div class="grid-content bg-purple contentFont" style="float:left">{{ shipName.lng }}</div>
+              </el-col>
+              <el-col :span="4">
+                <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">纬度:</div>
+              </el-col>
+              <el-col :span="8">
+                <div class="grid-content bg-purple contentFont" style="float:left">{{ shipName.lat }}</div>
+              </el-col>
+            </el-row>
+            <el-row :gutter="3" style="margin-top:3rem">
+              <el-col :span="4">
+                <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">对地航速:</div>
+              </el-col>
+              <el-col :span="8">
+                <div class="grid-content bg-purple contentFont" style="float:left">{{ shipName.speed }}</div>
+              </el-col>
+              <el-col :span="4">
+                <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">实际航向:</div>
+              </el-col>
+              <el-col :span="8">
+                <div class="grid-content bg-purple contentFont" style="float:left">{{ shipName.head }}</div>
+              </el-col>
+            </el-row>
+            <el-row :gutter="3" style="margin-top:3rem">
+              <el-col :span="4">
+                <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">地面航线:</div>
+              </el-col>
+              <el-col :span="8">
+                <div class="grid-content bg-purple contentFont" style="float:left">{{ shipName.course }}</div>
+              </el-col>
+              <el-col :span="4">
+                <div class="grid-content bg-purple contentFont" style="float:right;color:#959595">位置接收时间:</div>
+              </el-col>
+              <el-col :span="8">
+                <div class="grid-content bg-purple contentFont" style="float:left">{{ shipName.receive }}</div>
+              </el-col>
+            </el-row>
+            <el-button style="margin-top:5rem;margin-left:10rem;background-color:#0d25a5;color:white;font-size:7rem;display:none" icon="el-icon-location-information">历史轨迹</el-button>
+          </el-tab-pane>
+          <el-tab-pane label="主要监测数据" name="second">
+            <el-table :header-cell-style="{ background: '#e4eafc'}" ref="singleTable" :data="tableData.main" highlight-current-row height="200px" style="width: 100%" class="tableSc">
+              <el-table-column type="index" label="序号" width="50">
+              </el-table-column>
+              <el-table-column property="monitorPointName" label="监测点" width="100">
+              </el-table-column>
+              <el-table-column :label="'硫含量'">
+                <template slot-scope="scope">
+                  <div v-if="scope.row.so2Percent!=null && scope.row.so2Percent > normalPer" style="color:red">{{ scope.row.so2Percent }}% ↑ {{ ((scope.row.so2Percent - normalPer) / normalPer * 100).toFixed(0) }}%</div>
+                  <div v-if="scope.row.so2Percent!=null && scope.row.so2Percent <= normalPer">{{ scope.row.so2Percent }}%</div>
+                </template>
               </el-table-column>
               <el-table-column
                 :label="'黑度'">
-                        <template slot-scope="scope">
-                            <div v-if="scope.row.rcgSoot!=null && scope.row.rcgSoot > normalCount" style="color:red">
-                                {{ scope.row.rcgSoot }}度 ↑ {{ ((scope.row.rcgSoot - normalCount) / normalCount * 100).toFixed(0) }}%</div>
-                            <div v-if="scope.row.rcgSoot!=null &&  scope.row.rcgSoot <= normalCount">{{ scope.row.rcgSoot }}度</div>
-                        </template>
+                <template slot-scope="scope">
+                  <div v-if="scope.row.rcgSoot!=null && scope.row.rcgSoot > normalCount" style="color:red">
+                    {{ scope.row.rcgSoot }}度 ↑ {{ ((scope.row.rcgSoot - normalCount) / normalCount * 100).toFixed(0) }}%
+                  </div>
+                  <div v-if="scope.row.rcgSoot!=null &&  scope.row.rcgSoot <= normalCount">{{ scope.row.rcgSoot }}度</div>
+                </template>
               </el-table-column>
               <el-table-column
                 property="createTime"
@@ -221,7 +222,7 @@
               highlight-current-row height="200px"
               style="width: 100%"
               class="tableSc"
-              >
+            >
               <el-table-column
                 type="index"
                 label="序号"
@@ -235,37 +236,41 @@
               <el-table-column
                 :label="'SO2浓度'"
               >
-                     <template slot-scope="scope">
-                         <div v-if="scope.row.so2Concentration!=null && scope.row.so2Concentration > normalPer" style="color:red">
-                             {{ scope.row.so2Concentration }}% ↑</div>
-                         <div v-if="scope.row.so2Concentration!=null && scope.row.so2Concentration <= normalPer">{{ scope.row.so2Concentration }}%</div>
-                     </template>
+                <template slot-scope="scope">
+                  <div v-if="scope.row.so2Concentration!=null && scope.row.so2Concentration > normalPer" style="color:red">
+                    {{ scope.row.so2Concentration }}% ↑
+                  </div>
+                  <div v-if="scope.row.so2Concentration!=null && scope.row.so2Concentration <= normalPer">{{ scope.row.so2Concentration }}%</div>
+                </template>
               </el-table-column>
               <el-table-column
                 :label="'NO2浓度'"
               >
-                       <template slot-scope="scope">
-                           <div v-if="scope.row.no2Concentration!=null && scope.row.no2Concentration > normalPer" style="color:red">
-                               {{ scope.row.no2Concentration }}% ↑</div>
-                           <div v-if="scope.row.no2Concentration!=null && scope.row.no2Concentration <= normalPer">{{ scope.row.no2Concentration }}%</div>
-                       </template>
+                <template slot-scope="scope">
+                  <div v-if="scope.row.no2Concentration!=null && scope.row.no2Concentration > normalPer" style="color:red">
+                    {{ scope.row.no2Concentration }}% ↑
+                  </div>
+                  <div v-if="scope.row.no2Concentration!=null && scope.row.no2Concentration <= normalPer">{{ scope.row.no2Concentration }}%</div>
+                </template>
               </el-table-column>
               <el-table-column
                 :label="'CO2浓度'"
               >
-                         <template slot-scope="scope">
-                             <div v-if="scope.row.co2Concentration!=null &&  scope.row.co2Concentration > normalPer" style="color:red">
-                                 {{ scope.row.co2Concentration }}% ↑</div>
-                             <div v-if=" scope.row.co2Concentration!=null && scope.row.co2Concentration <= normalPer">{{ scope.row.co2Concentration }}%</div>
-                         </template>
+                <template slot-scope="scope">
+                  <div v-if="scope.row.co2Concentration!=null &&  scope.row.co2Concentration > normalPer" style="color:red">
+                    {{ scope.row.co2Concentration }}% ↑
+                  </div>
+                  <div v-if=" scope.row.co2Concentration!=null && scope.row.co2Concentration <= normalPer">{{ scope.row.co2Concentration }}%</div>
+                </template>
               </el-table-column>
               <el-table-column
                 :label="'硫碳比'">
-                       <template slot-scope="scope">
-                           <div v-if="scope.row.so2Percent!=null && scope.row.so2Percent > normalCount" style="color:red">
-                               {{ scope.row.so2Percent }}度 ↑</div>
-                           <div v-if="scope.row.so2Percent!=null &&  scope.row.so2Percent <= normalCount">{{ scope.row.so2Percent }}度</div>
-                       </template>
+                <template slot-scope="scope">
+                  <div v-if="scope.row.so2Percent!=null && scope.row.so2Percent > normalCount" style="color:red">
+                    {{ scope.row.so2Percent }}度 ↑
+                  </div>
+                  <div v-if="scope.row.so2Percent!=null &&  scope.row.so2Percent <= normalCount">{{ scope.row.so2Percent }}度</div>
+                </template>
               </el-table-column>
               <el-table-column
                 property="createTime"
@@ -320,28 +325,28 @@
       </el-radio-group>
     </div>
 
-     <div class="shipDiv" v-show="deviceTableShow">
-            <div class="shipTitle">
-                <span style="float:left">{{ pointDevice.name }}</span>
-                <i class="el-icon-close" style="font-size:9rem;margin-top:2rem;float:right" @click="deviceTableShow=false"></i>
-            </div>
-            <div style="padding—left:10rem" class="shipContent">
-                        <el-table :header-cell-style="{ background: '#e4eafc'}" ref="singleTable" :data="pointDevice.list" height="200px" highlight-current-row style="width: 100%;" class="tableSc">
-                            <el-table-column type="index" label="序号" width="50">
-                            </el-table-column>
-                            <el-table-column property="monitorName" label="设备位置" width="100">
-                            </el-table-column>
-                            <el-table-column property="name" label="设备名称" width="100">
-                            </el-table-column>
-                            <el-table-column property="deviceType" label="设备类型" width="100">
-                            </el-table-column>
-                            <el-table-column property="status" label="设备状态">
-                            </el-table-column>
-                             <el-table-column property="orgName" label="管辖机构">
-                            </el-table-column>
-                        </el-table>
-            </div>
-        </div>
+    <div class="shipDiv" v-show="deviceTableShow">
+      <div class="shipTitle">
+        <span style="float:left">{{ pointDevice.name }}</span>
+        <i class="el-icon-close" style="font-size:9rem;margin-top:2rem;float:right" @click="deviceTableShow=false"></i>
+      </div>
+      <div style="padding—left:10rem" class="shipContent">
+        <el-table :header-cell-style="{ background: '#e4eafc'}" ref="singleTable" :data="pointDevice.list" height="200px" highlight-current-row style="width: 100%;" class="tableSc">
+          <el-table-column type="index" label="序号" width="50">
+          </el-table-column>
+          <el-table-column property="monitorName" label="设备位置" width="100">
+          </el-table-column>
+          <el-table-column property="name" label="设备名称" width="100">
+          </el-table-column>
+          <el-table-column property="deviceType" label="设备类型" width="100">
+          </el-table-column>
+          <el-table-column property="status" label="设备状态">
+          </el-table-column>
+          <el-table-column property="orgName" label="管辖机构">
+          </el-table-column>
+        </el-table>
+      </div>
+    </div>
 
   </div>
 </template>
@@ -353,677 +358,673 @@ import TileLayer from "ol/layer/Tile";
 import ImageLayer from "ol/layer/Image";
 import View from "ol/View";
 
-import { getTopLeft, getWidth } from "ol/extent";
+import {getTopLeft, getWidth} from "ol/extent";
 
 import ImageWMS from "ol/source/ImageWMS";
 import WMTS from "ol/source/WMTS";
 import TileWMS from "ol/source/TileWMS";
 import WMTSTileGrid from "ol/tilegrid/WMTS";
-import { get as getProjection, transform } from "ol/proj";
+import {get as getProjection, transform} from "ol/proj";
 
-import { Vector as SourceVec } from "ol/source";
-import { Feature } from "ol";
-import { LineString, Point } from "ol/geom";
-import { Icon, Stroke, Style } from "ol/style";
-import { Vector as LayerVec } from "ol/layer";
-import { queryShipByDeviceId, queryDatabymmsi } from "@/api/data/deviceData";
+import {Vector as SourceVec} from "ol/source";
+import {Feature} from "ol";
+import {LineString, Point} from "ol/geom";
+import {Icon, Stroke, Style} from "ol/style";
+import {Vector as LayerVec} from "ol/layer";
+import {queryDatabymmsi, queryShipByDeviceId} from "@/api/data/deviceData";
 
 let ispro = process.env.NODE_ENV === "production";
 let that = null;
 let mapv = null;
 //  ispro = false;
 export default {
-    props: {
-        src: {
-            type: String,
-            required: false
-        }
-    },
-    data() {
-        return {
-            map: null,
-            shipName: '',
-            deviceShow: false,
-            deviceData: '',
-            checkList: [],
-            drawLayer: null,
-            draw: null,
-            normalPer: 0.1,
-            normalCount: 1,
-            activeName: 'first',
-            tabledatas: [],
-            deviceTableShow:false,
-            posints:{},
-            pointDevice:{
-                name:'',
-                list:[],
-            },
-            // deviceList:[],
-
-            d_activeName: 'd_first',
-            tableData: { minor: [], main: [] },
-            addrlist: [{ name: "南京四桥", location: [1, 1] }],
-            caddr: "南京四桥",
-            shipShow: false,
-            shipdata: {},
-        };
-    },
-    props:['deviceList'],
-    mounted() {
-        that = this;
-        if (ispro) {
-            this.initprod();
-        } else {
-            this.initdev();
-        }
-        mapv = this.map;
-
-        this.map.on("click", function(e) {
-            console.log(e)
-            var feature = that.map.forEachFeatureAtPixel(e.pixel,
-                function(feature) {
-                    return feature;
-                });
-            if (feature) { //这里说明我们点击的是点标记,
-                let tadata = feature.get("tadata"); //我们可以通过给点标记传不同的值,来判断点击不同的点标记触发的事件。
-                if (tadata) {
-                    if (tadata.sectionId == "line") {
-                        // alert("我是线:" + tadata.towerNumber)
-                    }
-                    if (tadata.sectionId == "point") {
-                        console.log(tadata);
-                        if (tadata.type == "ship") {
-                            that.shipShow = true;
-                            that.deviceShow = false;
-                            that.deviceTableShow = false
-                            that.shipName = tadata.data;
-                            that.activeName = "first";
-
-                        } else if (tadata.type == "device") {
-                            that.deviceShow = true;
-                            that.shipShow = false;
-                            that.deviceTableShow = false
-                            that.deviceData = tadata.data;
-                            that.d_activeName = 'd_first';
-
-                        }
-                        //  alert("我是点:"+tadata.data)
-                    }
-                    //含有lnglat 参数的点标记触发事件
-                }
-            }
-        });
-
-        //  this.addpoint();
-        //  this.addline();
-    },
-    methods: {
-        //[[1111,1111]]
-        handleClick1: function(tab, event) {
-
-            var sect = tab.name;
-            if (sect == "d_first") {
-                return;
-            }
-
-            var q = {
-                deviceId: this.deviceData.deviceId,
-                illegalStatus: sect == "d_second" ? 2 : 3,
-                index: this.deviceData.source
-            }
-
-            this.tabledatas = [];
-            queryShipByDeviceId(q).then(data => {
-                console.log(data);
-                data.data.forEach(element => {
-                    element["values"] = element.illegalType == "heiyan" ? element.rcgSoot : (element.illegalType == "guangpu" ? element.so2Percent : (element.illegalType == "xiutan" ? element.so2Percent : 0));
-                    this.tabledatas.push(element);
-                });
-            });
-            //dd
-
-        },
-        clickcg: (value) => {
-            console.log(that.deviceList);
-            that.pointDevice.list = that.deviceList[value];
-            console.log(that.pointDevice);
-            that.deviceTableShow = true;
-            that.pointDevice.name = value;
-            that.addrlist.forEach(element => {
-                if (element.name == value) {
-                    var lo = that.transpoints(element.location, 0)[0];
-                    console.log(lo)
-                    mapv.getView().setCenter(lo);
-                }
-            });
+  props: {
+    src: {
+      type: String,
+      required: false
+    }
+  },
+  data() {
+    return {
+      map: null,
+      shipName: '',
+      deviceShow: false,
+      deviceData: '',
+      checkList: [],
+      drawLayer: null,
+      draw: null,
+      normalPer: 0.1,
+      normalCount: 1,
+      activeName: 'first',
+      tabledatas: [],
+      deviceTableShow: false,
+      posints: {},
+      pointDevice: {
+        name: '',
+        list: [],
+      },
+      // deviceList:[],
+
+      d_activeName: 'd_first',
+      tableData: {minor: [], main: []},
+      addrlist: [{name: "南京四桥", location: [1, 1]}],
+      caddr: "南京四桥",
+      shipShow: false,
+      shipdata: {},
+    };
+  },
+  props: ['deviceList'],
+  mounted() {
+    that = this;
+    if (ispro) {
+      this.initprod();
+    } else {
+      this.initdev();
+    }
+    mapv = this.map;
 
-        },
-        setaddrlist(list) {
-            this.addrlist = list;
-            this.caddr = list[0].name;
-            var lo = that.transpoints(list[0].location, 0)[0];
-            mapv.getView().setCenter(lo);
-        },
-        addshipData(list) {
+    this.map.on("click", function (e) {
+      console.log(e)
+      var feature = that.map.forEachFeatureAtPixel(e.pixel,
+        function (feature) {
+          return feature;
+        });
+      if (feature) { //这里说明我们点击的是点标记,
+        let tadata = feature.get("tadata"); //我们可以通过给点标记传不同的值,来判断点击不同的点标记触发的事件。
+        if (tadata) {
+          if (tadata.sectionId == "line") {
+            // alert("我是线:" + tadata.towerNumber)
+          }
+          if (tadata.sectionId == "point") {
+            console.log(tadata);
+            if (tadata.type == "ship") {
+              that.shipShow = true;
+              that.deviceShow = false;
+              that.deviceTableShow = false
+              that.shipName = tadata.data;
+              that.activeName = "first";
+
+            } else if (tadata.type == "device") {
+              that.deviceShow = true;
+              that.shipShow = false;
+              that.deviceTableShow = false
+              that.deviceData = tadata.data;
+              that.d_activeName = 'd_first';
 
-        },
-        handleClick(tab, event) {
-            console.log(tab, event);
-            var sect = tab.name;
-            if (sect == "first") {
-                return;
-            }
-            var q = {
-                mmsi: this.shipName.mmsi
             }
+            //  alert("我是点:"+tadata.data)
+          }
+          //含有lnglat 参数的点标记触发事件
+        }
+      }
+    });
+
+    //  this.addpoint();
+    //  this.addline();
+  },
+  methods: {
+    //[[1111,1111]]
+    handleClick1: function (tab, event) {
+
+      var sect = tab.name;
+      if (sect == "d_first") {
+        return;
+      }
+
+      var q = {
+        deviceId: this.deviceData.deviceId,
+        illegalStatus: sect == "d_second" ? 2 : 3,
+        index: this.deviceData.source
+      }
+
+      this.tabledatas = [];
+      queryShipByDeviceId(q).then(data => {
+        console.log(data);
+        data.data.forEach(element => {
+          element["values"] = element.illegalType == "heiyan" ? element.rcgSoot : (element.illegalType == "guangpu" ? element.so2Percent : (element.illegalType == "xiutan" ? element.so2Percent : 0));
+          this.tabledatas.push(element);
+        });
+      });
+      //dd
 
-            this.tableData = { minor: [], main: [] };
-            queryDatabymmsi(q).then(data => {
-                console.log(data);
-                this.tableData = data.data;
-                //  console.log(deviceList);
-            });
-
-
+    },
+    clickcg: (value) => {
+      console.log(that.deviceList);
+      that.pointDevice.list = that.deviceList[value];
+      console.log(that.pointDevice);
+      that.deviceTableShow = true;
+      that.pointDevice.name = value;
+      that.addrlist.forEach(element => {
+        if (element.name == value) {
+          var lo = that.transpoints(element.location, 0)[0];
+          console.log(lo)
+          mapv.getView().setCenter(lo);
+        }
+      });
 
+    },
+    setaddrlist(list) {
+      this.addrlist = list;
+      this.caddr = list[0].name;
+      var lo = that.transpoints(list[0].location, 0)[0];
+      mapv.getView().setCenter(lo);
+    },
+    addshipData(list) {
 
+    },
+    handleClick(tab, event) {
+      console.log(tab, event);
+      var sect = tab.name;
+      if (sect == "first") {
+        return;
+      }
+      var q = {
+        mmsi: this.shipName.mmsi
+      }
+
+      this.tableData = {minor: [], main: []};
+      queryDatabymmsi(q).then(data => {
+        console.log(data);
+        this.tableData = data.data;
+        //  console.log(deviceList);
+      });
 
 
-        },
-        transpoints: function(points, type) {
-            if (false) {
-                return points;
-            } else {
-                if (type == 1) {
-                    var pp = [];
-                    points.forEach(point => {
-                        pp.push(transform(point, "EPSG:3857", "EPSG:4326"));
-                    });
-                    return pp;
-                } else {
-                    var pp = [];
-                    points.forEach(point => {
-                        pp.push(transform(point, "EPSG:4326", "EPSG:3857"));
-                    });
-                    return pp;
-                }
-            }
-        },
-        initdev: function() {
-
-            function getWMTSLayer(url, layer) {
-                let key = "98ec3e37b32974c2d58ea1a790640fe7"
-                let projection = getProjection("EPSG:3857");
-                let projectionExtent = projection.getExtent();
-                let size = getWidth(projectionExtent) / 256;
-
-                function getResolutions() {
-                    let resolutions = [];
-                    for (let z = 1; z < 19; ++z) {
-                        resolutions[z] = size / Math.pow(2, z);
-                    }
-                    return resolutions
-                }
-
-                return new TileLayer({
-                    source: new WMTS({
-                        url: url,
-                        layer: layer,
-                        style: "default",
-                        matrixSet: "w",
-                        format: "tiles",
-                        tileGrid: new WMTSTileGrid({
-                            origin: getTopLeft(projectionExtent),
-                            resolutions: getResolutions(),
-                            matrixIds: [ 0,1,2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,15,16,17,18,19],
-                        }),
-                    }),
-
-                })
+    },
+    transpoints: function (points, type) {
+      if (false) {
+        return points;
+      } else {
+        if (type == 1) {
+          var pp = [];
+          points.forEach(point => {
+            pp.push(transform(point, "EPSG:3857", "EPSG:4326"));
+          });
+          return pp;
+        } else {
+          var pp = [];
+          points.forEach(point => {
+            pp.push(transform(point, "EPSG:4326", "EPSG:3857"));
+          });
+          return pp;
+        }
+      }
+    },
+    initdev: function () {
+
+      function getWMTSLayer(url, layer) {
+        let key = "98ec3e37b32974c2d58ea1a790640fe7"
+        let projection = getProjection("EPSG:3857");
+        let projectionExtent = projection.getExtent();
+        let size = getWidth(projectionExtent) / 256;
+
+        function getResolutions() {
+          let resolutions = [];
+          for (let z = 1; z < 19; ++z) {
+            resolutions[z] = size / Math.pow(2, z);
+          }
+          return resolutions
+        }
 
-            }
+        return new TileLayer({
+          source: new WMTS({
+            url: url,
+            layer: layer,
+            style: "default",
+            matrixSet: "w",
+            format: "tiles",
+            tileGrid: new WMTSTileGrid({
+              origin: getTopLeft(projectionExtent),
+              resolutions: getResolutions(),
+              matrixIds: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
+            }),
+          }),
+
+        })
+
+      }
+
+      var projection = getProjection("EPSG:3857");
+      var format = 'image/png';
+      var bounds = [13325725.763124488, 3757032.814272983,
+        13345293.642365493, 3776600.693513988
+      ];
+      var untiled = new ImageLayer({
+        source: new ImageWMS({
+          ratio: 1,
+          url: 'http://36.156.155.131:8090/geoserver/wms',
+          params: {
+            'FORMAT': format,
+            'VERSION': '1.1.1',
+            "STYLES": '',
+            "CJAUTH": 'CJUSER',
+            "LAYERS": 'CJ:G_CJ_NJ',
+            "TRANSPARENT": 'true',
+            "exceptions": 'application/vnd.ogc.se_inimage',
+          }
+        })
+      });
+
+
+      const ign = getWMTSLayer('https://t{0-7}.tianditu.gov.cn/vec_w/wmts?tk=98ec3e37b32974c2d58ea1a790640fe7', 'vec');
+
+      var tiled = new TileLayer({
+        visible: false,
+        source: new TileWMS({
+          url: 'http://36.156.155.131:8090/geoserver/wms',
+          params: {
+            'FORMAT': format,
+            'VERSION': '1.1.1',
+            tiled: true,
+            "STYLES": '',
+            "CJAUTH": 'CJUSER',
+            "LAYERS": 'CJ:G_CJ_NJ',
+            "TRANSPARENT": 'true',
+            "exceptions": 'application/vnd.ogc.se_inimage',
+            tilesOrigin: 13325725.763124488 + "," + 3757032.814272983
+          }
+        })
+      });
+
+      var map = new Map({
+        target: 'map',
+        layers: [
+          ign,
+          getWMTSLayer('https://t{0-7}.tianditu.gov.cn/cva_w/wmts?tk=98ec3e37b32974c2d58ea1a790640fe7', 'cva'),
+
+          untiled,
+          tiled
+        ],
+        view: new View({
+          projection: projection
+        })
+      });
+      // map.getView().fit([75.0, 20.0, 135.0, 50.0], map.getSize());
+      this.map = map;
+      //  map.getView().setCenter(
+      //     [118.642876, 31.970445]
+      // );
+      map.getView().setCenter(this.transpoints([
+        [118.642876, 31.970445]
+      ], 0)[0]);
+      map.getView().setZoom(13);
+    },
+    initdev1: function () {
+      const proj3857 = getProjection("EPSG:3857");
+      const tileGrid = new WMTSTileGrid({
+        tileSize: [256, 256],
+        origin: [-2.003750834e7, 2.003750834e7],
+        extent: [-2.003750834e7, -2.003750834e7, 2.003750834e7, 2.003750834e7],
+        resolutions: [
+          76.43702827453613,
+          38.218514137268066,
+          19.109257068634033,
+          9.554628534317017,
+          4.777314267158508
+        ],
+        matrixIds: [
+          "EPSG:3857:10",
+          "EPSG:3857:11",
+          "EPSG:3857:12",
+          "EPSG:3857:13",
+          "EPSG:3857:14"
+        ]
+      });
+
+      const ign_source = new WMTS({
+        url: "http://geo.xt.wenhq.top:8083/geoserver/gwc/service/wmts?",
+        layer: "test:nj10",
+        matrixSet: "EPSG:3857",
+        format: "image/png",
+        projection: proj3857,
+        tileGrid: tileGrid,
+        style: ""
+      });
+
+      const ign = new TileLayer({
+        source: ign_source
+      });
+      const map = new Map({
+        target: "map",
+        layers: [ign],
+        view: new View({
+          center: [0, 0],
+          zoom: 2
+        })
+      });
+      map
+        .getView()
+        .fit(
+          [
+            13149614.849955281,
+            3639625.538826909,
+            13306157.88388332,
+            3874440.0897189667
+          ],
+          map.getSize()
+        );
+
+      this.map = map;
+      map.getView().setCenter(this.transpoints([
+        [118.642876, 31.970445]
+      ], 0)[0]);
+      map.getView().setZoom(13);
+    },
+    initprod: function () {
+      // const proj3857 = getProjection("EPSG:4326");
+      function getWMTSLayer(url, layer) {
+        let key = "98ec3e37b32974c2d58ea1a790640fe7"
+        let projection = getProjection("EPSG:3857");
+        let projectionExtent = projection.getExtent();
+        let size = getWidth(projectionExtent) / 256;
+
+        function getResolutions() {
+          let resolutions = [];
+          for (let z = 1; z < 19; ++z) {
+            resolutions[z] = size / Math.pow(2, z);
+          }
+          return resolutions
+        }
 
-            var projection = getProjection("EPSG:3857");
-            var format = 'image/png';
-            var bounds = [13325725.763124488, 3757032.814272983,
-                13345293.642365493, 3776600.693513988
-            ];
-            var untiled = new ImageLayer({
-                source: new ImageWMS({
-                    ratio: 1,
-                    url: 'http://36.156.155.131:8090/geoserver/wms',
-                    params: {
-                        'FORMAT': format,
-                        'VERSION': '1.1.1',
-                        "STYLES": '',
-                        "CJAUTH": 'CJUSER',
-                        "LAYERS": 'CJ:G_CJ_NJ',
-                        "TRANSPARENT": 'true',
-                        "exceptions": 'application/vnd.ogc.se_inimage',
-                    }
-                })
-            });
-
-
-            const ign = getWMTSLayer('https://t{0-7}.tianditu.gov.cn/vec_w/wmts?tk=98ec3e37b32974c2d58ea1a790640fe7', 'vec');
-
-            var tiled = new TileLayer({
-                visible: false,
-                source: new TileWMS({
-                    url: 'http://36.156.155.131:8090/geoserver/wms',
-                    params: {
-                        'FORMAT': format,
-                        'VERSION': '1.1.1',
-                        tiled: true,
-                        "STYLES": '',
-                        "CJAUTH": 'CJUSER',
-                        "LAYERS": 'CJ:G_CJ_NJ',
-                        "TRANSPARENT": 'true',
-                        "exceptions": 'application/vnd.ogc.se_inimage',
-                        tilesOrigin: 13325725.763124488 + "," + 3757032.814272983
-                    }
-                })
-            });
-
-            var map = new Map({
-                target: 'map',
-                layers: [
-                    ign,
-                    getWMTSLayer('https://t{0-7}.tianditu.gov.cn/cva_w/wmts?tk=98ec3e37b32974c2d58ea1a790640fe7', 'cva'),
-
-                    untiled,
-                    tiled
-                ],
-                view: new View({
-                    projection: projection
-                })
-            });
-            // map.getView().fit([75.0, 20.0, 135.0, 50.0], map.getSize());
-            this.map = map;
-            //  map.getView().setCenter(
-            //     [118.642876, 31.970445]
-            // );
-            map.getView().setCenter(this.transpoints([
-                [118.642876, 31.970445]
-            ], 0)[0]);
-            map.getView().setZoom(13);
-        },
-        initdev1: function() {
-            const proj3857 = getProjection("EPSG:3857");
-            const tileGrid = new WMTSTileGrid({
-                tileSize: [256, 256],
-                origin: [-2.003750834e7, 2.003750834e7],
-                extent: [-2.003750834e7, -2.003750834e7, 2.003750834e7, 2.003750834e7],
-                resolutions: [
-                    76.43702827453613,
-                    38.218514137268066,
-                    19.109257068634033,
-                    9.554628534317017,
-                    4.777314267158508
-                ],
-                matrixIds: [
-                    "EPSG:3857:10",
-                    "EPSG:3857:11",
-                    "EPSG:3857:12",
-                    "EPSG:3857:13",
-                    "EPSG:3857:14"
-                ]
-            });
-
-            const ign_source = new WMTS({
-                url: "http://geo.xt.wenhq.top:8083/geoserver/gwc/service/wmts?",
-                layer: "test:nj10",
-                matrixSet: "EPSG:3857",
-                format: "image/png",
-                projection: proj3857,
-                tileGrid: tileGrid,
-                style: ""
-            });
-
-            const ign = new TileLayer({
-                source: ign_source
-            });
-            const map = new Map({
-                target: "map",
-                layers: [ign],
-                view: new View({
-                    center: [0, 0],
-                    zoom: 2
-                })
-            });
-            map
-                .getView()
-                .fit(
-                    [
-                        13149614.849955281,
-                        3639625.538826909,
-                        13306157.88388332,
-                        3874440.0897189667
-                    ],
-                    map.getSize()
-                );
-
-            this.map = map;
-            map.getView().setCenter(this.transpoints([
-                [118.642876, 31.970445]
-            ], 0)[0]);
-            map.getView().setZoom(13);
-        },
-        initprod: function() {
-            // const proj3857 = getProjection("EPSG:4326");
-             function getWMTSLayer(url, layer) {
-                let key = "98ec3e37b32974c2d58ea1a790640fe7"
-                let projection = getProjection("EPSG:3857");
-                let projectionExtent = projection.getExtent();
-                let size = getWidth(projectionExtent) / 256;
-
-                function getResolutions() {
-                    let resolutions = [];
-                    for (let z = 1; z < 19; ++z) {
-                        resolutions[z] = size / Math.pow(2, z);
-                    }
-                    return resolutions
-                }
-
-                return new TileLayer({
-                    source: new WMTS({
-                        url: url,
-                        layer: layer,
-                        style: "default",
-                        matrixSet: "w",
-                        format: "tiles",
-                        tileGrid: new WMTSTileGrid({
-                            origin: getTopLeft(projectionExtent),
-                            resolutions: getResolutions(),
-                            matrixIds: [ 0,1,2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,15,16,17,18,19],
-                        }),
-                    }),
-
-                })
+        return new TileLayer({
+          source: new WMTS({
+            url: url,
+            layer: layer,
+            style: "default",
+            matrixSet: "w",
+            format: "tiles",
+            tileGrid: new WMTSTileGrid({
+              origin: getTopLeft(projectionExtent),
+              resolutions: getResolutions(),
+              matrixIds: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
+            }),
+          }),
+
+        })
+
+      }
+
+      var projection = getProjection("EPSG:3857");
+      var format = 'image/png';
+      var bounds = [13325725.763124488, 3757032.814272983,
+        13345293.642365493, 3776600.693513988
+      ];
+      var untiled = new ImageLayer({
+        source: new ImageWMS({
+          ratio: 1,
+          url: 'http://198.17.188.64/geoserver/gwc/service/wms',
+          params: {
+            'FORMAT': format,
+            'VERSION': '1.1.1',
+            "STYLES": '',
+            "CJAUTH": 'CJUSER',
+            "LAYERS": 'CJ:G_CJ',
+            "TRANSPARENT": 'true',
+            "exceptions": 'application/vnd.ogc.se_inimage',
+          }
+        })
+      });
+
+
+      var tiled = new TileLayer({
+        visible: false,
+        source: new TileWMS({
+          url: 'http://198.17.188.64/geoserver/gwc/service/wms',
+          params: {
+            'FORMAT': format,
+            'VERSION': '1.1.1',
+            tiled: true,
+            "STYLES": '',
+            "CJAUTH": 'CJUSER',
+            "LAYERS": 'CJ:G_CJ',
+            "TRANSPARENT": 'true',
+            "exceptions": 'application/vnd.ogc.se_inimage',
+            tilesOrigin: 13325725.763124488 + "," + 3757032.814272983
+          }
+        })
+      });
+
+      const map = new Map({
+        target: "map",
+        layers: [getWMTSLayer('http://198.17.188.64:9879/vec_w/wmts?tk=98ec3e37b32974c2d58ea1a790640fe7', 'vec'), getWMTSLayer('http://198.17.188.64:9879/cva_w/wmts?tk=98ec3e37b32974c2d58ea1a790640fe7', 'cva'),
+          untiled,
+          tiled],
+        view: new View({
+          projection: projection
+        })
+      });
+      map.getView().fit([75.0, 20.0, 135.0, 50.0], map.getSize());
+      this.map = map;
+      map.getView().setCenter(this.transpoints([
+        [118.642876, 31.970445]
+      ], 0)[0]);
+      map.getView().setZoom(13);
+    },
 
-            }
-            var projection = getProjection("EPSG:3857");
-            var format = 'image/png';
-            var bounds = [13325725.763124488, 3757032.814272983,
-                13345293.642365493, 3776600.693513988
-            ];
-            var untiled = new ImageLayer({
-                source: new ImageWMS({
-                    ratio: 1,
-                    url: 'http://198.17.188.64/geoserver/gwc/service/wms',
-                    params: {
-                        'FORMAT': format,
-                        'VERSION': '1.1.1',
-                        "STYLES": '',
-                        "CJAUTH": 'CJUSER',
-                        "LAYERS": 'CJ:G_CJ',
-                        "TRANSPARENT": 'true',
-                        "exceptions": 'application/vnd.ogc.se_inimage',
-                    }
-                })
-            });
-
-
-
-
-            var tiled = new TileLayer({
-                visible: false,
-                source: new TileWMS({
-                    url: 'http://198.17.188.64/geoserver/gwc/service/wms',
-                    params: {
-                        'FORMAT': format,
-                        'VERSION': '1.1.1',
-                        tiled: true,
-                        "STYLES": '',
-                        "CJAUTH": 'CJUSER',
-                        "LAYERS": 'CJ:G_CJ',
-                        "TRANSPARENT": 'true',
-                        "exceptions": 'application/vnd.ogc.se_inimage',
-                        tilesOrigin: 13325725.763124488 + "," + 3757032.814272983
-                    }
-                })
-            });
-
-            const map = new Map({
-                target: "map",
-                layers: [getWMTSLayer('http://198.17.188.64:9879/vec_w/wmts?tk=98ec3e37b32974c2d58ea1a790640fe7', 'vec'),getWMTSLayer('http://198.17.188.64:9879/cva_w/wmts?tk=98ec3e37b32974c2d58ea1a790640fe7', 'cva'),
-                    untiled,
-                    tiled],
-                view: new View({
-                   projection: projection
-                })
-            });
-            map.getView().fit([75.0, 20.0, 135.0, 50.0], map.getSize());
-            this.map = map;
-            map.getView().setCenter(this.transpoints([
-                [118.642876, 31.970445]
-            ], 0)[0]);
-            map.getView().setZoom(13);
-        },
+    addline: function (linePoint) {
 
-        addline: function(linePoint) {
-
-            var points = this.transpoints(linePoint, 0)
-
-            let line = new Feature({
-                tadata: {
-                    sectionId: "line",
-                    towerNumber: 22
-                },
-                geometry: new LineString(points)
-            }); //这里要注意写fromLonLat,很重要
-            line.setStyle(new Style({
-                stroke: new Stroke({
-                    width: 3,
-                    color: "#008000"
-                })
-            }));
-            this.linevectorLayer = new LayerVec({
-                source: new SourceVec({
-                    features: [line] //要绘制多段线,直接push到这里面就行了
-                })
-            });
-            this.map.addLayer(this.linevectorLayer); //这里是执行,执行之后点就出来了
+      var points = this.transpoints(linePoint, 0)
 
+      let line = new Feature({
+        tadata: {
+          sectionId: "line",
+          towerNumber: 22
         },
+        geometry: new LineString(points)
+      }); //这里要注意写fromLonLat,很重要
+      line.setStyle(new Style({
+        stroke: new Stroke({
+          width: 3,
+          color: "#ff730d"
+        })
+      }));
+      this.linevectorLayer = new LayerVec({
+        source: new SourceVec({
+          features: [line] //要绘制多段线,直接push到这里面就行了
+        })
+      });
+      this.map.addLayer(this.linevectorLayer); //这里是执行,执行之后点就出来了
 
-        addpoint: function(addrArry, data, img, type,rotation=0) {
-            var lnglat = this.transpoints(addrArry, 0)[0];
-            var lnglats = null;
-
-            if(data["lnglats"]!=undefined){
-             lnglats =  this.transpoints(data["lnglats"], 0);
-            }
-
-            let tamarker = new Feature({
-                tadata: {
-                    sectionId: "point",
-                    towerNumber: 22,
-                    data: data,
-                    type: type
-                }, //这里是用来传值用的,在接下来的一章里(事件)中我会讲到。
-
-                geometry: new Point(lnglats==null?lnglat:lnglats[0]) //这里是点坐标的位置,这里要注意fromLonLat
-            });
-            tamarker.setStyle(
-                new Style({
-                    image: new Icon({
-                        color: "#eee",
-                        rotation:rotation,
-                        anchor:[0.5,0.5],
-                        rotateWithView:true,
-                        // color:"red",
-                        // size:[60,20],
-                        crossOrigin: "anonymous",
-                        src: require("../../assets/images/icon/" + img) //本地的样式
-                    })
-                })
-            ); //这里是样式
-            var markerta = new LayerVec({
-                source: new SourceVec({
-                    features: [tamarker] //这里放的就是之前的那个点,如果要放置多个点直接push到这里面就行了
-                })
-            });
-
-          this.map.addLayer(markerta); //这里是执行,执行之后点就出来了
-            if(data["mmsi"]!=undefined){
-               this.posints["ship_"+data["mmsi"]] = markerta;
-
-            }
-
-
-
-
-           if(lnglats!=null){
-             var that = this;
-             var indexp = 0;
-              function addlayers(indexp){
-
-                var last = that.posints["ship_"+data["mmsi"]];
-
-
-               let tamarker = new Feature({
-                tadata: {
-                    sectionId: "point",
-                    towerNumber: 22,
-                    data: data,
-                    type: type
-                }, //这里是用来传值用的,在接下来的一章里(事件)中我会讲到。
-
-                geometry: new Point(lnglats==null?lnglat:lnglats[indexp]) //这里是点坐标的位置,这里要注意fromLonLat
-            });
-            tamarker.setStyle(
-                new Style({
-                    image: new Icon({
-                        color: "#eee",
-                        rotation:rotation,
-                        anchor:[0.5,0.5],
-                        rotateWithView:true,
-                        // color:"red",
-                        // size:[60,20],
-                        crossOrigin: "anonymous",
-                        src: require("../../assets/images/icon/" + img) //本地的样式
-                    })
-                })
-            ); //这里是样式
-
-            last.setSource(new SourceVec({
-                    features: [tamarker] //这里放的就是之前的那个点,如果要放置多个点直接push到这里面就行了
-                }));
+    },
 
-            }
+    addpoint: function (addrArry, data, img, type, rotation = 0) {
+      var lnglat = this.transpoints(addrArry, 0)[0];
+      var lnglats = null;
+
+      if (data["lnglats"] != undefined) {
+        lnglats = this.transpoints(data["lnglats"], 0);
+      }
+
+      let tamarker = new Feature({
+        tadata: {
+          sectionId: "point",
+          towerNumber: 22,
+          data: data,
+          type: type
+        }, //这里是用来传值用的,在接下来的一章里(事件)中我会讲到。
+
+        geometry: new Point(lnglats == null ? lnglat : lnglats[0]) //这里是点坐标的位置,这里要注意fromLonLat
+      });
+      tamarker.setStyle(
+        new Style({
+          image: new Icon({
+            color: "#eee",
+            rotation: rotation,
+            anchor: [0.5, 0.5],
+            rotateWithView: true,
+            // color:"red",
+            // size:[60,20],
+            crossOrigin: "anonymous",
+            src: require("../../assets/images/icon/" + img) //本地的样式
+          })
+        })
+      ); //这里是样式
+      var markerta = new LayerVec({
+        source: new SourceVec({
+          features: [tamarker] //这里放的就是之前的那个点,如果要放置多个点直接push到这里面就行了
+        })
+      });
+
+      this.map.addLayer(markerta); //这里是执行,执行之后点就出来了
+      if (data["mmsi"] != undefined) {
+        this.posints["ship_" + data["mmsi"]] = markerta;
+
+      }
+
+
+      if (lnglats != null) {
+        var that = this;
+        var indexp = 0;
+
+        function addlayers(indexp) {
+
+          var last = that.posints["ship_" + data["mmsi"]];
+
+
+          let tamarker = new Feature({
+            tadata: {
+              sectionId: "point",
+              towerNumber: 22,
+              data: data,
+              type: type
+            }, //这里是用来传值用的,在接下来的一章里(事件)中我会讲到。
+
+            geometry: new Point(lnglats == null ? lnglat : lnglats[indexp]) //这里是点坐标的位置,这里要注意fromLonLat
+          });
+          tamarker.setStyle(
+            new Style({
+              image: new Icon({
+                color: "#eee",
+                rotation: rotation,
+                anchor: [0.5, 0.5],
+                rotateWithView: true,
+                // color:"red",
+                // size:[60,20],
+                crossOrigin: "anonymous",
+                src: require("../../assets/images/icon/" + img) //本地的样式
+              })
+            })
+          ); //这里是样式
+
+          last.setSource(new SourceVec({
+            features: [tamarker] //这里放的就是之前的那个点,如果要放置多个点直接push到这里面就行了
+          }));
 
+        }
 
-             setInterval(()=>{  indexp = indexp>=lnglats.length?0:indexp; addlayers(indexp++);},1000);
 
+        setInterval(() => {
+          indexp = indexp >= lnglats.length ? 0 : indexp;
+          addlayers(indexp++);
+        }, 1000);
 
 
-           }
+      }
 
-        }
     }
+  }
 };
 </script>
 
 <style scoped>
 #map {
-    height: 100%;
+  height: 100%;
 }
 
 /*隐藏ol的一些自带元素*/
 
 .ol-attribution,
 .ol-zoom {
-    display: none;
+  display: none;
 }
 
 .contentFont {
-    font-size: 6rem;
-    line-height: 16rem;
+  font-size: 6rem;
+  line-height: 16rem;
 }
 
 .shipDiv {
-    position: absolute;
-    top: 250rem;
-    left: 140rem;
-    width: 240rem;
-    min-height: 130rem;
-    background-color: white;
+  position: absolute;
+  top: 250rem;
+  left: 140rem;
+  width: 240rem;
+  min-height: 130rem;
+  background-color: white;
 }
 
 .el-tabs__header {
-    margin: 0 !important;
+  margin: 0 !important;
 }
 
 .shipTitle {
-    padding-top: 4rem;
-    padding-left: 10rem;
-    padding-right: 10rem;
-    width: 100%;
-    height: 20rem;
-    background-color: #0d25a5;
-    color: white;
-    font-size: 7rem
+  padding-top: 4rem;
+  padding-left: 10rem;
+  padding-right: 10rem;
+  width: 100%;
+  height: 20rem;
+  background-color: #0d25a5;
+  color: white;
+  font-size: 7rem
 }
 
-.shipContent>>>.el-tabs__item {
-    font-weight: bold;
-    color: #A8A8A8
+.shipContent >>> .el-tabs__item {
+  font-weight: bold;
+  color: #A8A8A8
 }
 
-.shipContent>>>.el-tabs__item.is-active {
-    color: #0d25a5
+.shipContent >>> .el-tabs__item.is-active {
+  color: #0d25a5
 }
 
-.shipContent>>>.el-tabs__active-bar {
-    margin-left: 10rem
+.shipContent >>> .el-tabs__active-bar {
+  margin-left: 10rem
 }
 
-.shipContent>>>.el-tabs__nav {
-    padding-left: 10rem
+.shipContent >>> .el-tabs__nav {
+  padding-left: 10rem
 }
 
-.shipContent>>>.el-tabs__active-bar {
-    background-color: #0d25a5
+.shipContent >>> .el-tabs__active-bar {
+  background-color: #0d25a5
 }
 
-.tableSc>>>tr {
-    padding: 0;
-    height: 3rem;
-    line-height: 3rem;
-    font-size: 5rem;
+.tableSc >>> tr {
+  padding: 0;
+  height: 3rem;
+  line-height: 3rem;
+  font-size: 5rem;
 }
 
-.tableSc>>>td {
-    padding: 0;
-    height: 3rem;
-    line-height: 3rem
+.tableSc >>> td {
+  padding: 0;
+  height: 3rem;
+  line-height: 3rem
 }
 
 .icon_div {
-    position: absolute;
-    top: 330rem;
-    right: 160rem;
-    width: 70rem;
-    min-height: 40rem;
-    background-color: white;
+  position: absolute;
+  top: 330rem;
+  right: 160rem;
+  width: 70rem;
+  min-height: 40rem;
+  background-color: white;
 }
 
 .radio_div {
-    position: absolute;
-    top: 50rem;
-    left: 120rem;
-    padding-top: 4rem;
-    padding-left: 5rem;
-    background-color: white;
-    padding-right: 4rem;
+  position: absolute;
+  top: 50rem;
+  left: 120rem;
+  padding-top: 4rem;
+  padding-left: 5rem;
+  background-color: white;
+  padding-right: 4rem;
 }
 
-.radio_div>div {
-    line-height: 10rem;
+.radio_div > div {
+  line-height: 10rem;
 }
 
 .el-tabs__header {
-    margin: 0 !important;
+  margin: 0 !important;
 }
 </style>