From 0039429882f8434000a0f61d6995324f1589633a Mon Sep 17 00:00:00 2001
From: seatonwan9 <seatonwan9@163.com>
Date: 星期日, 30 五月 2021 13:36:06 +0800
Subject: [PATCH] Merge branch 'develop' of http://xearth.cn:6600/r/wuyushui/SewerAndRainNetwork into develop
---
public/assets/images/map-pages/title_bg2.png | 0
src/components/panel/RightSearchPanel.vue | 124 ++++--
src/components/base-page/enterprise-emergency/events-reported/ReportLocationSearch.vue | 174 ++++++--
src/conf/Topic.js | 4
src/components/helpers/MapManager.js | 5
src/views/popup/DynamicHeader/DynamicTable.vue | 43 ++
src/components/LayerController/modules/LcServiceLayer.vue | 44 ++
public/assets/images/map-pages/title_bg.png | 0
src/components/base-page/WasteWater/WasteWaterHoursChart.vue | 227 +++++++++--
src/components/base-page/WasteWater/WasteWaterIndex.vue | 21
src/components/base-page/enterprise-emergency/events-reported/ReportLocationPoint.vue | 40 +
src/components/table/components/tabHandover.vue | 7
src/conf/Constants.js | 17
src/views/popup/DynamicHeader/TableColumn.vue | 24 +
src/components/base-page/PublicDataStandard.vue | 13
src/components/base-page/enterprise-emergency/events-reported/ReportLocationSection.vue | 139 ++++--
src/components/base-page/WasteWater/WasteWaterDayChart.vue | 243 +++++++++---
src/components/base-page/enterprise-emergency/events-reported/EventsReported.vue | 4
src/components/panel/topicSearch/enterprise-emergency/EventQuery.vue | 2
src/App.vue | 6
20 files changed, 843 insertions(+), 294 deletions(-)
diff --git a/public/assets/images/map-pages/title_bg.png b/public/assets/images/map-pages/title_bg.png
new file mode 100644
index 0000000..0f0b6cd
--- /dev/null
+++ b/public/assets/images/map-pages/title_bg.png
Binary files differ
diff --git a/public/assets/images/map-pages/title_bg2.png b/public/assets/images/map-pages/title_bg2.png
new file mode 100644
index 0000000..642a42f
--- /dev/null
+++ b/public/assets/images/map-pages/title_bg2.png
Binary files differ
diff --git a/src/App.vue b/src/App.vue
index 6b056a7..a2535d8 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -29,5 +29,9 @@
-ms-overflow-style: none;
font-size: 12px;
}
-
+.popoverBoxStyle{
+ border: 0.00521rem solid #00fff6;
+ box-shadow: 0 0 0.03rem #00fff6;
+ background-color: rgba(0, 16, 30, 0.7) !important;
+}
</style>
diff --git a/src/components/LayerController/modules/LcServiceLayer.vue b/src/components/LayerController/modules/LcServiceLayer.vue
index acb38a6..eb0472f 100644
--- a/src/components/LayerController/modules/LcServiceLayer.vue
+++ b/src/components/LayerController/modules/LcServiceLayer.vue
@@ -7,17 +7,17 @@
<i class="downUp el-icon-caret-bottom" @click="item.isShow=!item.isShow" :class="item.isShow?'':'active'" ></i><!-- el-icon-arrow-down -->
<!-- 涓�绾у浘灞傞亶鍘� -->
<div style="padding-left:25px;padding-top:10px;color:#fff;font-size: 16px;">
- <input type="checkbox" :class="item.type==1?'active':''" :name="'wmsLayer_'+item.code" :checked="item.checked" :value="item.code" @change="swAllLayers(item)"/>{{ item.name }}
+ <input type="checkbox" :class="{ 'active': item.type === 1 }" :name="'wmsLayer_'+item.code" :checked="item.checked" :value="item.code" @change="swAllLayers(item)"/>{{ item.name }}
</div>
<div class="layerbox-item" v-show="item.isShow" >
<!-- 浜岀骇鍥惧眰閬嶅巻 -->
<div class="basemap-layer-item" v-for="(itm,index2) in item.layers" :key="index2" :class="!itm.layers?'felxs':''" >
- <input type="checkbox" :class="itm.type==1?'active':''" :name="'wmsSublayers_'+item.code+'_'+itm.code" :checked="itm.checked" :value="itm.code" @change="swAllLayers(itm)"/>{{ itm.name }}
+ <input type="checkbox" :class="{ 'active': itm.type === 1 }" :name="'wmsSublayers_'+item.code+'_'+itm.code" :checked="itm.checked" :value="itm.code" @change="swAllLayers(itm)"/>{{ itm.name }}
<!-- 涓夌骇鍥惧眰閬嶅巻 -->
<div class="layerbox-item-3" v-show="itm.layers">
<div class="basemap-layer-item" v-for="(layer,index3) in itm.layers" :key="index3">
<input type="checkbox"
- :class="layer.type==1?'active':''"
+ :class="{ 'active': layer.type === 1 }"
:name="'wmsSublayers_'+item.code+'_'+layer.code"
:checked="layer.checked"
:value="layer.code"
@@ -36,7 +36,7 @@
<script>
import LcServiceLayerFilter from '@components/LayerController/modules/LcServiceLayerFilter'
-import bus from '@/eventBus'
+
export default {
name: 'LcServiceLayer',
components: { LcServiceLayerFilter },
@@ -68,6 +68,8 @@
} else {
this.toggleLayer(item)
}
+ /* <<<<<<< HEAD
+ bus.$emit('changeSearchBar', item)
this.serviceLayers.forEach(function (item1, index1) {
if (item1.layers) {
item1.istrue = 0
@@ -112,6 +114,7 @@
// console.log(item1.layers.length, item1.istrue, item1.isfalse, item1.type)
}
})
+>>>>>>> de7390c66ef3e3fe316e804495a78d05a01f0160 */
// console.log(this.serviceLayers)
},
swLayers (configs, checked) {
@@ -126,6 +129,30 @@
}
}
},
+ setLayerType (configs, checkedSum) {
+ if (configs) {
+ for (let i = 0, len = configs.length; i < len; ++i) {
+ const config = configs[i]
+ const checked = config.checked
+ if (config.layers) {
+ checkedSum = this.setLayerType(config.layers, checkedSum || 0)
+ if (checkedSum === config.layers.length) {
+ config.type = 2
+ config.checked = true
+ } else if (checkedSum === 0) {
+ config.type = 0
+ config.checked = false
+ } else {
+ config.type = 1
+ }
+ checkedSum = 0
+ continue
+ }
+ checkedSum = checkedSum + (checked ? 1 : 0)
+ }
+ return checkedSum
+ }
+ },
toggleLayer (itm) {
if (itm.checked) {
window.layerFactory.show(itm)
@@ -134,6 +161,15 @@
}
// this.updateWms()
}
+ },
+ watch: {
+ serviceLayers: {
+ handler: function (val) {
+ this.setLayerType(val, 0)
+ },
+ immediate: true,
+ deep: true
+ }
}
}
</script>
diff --git a/src/components/base-page/PublicDataStandard.vue b/src/components/base-page/PublicDataStandard.vue
index df75eaf..164801f 100644
--- a/src/components/base-page/PublicDataStandard.vue
+++ b/src/components/base-page/PublicDataStandard.vue
@@ -7,7 +7,7 @@
<!-- <span class="grid-content">搴熸皵娴侀噺 : <i style="color: #e8ee0b">120343.18</i></span>-->
<span class="grid-content" v-for="item in dataStandard" :key="item.current.name">{{ item.current.name }} :
<i style="color: #e8ee0b">{{ item.current.val }}</i> {{
- item.standard.name ? item.standard.name + ':' : ''
+ item.standard.name && item.current.name.indexOf('娴侀噺') === -1 ? item.standard.name + ':' : ''
}} <i style="color: #fff">{{ item.standard.val }}</i></span>
</div>
</div>
@@ -16,6 +16,11 @@
<script>
export default {
name: 'PublicDataStandard',
+ watch: {
+ dataStandard (val, oldVal) {
+ this.dataStandard = val
+ }
+ },
props: {
dataStandard: {
type: Array,
@@ -31,12 +36,12 @@
.animation {
.information {
.grid-content {
- padding: 0.02rem;
- background-color: #2e4967;
+ padding: 0.03rem 0.08rem 0.03rem 0.08rem;
text-align: center;
border-radius: 0.02rem;
line-height: 0.15rem;
- margin: 0 0.05rem;
+ margin: 0 0.03rem;
+ box-shadow: 0 0 10px rgba(129,211,248,.35) inset;
}
}
}
diff --git a/src/components/base-page/WasteWater/WasteWaterDayChart.vue b/src/components/base-page/WasteWater/WasteWaterDayChart.vue
index 1fcb2c9..8f0bce3 100644
--- a/src/components/base-page/WasteWater/WasteWaterDayChart.vue
+++ b/src/components/base-page/WasteWater/WasteWaterDayChart.vue
@@ -13,7 +13,14 @@
<el-option v-for="(item,index) in formData.regionList" :key="index" :label="item" :value="item"></el-option>
</el-select>
<el-button @click="querySearch()">鏌ヨ</el-button>
- <el-button>鏄庣粏琛�</el-button>
+ <el-popover
+ placement="top"
+ width="100%"
+ popper-class="popoverBoxStyle"
+ trigger="click">
+ <dynamic-table :tableData="tableData" :tableHeader="tableConfig" v-if="tableData"></dynamic-table>
+ <el-button slot="reference">鏄庣粏琛�</el-button>
+ </el-popover>
</div>
<div class="echarts-chart">
<div ref="echartsDay"></div>
@@ -26,56 +33,19 @@
import dayjs from 'dayjs'
import PublicDataStandard from '../PublicDataStandard'
import mapApi from '@/api/mapApi'
+import DynamicTable from '../../../views/popup/DynamicHeader/DynamicTable' // 澶氱骇琛ㄥご
export default {
name: 'WasteWaterDayChart',
components: {
- PublicDataStandard
+ PublicDataStandard,
+ DynamicTable
},
data () {
return {
// tab鏍忎紶閫掓帴鏀舵暟鎹�
- dataStandard: [
- {
- current: {
- name: '姘哀鍖栫墿',
- val: 29.93
- },
- standard: {
- name: '鏍囧噯',
- val: 100
- }
- },
- {
- current: {
- name: '浜屾哀鍖栫~',
- val: 17.34
- },
- standard: {
- name: '鏍囧噯',
- val: 50
- }
- },
- {
- current: {
- name: '鐑熷皹',
- val: 6.93
- },
- standard: {
- name: '鏍囧噯',
- val: 30
- }
- },
- {
- current: {
- name: '搴熸皵娴侀噺',
- val: 120
- },
- standard: {
- name: '',
- val: null
- }
- }],
+ dataStandard: [],
+ tableData: null,
formData: {
region: '25',
regionList: [25, 50, 75, 100],
@@ -86,7 +56,98 @@
dataType: 1,
jcdID: 1,
bzz: null,
- bzzList: []
+ bzzList: [],
+ // 琛ㄥご鏁版嵁
+ tableConfig: [
+ {
+ id: 100,
+ label: '鎺掓斁鐐�',
+ prop: 'OnLineMonEmissPointName'
+ },
+ {
+ id: 200,
+ label: '鐩戞祴鏃堕棿',
+ prop: 'MonTimeStr'
+ },
+ {
+ id: 300,
+ label: 'COD',
+ prop: 'PoltmtrlName',
+ children: [
+ {
+ id: 310,
+ label: '瀹炴祴鎺掓斁閲忥紙kg/h锛�',
+ prop: 'COD_EmissQty'
+ },
+ {
+ id: 320,
+ label: '瀹炴祴娴撳害锛坢g/l锛�',
+ prop: 'COD_MonQty'
+ },
+ {
+ id: 330,
+ label: '鏍囧噯鍊硷紙mg/l锛�',
+ prop: 'COD_StdValue'
+ }
+ ]
+ },
+ {
+ id: 400,
+ label: '姘ㄦ爱',
+ prop: 'PoltmtrlName',
+ children: [
+ {
+ id: 410,
+ label: '瀹炴祴鎺掓斁閲忥紙kg/h锛�',
+ prop: '姘ㄦ爱_EmissQty'
+ },
+ {
+ id: 420,
+ label: '瀹炴祴娴撳害锛坢g/l锛�',
+ prop: '姘ㄦ爱_MonQty'
+ },
+ {
+ id: 430,
+ label: '鏍囧噯鍊硷紙mg/l锛�',
+ prop: '姘ㄦ爱_StdValue'
+ }
+ ]
+ },
+ {
+ id: 500,
+ label: 'PH',
+ prop: 'PoltmtrlName',
+ children: [
+ {
+ id: 510,
+ label: '瀹炴祴鎺掓斁閲忥紙kg/h锛�',
+ prop: 'pH_EmissQty'
+ },
+ {
+ id: 520,
+ label: '瀹炴祴娴撳害锛坢g/l锛�',
+ prop: 'pH_MonQty'
+ },
+ {
+ id: 530,
+ label: '鏍囧噯鍊硷紙mg/l锛�',
+ prop: 'pH_StdValue'
+ }
+ ]
+ },
+ {
+ id: 600,
+ label: '搴熸按娴侀噺',
+ prop: '',
+ children: [
+ {
+ id: 610,
+ label: '瀹炴祴娴侀噺锛坢鲁/h锛�',
+ prop: '搴熸按娴侀噺_MonQty'
+ }
+ ]
+ }
+ ]
}
},
mounted () {
@@ -104,7 +165,7 @@
poltMtrlId: '',
emissTypeId: '',
onLineMonEmissPointId: 23,
- monItemId: 28,
+ monItemId: '28,31,35', // 鐩戞祴椤� COD銆佹皑姘�丳H
beginTime: this.formData.timeStart,
endTime: this.formData.timeEnd,
dataType: this.dataType
@@ -114,6 +175,8 @@
},
get24HourDate (res) {
if (res.length > 0) {
+ this.dataStandard = []
+ this.tableData = this.analysisResult(res) // 灏忔椂鏄庣粏琛ㄨВ鏋愮粨鏋�
// 澶勭悊鏁版嵁寮�濮�
const d = res
const nameList = [] // 瀛樻斁鍥句緥
@@ -148,19 +211,44 @@
if (nameList.length === 0) {
nameList.push(d[i].PoltmtrlName.trim())
dateList.push(strDate)
-
+ this.dataStandard.push({
+ current: {
+ name: d[i].PoltmtrlName.trim(),
+ val: ''
+ },
+ standard: {
+ name: '鏍囧噯',
+ val: ''
+ }
+ })
bzh.push(d[i].StdValue)
data = {
name: d[i].PoltmtrlName.trim(),
- data: [d[i].MonQty]
+ data: []
+ }
+ if (d[i].MonQty !== null) {
+ data.data.push(d[i].MonQty)
}
dataList.push(data)
} else if (nameList.indexOf(d[i].PoltmtrlName.trim()) < 0) {
nameList.push(d[i].PoltmtrlName)
bzh.push(d[i].StdValue)
+ this.dataStandard.push({
+ current: {
+ name: d[i].PoltmtrlName.trim(),
+ val: ''
+ },
+ standard: {
+ name: '鏍囧噯',
+ val: ''
+ }
+ })
data = {
name: d[i].PoltmtrlName.trim(),
- data: [d[i].MonQty]
+ data: []
+ }
+ if (d[i].MonQty !== null) {
+ data.data.push(d[i].MonQty)
}
dataList.push(data)
} else {
@@ -169,7 +257,7 @@
}
for (let j = 0; j < dataList.length; j++) {
if (d[i].PoltmtrlName.trim() === dataList[j].name) {
- dataList[j].data.push(d[i].MonQty)
+ if (d[i].MonQty !== null)dataList[j].data.push(d[i].MonQty)
}
}
}
@@ -265,7 +353,10 @@
}
ydatas.push(ydata)
}
-
+ for (var t = 0; t < this.dataStandard.length; t++) {
+ this.dataStandard[t].current.val = ydatas[t].data[ydatas[t].data.length - 1].toFixed(2)
+ this.dataStandard[t].standard.val = ydatas[t].bzz
+ }
const yname = '娴撳害(mg/l)'
this.effChartShow(legend, xdata, ydatas, yname, this.jcdID, this.datatype)
}
@@ -273,7 +364,6 @@
effChartShow (legend, xdata, ydatas, yname, jcdID, datatype) {
this.chart = this.$echarts.init(this.$refs.echartsDay)
this.chart.clear()
- // console.log(this.chart)
this.chart.clear()
let dataUnit = ''
if (datatype === 1) {
@@ -302,12 +392,14 @@
biaozhuiz = bzzList[i].bzhui
}
}
- if (c.value[1] > biaozhuiz) {
- return zdcbcolor
- } else if (c.value[1] > biaozhuiz * 0.9) {
- return '#FFA500'
- } else {
- return '#33c95f'
+ if (c.value) {
+ if (c.value[1] > biaozhuiz) {
+ return zdcbcolor
+ } else if (c.value[1] > biaozhuiz * 0.9) {
+ return '#FFA500'
+ } else {
+ return '#33c95f'
+ }
}
},
lineStyle: { // 鎶樼嚎鐨勯鑹�
@@ -544,6 +636,43 @@
}
this.chart.setOption(option)
window.onresize = this.chart.resize
+ },
+ analysisResult (result) {
+ // 澶勭悊琛ㄦ牸澶�
+ const json = {}
+ const arr = []
+ // 澶勭悊琛ㄦ牸鍐呭
+ const bodyDataList = []
+ const dataMap = {}
+ for (let i = 0; i < result.length; i++) {
+ json[result[i].PoltmtrlName] = result[i].PoltmtrlName
+ const rgdata = result[i]
+ const timeTag = rgdata.MonTimeStr
+ if (!dataMap[timeTag]) {
+ dataMap[timeTag] = { MonTimeStr: '' + rgdata.MonTimeStr }
+ }
+ // 寰�鏁版嵁涓坊鍔犲睘鎬ф暟鎹�
+ const el = dataMap[timeTag]
+ el.OnLineMonEmissPointName = rgdata.OnLineMonEmissPointName
+ el[rgdata.PoltmtrlName + '_EmissQty'] = rgdata.EmissQty ? rgdata.EmissQty.toFixed(2) : '--'
+ el[rgdata.PoltmtrlName + '_MonQty'] = rgdata.MonQty ? rgdata.MonQty.toFixed(2) : '--'
+ el[rgdata.PoltmtrlName + '_StdValue'] = rgdata.StdValue ? rgdata.StdValue.toFixed(2) : '--'
+ }
+ let FSLLtemp = null
+ for (var key in json) {
+ if (key === '搴熸按娴侀噺' || key === '搴熸按') {
+ FSLLtemp = key
+ } else {
+ arr.push(key)
+ }
+ }
+ if (FSLLtemp != null) {
+ arr.push(FSLLtemp)
+ }
+ for (var p in dataMap) {
+ bodyDataList.push(dataMap[p])
+ }
+ return bodyDataList
}
}
}
diff --git a/src/components/base-page/WasteWater/WasteWaterHoursChart.vue b/src/components/base-page/WasteWater/WasteWaterHoursChart.vue
index 2acfe80..6cdefb1 100644
--- a/src/components/base-page/WasteWater/WasteWaterHoursChart.vue
+++ b/src/components/base-page/WasteWater/WasteWaterHoursChart.vue
@@ -13,7 +13,14 @@
<el-option v-for="(item,index) in formData.regionList" :key="index" :label="item" :value="item"></el-option>
</el-select>
<el-button @click="querySearch()">鏌ヨ</el-button>
- <el-button>鏄庣粏琛�</el-button>
+ <el-popover
+ placement="top"
+ width="100%"
+ popper-class="popoverBoxStyle"
+ trigger="click">
+ <dynamic-table :tableData="tableData" :tableHeader="tableConfig" v-if="tableData"></dynamic-table>
+ <el-button slot="reference">鏄庣粏琛�</el-button>
+ </el-popover>
</div>
<div class="echarts-chart">
<div ref="echartsHour"></div>
@@ -26,56 +33,21 @@
import PublicDataStandard from '../PublicDataStandard'
import dayjs from 'dayjs'
import mapApi from '../../../api/mapApi'
+import DynamicTable from '../../../views/popup/DynamicHeader/DynamicTable' // 澶氱骇琛ㄥご
export default {
name: 'WasteWaterHoursChart',
components: {
- PublicDataStandard
+ PublicDataStandard,
+ DynamicTable
},
data () {
return {
// tab鏍忎紶閫掓帴鏀舵暟鎹�
- dataStandard: [
- {
- current: {
- name: '姘哀鍖栫墿',
- val: 29.93
- },
- standard: {
- name: '鏍囧噯',
- val: 100
- }
- },
- {
- current: {
- name: '浜屾哀鍖栫~',
- val: 17.34
- },
- standard: {
- name: '鏍囧噯',
- val: 50
- }
- },
- {
- current: {
- name: '鐑熷皹',
- val: 6.93
- },
- standard: {
- name: '鏍囧噯',
- val: 30
- }
- },
- {
- current: {
- name: '搴熸皵娴侀噺',
- val: 123
- },
- standard: {
- name: '',
- val: null
- }
- }],
+ dataStandard: [],
+ popUpName: '',
+ tableData: null,
+ mingxiBoxHtml: '',
formData: {
region: '25',
regionList: [25, 50, 75, 100],
@@ -87,7 +59,98 @@
dataType: 2,
bzz: null,
bzzList: [],
- bz: ''
+ bz: '',
+ // 琛ㄥご鏁版嵁
+ tableConfig: [
+ {
+ id: 100,
+ label: '鎺掓斁鐐�',
+ prop: 'OnLineMonEmissPointName'
+ },
+ {
+ id: 200,
+ label: '鐩戞祴鏃堕棿',
+ prop: 'MonTimeStr'
+ },
+ {
+ id: 300,
+ label: 'COD',
+ prop: 'PoltmtrlName',
+ children: [
+ {
+ id: 310,
+ label: '瀹炴祴鎺掓斁閲忥紙kg/h锛�',
+ prop: 'COD_EmissQty'
+ },
+ {
+ id: 320,
+ label: '瀹炴祴娴撳害锛坢g/l锛�',
+ prop: 'COD_MonQty'
+ },
+ {
+ id: 330,
+ label: '鏍囧噯鍊硷紙mg/l锛�',
+ prop: 'COD_StdValue'
+ }
+ ]
+ },
+ {
+ id: 400,
+ label: '姘ㄦ爱',
+ prop: 'PoltmtrlName',
+ children: [
+ {
+ id: 410,
+ label: '瀹炴祴鎺掓斁閲忥紙kg/h锛�',
+ prop: '姘ㄦ爱_EmissQty'
+ },
+ {
+ id: 420,
+ label: '瀹炴祴娴撳害锛坢g/l锛�',
+ prop: '姘ㄦ爱_MonQty'
+ },
+ {
+ id: 430,
+ label: '鏍囧噯鍊硷紙mg/l锛�',
+ prop: '姘ㄦ爱_StdValue'
+ }
+ ]
+ },
+ {
+ id: 500,
+ label: 'PH',
+ prop: 'PoltmtrlName',
+ children: [
+ {
+ id: 510,
+ label: '瀹炴祴鎺掓斁閲忥紙kg/h锛�',
+ prop: 'pH_EmissQty'
+ },
+ {
+ id: 520,
+ label: '瀹炴祴娴撳害锛坢g/l锛�',
+ prop: 'pH_MonQty'
+ },
+ {
+ id: 530,
+ label: '鏍囧噯鍊硷紙mg/l锛�',
+ prop: 'pH_StdValue'
+ }
+ ]
+ },
+ {
+ id: 600,
+ label: '搴熸按娴侀噺',
+ prop: '',
+ children: [
+ {
+ id: 610,
+ label: '瀹炴祴娴侀噺锛坢鲁/h锛�',
+ prop: '搴熸按娴侀噺_MonQty'
+ }
+ ]
+ }
+ ]
}
},
mounted () {
@@ -105,18 +168,20 @@
poltMtrlId: '',
emissTypeId: '',
onLineMonEmissPointId: 23,
- monItemId: 28,
+ monItemId: '28,31,35', // 鐩戞祴椤� COD銆佹皑姘�丳H
beginTime: this.formData.startTime,
endTime: this.formData.endTime,
dataType: this.dataType
}
const result = (await mapApi.getQueryOnlineMonData(data)).Result.DataInfo
- // console.log(result)
+ this.popUpName = result[0].OnLineMonEmissPointName
this.get24HourDate(result)
},
// 缁樺埗灏忔椂鏁版嵁鎶樼嚎鍥�
get24HourDate (result) {
if (result.length > 0) {
+ this.dataStandard = []
+ this.tableData = this.analysisResult(result) // 灏忔椂鏄庣粏琛ㄨВ鏋愮粨鏋�
const d = result
const nameList = [] // 瀛樻斁鍥句緥
const dateList = [] // 瀛樻斁鏃堕棿
@@ -170,24 +235,43 @@
}
}
}
-
if (nameList.length === 0) {
nameList.push(d[i].PoltmtrlName.trim())
+ this.dataStandard.push({
+ current: {
+ name: d[i].PoltmtrlName.trim(),
+ val: 29.93
+ },
+ standard: {
+ name: '鏍囧噯',
+ val: 100
+ }
+ })
dateList.push(strDate)
if ((d[i].PoltmtrlName === '搴熸按娴侀噺' || d[i].PoltmtrlName === '搴熸按') && d[i].MonQty < 0) {
d[i].MonQty = 0
}
- data.push(d[i].MonQty)
+ if (d[i].MonQty !== null)data.push(d[i].MonQty)
bzh.push(d[i].StdValue)
} else if (nameList.indexOf(d[i].PoltmtrlName.trim()) < 0) {
nameList.push(d[i].PoltmtrlName)
+ this.dataStandard.push({
+ current: {
+ name: d[i].PoltmtrlName.trim(),
+ val: 29.93
+ },
+ standard: {
+ name: '鏍囧噯',
+ val: 100
+ }
+ })
bzh.push(d[i].StdValue)
dataList.push(data)
data = []
if ((d[i].PoltmtrlName === '搴熸按娴侀噺' || d[i].PoltmtrlName === '搴熸按') && d[i].MonQty < 0) {
d[i].MonQty = 0
}
- data.push(d[i].MonQty)
+ if (d[i].MonQty !== null)data.push(d[i].MonQty)
} else if (i === d.length - 1) {
if ((d[i].PoltmtrlName === '搴熸按娴侀噺' || d[i].PoltmtrlName === '搴熸按') && d[i].MonQty < 0) {
d[i].MonQty = 0
@@ -202,10 +286,9 @@
if ((d[i].PoltmtrlName === '搴熸按娴侀噺' || d[i].PoltmtrlName === '搴熸按') && d[i].MonQty < 0) {
d[i].MonQty = 0
}
- data.push(d[i].MonQty)
+ if (d[i].MonQty !== null)data.push(d[i].MonQty)
}
}
-
const newList = []
for (let i = 0; i < dataList.length; i++) {
@@ -291,7 +374,10 @@
// console.log(ydatas)
const yname = '娴撳害(mg/l)'
-
+ for (var t = 0; t < this.dataStandard.length; t++) {
+ this.dataStandard[t].current.val = ydatas[t].data[ydatas[t].data.length - 1].toFixed(2)
+ this.dataStandard[t].standard.val = ydatas[t].bzz
+ }
this.effChartShow(legend, xdata, ydatas, yname, this.jcdID, this.datatype)
}
},
@@ -570,6 +656,43 @@
}
this.chart.setOption(option)
window.onresize = this.chart.resize
+ },
+ analysisResult (result) {
+ // 澶勭悊琛ㄦ牸澶�
+ const json = {}
+ const arr = []
+ // 澶勭悊琛ㄦ牸鍐呭
+ const bodyDataList = []
+ const dataMap = {}
+ for (let i = 0; i < result.length; i++) {
+ json[result[i].PoltmtrlName] = result[i].PoltmtrlName
+ const rgdata = result[i]
+ const timeTag = rgdata.MonTimeStr
+ if (!dataMap[timeTag]) {
+ dataMap[timeTag] = { MonTimeStr: '' + rgdata.MonTimeStr }
+ }
+ // 寰�鏁版嵁涓坊鍔犲睘鎬ф暟鎹�
+ const el = dataMap[timeTag]
+ el.OnLineMonEmissPointName = rgdata.OnLineMonEmissPointName
+ el[rgdata.PoltmtrlName + '_EmissQty'] = rgdata.EmissQty ? rgdata.EmissQty.toFixed(2) : '--'
+ el[rgdata.PoltmtrlName + '_MonQty'] = rgdata.MonQty ? rgdata.MonQty.toFixed(2) : '--'
+ el[rgdata.PoltmtrlName + '_StdValue'] = rgdata.StdValue ? rgdata.StdValue.toFixed(2) : '--'
+ }
+ let FSLLtemp = null
+ for (var key in json) {
+ if (key === '搴熸按娴侀噺' || key === '搴熸按') {
+ FSLLtemp = key
+ } else {
+ arr.push(key)
+ }
+ }
+ if (FSLLtemp != null) {
+ arr.push(FSLLtemp)
+ }
+ for (var p in dataMap) {
+ bodyDataList.push(dataMap[p])
+ }
+ return bodyDataList
}
}
}
diff --git a/src/components/base-page/WasteWater/WasteWaterIndex.vue b/src/components/base-page/WasteWater/WasteWaterIndex.vue
index 0e8c77a..d5c3167 100644
--- a/src/components/base-page/WasteWater/WasteWaterIndex.vue
+++ b/src/components/base-page/WasteWater/WasteWaterIndex.vue
@@ -84,26 +84,26 @@
display: flex;
align-items: center;
justify-content: space-between;
- padding: 5px 0;
+ padding-left: 0.07rem;
border-bottom: 1px #243a55 solid;
-
.navigation-left {
display: flex;
align-items: center;
.uncheck {
- margin: 0 10px;
cursor: pointer;
- padding: 5px;
+ margin-left: -0.05rem;
+ width: .8rem;
+ padding: 6px 0;
/*border: 1px solid #2b87c8;*/
/*border-radius: 4px;*/
+ background-position: 0 0;
+ background-repeat: no-repeat;
+ background-size: 100% 100%;
+ background-image: url("../../../../public/assets/images/map-pages/title_bg.png");
text-align: center;
vertical-align: middle !important;
color: #fff;
- -webkit-transform: skew(30deg);
- -moz-transform: skew(30deg);
- -o-transform: skew(30deg);
- transform: skew(15deg);
}
.default-uncheck {
@@ -113,15 +113,13 @@
}
.hover {
- background-color: #0e539e;
+ background-image: url("../../../../public/assets/images/map-pages/title_bg2.png");
color: #ffffff;
cursor: pointer;
}
.hover:hover {
cursor: pointer;
- padding: 5px;
- border: 1px solid #5F9EA0;
border-radius: 4px;
text-align: center;
color: #F0FFFF;
@@ -129,7 +127,6 @@
}
.navigation-left :hover {
- background-color: #0e639e;
color: #fff;
cursor: pointer;
}
diff --git a/src/components/base-page/enterprise-emergency/events-reported/EventsReported.vue b/src/components/base-page/enterprise-emergency/events-reported/EventsReported.vue
index 85d1972..71adc84 100644
--- a/src/components/base-page/enterprise-emergency/events-reported/EventsReported.vue
+++ b/src/components/base-page/enterprise-emergency/events-reported/EventsReported.vue
@@ -127,8 +127,8 @@
</el-form-item>
</div>
<el-form-item class="confirmCancel">
- <el-button type="primary" @click="submitForm('ruleForm')">纭</el-button>
- <el-button @click="resetForm('ruleForm')">鍙栨秷</el-button>
+ <el-button type="primary" size="small" @click="submitForm('ruleForm')">纭</el-button>
+ <el-button size="small" @click="resetForm('ruleForm')">鍙栨秷</el-button>
</el-form-item>
</el-form>
<el-dialog
diff --git a/src/components/base-page/enterprise-emergency/events-reported/ReportLocationPoint.vue b/src/components/base-page/enterprise-emergency/events-reported/ReportLocationPoint.vue
index 96388b5..58c1bc9 100644
--- a/src/components/base-page/enterprise-emergency/events-reported/ReportLocationPoint.vue
+++ b/src/components/base-page/enterprise-emergency/events-reported/ReportLocationPoint.vue
@@ -3,28 +3,42 @@
<el-row class="place-box">
<div class="place-left">
<el-form :model="LongLatPos" label-width="90px">
- <el-form-item label="缁忓害:">
- <el-input v-model="LongLatPos.longPos"></el-input>
- </el-form-item>
- <el-form-item label="绾害:">
- <el-input v-model="LongLatPos.latPos"></el-input>
- </el-form-item>
+ <el-row style="display: flex;align-items: center">
+ <el-form-item label="缁忓害:" style="display: inline-block">
+ <el-col :span="20">
+ <el-input v-model="LongLatPos.longPos"></el-input>
+ </el-col>
+ </el-form-item>
+ <el-col :span="4">
+ <el-button type="primary" size="small" @click="mapPoints">鐐瑰嚮瀹氫綅</el-button>
+ </el-col>
+ </el-row>
+ <el-row style="display: flex;align-items: center">
+ <el-form-item label="绾害:">
+ <el-col :span="20">
+ <el-input v-model="LongLatPos.latPos"></el-input>
+ </el-col>
+ </el-form-item>
+ <el-col :span="4">
+ <el-button type="primary" size="small" @click="dataPoints">鏁版嵁瀹氫綅</el-button>
+ </el-col>
+ </el-row>
</el-form>
</div>
- <div class="place-right">
- <el-button type="primary" size="small" @click="mapPoints">鐐瑰嚮瀹氫綅</el-button>
- <el-button type="primary" size="small" @click="dataPoints">鏁版嵁瀹氫綅</el-button>
- </div>
+ <!-- <div class="place-right">-->
+ <!-- <el-button type="primary" size="small" @click="mapPoints">鐐瑰嚮瀹氫綅</el-button>-->
+ <!-- <el-button type="primary" size="small" @click="dataPoints">鏁版嵁瀹氫綅</el-button>-->
+ <!-- </div>-->
</el-row>
<div class="place-bottom" style="text-align: right;margin: 5px">
- <el-button type="primary" @click="confirm">纭</el-button>
+ <el-button type="primary" @click="confirm" size="small">纭</el-button>
</div>
</div>
</template>
<script>
import { pulseEffect } from '../../../../utils/utils'
-import iconUrl from '../../../../../public/assets/images/map/loc.png'
+import iconUrl from '../../../../../public/assets/images/map/marker-icon.png'
import eventBus from '../../../../eventBus'
export default {
@@ -52,7 +66,7 @@
this.marker = window.L.marker(as, {
icon: window.L.icon({
iconUrl: iconUrl,
- iconSize: [30, 30],
+ iconSize: [25, 45],
iconAnchor: [15, 15]
})
})
diff --git a/src/components/base-page/enterprise-emergency/events-reported/ReportLocationSearch.vue b/src/components/base-page/enterprise-emergency/events-reported/ReportLocationSearch.vue
index 709627b..fbd79d3 100644
--- a/src/components/base-page/enterprise-emergency/events-reported/ReportLocationSearch.vue
+++ b/src/components/base-page/enterprise-emergency/events-reported/ReportLocationSearch.vue
@@ -3,23 +3,45 @@
<el-row>
<el-input type="text" v-model="clickLocation" clearable @change="focusLocation"></el-input>
</el-row>
- <el-scrollbar style="height:86.22px">
- <el-row v-for="(item,index) in searchList" :key="index" style="display: flex;align-items: center">
- <el-col :span="12">
- <span>{{ item.name }}</span>
- </el-col>
- <el-col :span="12">
- <el-button type="primary" size="mini" icon="el-icon-position" @click="locationMapClick(item)">瀹氫綅
- </el-button>
- </el-col>
- <!-- <el-pagination-->
- <!-- layout="prev, pager, next"-->
- <!-- :total="50">-->
- <!-- </el-pagination>-->
- </el-row>
- </el-scrollbar>
+ <!-- <el-scrollbar style="height:250.34px">-->
+ <el-row v-for="(item,index) in searchList.slice((currentPage-1)*pageSize,currentPage*pageSize)" :key="index"
+ style="display: flex;align-items: center;margin: 0.1343rem 15px;text-align: left"
+ class="environmental-risk-list">
+ <el-col :span="4">
+ <img src="../../../../../public/assets/images/map/marker-icon.png" alt="" class="state"
+ style="background: none;margin: 0 15px">
+ </el-col>
+ <el-col :span="12">
+ <div class=search-list>
+ <!-- <h4 :class="activeNum===index?'hover':''" @click="handleLocation(index)">鍚嶇О锛�<h3 style="display: inline-block">{{ item.name }}</h3></h4>-->
+ <h3 :class="activeNum===index?'hover':''" @click="handleLocation(index)">鍚嶇О锛歿{ item.name }}</h3>
+ <p style="text-overflow: ellipsis;white-space: nowrap;overflow: hidden">鍦板潃锛�<span>{{ item.address }}</span>
+ <p>鐢佃瘽锛�<span>{{ item.phone }}</span></p>
+ </div>
+ </el-col>
+ <el-col :span="8" style="text-align: right">
+ <el-button type="primary" size="mini" icon="el-icon-position" @click="locationMapClick(item,index)">
+ 瀹氫綅
+ </el-button>
+ </el-col>
+ </el-row>
+ <!-- </el-scrollbar>-->
+ <!-- <el-card class="footer-page" >-->
+ <div v-if="total > 10">
+ <el-pagination
+ small
+ @current-change="handlePage"
+ :page-size=pageSize
+ :current-page.sync="currentPage"
+ layout="prev, pager, next"
+ :total=total
+ class="warnPagination"
+ >
+ </el-pagination>
+ </div>
+ <!-- </el-card>-->
<el-row style="text-align: right">
- <el-button type="primary" @click="confirm">纭</el-button>
+ <el-button type="primary" size="small" @click="confirm">纭</el-button>
</el-row>
</div>
</template>
@@ -29,24 +51,34 @@
import { reportLocationSearch } from '../../../../api/request'
import { pulseEffect } from '../../../../utils/utils'
import eventBus from '../../../../eventBus'
-import iconUrl from '../../../../../public/assets/images/map/loc.png'
+import iconUrl from '../../../../../public/assets/images/map/marker-icon.png'
export default {
name: 'ReportLocationSearch',
data () {
return {
+ activeNum: -1,
// 鐐瑰嚮瀹氫綅缁戝畾鏁版嵁
clickLocation: '',
searchList: [],
- marker: null
+ marker: null,
+ total: 0,
+ // 鍒嗛〉 榛樿灞曠ず
+ currentPage: 1,
+ // 鍒嗛〉 姣忛〉澶氬皯鏁版嵁
+ pageSize: 3
}
},
methods: {
+ handlePage (currentPage) {
+ // this.focusLocation()
+ this.currentPage = currentPage
+ },
+ handleLocation (index) {
+ this.activeNum = index
+ },
// 鎼滅储瀹氫綅
focusLocation () {
- // console.log(this.clickLocation)
- // console.log(window.map.getZoom())
- // console.log(window.map.getBounds())
const getBoundsData = '' + window.map.getBounds()._southWest.lng + ',' + window.map.getBounds()._southWest.lat + ',' + window.map.getBounds()._northEast.lng + ',' + window.map.getBounds()._northEast.lat
const data = {
postStr: {
@@ -60,45 +92,33 @@
},
type: 'query'
}
- // console.log(data)
reportLocationSearch(data).then(res => {
- // console.log(res)
+ console.log(res)
this.searchList = res.pois
- // console.log(this.searchList)
- // const as = res.pois[0].lonlat.trim().split(' ')
- // window.map.setView([as[1], as[0]], 17)
- // pulseEffect([as[1], as[0]])
- // for (let i = 0; i < res.pois.length; i++) {
- // const as = res.pois[i].lonlat.trim().split(' ')
- // if (res.pois[i].name.indexOf(this.clickLocation) >= 0) {
- // window.map.setView([as[1], as[0]], 17)
- // pulseEffect([as[1], as[0]])
- // }
- // }
+ this.total = res.pois.length
})
- this.clickLocation = ''
},
// 鐐瑰嚮瀹氫綅
- locationMapClick (val) {
- console.log(val)
+ locationMapClick (val, index) {
+ this.activeNum = index
+ // console.log(val)
const ps = val.lonlat.trim().split(' ')
- // const htmls = '<div><ul><li>' + val.name + '</li> + <li>' + val.adress + '</li></ul></div>'
+ // const htmls = '<div><ul><li>' + val.name + '</li></ul></div>'
// var myIcon = window.L.divIcon({
// html: htmls,
// className: 'company-bindTooltip',
// iconSize: 16
// })
- const htmls = '<div><ul><li>' + val.name + '</li> <br/> <li>' + val.address + '</li> <br/> <li>' + val.phone + '</li></ul></div>'
this.marker = window.L.marker([ps[1], ps[0]], {
icon: window.L.icon({
iconUrl: iconUrl,
- iconSize: [30, 30],
+ iconSize: [25, 40],
iconAnchor: [15, 15]
})
// icon: myIcon
})
- .bindTooltip(htmls, {
- // permanent: 'true',
+ .bindTooltip(val.name, {
+ permanent: 'true',
direction: 'bottom',
offset: [0, 10],
sticky: true,
@@ -127,8 +147,27 @@
/* height: 10px;*/
/* max-height: 10px;*/
/*}*/
- .div-list-search {
+ .environmental-risk-list {
+ color: @color;
+ border-bottom: 1px solid rgba(0, 255, 246, 0.14);
+ h3 {
+ font-size: 0.1rem;
+ }
+ }
+
+ /*<!--.environmental-risk-list:hover {-->*/
+ /*<!-- color: @color-highlight;-->*/
+ /*<!-- background: @background-color;-->*/
+ /*<!--}-->*/
+ .search-list {
+ h3:hover {
+ color: @color-highlight;
+ }
+ }
+
+ .hover {
+ color: @color-highlight;
}
.click-location {
@@ -144,4 +183,53 @@
margin: 15px auto;
}
}
+
+ /deep/
+ .warnPagination {
+ .btn-quicknext, .btn-quickprev {
+ color: #e4e8f1 !important;
+ background-color: transparent;
+ // border: 1px solid #25AECD;
+ border-left: 1px solid #25AECD;
+ border-bottom: 1px solid #25AECD;
+ border-top: 1px solid #25AECD;
+ color: #e4e8f1;
+ }
+
+ .el-pager li {
+ color: #e4e8f1;
+ background: transparent;
+ // border: 1px solid #25AECD;
+ border-left: 1px solid #25AECD;
+ border-bottom: 1px solid #25AECD;
+ border-top: 1px solid #25AECD;
+ }
+
+ .el-pager li.active {
+ border-color: #25AECD;
+ background-color: rgba(38, 222, 253, 0.3);
+ color: #e4e8f1;
+ }
+
+ .el-pager li:hover {
+ border-color: #25AECD;
+ background-color: rgba(38, 222, 253, 0.3);
+ color: #34e0ff;
+ }
+
+ .btn-prev {
+ background-color: transparent;
+ // border: 1px solid #25AECD;
+ border-left: 1px solid #25AECD;
+ border-bottom: 1px solid #25AECD;
+ border-top: 1px solid #25AECD;
+ color: #e4e8f1;
+ }
+
+ .btn-next {
+ background-color: transparent;
+ border: 1px solid #25AECD;
+ color: #e4e8f1;
+ }
+ }
</style>
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 b7e9d69..3e9cbff 100644
--- a/src/components/base-page/enterprise-emergency/events-reported/ReportLocationSection.vue
+++ b/src/components/base-page/enterprise-emergency/events-reported/ReportLocationSection.vue
@@ -1,6 +1,6 @@
<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-form-item label="绠$嚎鍚嶇О:">
@@ -17,14 +17,21 @@
</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,72 @@
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.name
+ this.form.affiliatedFacilitiesCode = val.properties.code
},
// 瀹氫綅鍔熻兘
localAdr (val) {
@@ -258,23 +281,27 @@
pipeClickLocation () {
// 璁炬柦涓嶈繘琛� 绠$嚎琛ㄦ牸鏁版嵁鐨勭偣鍑讳氦浜�
this.SectionAndAffFacTableJudge = false
- // 鐐瑰嚮鑾峰彇鏁版嵁
- window.map.on('click', (e) => {
- // 鐐瑰嚮鍦板浘鍏抽棴寮规
- window.mapManager.clickDialogSwitch = false
- // 绠$嚎鐐瑰嚮鏁版嵁
- this.pipeData(e)
- // 绠℃鐐瑰嚮鏁版嵁
- this.sectionData(e)
- // 闄勫睘璁炬柦鏁版嵁
- this.affFacData(e)
- // 鍏抽棴鐐瑰嚮浜嬩欢
- window.map.off('click')
- })
+ 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')
+ })
+ }
// 鏁版嵁 閲嶆柊鑾峰彇 杩涜缃┖
this.form.pipeName = ''
this.form.sectionName = ''
this.form.affiliatedFacilities = ''
+ this.form.affiliatedFacilitiesCode = ''
this.tableList = []
this.tableListSection = []
this.tableDataAffFac = []
@@ -317,7 +344,7 @@
BBOX: window.map.getBounds().toBBoxString()
}, defaultWmsParams)
AjaxUtils.get4JsonDataByUrl(WMS_URL, wmsParams, (res) => {
- console.log(res)
+ // console.log(res)
for (let i = 0; i < res.data.features.length; i++) {
dataList.push(res.data.features[i])
}
diff --git a/src/components/helpers/MapManager.js b/src/components/helpers/MapManager.js
index eae4b26..c3ec889 100644
--- a/src/components/helpers/MapManager.js
+++ b/src/components/helpers/MapManager.js
@@ -44,7 +44,7 @@
var point = this.map.latLngToContainerPoint(latlng, this.map.getZoom())
const wmsLayerService = window.layerFactory.wmsLayerService
const layers = wmsLayerService.wmsLayerList.getLayers()
- // const filters = wmsLayerService.wmsLayerList.getFilters()
+ const filters = wmsLayerService.wmsLayerList.getFilters()
const wmsParams = Object.assign({
LAYERS: layers,
QUERY_LAYERS: layers,
@@ -54,6 +54,9 @@
Y: Math.round(point.y),
BBOX: this.map.getBounds().toBBoxString()
}, this.defaultWmsParams, params)
+ if (filters) {
+ wmsParams.CQL_FILTER = filters
+ }
AjaxUtils.get4JsonDataByUrl(WMS_URL, wmsParams, (res) => {
resolve(res.data)
})
diff --git a/src/components/panel/RightSearchPanel.vue b/src/components/panel/RightSearchPanel.vue
index 6df7286..e0b822c 100644
--- a/src/components/panel/RightSearchPanel.vue
+++ b/src/components/panel/RightSearchPanel.vue
@@ -12,7 +12,7 @@
</div>
</li>
</ul> -->
- <ul v-for="item in topicList" :key="item.name"
+ <ul v-for="item in list" :key="item.name"
:class="item.checked?'module-wrap map-btn-active':'module-wrap map-btn-unactive'"
@click="()=>{selected(item)}" v-show="item.isShow">
<el-tooltip :popper-class="'map-tooltip'" effect="dark" :content="item.name" placement="left">
@@ -51,7 +51,7 @@
<script>
import EnvRiskSearch from './topicSearch/EnvRiskSearch'
import DischargeSearch from './topicSearch/DischargeSearch'
-import { TopicList } from '../../conf/Topic'
+import { topicList } from '../../conf/Topic'
import GasWasteSearch from '@components/panel/topicSearch/GasWasteSearch'
import WaterWasteSearch from '@components/panel/topicSearch/WaterWasteSearch'
@@ -61,8 +61,6 @@
import PipeChangesSearch from '@components/panel/topicSearch/pipeChangesSearch.vue'
import PipeInformationSearch from '@components/panel/topicSearch/pipeInformationSearch.vue'
import EnterpriseEmergencySearch from './topicSearch/EnterpriseEmergencySearch'
-
-import bus from '@/eventBus'
export default {
name: 'MonitorPanel',
@@ -78,7 +76,7 @@
return {
isShow: true,
topicMenu: [],
- topicList: TopicList,
+ list: topicList,
topicCheckedList: [],
isPanelVisible: false,
gcComp: SewersSearch,
@@ -91,7 +89,11 @@
selectGroup: false
}
},
- computed: {},
+ computed: {
+ serviceLayers () {
+ return this.$store.state.map.serviceLayers.LayerSewersLine
+ }
+ }, /*
watch: {
'$store.state.map.topic.topicCheckedList': function (newVal, oldVal) {
console.log(oldVal)
@@ -106,26 +108,46 @@
})
})
}
- },
+ }, */
methods: {
handleClose (done) {
console.log(done)
},
setSearchPanelChange () {
+ // 鎼滅储闈㈡澘娌℃湁鏄剧ず鏃讹紝灏嗘墍鏈変富棰橀�夋嫨鐘舵�佽缃负false
this.selectGroup = !this.selectGroup
if (!this.selectGroup) {
- this.topicList.forEach((itm) => {
+ this.list.forEach((itm) => {
itm.checked = false
})
}
},
+ unselected (val) {
+ // console.log(val)
+ this.selectGroup = true
+ this.list.forEach((itm) => {
+ if (itm.name === val.name) {
+ console.log(val.name)
+ itm.checked = false
+ itm.isShow = false
+ }
+ })
+ },
selected (val) {
// console.log(val)
- this.title = val.name
this.selectGroup = true
- this.topicList.forEach((itm) => {
- itm.checked = val.name === itm.name
+ this.list.forEach((itm) => {
+ if (itm.name === val.name) {
+ itm.isShow = true
+ itm.checked = true
+ } else {
+ itm.checked = false
+ }
})
+ this.setComp(val)
+ },
+ setComp (val) {
+ this.title = val.name
switch (val.name) {
case '姹℃煋婧�':
this.gcComp = DischargeSearch
@@ -160,9 +182,6 @@
}
},
handlePage (page) {
- },
- handleGd () {
- this.title = '绠¢亾淇℃伅鏌ヨ'
},
toggleMonitorPanel () {
this.isCollapse = !this.isCollapse
@@ -204,37 +223,60 @@
// })
// }
},
- defaultLastOne () {
- let v = {}
- this.topicList.forEach((item) => {
- if (item.isShow) {
- v = item
+ containsLayer (layer) {
+ if (layer) {
+ for (let i = 0; i < layer.length; i++) {
+ const lay = layer[i]
+ const checked = lay.checked
+
+ for (let j = 0; j < this.list.length; j++) {
+ const topic = this.list[j]
+ if (lay.name === topic.name) {
+ if (lay.layers) {
+ const isChecked = this.isChecked(lay.layers)
+ if (isChecked) {
+ this.selected(topic)
+ } else {
+ this.unselected(topic)
+ }
+ } else if (checked) {
+ this.selected(topic)
+ }
+ break
+ }
+ }
+ this.containsLayer(lay.layers)
}
- })
- this.selected(v)
+ }
+ },
+ isChecked (layers) {
+ for (let i = 0; i < layers.length; i++) {
+ const layer = layers[i]
+ const checked = layer.checked
+ if (checked) {
+ return true
+ }
+ if (layer.layers) {
+ return this.isChecked(layer.layers)
+ }
+ }
+ return false
}
},
mounted () {
- const that = this
- bus.$on('changeSearchBar', function (obj) {
- that.gcComp = ''
- that.topicList.forEach((item) => {
- if (item.name === obj.name) {
- if (obj.type > 0) {
- item.isShow = true
- } else {
- item.isShow = false
- }
- // item.isShow = obj.checked
- if (item.isShow) {
- that.selected(item)
- } else {
- that.defaultLastOne()
- }
- }
- })
- })
- // console.log(that.topicList)
+ /* bus.$on('changeSearchBar', (obj) => {
+ const topic = this.search(this.serviceLayers, obj)
+ console.log('====' + JSON.stringify(topic))
+ }) */
+ },
+ watch: {
+ serviceLayers: {
+ handler: function (newVal, oldVal) {
+ this.containsLayer(newVal)
+ },
+ immediate: true,
+ deep: true
+ }
}
}
</script>
diff --git a/src/components/panel/topicSearch/enterprise-emergency/EventQuery.vue b/src/components/panel/topicSearch/enterprise-emergency/EventQuery.vue
index 860f6e1..c1b30ae 100644
--- a/src/components/panel/topicSearch/enterprise-emergency/EventQuery.vue
+++ b/src/components/panel/topicSearch/enterprise-emergency/EventQuery.vue
@@ -66,7 +66,7 @@
<i class="state"></i>
<div>
<h3>
- <span @click="disposalfx">浠跺悕绉�:XXX浜嬩欢</span>
+ <span @click="disposalfx">浜嬩欢鍚嶇О:XXX浜嬩欢</span>
<el-button class="rt btn00fff6" size="mini" style="margin-right: 0.04rem;"
@click="startAnalysis">
<span>寮�濮嬪垎鏋�</span>
diff --git a/src/components/table/components/tabHandover.vue b/src/components/table/components/tabHandover.vue
index 43896f1..c3e087a 100644
--- a/src/components/table/components/tabHandover.vue
+++ b/src/components/table/components/tabHandover.vue
@@ -19,8 +19,7 @@
import EnvironmentalRisk from '@components/table/components/EnvironmentalRisk'
import Pipeline from '@components/table/components/Pipeline'
import CorporateEmergency from '@components/table/components/CorporateEmergency'
-
-import { TopicList } from '../../../conf/Topic'
+import { topicList } from '../../../conf/Topic'
export default {
name: 'tabHandover',
components: {
@@ -37,8 +36,8 @@
return {
titleProp: '',
activeName: '姹℃煋婧�',
- topicList: TopicList, // tab椤�
- gcComp: PollutionSource // 榛樿鏄剧ず姹℃煋婧愬唴瀹�
+ topicList: topicList, // tab椤�
+ gcComp: PollutionSource
}
},
methods: {
diff --git a/src/conf/Constants.js b/src/conf/Constants.js
index 55b36c0..af7e312 100644
--- a/src/conf/Constants.js
+++ b/src/conf/Constants.js
@@ -65,7 +65,8 @@
emergencyesources: '搴旀�ョ墿璧�',
firefightingunit: '娑堥槻鍗曚綅',
unitareaboundary: '瑁呯疆鍖鸿竟鐣�',
- sensitivetarget: '鏁忔劅鐩爣'
+ sensitivetarget: '鏁忔劅鐩爣',
+ chokevalve: '鎴祦闂�'
}
export const LAYERPROPS = {
@@ -92,6 +93,7 @@
name: '绠$綉鍚嶇О',
linenumtype: '绠$嚎绫诲瀷',
pipename: '绠$嚎鍚嶇О',
+ subchaname: '鏀嚎鍚嶇О',
mediumtype: '杈撻�佷粙璐�',
length: '闀垮害(m)',
startposname: '璧风偣浣嶇疆鍚嶇О',
@@ -414,5 +416,18 @@
huncount: '甯歌浜哄彛鏁伴噺',
structureoridsitearea: '鍗犲湴闈㈢Н',
adminzonename: '琛屾斂闅跺睘'
+ },
+ // 鎴祦闂�
+ chokevalve: {
+ closurename: '鍚嶇О',
+ closurecode: '缂栫爜',
+ pointnumber: '娴嬬偣缂栧彿',
+ mediumtype: '浠嬭川',
+ size: '灏哄(m)',
+ operatingtype: '鎺у埗鏂瑰紡',
+ telephone: '鑱旂郴鐢佃瘽',
+ resperson: '璐熻矗浜�',
+ startdate: '鎶曠敤鏃ユ湡',
+ operationalstatus: '杩愯鐘舵��'
}
}
diff --git a/src/conf/Topic.js b/src/conf/Topic.js
index ff80c53..7f566af 100644
--- a/src/conf/Topic.js
+++ b/src/conf/Topic.js
@@ -12,10 +12,10 @@
EnterpriseEmergencySearch: () => import('@components/panel/topicSearch/EnterpriseEmergencySearch.vue')
}
-export const TopicList = [{
+export const topicList = [{
name: '姹℃煋婧�',
id: 1,
- check: false,
+ checked: false,
isShow: false,
icon: 'iconwuranyuan',
comp: ''
diff --git a/src/views/popup/DynamicHeader/DynamicTable.vue b/src/views/popup/DynamicHeader/DynamicTable.vue
new file mode 100644
index 0000000..a115ba1
--- /dev/null
+++ b/src/views/popup/DynamicHeader/DynamicTable.vue
@@ -0,0 +1,43 @@
+<template>
+ <el-table :data="tableData" border :height="height">
+ <template v-for="item in tableHeader">
+ <table-column v-if="item.children && item.children.length" :key="item.id" :coloumn-header="item"></table-column>
+ <el-table-column v-else :key="item.id" :label="item.label" :prop="item.prop" align="center"></el-table-column>
+ </template>
+ </el-table>
+</template>
+
+<script>
+import TableColumn from './TableColumn'
+export default {
+ props: {
+ // 琛ㄦ牸鐨勬暟鎹�
+ tableData: {
+ type: Array,
+ required: true
+ },
+ // 澶氱骇琛ㄥご鐨勬暟鎹�
+ tableHeader: {
+ type: Array,
+ required: true
+ },
+ // 琛ㄦ牸鐨勯珮搴�
+ height: {
+ type: String,
+ default: '340'
+ }
+ },
+ components: {
+ TableColumn
+ },
+ watch: {
+ tableData (val, oldVal) {
+ this.tableData = val
+ }
+ }
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/src/views/popup/DynamicHeader/TableColumn.vue b/src/views/popup/DynamicHeader/TableColumn.vue
new file mode 100644
index 0000000..be2ea78
--- /dev/null
+++ b/src/views/popup/DynamicHeader/TableColumn.vue
@@ -0,0 +1,24 @@
+<template>
+ <el-table-column :label="coloumnHeader.label" :prop="coloumnHeader.label" align="center">
+ <template v-for="item in coloumnHeader.children">
+ <tableColumn v-if="item.children && item.children.length" :key="item.id" :coloumn-header="item"></tableColumn>
+ <el-table-column v-else :key="item.name" :label="item.label" :prop="item.prop" align="center"></el-table-column>
+ </template>
+ </el-table-column>
+</template>
+
+<script>
+export default {
+ name: 'tableColumn',
+ props: {
+ coloumnHeader: {
+ type: Object,
+ required: true
+ }
+ }
+}
+</script>
+
+<style scoped>
+
+</style>
--
Gitblit v1.8.0