From 8d755b0755dac542cc092ab8e40e65ba8d664bc6 Mon Sep 17 00:00:00 2001
From: 陈泽平 <chenzeping>
Date: 星期日, 30 五月 2021 14:53:20 +0800
Subject: [PATCH] 企业应急-事件上报-定位优化

---
 src/components/base-page/enterprise-emergency/events-reported/ReportLocationSection.vue |  274 +++++++++++++++++++++++-------------------------------
 1 files changed, 116 insertions(+), 158 deletions(-)

diff --git a/src/components/base-page/enterprise-emergency/events-reported/ReportLocationSection.vue b/src/components/base-page/enterprise-emergency/events-reported/ReportLocationSection.vue
index 7498287..9603092 100644
--- a/src/components/base-page/enterprise-emergency/events-reported/ReportLocationSection.vue
+++ b/src/components/base-page/enterprise-emergency/events-reported/ReportLocationSection.vue
@@ -1,30 +1,37 @@
 <template>
     <div class="ReportLocationSection">
-        <el-form :model="form" label-width="90px">
+        <el-form :model="form" label-width="120px">
             <el-row class="pipe-line-search">
-                <el-col :span="12">
+                <el-col :span="18">
                     <el-form-item label="绠$嚎鍚嶇О:">
-                        <el-input v-model="form.pipeName">
+                        <el-input v-model="form.pipeName" @change="pipelineSearch">
                             <el-button style="padding-right:10px;" slot="suffix" type="text" @click="pipelineSearch">
                                 <img src="../../../../../public/assets/images/map/emergency/search.png" alt="">
                             </el-button>
                         </el-input>
                     </el-form-item>
                 </el-col>
-                <el-col :span="8">
+                <el-col :span="6">
                     <el-button type="primary" size="small" icon="el-icon-location-outline" @click="pipeClickLocation">瀹氫綅
                     </el-button>
                 </el-col>
             </el-row>
             <el-row>
-                <el-col :span="12">
+                <el-col :span="24">
                     <el-form-item label="绠℃缂栫爜:">
                         <el-input v-model="form.sectionName" disabled></el-input>
                     </el-form-item>
                 </el-col>
+            </el-row>
+            <el-row>
                 <el-col :span="12">
-                    <el-form-item label="闄勫睘璁炬柦:">
+                    <el-form-item label="闄勫睘璁炬柦缂栫爜:">
                         <el-input v-model="form.affiliatedFacilities" disabled></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                    <el-form-item label="闄勫睘璁炬柦绫诲瀷:">
+                        <el-input v-model="form.affiliatedFacilitiesCode" disabled></el-input>
                     </el-form-item>
                 </el-col>
             </el-row>
@@ -141,7 +148,7 @@
             </el-card>
         </div>
         <el-row style="text-align: right;margin: 10px">
-            <el-button type="primary" @click="confirm">纭</el-button>
+            <el-button type="primary" @click="confirm" size="small">纭</el-button>
         </el-row>
     </div>
 </template>
@@ -160,7 +167,8 @@
       form: {
         pipeName: '',
         sectionName: '',
-        affiliatedFacilities: ''
+        affiliatedFacilities: '',
+        affiliatedFacilitiesCode: ''
       },
       // 绠$嚎鏌ヨ鏁版嵁鍒楄〃
       tableList: [],
@@ -196,57 +204,73 @@
         this.tableList = res.features
       }
       this.wfsHelper = new WfsHelper()
-      this.form.pipeName = ''
+      // this.form.pipeName = ''
       this.form.sectionName = ''
       this.form.affiliatedFacilities = ''
+      this.form.affiliatedFacilitiesCode = ''
     },
     // 鐐瑰嚮绠$嚎鍒楄〃 灞曠ず绠℃鍐呭 鍜岄檮灞炶鏂藉唴瀹�
