From c56e506fd34c58209240e97fc29043639fae5d19 Mon Sep 17 00:00:00 2001
From: ChenZeping <chenzeping>
Date: 星期四, 29 四月 2021 15:13:21 +0800
Subject: [PATCH] 统计表,指标,预报警表格弹框公共修改,管线分析功能

---
 src/components/panel/topicSearch/SewersSelect/SewersAnalysis.vue |  361 +++++++++++++++++++++++++++------------------------
 1 files changed, 192 insertions(+), 169 deletions(-)

diff --git a/src/components/panel/topicSearch/SewersSelect/SewersAnalysis.vue b/src/components/panel/topicSearch/SewersSelect/SewersAnalysis.vue
index 7a9b7a5..3894691 100644
--- a/src/components/panel/topicSearch/SewersSelect/SewersAnalysis.vue
+++ b/src/components/panel/topicSearch/SewersSelect/SewersAnalysis.vue
@@ -13,25 +13,24 @@
         <el-button type="primary" @click="linkQuery" size="mini" style="margin-bottom: 5px;"
                    title="鏍规嵁璧峰銆佺粨鏉熺娈佃繘琛岃繛閫氭�у垎鏋�">杩為�氭�у垎鏋�
         </el-button>
-        <el-button type="primary" @click="linkClear" size="mini" style="margin-bottom: 5px;"
+        <el-button type="primary" @click="handleClick" size="mini" style="margin-bottom: 5px;"
                    title="鏍规嵁璧峰銆佺粨鏉熺娈佃繘琛岃繛閫氭�у垎鏋�">娓呴櫎
         </el-button>
         <!--        <el-scrollbar style="height:450px">-->
         <!--          <el-card shadow="hover">-->
         <span class="fixed-style">璧峰绠℃</span>
         <el-table
-            ref="singleTable"
-            highlight-current-row
             :data="tableDataLinkStart"
-            @row-click="linkSelectStart"
             max-height="200"
+            @row-click="linkSelectStart"
             style="width: 100%" size="mini">
           <el-table-column
-              prop="lineloopna"
+              prop="datasource"
               label="绠$嚎绫诲瀷"
           >
           </el-table-column>
           <el-table-column
+              :show-overflow-tooltip="true"
               sortable
               width="100"
               prop="pipecode"
@@ -41,14 +40,14 @@
           <el-table-column
               sortable
               width="100"
-              prop="startpoint"
+              prop="material"
               label="璧风偣缂栧彿"
           >
           </el-table-column>
           <el-table-column
               sortable
               width="100"
-              prop="endpointnu"
+              prop="material"
               label="缁堢偣缂栧彿"
           >
           </el-table-column>
@@ -64,17 +63,19 @@
         </el-table>
         <span class="fixed-style">缁撴潫绠℃</span>
         <el-table
+            height="100"
             max-height="200"
             highlight-current-row
             :data="tableDataLinkEnd"
             @row-click="linkSelectEnd"
             style="width: 100%" size="mini">
           <el-table-column
-              prop="lineloopna"
+              prop="datasource"
               label="绠$嚎绫诲瀷"
           >
           </el-table-column>
           <el-table-column
+              :show-overflow-tooltip="true"
               sortable
               width="100"
               prop="pipecode"
@@ -84,14 +85,14 @@
           <el-table-column
               sortable
               width="100"
-              prop="startpoint"
+              prop="material"
               label="璧风偣缂栧彿"
           >
           </el-table-column>
           <el-table-column
               sortable
               width="100"
-              prop="endpointnu"
+              prop="material"
               label="缁堢偣缂栧彿"
           >
           </el-table-column>
@@ -153,7 +154,7 @@
         <!--          </el-card>-->
         <!--        </el-scrollbar>-->
       </el-tab-pane>
-      <el-tab-pane label="鐖嗙" name="second" style="color: #cccccc">
+      <el-tab-pane label="鐖嗙" style=";color: #cccccc" name="second">
         <el-row>
           <span>鐖嗙锛堢浉鍏冲紑鍏筹級</span>
           <el-button type="primary" @click="bgClick" size="mini" style="margin-bottom: 5px;" title="鍦板浘涓婄偣鍑婚�夋嫨鍙戠敓鐖嗙鐨勭娈�">
