From 4adfa4774e09f3b388335bb8dee5dea518856e5b Mon Sep 17 00:00:00 2001 From: yangdelong <828900aaa> Date: 星期日, 30 五月 2021 19:23:27 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/develop' into develop --- public/assets/images/map-pages/title_bg2.png | 0 src/components/base-page/enterprise-emergency/events-reported/ReportLocationSearch.vue | 238 +++++-- src/conf/Topic.js | 4 dist.zip | 0 public/assets/images/map/governEquipment/govern_green.png | 0 src/api/mapApi.js | 4 src/views/popup/DynamicHeader/DynamicTable.vue | 43 + public/assets/images/map-pages/title_bg.png | 0 src/components/base-page/WasteWater/WasteWaterHoursChart.vue | 271 ++++++- src/conf/Constants.js | 25 src/conf/layers/LayerEnvRisk.js | 8 src/views/popup/DynamicHeader/TableColumn.vue | 24 src/components/base-page/PublicDataStandard.vue | 13 src/components/panel/topicSearch/WasteWaterSearch.vue | 86 +- src/components/base-page/WasteWater/WasteWaterDayChart.vue | 287 +++++++-- src/components/base-page/enterprise-emergency/events-reported/EventsReported.vue | 4 src/components/base-page/PublicSector.vue | 1 src/components/panel/topicSearch/enterprise-emergency/EventQuery.vue | 2 src/components/base-page/WasteWater/WasteWaterRealChart.vue | 38 + src/utils/utils.js | 2 src/components/panel/RightSearchPanel.vue | 136 ++- src/components/LayerController/logic/WasteGas.js | 18 src/components/LayerController/logic/GovernEquipment.js | 93 +++ src/api/host.js | 3 src/components/base-page/WasteWater/PublicTabs.vue | 22 src/api/mapUrl.js | 10 src/components/helpers/MapManager.js | 5 src/components/LayerController/modules/LcServiceLayer.vue | 44 + src/components/base-page/WasteWater/WasteWaterIndex.vue | 25 /dev/null | 36 - src/components/base-page/enterprise-emergency/events-reported/ReportLocationPoint.vue | 115 ++- src/components/table/components/tabHandover.vue | 7 src/components/LayerController/logic/WasteWater.js | 13 src/components/base-page/enterprise-emergency/events-reported/ReportLocationSection.vue | 146 ++- public/assets/governEquipment.json | 22 src/App.vue | 6 src/components/panel/topicSearch/WasteGasSearch.vue | 71 + 37 files changed, 1,302 insertions(+), 520 deletions(-) diff --git a/dist.zip b/dist.zip new file mode 100644 index 0000000..1e1ad71 --- /dev/null +++ b/dist.zip Binary files differ diff --git a/public/assets/governEquipment.json b/public/assets/governEquipment.json new file mode 100644 index 0000000..17d1b68 --- /dev/null +++ b/public/assets/governEquipment.json @@ -0,0 +1,22 @@ +[ + { + "no": 0, + "company": "鎵瓙鐭冲寲", + "plate": "鐐兼补鏉垮潡", + "unitName": "鑺崇儍鍘傘�佺偧娌瑰巶", + "governName": "纭:鍥炴敹娌荤悊璁炬柦", + "Longitude": 118.7936111111, + "Latitude": 32.2583305556, + "status": 1 + }, + { + "no": 1, + "company": "涓煩鐭冲寲", + "plate": "鐐兼补鏉垮潡", + "unitName": "鐐兼补浜岄儴", + "governName": "鍌寲瑁傚寲娌荤悊璁炬柦", + "Longitude": 114.44016, + "Latitude": 30.65305, + "status": 1 + } +] 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/public/assets/images/map/governEquipment/govern_green.png b/public/assets/images/map/governEquipment/govern_green.png new file mode 100644 index 0000000..1b30b11 --- /dev/null +++ b/public/assets/images/map/governEquipment/govern_green.png Binary files differ diff --git a/src/App.vue b/src/App.vue index 6b056a7..1e6c2a3 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.8) !important; +} </style> diff --git a/src/api/host.js b/src/api/host.js index 04d5a4f..919fce0 100644 --- a/src/api/host.js +++ b/src/api/host.js @@ -4,10 +4,11 @@ import { getSchemeHost } from '../utils/tools' export const $HOST = getSchemeHost() +// 鐜繚浜屾湡 +export const $HOSTII = 'http://10.246.162.140:8080' // 绠$嚎鍒嗘瀽-绾夸笂 // export const $HOSTANALYSE = 'http://xearth.cn:6202' export const $HOSTANALYSE = 'http://10.238.235.179:6202' - // 绠$嚎鍒嗘瀽-鏈湴 // export const $HOSTANALYSE = 'http://10.238.105.124:8089' diff --git a/src/api/mapApi.js b/src/api/mapApi.js index ae65d02..9654615 100644 --- a/src/api/mapApi.js +++ b/src/api/mapApi.js @@ -31,7 +31,7 @@ }, // 搴熸皵鐐瑰姞杞� getWasteGas (data) { - return axios.get(mapUrl.getWasteGas, data) + return axios.post(mapUrl.getWasteGas, qs.stringify(data), { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }) }, // 搴熸皵鏄庣粏琛� getWasteGasDetails (data) { @@ -54,7 +54,7 @@ return axios.get(mapUrl.getWasteWaterMonitoringDetails, data) }, // 搴熸按鏃ユ暟鎹拰灏忔椂鏁版嵁鍙婃槑缁嗚〃 - getQueryOnlineMonData (data, setHeaders) { + getQueryOnlineMonData (data) { return axios.post(mapUrl.getQueryOnlineMonData, qs.stringify(data), { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }) }, // 搴熸按浜哄伐鏁版嵁 diff --git a/src/api/mapUrl.js b/src/api/mapUrl.js index 4ce8883..3b36f17 100644 --- a/src/api/mapUrl.js +++ b/src/api/mapUrl.js @@ -1,7 +1,7 @@ /** * 璇ユ枃浠堕厤缃帴鍙g殑URL鍦板潃 */ -import { $HOST, $HOSTANALYSE } from './host' +import { $HOST, $HOSTII, $HOSTANALYSE } from './host' export const GetUser = $HOST + '/user/getUser' @@ -12,18 +12,18 @@ export const getSolidWasteSurveyDetail = $HOST + '/wasteSolid/getSolidWasteSurveyDetail' // 搴熸皵 -export const getWasteGas = $HOST + '/wasteGas/getWasteGas' +export const getWasteGas = $HOSTII + '/EPInterface/DataService/EPMapService.asmx/ObtainningConInfo' export const getWasteGasDetails = $HOST + '/wasteGas/getWasteGasMonitoringDetails' export const DataItems = $HOST + '/wasteGas/RTDB/DataItems' // 搴熸皵瀹炴椂鏁版嵁 export const getWasteGasMonData = $HOST + '/wasteGas/QueryOnlineMonData' export const getWasteGasManualData = $HOST + '/wasteGas/QueryLabMonData' // 搴熸按 -export const getWasteWater = 'http://10.246.162.140:8080/EPInterface/DataService/EPMapService.asmx/ObtainningConInfo' // 搴熸按鐐逛俊鎭� +export const getWasteWater = $HOSTII + '/EPInterface/DataService/EPMapService.asmx/ObtainningConInfo' // 搴熸按鐐逛俊鎭� export const getWasteWaterMonitoring = $HOST + '/wasteWater/getWasteWaterMonitoring' // 搴熸按鐩戞祴鏁版嵁 export const getWasteWaterMonitoringDetails = $HOST + '/wasteWater/getWasteWaterMonitoringDetails' // 搴熸按鐩戞祴鏁版嵁鏄庣粏琛� -export const getQueryOnlineMonData = 'http://10.246.162.140:8080/EPInterface/DataService/EPMapService.asmx/QueryOnlineMonData' // 搴熸按鏃ユ暟鎹皬鏃舵暟鎹強鏄庣粏琛ㄦ暟鎹� -export const getQueryLabMonData = 'http://10.246.162.140:8080/EPInterface/DataService/EPMapService.asmx/QueryLabMonData' // 浜哄伐鏁版嵁 +export const getQueryOnlineMonData = $HOSTII + '/EPInterface/DataService/EPMapService.asmx/QueryOnlineMonData' // 搴熸按鏃ユ暟鎹皬鏃舵暟鎹強鏄庣粏琛ㄦ暟鎹� +export const getQueryLabMonData = $HOSTII + '/EPInterface/DataService/EPMapService.asmx/QueryLabMonData' // 浜哄伐鏁版嵁 export const getDataItems = $HOST + '/wasteWater/RTDB/DataItems' // 瀹炴椂鏁版嵁 // 鍏徃 diff --git a/src/components/LayerController/logic/GovernEquipment.js b/src/components/LayerController/logic/GovernEquipment.js new file mode 100644 index 0000000..f5f174f --- /dev/null +++ b/src/components/LayerController/logic/GovernEquipment.js @@ -0,0 +1,93 @@ +/** + * 姹℃煋婧� + */ +// 淇℃伅缁勪欢 +const GovernEquipmentIndex = require('../../base-page/RiskSource/RiskSourceIndex.vue').default +// 浣跨敤灏佽鏂规硶 +const AnimalService = require('../service/AnimalService').default +// 璇锋眰鎺ュ彛鏁版嵁 +const mapApi = require('../../../api/mapApi').default +// 鍏叡鏂规硶 panTo() 寮曠敤 +const { setPanTo } = require('../../../utils/utils') + +const governGreen = '/assets/images/map/governEquipment/govern_green.png' + +module.exports = function () { + /** + * 鍒濆鍖栧苟鍔犺浇鍥惧眰 + * @param L leaflet瀵硅薄 + */ + this.init = async (layer, L) => { + this.animalService = new AnimalService({ + L: L, + layer: layer + }) + const data = await mapApi.getGovernEquipment() + for (let i = 0; i < data.length; i++) { + const postion = [data[i].Latitude, data[i].Longitude] // 鍧愭爣 + const iconUrl = this.governIconUrl(data[i].status) // 娌荤悊璁炬柦鍥炬爣 + const marker = L.marker(postion, { + totransferData: data[i], + icon: L.icon({ + iconUrl: iconUrl, + iconSize: [30, 30], + iconAnchor: [15, 15] + }) + }) + layer.addLayer(marker) + } + } + + /** + * 鎻愮ず绐� + * @param layer + * @returns {string} + */ + this.bindTooltip = (layer) => { + return layer.options.totransferData.governName + } + + /** + * 淇℃伅寮圭獥 + * @param e + */ + this.clickListener = (e) => { + // 鑴夊啿鏁堟灉 + this.animalService.pulseEffect(e.latlng) + // 淇℃伅寮圭獥骞崇Щ + setPanTo(e.latlng, 200) + // 寮规鏍囬 + const title = e.layer.options.totransferData.Name + window.$layer.open({ + content: { + comp: GovernEquipmentIndex, // 缁勪欢 + parent: this, // 鐖剁粍浠� + data: { // 浼犻�掔殑鍙傛暟 + riskSourceId: e.layer.options.totransferData.no + } + }, + title: title // 鏍囬 + }) + } + + /** + * 娌荤悊璁炬柦鍥炬爣閰嶇疆 + * @param t + * @returns {string} + */ + this.governIconUrl = (t) => { + let iconUrl = null + switch (t) { + case 1: + iconUrl = governGreen + break + case 2: + iconUrl = '' + break + default: + iconUrl = '' + break + } + return iconUrl + } +} diff --git a/src/components/LayerController/logic/SourcesPollution.js b/src/components/LayerController/logic/SourcesPollution.js deleted file mode 100644 index 27899ce..0000000 --- a/src/components/LayerController/logic/SourcesPollution.js +++ /dev/null @@ -1,36 +0,0 @@ -/** - * 姹℃煋婧� - * */ - -// 璇锋眰鎺ュ彛鏁版嵁 -const mapApi = require('../../../api/mapApi').default -// 浣跨敤灏佽鏂规硶 -const AnimalService = require('../service/AnimalService').default - -module.exports = function () { - this.init = async (layer, L) => { - this.animalService = new AnimalService({ - L: L, - layer: layer - }) - const result = await mapApi.getSourcesPoll() - // console.log(result) - const resultData = result.Result.DataInfo || [] - const polygon = L.polygon(resultData, { color: 'yellow' }) - polygon.addTo(layer) - } - this.bindTooltip = (layer) => { - return 'layer' - } - this.click = () => { - window.$layer.open({ - content: { - content: 'Popup', // 缁勪欢 - data: { // 浼犻�掔殑鍙傛暟 - datas: 'popupDatas' - } - }, - title: '' - }) - } -} diff --git a/src/components/LayerController/logic/WasteGas.js b/src/components/LayerController/logic/WasteGas.js index b591f19..8a2fa53 100644 --- a/src/components/LayerController/logic/WasteGas.js +++ b/src/components/LayerController/logic/WasteGas.js @@ -26,10 +26,22 @@ L: L, layer: layer }) - const res = await mapApi.getWasteGas() - // console.log(res) + const param = { + companyId: 3900100145, // 浼佷笟缂栫爜 + id: '', + monType: 2, // 搴熸皵 + userCode: 'wenchun.deng', // 鐢ㄦ埛鍚嶇О + monDuration: '', + epName: '', + secdDeptId: '', + contrLevel: '', + dataStatus: '', + dataFlag: '', + runStatus: '', + emissTypeId: '' + } + const res = await mapApi.getWasteGas(param) const data = res.Result.DataInfo || {} - // console.log(data) for (let i = 0; i < data.length; i++) { // 缁忕含搴� 浣嶇疆 const positionX = data[i].Latitude diff --git a/src/components/LayerController/logic/WasteWater.js b/src/components/LayerController/logic/WasteWater.js index 29658e1..01cd150 100644 --- a/src/components/LayerController/logic/WasteWater.js +++ b/src/components/LayerController/logic/WasteWater.js @@ -27,11 +27,11 @@ L: L, layer: layer }) - const res = await mapApi.getWasteWater({ - companyId: 3900100145, // 浼佷笟鍚嶇О + const param = { + companyId: 3900100145, // 浼佷笟缂栫爜 id: '', - monType: 1, // 鍊间负1鏌ヨ搴熸按 - userCode: 'wenchun.deng', // 瑙掕壊鍚嶇О + monType: 1, // 搴熸按 + userCode: 'wenchun.deng', // 鐢ㄦ埛鍚嶇О monDuration: '', epName: '', secdDeptId: '', @@ -40,7 +40,8 @@ dataFlag: '', runStatus: '', emissTypeId: '' - }) + } + const res = await mapApi.getWasteWater(param) const data = res.Result.DataInfo || {} for (let i = 0; i < data.length; i++) { // 缁忕含搴� 浣嶇疆 @@ -54,7 +55,7 @@ totransferData: data[i], icon: L.icon({ iconUrl: iconUrl, - iconSize: [35, 35], + iconSize: [30, 30], iconAnchor: [15, 15] }) }) 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/PublicSector.vue b/src/components/base-page/PublicSector.vue index 328b263..146c612 100644 --- a/src/components/base-page/PublicSector.vue +++ b/src/components/base-page/PublicSector.vue @@ -31,7 +31,6 @@ .public-bounced-content { padding: 0.05rem; - display: flex; .public-bounced-content-left { } diff --git a/src/components/base-page/WasteWater/PublicTabs.vue b/src/components/base-page/WasteWater/PublicTabs.vue index 4b5b9b1..1f08bb6 100644 --- a/src/components/base-page/WasteWater/PublicTabs.vue +++ b/src/components/base-page/WasteWater/PublicTabs.vue @@ -8,12 +8,12 @@ <div class="main-matter"> <div> <ul> - <li>鐩戞祴鐐瑰悕绉�:{{ storagePlaceId.Name }}</li> - <li>鐢熶骇鍗曚綅:{{ storagePlaceId.porltName }}</li> - <li>鎺掓斁绫诲瀷鍚嶇О:{{ storagePlaceId.MonTypeName }}</li> - <li>鎺掓斁鍘诲悜:{{ storagePlaceId.EmissDirecti }}</li> - <li>鎺у埗绾у埆鍚嶇О:{{ storagePlaceId.ContrLevelShowName }}</li> - <li>鍐�/澶栨帓鏀惧彛:{{ storagePlaceId.OrOutPortName }}</li> + <li><span class="namer">鐩戞祴鐐瑰悕绉帮細</span>{{ storagePlaceId.Name }}</li> + <li><span class="namer">鐢熶骇鍗曚綅锛�</span>{{ storagePlaceId.porltName }}</li> + <li><span class="namer">鎺掓斁绫诲瀷鍚嶇О锛�</span>{{ storagePlaceId.MonTypeName }}</li> + <li><span class="namer">鎺掓斁鍘诲悜锛�</span>{{ storagePlaceId.EmissDirecti }}</li> + <li><span class="namer">鎺у埗绾у埆鍚嶇О锛�</span>{{ storagePlaceId.ContrLevelShowName }}</li> + <li><span class="namer">鍐�/澶栨帓鏀惧彛锛�</span>{{ storagePlaceId.OrOutPortName }}</li> </ul> </div> </div> @@ -60,14 +60,18 @@ li { margin-bottom: 0.04rem; - text-align: center; min-width: 31%; - background-color: #243a55; - color: #00d0f9; + box-shadow: 0 0 10px rgba(129,211,248,.35) inset; + color: #00fff6; border-radius: 0.02rem; font-size: 0.08rem; line-height: 0.09rem; padding: 0.03rem .5%; + .namer{ + display: inline-block; + width: .6rem; + text-align: right; + } } } diff --git a/src/components/base-page/WasteWater/WasteWaterDayChart.vue b/src/components/base-page/WasteWater/WasteWaterDayChart.vue index 1fcb2c9..808879d 100644 --- a/src/components/base-page/WasteWater/WasteWaterDayChart.vue +++ b/src/components/base-page/WasteWater/WasteWaterDayChart.vue @@ -1,5 +1,5 @@ <template> - <div class="echarts-box"> + <div id="wasteWaterDayChartBox" class="echarts-box"> <div class="tab-scroll"> <PublicDataStandard :dataStandard="dataStandard"></PublicDataStandard> </div> @@ -9,11 +9,18 @@ <span class="demonstration">缁撴潫鏃堕棿锛�</span> <el-date-picker v-model="formData.timeEnd" value-format="yyyy-MM-dd" type="datetime" size="mini"></el-date-picker> <span class="demonstration">閲囨牱鐐规暟锛�</span> - <el-select v-model="formData.region" placeholder="璇烽�夋嫨" size="mini"> + <el-select class="selectBox" v-model="formData.region" placeholder="璇烽�夋嫨" size="mini"> <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" id="mingxiBtn">鏄庣粏琛�</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: { // 鎶樼嚎鐨勯鑹� @@ -429,9 +521,12 @@ saveAsImage: {} } }, - grid: { // 缃戞牸 - top: '20%' - // left: '5%' + grid: { + // 涓庣粷瀵瑰畾浣嶇浉浼硷紝top锛宭eft锛宺ight锛宐ottom 璁惧畾鏄牴鎹笂绾х洅瀛愬楂樻潵璁$畻 + top: '20%', + left: '6%', + right: '6%', + bottom: '12%' }, legend: { data: legend @@ -544,11 +639,75 @@ } 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 } } } </script> -<style scoped lang="less"> - +<style lang="less"> +#wasteWaterDayChartBox .echarts-form .el-input__inner { + background-color: rgba(0, 0, 0, 0); + height: .13rem; + border-color: #336fa4; +} +#wasteWaterDayChartBox .echarts-form{ + margin-top: 1px +} +#wasteWaterDayChartBox .echarts-form .el-input__icon{ + height: .13rem; + top: -.02rem; + right: -0.03rem; + position: absolute; + color: #00d0f9; +} +#wasteWaterDayChartBox .echarts-form .selectBox .el-input__icon:last-child{ + top: .02rem; +} +#wasteWaterDayChartBox .echarts-form .selectBox .is-reverse{ + top: -.02rem !important; +} +#wasteWaterDayChartBox .echarts-form .el-button{ + background-color: rgba(0, 0, 0, 0); + height: .13rem; +} +#mingxiBtn{ + margin-left: -.02rem; +} </style> diff --git a/src/components/base-page/WasteWater/WasteWaterHoursChart.vue b/src/components/base-page/WasteWater/WasteWaterHoursChart.vue index 2acfe80..a4b7d6c 100644 --- a/src/components/base-page/WasteWater/WasteWaterHoursChart.vue +++ b/src/components/base-page/WasteWater/WasteWaterHoursChart.vue @@ -1,5 +1,5 @@ <template> - <div class="echarts-box"> + <div id="wasteWaterHoursChartBox" class="echarts-box"> <div class="tab-scroll"> <PublicDataStandard :dataStandard="dataStandard"></PublicDataStandard> </div> @@ -9,11 +9,18 @@ <span class="demonstration">缁撴潫鏃堕棿锛�</span> <el-date-picker v-model="formData.endTime" value-format="yyyy-MM-dd HH" type="datetime" size="mini"></el-date-picker> <span class="demonstration">閲囨牱鐐规暟锛�</span> - <el-select v-model="formData.region" placeholder="璇烽�夋嫨" size="mini"> + <el-select class="selectBox" v-model="formData.region" placeholder="璇烽�夋嫨" size="mini"> <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" id="mingxiBtn">鏄庣粏琛�</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) } }, @@ -455,12 +541,15 @@ saveAsImage: {} } }, - grid: { // 缃戞牸 - top: '20%' - // left: '15%' - }, legend: { data: legend + }, + grid: { + // 涓庣粷瀵瑰畾浣嶇浉浼硷紝top锛宭eft锛宺ight锛宐ottom 璁惧畾鏄牴鎹笂绾х洅瀛愬楂樻潵璁$畻 + top: '20%', + left: '6%', + right: '6%', + bottom: '12%' }, dataZoom: [{ type: 'inside', @@ -570,11 +659,71 @@ } 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 } } } </script> - -<style scoped lang="less"> - +<style> +#wasteWaterHoursChartBox .echarts-form .el-input__inner { + background-color: rgba(0, 0, 0, 0); + height: .13rem; + border-color: #336fa4; +} +#wasteWaterHoursChartBox .echarts-form .el-input__icon{ + height: .13rem; + top: -.02rem; + right: -0.03rem; + position: absolute; + color: #00d0f9; +} +#wasteWaterHoursChartBox .echarts-form .selectBox .el-input__icon:last-child{ + top: .02rem; +} +#wasteWaterHoursChartBox .echarts-form .selectBox .is-reverse{ + top: -.02rem !important; +} +#wasteWaterHoursChartBox .echarts-form .el-button{ + background-color: rgba(0, 0, 0, 0); + height: .13rem; +} +#mingxiBtn{ + margin-left: -.02rem; +} </style> diff --git a/src/components/base-page/WasteWater/WasteWaterIndex.vue b/src/components/base-page/WasteWater/WasteWaterIndex.vue index 0e8c77a..b8e3f42 100644 --- a/src/components/base-page/WasteWater/WasteWaterIndex.vue +++ b/src/components/base-page/WasteWater/WasteWaterIndex.vue @@ -28,9 +28,9 @@ <component :is="currentTab" ref="RealData"></component> </div> </template> - <template v-slot:video> +<!-- <template v-slot:video> <public-video></public-video> - </template> + </template>--> </public-sector> </template> @@ -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/WasteWater/WasteWaterRealChart.vue b/src/components/base-page/WasteWater/WasteWaterRealChart.vue index b332667..670b975 100644 --- a/src/components/base-page/WasteWater/WasteWaterRealChart.vue +++ b/src/components/base-page/WasteWater/WasteWaterRealChart.vue @@ -1,5 +1,5 @@ <template> - <div class="echarts-box"> + <div id="wasteWaterRealChartBox" class="echarts-box"> <div class="tab-scroll"> <PublicDataStandard :dataStandard="dataStandard"></PublicDataStandard> </div> @@ -9,7 +9,7 @@ <span class="demonstration">缁撴潫鏃堕棿锛�</span> <el-date-picker v-model="formData.endTime" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" size="mini"></el-date-picker> <span class="demonstration">閲囨牱鐐规暟锛�</span> - <el-select v-model="formData.region" placeholder="璇烽�夋嫨" size="mini"> + <el-select class="selectBox" v-model="formData.region" placeholder="璇烽�夋嫨" size="mini"> <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> @@ -502,7 +502,11 @@ } }, grid: { - top: '20%' + // 涓庣粷瀵瑰畾浣嶇浉浼硷紝top锛宭eft锛宺ight锛宐ottom 璁惧畾鏄牴鎹笂绾х洅瀛愬楂樻潵璁$畻 + top: '20%', + left: '6%', + right: '6%', + bottom: '12%' }, legend: { data: this.legendList @@ -610,6 +614,30 @@ } </script> -<style scoped lang="less"> - +<style lang="less"> +#wasteWaterRealChartBox .echarts-form .el-input__inner { + background-color: rgba(0, 0, 0, 0); + height: .13rem; + border-color: #336fa4; +} +#wasteWaterRealChartBox .echarts-form{ + margin-top: 1px +} +#wasteWaterRealChartBox .echarts-form .el-input__icon{ + height: .13rem; + top: -.02rem; + right: -0.03rem; + position: absolute; + color: #00d0f9; +} +#wasteWaterRealChartBox .echarts-form .selectBox .el-input__icon:last-child{ + top: .02rem; +} +#wasteWaterRealChartBox .echarts-form .selectBox .is-reverse{ + top: -.02rem !important; +} +#wasteWaterRealChartBox .echarts-form .el-button{ + background-color: rgba(0, 0, 0, 0); + height: .13rem; +} </style> 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..45d885a 100644 --- a/src/components/base-page/enterprise-emergency/events-reported/ReportLocationPoint.vue +++ b/src/components/base-page/enterprise-emergency/events-reported/ReportLocationPoint.vue @@ -1,30 +1,58 @@ <template> <div class="location-lon-and-lat"> - <el-row class="place-box"> - <div class="place-left"> - <el-form :model="LongLatPos" label-width="90px"> + <!-- <el-row>--> + <!-- <el-form :model="lonlatpos" label-width="60px">--> + <!-- <el-col :span="12">--> + <!-- <el-form-item label="缁忓害:">--> + <!-- <el-input type="text" v-model="lonlatpos.longPos"></el-input>--> + <!-- </el-form-item>--> + <!-- </el-col>--> + <!-- <el-col :span="12">--> + <!-- <el-form-item label="绾害:">--> + <!-- <el-input type="text" v-model="lonlatpos.latPos"></el-input>--> + <!-- </el-form-item>--> + <!-- </el-col>--> + <!-- </el-form>--> + <!-- <el-row>--> + <!-- <el-col :span="12" style="text-align: center;margin: 5px 0">--> + <!-- <el-button type="primary" size="small" @click="mapPoints">绮剧‘瀹氫綅</el-button>--> + <!-- </el-col>--> + <!-- <el-col :span="12" style="text-align: center;margin: 5px 0">--> + <!-- <el-button type="primary" size="small" @click="dataPoints">鏁版嵁璇嗗彇</el-button>--> + <!-- </el-col>--> + <!-- </el-row>--> + <!-- </el-row>--> + <el-form :model="lonlatpos" label-width="60px"> + <el-row class="pipe-line-search"> + <el-col :span="12"> <el-form-item label="缁忓害:"> - <el-input v-model="LongLatPos.longPos"></el-input> + <el-input v-model="lonlatpos.longPos"></el-input> </el-form-item> + </el-col> + <el-col :span="12"> <el-form-item label="绾害:"> - <el-input v-model="LongLatPos.latPos"></el-input> + <el-input v-model="lonlatpos.latPos"></el-input> </el-form-item> - </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> + </el-col> + </el-row> + </el-form> + <el-row> + <el-col :span="12" style="text-align: center;margin: 5px 0"> + <el-button type="primary" size="small" @click="mapPoints">绮剧‘瀹氫綅</el-button> + </el-col> + <el-col :span="12" style="text-align: center;margin: 5px 0"> + <el-button type="primary" size="small" @click="dataPoints">鏁版嵁璇嗗彇</el-button> + </el-col> </el-row> - <div class="place-bottom" style="text-align: right;margin: 5px"> - <el-button type="primary" @click="confirm">纭</el-button> - </div> + <el-row class="place-bottom" style="text-align: right;margin: 5px"> + <el-button type="primary" @click="confirm" size="small">纭</el-button> + </el-row> </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 { @@ -32,58 +60,67 @@ data () { return { // 缁忕含搴﹀畾浣� - LongLatPos: { + lonlatpos: { longPos: '', latPos: '' }, - marker: null + marker: window.L.layerGroup().addTo(window.map), + layersGroupArrList: [] } }, methods: { - // 鐐瑰嚮瀹氫綅 + // 绮剧‘瀹氫綅 mapPoints () { window.map.on('click', (e) => { - this.LongLatPos.longPos = parseFloat(e.latlng.lng).toFixed(6) - this.LongLatPos.latPos = parseFloat(e.latlng.lat).toFixed(6) - const as = [this.LongLatPos.latPos, this.LongLatPos.longPos] + this.lonlatpos.longPos = parseFloat(e.latlng.lng).toFixed(8) + this.lonlatpos.latPos = parseFloat(e.latlng.lat).toFixed(8) + const as = [e.latlng.lat, e.latlng.lng] // console.log(as) window.map.setView(as, 17) pulseEffect(as) this.marker = window.L.marker(as, { icon: window.L.icon({ iconUrl: iconUrl, - iconSize: [30, 30], - iconAnchor: [15, 15] + iconSize: [26, 40], + iconAnchor: [13, 20] }) }) window.map.addLayer(this.marker) + this.layersGroupArrList.push(this.marker) window.map.off('click') }) }, // 閫氳繃鏁版嵁瀹氫綅 dataPoints () { - const as = [this.LongLatPos.latPos, this.LongLatPos.longPos] - // console.log(as) - window.map.setView(as, 17) - pulseEffect(as) - this.marker = window.L.marker(as, { - icon: window.L.icon({ - iconUrl: iconUrl, - iconSize: [30, 30], - iconAnchor: [15, 15] + // this.lonlatpos.latPos = '' + // this.lonlatpos.longPos = '' + if (this.lonlatpos.latPos !== '' && this.lonlatpos.longPos !== '') { + const as = [this.lonlatpos.latPos, this.lonlatpos.longPos] + window.map.setView(as, 17) + pulseEffect(as) + this.marker = window.L.marker(as, { + icon: window.L.icon({ + iconUrl: iconUrl, + iconSize: [26, 40], + iconAnchor: [13, 20] + }) }) - }) - window.map.addLayer(this.marker) - this.LongLatPos.latPos = '' - this.LongLatPos.longPos = '' + window.map.addLayer(this.marker) + this.layersGroupArrList.push(this.marker) + } else { + this.$message('璇疯緭鍏ヨ瘑鍙栫粡绾害') + } }, // 鐐瑰嚮纭鎸夐挳浜嬩欢 confirm () { + for (let i = 0; i < this.layersGroupArrList.length; i++) { + window.map.removeLayer(this.layersGroupArrList[i]) + } window.mapManager.clearHighlight() - window.map.removeLayer(this.marker) + // window.map.removeLayer(this.marker) eventBus.$emit('location-setChange', true) - this.LongLatPos.longPos = '' - this.LongLatPos.latPos = '' + this.lonlatpos.longPos = '' + this.lonlatpos.latPos = '' } } } 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..f160110 100644 --- a/src/components/base-page/enterprise-emergency/events-reported/ReportLocationSearch.vue +++ b/src/components/base-page/enterprise-emergency/events-reported/ReportLocationSearch.vue @@ -1,27 +1,54 @@ <template> - <div class="click-location"> - <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-row style="text-align: right"> - <el-button type="primary" @click="confirm">纭</el-button> - </el-row> + <div class="click-location"> + <el-row> + <!-- clearable--> + <el-input type="text" v-model="clickLocation" @change="focusLocation"> + <el-button slot="suffix" type="text" @click="focusLocation"> + <img src="../../../../../public/assets/images/map/emergency/search.png" alt=""> + </el-button> + </el-input> + </el-row> + <!-- <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" size="small" @click="confirm">纭</el-button> + </el-row> + </div> </template> <script> @@ -29,24 +56,36 @@ 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: window.L.layerGroup().addTo(window.map), + layer: window.L.layerGroup().addTo(window.map), + layersGroupArrList: [], + 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,60 +99,47 @@ }, type: 'query' } - // console.log(data) + // $http.get('http://10.246.133.164//api/search?', data) reportLocationSearch(data).then(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.searchList = res.statistics.priorityCitys + // this.total = res.statistics.priorityCitys.length }) - this.clickLocation = '' }, // 鐐瑰嚮瀹氫綅 - locationMapClick (val) { - console.log(val) + locationMapClick (val, index) { + this.activeNum = index const ps = val.lonlat.trim().split(' ') - // const htmls = '<div><ul><li>' + val.name + '</li> + <li>' + val.adress + '</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], - iconAnchor: [15, 15] + iconSize: [26, 40], + iconAnchor: [13, 20] }) - // icon: myIcon }) - .bindTooltip(htmls, { - // permanent: 'true', + .bindTooltip(val.name, { + permanent: 'true', direction: 'bottom', offset: [0, 10], sticky: true, className: '' }) window.map.addLayer(this.marker) + this.layersGroupArrList.push(this.marker) window.map.setView([ps[1], ps[0]], 17) pulseEffect([ps[1], ps[0]]) }, // 鐐瑰嚮纭鎸夐挳浜嬩欢 confirm () { window.mapManager.clearHighlight() - window.map.removeLayer(this.marker) + for (let i = 0; i < this.layersGroupArrList.length; i++) { + window.map.removeLayer(this.layersGroupArrList[i]) + } this.searchList = [] this.clickLocation = '' + this.total = 0 eventBus.$emit('location-setChange', true) } } @@ -121,27 +147,91 @@ </script> <style lang="less" scoped> - /*/deep/ .el-row {*/ - /* margin: 2px 0 !important;*/ - /* padding: 0;*/ - /* height: 10px;*/ - /* max-height: 10px;*/ - /*}*/ - .div-list-search { +/*/deep/ .el-row {*/ +/* margin: 2px 0 !important;*/ +/* padding: 0;*/ +/* height: 10px;*/ +/* max-height: 10px;*/ +/*}*/ +.environmental-risk-list { + color: @color; + border-bottom: 1px solid rgba(0, 255, 246, 0.14); - } + h3 { + font-size: 0.1rem; + } +} - .click-location { - margin: 0 auto; - text-align: center; +/*<!--.environmental-risk-list:hover {-->*/ +/*<!-- color: @color-highlight;-->*/ +/*<!-- background: @background-color;-->*/ +/*<!--}-->*/ +.search-list { + h3:hover { + color: @color-highlight; + } +} - .el-input { - width: 80%; - margin: 15px auto; - } +.hover { + color: @color-highlight; +} - .el-button { - margin: 15px auto; - } - } +.click-location { + margin: 0 auto; + text-align: center; + + .el-input { + width: 80%; + 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..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,23 +282,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 +345,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..2283ad0 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,10 +51,10 @@ <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' +import WasteGasSearch from '@components/panel/topicSearch/WasteGasSearch' +import WasteWaterSearch from '@components/panel/topicSearch/WasteWaterSearch' import SolidWasteSearch from '@components/panel/topicSearch/SolidWasteSearch' import SewersSearch from '@components/panel/topicSearch/SewersSearch' import SoilGroundWaterSearch from '@components/panel/topicSearch/SoilGroundWaterSearch.vue' @@ -62,13 +62,11 @@ import PipeInformationSearch from '@components/panel/topicSearch/pipeInformationSearch.vue' import EnterpriseEmergencySearch from './topicSearch/EnterpriseEmergencySearch' -import bus from '@/eventBus' - export default { name: 'MonitorPanel', components: { - GasWasteSearch, - WaterWasteSearch, + WasteGasSearch, + WasteWaterSearch, SolidWasteSearch, EnvRiskSearch, DischargeSearch, @@ -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,35 +108,55 @@ }) }) } - }, + }, */ 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 break case '搴熸按': - this.gcComp = WaterWasteSearch + this.gcComp = WasteWaterSearch break case '搴熸皵': - this.gcComp = GasWasteSearch + this.gcComp = WasteGasSearch break case '鍥哄簾': this.gcComp = SolidWasteSearch @@ -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/GasWasteSearch.vue b/src/components/panel/topicSearch/WasteGasSearch.vue similarity index 78% rename from src/components/panel/topicSearch/GasWasteSearch.vue rename to src/components/panel/topicSearch/WasteGasSearch.vue index 57b7faa..4ca1a8d 100644 --- a/src/components/panel/topicSearch/GasWasteSearch.vue +++ b/src/components/panel/topicSearch/WasteGasSearch.vue @@ -3,7 +3,7 @@ <div class="panel-title">{{title}}</div> <div class="search-panel "> <el-form ref="form" :model="form" label-width="90px" class="search-form"> - <el-form-item label="鍖哄煙锛�" size="mini" class="search-panel-item"> +<!-- <el-form-item label="鍖哄煙锛�" size="mini" class="search-panel-item"> <el-select style="width: 100%" v-model="form.areaVal" @change="areaType" :popper-class="'select-down'"> <el-option v-for="item in inareaTypeOptions" @@ -12,7 +12,7 @@ :value="item.value"> </el-option> </el-select> - </el-form-item> + </el-form-item>--> <el-form-item label="浼佷笟鍚嶇О锛�" size="mini"> <el-select style="width: 100%" v-model="form.enterpriseVal" @change="enterpriseType" :popper-class="'select-down'"> <el-option @@ -23,8 +23,9 @@ </el-option> </el-select> </el-form-item> - <el-form-item label="浜岀骇鍗曚綅锛�" size="mini"> - <el-select style="width: 100%" v-model="form.enterpriseSubunitsVal" @change="enterpriseSubunitsType" :popper-class="'select-down'"> + <el-form-item label="鍗曚綅閮ㄩ棬锛�" size="mini"> + <el-select style="width: 100%" v-model="form.enterpriseSubunitsVal" @change="enterpriseSubunitsType" + :popper-class="'select-down'"> <el-option v-for="item in enterpriseSubunitsTypeOptions" :key="item.value" @@ -33,10 +34,11 @@ </el-option> </el-select> </el-form-item> - <el-form-item label="涓夌骇鍗曚綅锛�" size="mini"> - <el-select style="width: 100%" v-model="form.enterpriseSubunitsVal" @change="enterpriseSubunitsType" :popper-class="'select-down'"> + <el-form-item label="鎺у埗绾у埆锛�" size="mini"> + <el-select style="width: 100%" v-model="form.enterpriseLevelVal" @change="enterpriseLevelType" + :popper-class="'select-down'"> <el-option - v-for="item in enterpriseSubunitsTypeOptions" + v-for="item in enterpriseLevelTypeOptions" :key="item.value" :label="item.label" :value="item.value"> @@ -45,7 +47,9 @@ </el-form-item> <!-- <el-form-item label="椋庨櫓绾у埆" size="mini"></el-form-item>--> <el-radio-group v-model="form.type" class="levelOfRisk"> - <el-radio v-for="(item,index) in levelOfRisk" :label="item.value" :key="index"><span class="levelOfRisk-type">{{item.name}}</span></el-radio> + <el-radio v-for="(item,index) in levelOfRisk" :label="item.value" :key="index"> + <span class="levelOfRisk-type">{{item.name}}</span> + </el-radio> </el-radio-group> <!-- <el-form-item >--> <div class="page_total"> @@ -74,8 +78,7 @@ <img src="../../../../public/assets/images/map/exhaust/fq_green2.png" alt="" class="state"/> <div> <h3>{{ item.Name }}</h3> - <p>鎵�灞為儴闂細<span>{{ item.porltName }}</span></p> - <p>椋庨櫓绾у埆锛�<span>涓夌骇</span></p> + <p>鎵�灞為儴闂細<span>{{ item.DeptSname }}</span></p> </div> </div> @@ -108,7 +111,7 @@ import { pulseEffect, setPanTo } from '../../../utils/utils' export default { - name: 'GasWasteSearch', + name: 'WasteGasSearch', props: ['title'], data () { return { @@ -117,23 +120,31 @@ total: 0, // 鍒嗛〉 pageSize: 10, + current: 1, inareaTypeOptions: [], enterpriseTypeOptions: [], enterpriseSubunitsTypeOptions: [], + enterpriseLevelTypeOptions: [ + { label: '鍥芥帶', value: '1' }, + { label: '鐪佹帶', value: '2' }, + { label: '甯傛帶', value: '3' }, + { label: '鍏朵粬', value: '4' } + ], form: { areaVal: '', enterpriseVal: '', enterpriseSubunitsVal: '', + enterpriseLevelVal: '', type: '' }, - // pageSize: 10, - // current: 1, levelOfRisk: [ { name: '鍏ㄩ儴', value: '1' }, { name: '姝e父', value: '2' }, { name: '瓒呮爣', value: '3' }, - { name: '寮傚父', value: '4' }, - { name: '鍋滀骇', value: '5' } + { name: '棰勮', value: '4' }, + { name: '寮傚父', value: '5' }, + { name: '缂哄け', value: '6' }, + { name: '鍋滆繍', value: '7' } ] } }, @@ -144,13 +155,13 @@ this.handleSearch() }, // 鍖哄煙绛涢�� - areaType (val) { + /* areaType (val) { this.pipelineTypeOptions.forEach((itm) => { if (val === itm.value) { } }) - }, + }, */ // 浼佷笟绛涢�� enterpriseType (val) { this.dataTypeOptions.forEach((itm) => { @@ -163,17 +174,29 @@ enterpriseSubunitsType (val) { }, - // 涓夌骇鍗曚綅绛涢�� + // 鎺у埗绾у埆绛涢�� + enterpriseLevelType (val) { + + }, + async handleSearch () { const param = { - pipelineType: this.form.pipelineType, - dataType: this.form.dataType + companyId: 3900100145, // 浼佷笟缂栫爜 + id: '', + monType: 2, // 搴熸皵 + userCode: 'wenchun.deng', // 鐢ㄦ埛鍚嶇О + monDuration: '', + epName: '', + secdDeptId: '', + contrLevel: '', + dataStatus: '', + dataFlag: '', + runStatus: '', + emissTypeId: '' } - // console.log(param) const res = await mapApi.getWasteGas(param) - // console.log(res) - this.list = res.Result.DataInfo - console.log(this.list) + this.list = res.Result.DataInfo || {} + this.total = this.list.length }, // 寮圭獥灞曠ず async handleLocation (val) { diff --git a/src/components/panel/topicSearch/WaterWasteSearch.vue b/src/components/panel/topicSearch/WasteWaterSearch.vue similarity index 81% rename from src/components/panel/topicSearch/WaterWasteSearch.vue rename to src/components/panel/topicSearch/WasteWaterSearch.vue index cb3343d..7d0df00 100644 --- a/src/components/panel/topicSearch/WaterWasteSearch.vue +++ b/src/components/panel/topicSearch/WasteWaterSearch.vue @@ -3,7 +3,7 @@ <div class="panel-title">{{title}}</div> <div class="search-panel "> <el-form ref="form" :model="form" label-width="90px" class="search-form"> - <el-form-item label="鍖哄煙锛�" size="mini" class="search-panel-item"> +<!-- <el-form-item label="鍖哄煙锛�" size="mini" class="search-panel-item"> <el-select style="width: 100%" v-model="form.areaVal" @change="areaType" :popper-class="'select-down'"> <el-option @@ -13,7 +13,7 @@ :value="item.value"> </el-option> </el-select> - </el-form-item> + </el-form-item>--> <el-form-item label="浼佷笟鍚嶇О锛�" size="mini"> <el-select style="width: 100%" v-model="form.enterpriseVal" @change="enterpriseType" :popper-class="'select-down'"> @@ -25,7 +25,7 @@ </el-option> </el-select> </el-form-item> - <el-form-item label="浜岀骇鍗曚綅锛�" size="mini"> + <el-form-item label="鍗曚綅閮ㄩ棬锛�" size="mini"> <el-select style="width: 100%" v-model="form.enterpriseSubunitsVal" @change="enterpriseSubunitsType" :popper-class="'select-down'"> <el-option @@ -36,11 +36,11 @@ </el-option> </el-select> </el-form-item> - <el-form-item label="涓夌骇鍗曚綅锛�" size="mini"> - <el-select style="width: 100%" v-model="form.enterpriseSubunitsVal" @change="enterpriseSubunitsType" + <el-form-item label="鎺у埗绾у埆锛�" size="mini"> + <el-select style="width: 100%" v-model="form.enterpriseLevelVal" @change="enterpriseLevelType" :popper-class="'select-down'"> <el-option - v-for="item in enterpriseSubunitsTypeOptions" + v-for="item in enterpriseLevelTypeOptions" :key="item.value" :label="item.label" :value="item.value"> @@ -77,11 +77,10 @@ <el-scrollbar style="height:264px"> <div class="environmental-risk-list" v-for="(item,index) in list" :key="index" @click="handleLocation(item)"><!-- --> - <img src="../../../../public/assets/images/map/exhaust/fq_green2.png" alt="" class="state"/> + <img src="../../../../public/assets/images/map/wastewater/fs_bright_green.png" alt="" class="state"/> <div> <h3>{{ item.Name }}</h3> - <p>鎵�灞為儴闂細<span>{{ item.porltName }}</span></p> - <p>椋庨櫓绾у埆锛�<span>涓夌骇</span></p> + <p>鎵�灞為儴闂細<span>{{ item.DeptSname }}</span></p> </div> </div> @@ -114,7 +113,7 @@ import { pulseEffect, setPanTo } from '../../../utils/utils' export default { - name: 'WaterWasteSearch', + name: 'WasteWaterSearch', props: ['title'], data () { return { @@ -124,40 +123,33 @@ total: 0, // 鍒嗛〉 pageSize: 10, + current: 1, inareaTypeOptions: [], enterpriseTypeOptions: [], enterpriseSubunitsTypeOptions: [], + enterpriseLevelTypeOptions: [ + { label: '鍥芥帶', value: '1' }, + { label: '鐪佹帶', value: '2' }, + { label: '甯傛帶', value: '3' }, + { label: '鍏朵粬', value: '4' } + ], form: { areaVal: '', enterpriseVal: '', enterpriseSubunitsVal: '', + enterpriseLevelVal: '', type: '1' }, - // pageSize: 10, - // current: 1, isWaybillHover: true, isRouteHover: false, levelOfRisk: [ - { - name: '鍏ㄩ儴', - value: '1' - }, - { - name: '姝e父', - value: '2' - }, - { - name: '瓒呮爣', - value: '3' - }, - { - name: '寮傚父', - value: '4' - }, - { - name: '鍋滀骇', - value: '5' - } + { name: '鍏ㄩ儴', value: '1' }, + { name: '姝e父', value: '2' }, + { name: '瓒呮爣', value: '3' }, + { name: '棰勮', value: '4' }, + { name: '寮傚父', value: '5' }, + { name: '缂哄け', value: '6' }, + { name: '鍋滆繍', value: '7' } ] } }, @@ -168,13 +160,13 @@ this.handleSearch() }, // 鍖哄煙绛涢�� - areaType (val) { + /* areaType (val) { this.pipelineTypeOptions.forEach((itm) => { if (val === itm.value) { } }) - }, + }, */ // 浼佷笟绛涢�� enterpriseType (val) { this.dataTypeOptions.forEach((itm) => { @@ -187,17 +179,29 @@ enterpriseSubunitsType (val) { }, - // 涓夌骇鍗曚綅绛涢�� + // 鎺у埗绾у埆绛涢�� + enterpriseLevelType (val) { + + }, + async handleSearch () { const param = { - pipelineType: this.form.pipelineType, - dataType: this.form.dataType + companyId: 3900100145, // 浼佷笟缂栫爜 + id: '', + monType: 1, // 搴熸按 + userCode: 'wenchun.deng', // 鐢ㄦ埛鍚嶇О + monDuration: '', + epName: '', + secdDeptId: '', + contrLevel: '', + dataStatus: '', + dataFlag: '', + runStatus: '', + emissTypeId: '' } - // console.log(param) const res = await mapApi.getWasteWater(param) - // console.log(res) - this.list = res.Result.DataInfo - console.log(this.list) + this.list = res.Result.DataInfo || {} + this.total = this.list.length }, // 寮圭獥灞曠ず handleLocation (val) { 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 20c3f29..af7e312 100644 --- a/src/conf/Constants.js +++ b/src/conf/Constants.js @@ -17,12 +17,12 @@ } export const logicMapper = { - wasteGasPfk: 'WasteGas.js', - wasteWaterPfk: 'WasteWater.js', - wasteSolidCcd: 'WasteSolid.js', + wasteGasPfk: 'WasteGas.js', // 搴熸皵 + wasteWaterPfk: 'WasteWater.js', // 搴熸按 + wasteSolidCcd: 'WasteSolid.js', // 鍥哄簾 sewersAreaGs: 'Company.js', pipesegment: 'PipeLineAnimal.js', - pollutionSources: 'SourcesPollution.js', + pollutionSourcesZlss: 'GovernEquipment.js', // 姹℃煋婧�-娌荤悊璁炬柦 envRiskChart: 'EnvironmentRisk.js', // 椋庨櫓缁熻鍥� envRiskMajor: 'RiskSource.js', // 閲嶅ぇ椋庨櫓婧� envRiskFirst: 'RiskSource.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/conf/layers/LayerEnvRisk.js b/src/conf/layers/LayerEnvRisk.js index 1ca0e15..983fe54 100644 --- a/src/conf/layers/LayerEnvRisk.js +++ b/src/conf/layers/LayerEnvRisk.js @@ -26,7 +26,7 @@ name: '閲嶅ぇ椋庨櫓', sname: '閲嶅ぇ椋庨櫓', checked: false, // 榛樿閫変腑鐘舵�� - minZoom: 10, + // minZoom: 10, color: 'red', level: 0 }, @@ -36,7 +36,7 @@ sname: '涓�绾ч闄�', checked: false, // 榛樿閫変腑鐘舵�� type: 0, - minZoom: 10, + // minZoom: 10, color: 'sandybrown', level: 1 }, @@ -46,7 +46,7 @@ sname: '浜岀骇椋庨櫓', checked: false, type: 0, - minZoom: 10, + // minZoom: 10, color: 'yellow', level: 2 }, @@ -56,7 +56,7 @@ sname: '涓夌骇椋庨櫓', checked: false, type: 0, - minZoom: 10, + // minZoom: 10, color: 'green', level: 3 } diff --git a/src/utils/utils.js b/src/utils/utils.js index d8d5e40..c187b1c 100644 --- a/src/utils/utils.js +++ b/src/utils/utils.js @@ -27,7 +27,7 @@ * 鑴夊啿鏁堟灉 */ export function pulseEffect (xy) { - let times = 5 + let times = 1000 const colors = ['#00f100', '#ff0000'] // 鎻掍欢 鏁堟灉瀹炵幇 var pulsingIcon = window.L.icon.pulse({ 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