-    async sectionShowClick (val) {
-      console.log(val)
-      // 濡傛灉 SectionAndAffFacTableJudge === true 鏄悳绱㈡暟鎹粨鏋滅殑鍒楄〃 鍙互杩涜 绠℃ 闄勫睘璁炬柦浜や簰 鐐瑰嚮瀹氫綅鏌ヨ缁撴灉 涓嶈繘琛岀偣鍑讳氦浜�
+    sectionShowClick (val) {
+      // console.log(val)
+      // this.SectionAndAffFacTableJudge = true
       if (this.SectionAndAffFacTableJudge === true) {
-        // 绠℃鏌ヨ
-        const sectionNameSearch = val.properties.pipename
-        this.tableListSection = []
-        this.wfsHelper.clearFilter()
-        this.wfsHelper.setTypeName(['sewer:pipesegment'])
-        this.wfsHelper.addLike('pipename', sectionNameSearch)
-        this.wfsHelper.addEquals('pipename', '\'' + sectionNameSearch + '\'')
-        const res = await AjaxUtils.GetDataAsynByUrl(this.wfsHelper.getUrl(), {})
-        // console.log(res)
-        if (res instanceof Object && Object.prototype.hasOwnProperty.call(res, 'features')) {
-          this.tableListSection = res.features
-        }
-        this.wfsHelper = new WfsHelper()
-        // 闄勫睘璁炬柦鏌ヨ
-        this.tableDataAffFac = []
-        const AffFacSearch = val.properties.pipecode
-        console.log(AffFacSearch)
-        this.wfsHelper.clearFilter()
-        this.wfsHelper.setTypeName(['sewer:view_pipeline'])
-        this.wfsHelper.addLike('pipecode', AffFacSearch)
-        // this.wfsHelper.addEquals('type', '\'' + AffFacSearch + '\'')
-        const resAffFac = await AjaxUtils.GetDataAsynByUrl(this.wfsHelper.getUrl(), {})
-        console.log(resAffFac)
-        if (resAffFac instanceof Object && Object.prototype.hasOwnProperty.call(resAffFac, 'features')) {
-          // for (let i = 0; i < resAffFac.features.length; i++) {
-          //   // console.log(resAffFac.features[i])
-          //   this.tableDataAffFac.push(resAffFac.features[i].properties)
-          // }
-          this.tableDataAffFac = resAffFac.features
-        }
-        this.wfsHelper = new WfsHelper()
+        this.searchSection(val)
+        this.searchAffFacData(val)
+      }
+    },
+    // 绠℃鏌ヨ
+    async searchSection (val) {
+      const sectionNameSearch = val.properties.pipename
+      this.tableListSection = []
+      this.wfsHelper.clearFilter()
+      this.wfsHelper.setTypeName(['sewer:pipesegment'])
+      this.wfsHelper.addLike('pipename', sectionNameSearch)
+      this.wfsHelper.addEquals('pipename', '\'' + sectionNameSearch + '\'')
+      const res = await AjaxUtils.GetDataAsynByUrl(this.wfsHelper.getUrl(), {})
+      // console.log(res)
+      if (res instanceof Object && Object.prototype.hasOwnProperty.call(res, 'features')) {
+        this.tableListSection = res.features
+      }
+    },
+    // 闄勫睘璁炬柦鏌ヨ
+    async searchAffFacData (val) {
+      this.tableDataAffFac = []
+      const AffFacSearch = val.properties.pipecode
+      this.wfsHelper.clearFilter()
+      this.wfsHelper.setTypeName(['sewer:view_pipeline'])
+      this.wfsHelper.addLike('pipecode', AffFacSearch)
+      // this.wfsHelper.addEquals('type', '\'' + AffFacSearch + '\'')
+      const resAffFac = await AjaxUtils.GetDataAsynByUrl(this.wfsHelper.getUrl(), {})
+      console.log(resAffFac)
+      if (resAffFac instanceof Object && Object.prototype.hasOwnProperty.call(resAffFac, 'features')) {
+        this.tableDataAffFac = resAffFac.features
+      }
+    },
+    // 鎼滅储鐨勫叕鍏辨柟娉曚紭鍖�
+    async publicSearch (searchVal, searchKeyword, searchTypeName, tableListData) {
+      tableListData = []
+      this.wfsHelper = new WfsHelper()
+      this.wfsHelper.clearFilter()
+      this.wfsHelper.setTypeName(searchTypeName)
+      this.wfsHelper.addLike(searchKeyword, searchVal)
+      this.wfsHelper.addEquals(searchKeyword, '\'' + searchVal + '\'')
+      const res = await AjaxUtils.GetDataAsynByUrl(this.wfsHelper.getUrl(), {})
+      // console.log(res)
+      if (res instanceof Object && Object.prototype.hasOwnProperty.call(res, 'features')) {
+        tableListData = res.features
       }
     },
     // 鐐瑰嚮绠℃鍒楄〃 绠℃缂栫爜浼犻��
     sectionCode (val) {
       // console.log(val)
-      this.form.sectionName = val.properties.pipecode
+      this.form.sectionName = val.properties.pipesegcode
     },
     // 鐐瑰嚮闄勫睘璁炬柦鍒楄〃 绠℃缂栫爜浼犻��
     affFacName (val) {
-      // console.log(val)
+      console.log(val)
+      // this.form.affiliatedFacilities = val.properties.code
       this.form.affiliatedFacilities = val.properties.name
+      this.form.affiliatedFacilitiesCode = val.properties.type
     },
     // 瀹氫綅鍔熻兘
     localAdr (val) {
@@ -258,138 +282,72 @@
     pipeClickLocation () {
       // 璁炬柦涓嶈繘琛� 绠$嚎琛ㄦ牸鏁版嵁鐨勭偣鍑讳氦浜�
       this.SectionAndAffFacTableJudge = false
-      // this.tableList = []
-      // 鐐瑰嚮鑾峰彇鏁版嵁
-      window.map.on('click', (e) => {
-        // window.mapManager.clickDialogSwitch = false
-        window.mapManager.loadWfsDatas(e.latlng).then((res) => {
-          for (let i = 0; i < res.features.length; i++) {
-            console.log(res.features[i])
-            const ids = res.features[i].id.split('.')
-            // console.log(ids[0])
-            if (ids[0] === 'pipeline') {
-              this.tableList.push(res.features[i])
-            } else if (ids[0] === 'pipesegment') {
-              this.tableListSection.push(res.features[i])
-            } else {
-              this.tableDataAffFac.push(res.features[i])
-              // const obj = {
-              //   properties: {
-              //     pipecode: res.features[i].properties.code,
-              //     name: res.features[i].properties.companyname,
-              //     type: res.features[i].properties.mediumtype
-              //   }
-              // }
-              // console.log(obj)
-              // this.tableDataAffFac.push(obj)
-              // console.log(this.tableDataAffFac)
-            }
-          }
+      if (this.SectionAndAffFacTableJudge === false) {
+        // 鐐瑰嚮鑾峰彇鏁版嵁
+        window.map.on('click', (e) => {
+          this.SectionAndAffFacTableJudge = false
+          // 鐐瑰嚮鍦板浘鍏抽棴寮规
+          window.mapManager.clickDialogSwitch = false
+          // 绠$嚎鐐瑰嚮鏁版嵁
+          this.pipeData(e)
+          // 绠℃鐐瑰嚮鏁版嵁
+          this.sectionData(e)
+          // 闄勫睘璁炬柦鏁版嵁
+          this.affFacData(e)
+          // 鍏抽棴鐐瑰嚮浜嬩欢
+          window.map.off('click')
         })
-        window.map.off('click')
-        // const size = window.map.getSize()
-        // var point = window.map.latLngToContainerPoint(e.latlng, window.map.getZoom())
-        // const wmsParams = Object.assign({
-        //   LAYERS: 'pipeline_group',
-        //   QUERY_LAYERS: 'pipeline_group',
-        //   WIDTH: size.x,
-        //   HEIGHT: size.y,
-        //   X: Math.round(point.x),
-        //   Y: Math.round(point.y),
-        //   BBOX: window.map.getBounds().toBBoxString()
-        // }, {
-        //   VERSION: '1.1.1',
-        //   SERVICE: 'WMS',
-        //   REQUEST: 'GetFeatureInfo',
-        //   // bbox: bbox,
-        //   FORMAT: 'image/png',
-        //   INFO_FORMAT: 'application/json',
-        //   TRANSPARENT: true,
-        //   FEATURE_COUNT: 50,
-        //   SRS: 'EPSG:4326',
-        //   EXCEPTIONS: 'application/vnd.ogc.se_inimage'
-        // })
-        // AjaxUtils.get4JsonDataByUrl(WMS_URL, wmsParams, (res) => {
-        //   // console.log(res)
-        //   for (let i = 0; i < res.data.features.length; i++) {
-        //     // console.log(res.data.features[i])
-        //     this.tableList.push(res.data.features[i])
-        //   }
-        // })
-        // // 绠℃
-        // this.sectionData(e)
-        // // 闄勫睘璁炬柦
-        // this.affFacData(e)
-      })
+      }
       // 鏁版嵁 閲嶆柊鑾峰彇 杩涜缃┖
-      this.tableList = []
-      this.tableListSection = []
-      this.tableDataAffFac = []
       this.form.pipeName = ''
       this.form.sectionName = ''
       this.form.affiliatedFacilities = ''
+      this.form.affiliatedFacilitiesCode = ''
+      this.tableList = []
+      this.tableListSection = []
+      this.tableDataAffFac = []
     },
-    // 鐐瑰嚮瀹氫綅 鎿﹀绠℃
+    // 鐐瑰嚮瀹氫綅鍖哄煙 鎼滃绠$嚎鏁版嵁
+    pipeData (e) {
+      this.publicWay(e, 'sewer:pipeline', 'sewer:pipeline', this.tableList)
+    },
+    // 鐐瑰嚮瀹氫綅鍖哄煙 鎼滃绠℃鏁版嵁
     sectionData (e) {
-      const size = window.map.getSize()
-      var point = window.map.latLngToContainerPoint(e.latlng, window.map.getZoom())
-      const wmsParams = Object.assign({
-        LAYERS: 'sewer:pipesegment',
-        QUERY_LAYERS: 'sewer:pipesegment',
-        WIDTH: size.x,
-        HEIGHT: size.y,
-        X: Math.round(point.x),
-        Y: Math.round(point.y),
-        BBOX: window.map.getBounds().toBBoxString()
-      }, {
+      this.publicWay(e, 'sewer:pipesegment', 'sewer:pipesegment', this.tableListSection)
+    },
+    // 鐐瑰嚮瀹氫綅鍖哄煙 鎼滃闄勫睘璁炬柦鏁版嵁
+    affFacData (e) {
+      this.publicWay(e, 'sewer:view_pipeline', 'sewer:view_pipeline', this.tableDataAffFac, 'pipecode <> \'\'')
+    },
+    // 鐐瑰嚮鎸夐挳瀹氫綅 鐨勫叕鍏变簨浠�
+    publicWay (e, layer, queryLayer, dataList, cqlfilter) {
+      const defaultWmsParams = {
         VERSION: '1.1.1',
         SERVICE: 'WMS',
         REQUEST: 'GetFeatureInfo',
-        // bbox: bbox,
         FORMAT: 'image/png',
         INFO_FORMAT: 'application/json',
         TRANSPARENT: true,
         FEATURE_COUNT: 50,
         SRS: 'EPSG:4326',
+        cql_filter: cqlfilter,
         EXCEPTIONS: 'application/vnd.ogc.se_inimage'
-      })
+      }
+      const size = window.map.getSize()
+      const point = window.map.latLngToContainerPoint(e.latlng, window.map.getZoom())
+      const wmsParams = Object.assign({
+        LAYERS: layer,
+        QUERY_LAYERS: queryLayer,
+        WIDTH: size.x,
+        HEIGHT: size.y,
+        X: Math.round(point.x),
+        Y: Math.round(point.y),
+        BBOX: window.map.getBounds().toBBoxString()
+      }, defaultWmsParams)
       AjaxUtils.get4JsonDataByUrl(WMS_URL, wmsParams, (res) => {
         // console.log(res)
         for (let i = 0; i < res.data.features.length; i++) {
-          this.tableListSection.push(res.data.features[i])
-        }
-      })
-    },
-    // 鐐瑰嚮瀹氫綅 鎿﹀闄勫睘璁炬柦
-    affFacData (e) {
-      const size = window.map.getSize()
-      var point = window.map.latLngToContainerPoint(e.latlng, window.map.getZoom())
-      const wmsParams = Object.assign({
-        LAYERS: 'sewer:view_pipeline',
-        QUERY_LAYERS: 'sewer:view_pipeline',
-        // LAYERS: 'pipeline_fs',
-        // QUERY_LAYERS: 'pipeline_fs',
-        WIDTH: size.x,
-        HEIGHT: size.y,
-        X: Math.round(point.x),
-        Y: Math.round(point.y),
-        BBOX: window.map.getBounds().toBBoxString()
-      }, {
-        VERSION: '1.1.1',
-        SERVICE: 'WMS',
-        REQUEST: 'GetFeatureInfo',
-        // bbox: bbox,
-        FORMAT: 'image/png',
-        INFO_FORMAT: 'application/json',
-        TRANSPARENT: true,
-        FEATURE_COUNT: 50,
-        SRS: 'EPSG:4326',
-        EXCEPTIONS: 'application/vnd.ogc.se_inimage'
-      })
-      AjaxUtils.get4JsonDataByUrl(WMS_URL, wmsParams, (res) => {
-        console.log(res)
-        for (let i = 0; i < res.data.features.length; i++) {
-          this.tableDataAffFac.push(res.data.features[i])
+          dataList.push(res.data.features[i])
         }
       })
     },

--
Gitblit v1.8.0