@@ -163,14 +164,14 @@
           </el-button>
         </el-row>
         <!--        <el-card shadow="hover">-->
-        <span class="fixed-style">鍙戠敓鐖嗚鐨勭娈�:</span>
+        <span class="fixed-style">鍙戠敓鐖嗚鐨勭娈�</span>
         <el-table
             ref="singleTable"
             highlight-current-row
             :data="bgPipeLine"
             style="width: 100%" size="mini">
           <el-table-column
-              prop="lineloopna"
+              prop="pipecode"
               label="绠$嚎绫诲瀷"
           >
           </el-table-column>
@@ -184,14 +185,14 @@
           <el-table-column
               sortable
               width="100"
-              prop="startpoint"
+              prop="pipecode"
               label="璧风偣缂栧彿"
           >
           </el-table-column>
           <el-table-column
               sortable
               width="100"
-              prop="endpointnu"
+              prop="pipecode"
               label="缁堢偣缂栧彿"
           >
           </el-table-column>
@@ -205,7 +206,7 @@
             </template>
           </el-table-column>
         </el-table>
-        <span class="fixed-style">闇�瑕佸叧闂殑闃�闂細</span>
+        <span class="fixed-style">闇�瑕佸叧闂殑闃�闂�</span>
         <el-table
             highlight-current-row
             :data="bgFm"
@@ -381,7 +382,7 @@
             <span>鏂潰鍥�</span>
           </div>
           <span v-show="!myChartShow" style="color: #909399;font-size: 12px;">鏆傛棤鏁版嵁</span>
-          <div v-show="myChartShow" id="echarts_box" ref="myChart" style="width: 600px;height:300px;"></div>
+          <div v-show="myChartShow" id="echarts_box" ref="myChart" style="width: 350px;height:200px;"></div>
         </el-card>
       </el-tab-pane>
     </el-tabs>
@@ -488,12 +489,12 @@
       const param = {
         x: point[0],
         y: point[1],
-        radius: 3
+        radius: 5
       }
       // 鏍规嵁鍙傛暟璇锋眰鎺ュ彛鏁版嵁
       const res = await mapApi.findPipelineByClickPoint(param)
       if (this.activeName === 'first') {
-        if (this.linkType) {
+        if (this.linkType === 1) {
           this.tableDataLinkStart = res.data
         } else {
           this.tableDataLinkEnd = res.data
@@ -502,10 +503,14 @@
         this.bgPipeLine = res.data
       } else if (this.activeName === 'third') {
         this.tableDataLiuxiang = res.data
-      } else if (this.activeName === 'fourth') {
-
-      }
-      console.log(res)
+      } else if (this.activeName === 'fourth') {}
+      console.log(res.data)
+    },
+    // 娴佸悜鏄剧ず 鐨勬柟娉曞弬鏁板皝
+    createFlowLine (param) {
+      const flowLine = window.L.polyline(param.points, param.option)
+      flowLine.addTo(window.map)
+      return flowLine
     },
 
     // 杩為�氭�� ===> 鍦板浘鐐瑰嚮璧峰绠℃e
@@ -518,7 +523,7 @@
     // 杩為�氭�� 璧峰绠℃ table鍒楄〃鏁版嵁 閫夋嫨鏁版嵁浜嬩欢 鐨勭偣鍑讳簨浠�
     linkSelectStart (e) {
       console.log('閫夋嫨璧峰绠℃')
-      this.$refs.singleTable.setCurrentRow(e)
+      // this.$refs.singleTable.setCurrentRow(e)
       this.currentSelectStart = e
       if (this.currentSelectStartLine != null) {
         this.currentSelectStartLine.remove()
@@ -529,8 +534,8 @@
         style: function (feature) {
           return { color: 'rgba(0,255,0,.6)' }
         }
-      }).addTo(this.map)
-      this.map.panInsideBounds(this.currentSelectStartLine.getBounds())
+      }).addTo(window.map)
+      window.map.panInsideBounds(this.currentSelectStartLine.getBounds())
     },
     // 杩為�氭�� ===> 鍦板浘鐐瑰嚮缁撴潫绠℃
     linkClickEnd () {
@@ -541,7 +546,6 @@
     // 杩為�氭�� 缁撴潫绠℃ table鍒楄〃鏁版嵁 閫夋嫨鏁版嵁浜嬩欢 鐨勭偣鍑讳簨浠�
     linkSelectEnd (e) {
       console.log('閫夋嫨缁撴潫绠℃')
-      console.log(e)
       this.currentSelectEnd = e
 
       // 鍋氬垽鏂璻emove
@@ -549,14 +553,14 @@
         this.currentSelectEndLine.remove()
         this.currentSelectEndLine = null
       }
-
+      // geoGson
       const geom = JSON.parse(e.geomText)
       this.currentSelectEndLine = window.L.geoJSON(geom, {
         style: function (feature) {
           return { color: 'rgba(200,0,200,.6)' }
         }
-      }).addTo(this.map)
-      this.map.panInsideBounds(this.currentSelectEndLine.getBounds())
+      }).addTo(window.map)
+      window.map.panInsideBounds(this.currentSelectEndLine.getBounds())
     },
     // 杩為�氭�ф煡璇�
     async linkQuery () {
@@ -578,7 +582,6 @@
         startLineID: this.currentSelectStart.id,
         endLineID: this.currentSelectEnd.id
       }
-      console.log(param)
       // 璇锋眰鎺ュ彛鍜屾暟鎹�
       const res = await mapApi.findConnectedPipelines(param)
       console.log(res)
@@ -590,7 +593,9 @@
       }
       this.tableDataLinkResult = res.data
       this.currentLinkIsTrue = '杩為��'
+      // table 鏁扮粍鏁版嵁缃┖
       const linkPipe = []
+      // 鏁版嵁閬嶅巻geoJson
       res.data.forEach((itm, idx) => {
         const geom = JSON.parse(itm.geomText)
         const points = []
@@ -599,29 +604,23 @@
         })
         linkPipe.push(points)
       })
-
-      // linkPipe.forEach((itm, idx) => {
-      //   const param1 = {
-      //     points: itm,
-      //     option: {
-      //       dashArray: '15 15',
-      //       dashSpeed: -30,
-      //       color: '#ffff00'
-      //     }
-      //   }
-      //   const line = main.createFlowLine(param1)
-      //   const createFlowLine = (param) => {
-      //     const flowLine = window.L.polyline(param.points, param.option)
-      //     flowLine.addTo(window.map)
-      //     return flowLine
-      //   }
-      //   this.linkPipeline.push(line)
-      // })
+      linkPipe.forEach((itm, idx) => {
+        const param1 = {
+          points: itm,
+          option: {
+            dashArray: '15 15',
+            dashSpeed: -30,
+            color: '#ffff00'
+          }
+        }
+        const line = this.createFlowLine(param1)
+        this.linkPipeline.push(line)
+      })
     },
     // 杩為�氭�� 鍒嗘瀽缁撴灉table鍒楄〃鏁版嵁閫夋嫨鐐瑰嚮浜嬩欢
     linkResultSelect (e) {
-      console.log('杩為�氭�у垎鏋愮粨鏋滃垪琛ㄧ偣鍑�')
-      console.log(e)
+      // console.log('杩為�氭�у垎鏋愮粨鏋滃垪琛ㄧ偣鍑�')
+      // console.log(e)
 
       // const geom = JSON.parse(e.geomText)
       // if (this.currentSelectResultLine != null) {
@@ -676,63 +675,64 @@
         this.currentSelectEndLine = null
       }
       this.clearLinkPipe()
-      // const geom = JSON.parse(e.geomText)
-      // this.currentSelectEndLine = L.geoJSON(geom, {
-      //   style: function (feature) {
-      //     return { color: 'rgba(200,0,200,.6)' }
-      //   }
-      // }).addTo(this.map)
-      this.map.panInsideBounds(this.currentSelectEndLine.getBounds())
+      // 缁欓�夋嫨涓殑鏁版嵁娣诲姞璁剧疆鏍峰紡
+      const geom = JSON.parse(e.geomText)
+      this.currentSelectEndLine = window.L.geoJSON(geom, {
+        style: function (feature) {
+          return { color: 'rgba(200,0,200,.6)' }
+        }
+      }).addTo(window.map)
+      window.map.panInsideBounds(this.currentSelectEndLine.getBounds())
 
-      // const param = {
-      //   lineID: e.id
-      // }
-      // const res = await api.findLeakages(param)
-      // console.log(res)
+      // 鏁版嵁璇锋眰鍙傛暟
+      const param = {
+        lineID: e.id
+      }
+      const res = await mapApi.findLeakages(param)
+      console.log(res)
 
-      // const len = res.data.length
-      // if (len === 0) {
-      //   this.$message('鏈壘鍒伴渶瑕佸叧闂殑闃�闂�')
-      //
-      //   return
-      // }
-      // res.data.reverse()
-      // this.bgFm = res.data
-      //
-      // this.bgPoint = res.data[0].startControlPoint
-      //
-      // const point = JSON.parse(this.bgPoint.geomText)
-      //
-      // const p = [point.coordinates[1], point.coordinates[0]]
-      //
-      // // this.bgMarker = main.createFlowMarker(p)
-      // this.bgMarker.bindTooltip(this.bgPoint.pointnumbe)
-      // this.bgMarker.addTo(this.map)
-      // this.map.flyTo(p)
-      //
-      // const linkPipe = []
-      // res.data.forEach((itm, idx) => {
-      //   const geom = JSON.parse(itm.geomText)
-      //   const points = []
-      //   geom.coordinates.forEach((it, id) => {
-      //     points.push(it.reverse())
-      //   })
-      //
-      //   linkPipe.push(points)
-      // })
+      const len = res.data.length
+      if (len === 0) {
+        this.$message('鏈壘鍒伴渶瑕佸叧闂殑闃�闂�')
+        return
+      }
+      res.data.reverse()
+      this.bgFm = res.data
 
-      // linkPipe.forEach((itm, idx) => {
-      // const param1 = {
-      //   points: itm,
-      //   option: {
-      //     dashArray: '15 15',
-      //     dashSpeed: -30,
-      //     color: '#ffff00'
-      //   }
-      // }
-      // const line = main.createFlowLine(param1)
-      // this.linkPipeline.push(line)
-      // })
+      this.bgPoint = res.data[0].startControlPoint
+
+      const point = JSON.parse(this.bgPoint.geomText)
+
+      const p = [point.coordinates[1], point.coordinates[0]]
+
+      // this.bgMarker = main.createFlowMarker(p)
+      this.bgMarker.bindTooltip(this.bgPoint.pointnumbe)
+      this.bgMarker.addTo(this.map)
+      this.map.flyTo(p)
+
+      const linkPipe = []
+      res.data.forEach((itm, idx) => {
+        const geom = JSON.parse(itm.geomText)
+        const points = []
+        geom.coordinates.forEach((it, id) => {
+          points.push(it.reverse())
+        })
+
+        linkPipe.push(points)
+      })
+
+      linkPipe.forEach((itm, idx) => {
+        const param1 = {
+          points: itm,
+          option: {
+            dashArray: '15 15',
+            dashSpeed: -30,
+            color: '#ffff00'
+          }
+        }
+        const line = this.createFlowLine(param1)
+        this.linkPipeline.push(line)
+      })
     },
     bgFmClick (e) {
       console.log('鐐瑰嚮褰卞搷鐨勯榾闂�')
@@ -740,7 +740,7 @@
       const point = [e.data[0][0], e.data[0][1]]
       // const marker = main.createFlowMarker(point)
       // marker.addTo(this.map)
-      this.map.flyTo(point, 16)
+      window.map.flyTo(point, 16)
     },
 
     // 娴佸悜鍒嗘瀽缁撴灉table鍒楄〃鏁版嵁鐐瑰嚮
@@ -748,51 +748,54 @@
       console.log('杩為�氭�у垎鏋愮粨鏋滃垪琛ㄧ偣鍑�')
       console.log(e)
 
-      // const geom = JSON.parse(e.geomText)
-      // if (this.currentSelectResultLine != null) {
-      //   this.currentSelectResultLine.remove()
-      //   this.currentSelectResultLine = null
-      // }
-      // this.currentSelectResultLine = L.geoJSON(geom, {
-      //   style: function (feature) {
-      //     return { color: 'rgba(0,250,255,.6)' }
-      //   }
-      // }).addTo(this.map)
-      // this.map.panInsideBounds(this.currentSelectResultLine.getBounds())
+      const geom = JSON.parse(e.geomText)
+      if (this.currentSelectResultLine != null) {
+        this.currentSelectResultLine.remove()
+        this.currentSelectResultLine = null
+      }
+      this.currentSelectResultLine = window.L.geoJSON(geom, {
+        style: function (feature) {
+          return { color: 'rgba(0,250,255,.6)' }
+        }
+      }).addTo(window.map)
+      window.map.panInsideBounds(this.currentSelectResultLine.getBounds())
     },
-    // 鐐瑰嚮鏄剧ず娴佸悜 table鍒楄〃鏁版嵁
+    // 鐐瑰嚮鏄剧ず娴佸悜 table鍒楄〃涓殑鏁版嵁 => 杩涜瀹樼綉娴佸悜鐨勬樉绀�
     async lxQuery (e) {
-      console.log(e)
+      // console.log(e)
       this.clearLinkPipe()
-      // const param = {
-      //   lineNodeID: e.startpoint
-      // }
-      // const res = await api.findFlowDirection(param)
+      const param = {
+        // lineNodeID: e.startpoint
+        lineNodeID: e.gid
+      }
+      const res = await mapApi.findFlowDirection(param)
+      this.getres(res)
+    },
+    // 鐐瑰嚮鏄剧ず娴佸悜 table鍒楄〃涓殑鏁版嵁 => 杩涜瀹樼綉娴佸悜鐨勬樉绀� 鐨勬暟鎹鐞嗘柟娉�
+    getres (res) {
+      this.lxTableDataResult = res.data
+      const linkPipe = []
+      res.data.forEach((itm, idx) => {
+        const geom = JSON.parse(itm.geomText)
+        const points = []
+        geom.coordinates.forEach((it, id) => {
+          points.push(it.reverse())
+        })
+        linkPipe.push(points)
+      })
 
-      // this.lxTableDataResult = res.data
-      // const linkPipe = []
-      // res.data.forEach((itm, idx) => {
-      //   const geom = JSON.parse(itm.geomText)
-      //   const points = []
-      //   geom.coordinates.forEach((it, id) => {
-      //     points.push(it.reverse())
-      //   })
-      //
-      //   linkPipe.push(points)
-      // })
-
-      // linkPipe.forEach((itm, idx) => {
-      //   // const param1 = {
-      //   //   points: itm,
-      //   //   option: {
-      //   //     dashArray: '15 15',
-      //   //     dashSpeed: -30,
-      //   //     color: '#ffff00'
-      //   //   }
-      //   // }
-      //   // const line = main.createFlowLine(param1)
-      //   // this.linkPipeline.push(line)
-      // })
+      linkPipe.forEach((itm, idx) => {
+        const param1 = {
+          points: itm,
+          option: {
+            dashArray: '15 15',
+            dashSpeed: -30,
+            color: '#ffff00'
+          }
+        }
+        const line = this.createFlowLine(param1)
+        this.linkPipeline.push(line)
+      })
     },
     // 娓呴櫎娴佸悜
     clearLX () {
@@ -804,15 +807,15 @@
     // 娴佸悜-绠$嚎閫夋嫨
     selectRowLiuXiang (e) {
       // 閫夋嫨瑕佹樉绀虹殑娴佸悜绾�
-      console.log('閫夋嫨瑕佹樉绀虹殑娴佸悜绾�')
-      console.log(e)
+      // console.log('閫夋嫨瑕佹樉绀虹殑娴佸悜绾�')
+      // console.log(e)
     },
     lxHandleClick (e) {
-      console.log('姝f祦鍚戞樉绀�')
-      console.log(e)
-
-      // 娓呴櫎娴佸悜鏂规硶
-      this.clearLX()
+      // console.log('姝f祦鍚戞樉绀�')
+      // console.log(e)
+      //
+      // // 娓呴櫎娴佸悜鏂规硶
+      // this.clearLX()
       // const param = {
       //   points: e.data,
       //   option: {
@@ -820,7 +823,7 @@
       //     dashSpeed: -30
       //   }
       // }
-      // this.flowPipeLine = main.createFlowLine(param)
+      // this.flowPipeLine = this.createFlowLine(param)
     },
 
     // 娓呮鍒嗘瀽缁撴灉
@@ -834,12 +837,12 @@
     },
     // 閫嗘祦鍚戞樉绀�
     lxHandleClick2 (e) {
-      console.log('閫嗘祦鍚戞樉绀�')
-      console.log(e)
-      if (this.flowPipeLine != null) {
-        this.flowPipeLine.remove()
-        this.flowPipeLine = null
-      }
+      // console.log('閫嗘祦鍚戞樉绀�')
+      // console.log(e)
+      // if (this.flowPipeLine != null) {
+      //   this.flowPipeLine.remove()
+      //   this.flowPipeLine = null
+      // }
       // const param = {
       //   points: e.data,
       //   option: {
@@ -847,20 +850,20 @@
       //     dashSpeed: 30
       //   }
       // }
-      // this.flowPipeLine = main.createFlowLine(param)
+      // this.flowPipeLine = this.createFlowLine(param)
     },
     // 妯柇闈㈢粯鍒剁嚎娈�
     drawLine () {
-      console.log('drawLine')
+      // console.log('drawLine')
       if (this.measure === null) {
-        this.measure = new DrawLine(this.map)
+        this.measure = new DrawLine(window.map)
       }
       this.measure.destory()
       this.measure.init()
     },
     // 妯柇闈㈡暟鎹姹�
     async getHdmPoint (line) {
-      console.log('妯柇闈㈢殑缁樺埗绾�')
+      // console.log('妯柇闈㈢殑缁樺埗绾�')
       // console.table(line)
       // 妯柇闈㈡暟鎹�
       this.hdmParam = {
@@ -877,8 +880,8 @@
         return false
       }
       // 宸茬粯鍒剁嚎鍥� 杩涜缁樺埗妯柇闈㈡暟鎹垎鏋�
-      // const res = await api.getCrossSection(this.hdmParam)
-      // console.log(res)
+      const res = await mapApi.getCrossSection(this.hdmParam)
+      console.log(res)
     },
     // 妯柇闈㈢粯鍒跺畬鎴愬悗 杩涜妯柇闈㈡暟鎹垎鏋� 杩涜鍥捐〃灞曠ず
     async selectRow (e) {
@@ -897,7 +900,7 @@
           type: 'line'
         }]
       }
-      this.myChartShow = true
+      // this.myChartShow = true
       this.myChart.setOption(option)
     },
     // 妯柇闈㈡竻闄�
@@ -912,6 +915,26 @@
 </script>
 
 <style lang="less" scoped>
+///deep/ .el-table__row:hover > td {
+//  background: none !important;
+//}
+//
+///deep/ .el-table__row--striped:hover > td {
+//  background: none !important;
+//}
+
+///deep/ .el-table__row.hover-row {
+//  background: rgba(0, 16, 30, 0.9) !important
+//}
+
+/deep/ .el-table .has-gutter tr th {
+  border: none !important;
+}
+
+/deep/ .el-table tbody tr:hover > td {
+  background: none !important
+}
+
 /deep/ .el-tabs__header {
   background: none !important;
 }
@@ -976,6 +999,6 @@
 }
 
 /deep/ .fixed-table {
-  background: rgba(0, 16, 30, 1) !important;
+  //background: rgba(0, 16, 30, 0.9) !important;
 }
 </style>

--
Gitblit v1.8.0