From e3608132cc667c16ea10f450807e0feddaf55d1f Mon Sep 17 00:00:00 2001 From: 陈泽平 <chenzeping> Date: 星期日, 30 五月 2021 13:32:38 +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/base-page/enterprise-emergency/event-handling/DisposalProposed.vue | 141 ++++++- src/components/panel/RightSearchPanel.vue | 124 ++++-- src/conf/Topic.js | 4 src/assets/css/map/map-panel-style.less | 21 + 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/enterprise-emergency/DisposalEvent.vue | 196 ++++++--- src/components/base-page/WasteWater/WasteWaterIndex.vue | 21 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/WasteWater/WasteWaterDayChart.vue | 243 +++++++++--- src/App.vue | 6 18 files changed, 868 insertions(+), 268 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/assets/css/map/map-panel-style.less b/src/assets/css/map/map-panel-style.less index 7ae3d48..1ec2a41 100644 --- a/src/assets/css/map/map-panel-style.less +++ b/src/assets/css/map/map-panel-style.less @@ -829,6 +829,27 @@ padding: 5px; color: #f2f2f2; } +.el-collapse-item__header { + display: flex; + align-items: center; + height: 48px; + line-height: 48px; + background-color: @background-color; + color: @color; + cursor: pointer; + border-bottom: 1px solid @color; + font-size: 13px; + font-weight: 500; + transition: border-bottom-color .3s; + outline: 0; +} +.el-collapse-item__wrap{ + background-color: @background-color; + +} +.el-collapse-item__content{ + color: @color; +} /************鎼滅储鏁版嵁鍒嗛〉鍔熻兘鎬绘暟閲忔牱寮忔坊鍔�************/ .page_total { 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/DisposalEvent.vue b/src/components/base-page/enterprise-emergency/DisposalEvent.vue index e7eb185..c7c4c15 100644 --- a/src/components/base-page/enterprise-emergency/DisposalEvent.vue +++ b/src/components/base-page/enterprise-emergency/DisposalEvent.vue @@ -1,72 +1,105 @@ <template> - <div class="disposal-event"> - <h4 class="sub-title ">浜嬩欢鍩烘湰淇℃伅</h4> - <div :model="form"> - <el-row> - <el-col class="info-label" :span="6">浜嬩欢鍚嶇О锛�</el-col> - <el-col class="info-text" :span="18">{{ form.nameOfEvent }}</el-col> - </el-row> - <el-row> - <el-col class="info-label" :span="6"> - 浜嬩欢浣嶇疆锛� - </el-col> - <el-col class="info-text" :span="18"> - <label>{{ form.eventLocation }}</label> - </el-col> - </el-row> - <el-row> - <el-col class="info-label" :span="6"> - 浣嶇疆鎻忚堪锛� - </el-col> - <el-col class="info-text" :span="18"> - <label>{{ form.positionDesc }}</label> - </el-col> - </el-row> - <el-row> - <el-col class="info-label" :span="6"> - 浜嬩欢鍗曚綅锛� - </el-col> - <el-col class="info-text" :span="18"> - {{ form.incidentUnit }} - </el-col> - </el-row> - <el-row> - <el-col class="info-label" :span="6"> - 浜嬪彂鏃堕棿锛� - </el-col> - <el-col class="info-text" :span="18"> - {{ form.atTime }} - </el-col> - </el-row> - <el-row> - <el-col class="info-label" :span="6">浜嬩欢鎻忚堪锛�</el-col> - <el-col class="info-text" :span="18">{{ form.eventDesc }}</el-col> - </el-row> - <el-row> - <el-col class="info-label" span="6">闄勪欢锛�</el-col> - <el-col class="info-text" :span="18"><a class="link-btn" href="javascript:">闄勪欢</a> - - <a class="link-btn" href="javascript:">闄勪欢</a> - </el-col> - </el-row> + <div> + <el-scrollbar > + <div class="disposal-event"> +<!-- <el-collapse v-model="activeNames" @change="handleChange">--> +<!-- <el-collapse-item title="浜嬩欢鍩烘湰淇℃伅" name="1">--> + <div> + <h4 class="sub-title ">浜嬩欢鍩烘湰淇℃伅</h4> + <div :model="form"> + <el-row> + <el-col class="info-label" :span="6">浜嬩欢鍚嶇О锛�</el-col> + <el-col class="info-text" :span="18">{{ form.nameOfEvent }}</el-col> + </el-row> + <el-row> + <el-col class="info-label" :span="6"> + 浜嬩欢浣嶇疆锛� + </el-col> + <el-col class="info-text" :span="18"> + <label>{{ form.eventLocation }}</label> + </el-col> + </el-row> + <el-row> + <el-col class="info-label" :span="6"> + 浣嶇疆鎻忚堪锛� + </el-col> + <el-col class="info-text" :span="18"> + <label>{{ form.positionDesc }}</label> + </el-col> + </el-row> + <el-row> + <el-col class="info-label" :span="6"> + 浜嬩欢鍗曚綅锛� + </el-col> + <el-col class="info-text" :span="18"> + {{ form.incidentUnit }} + </el-col> + </el-row> + <el-row> + <el-col class="info-label" :span="6"> + 浜嬪彂鏃堕棿锛� + </el-col> + <el-col class="info-text" :span="18"> + {{ form.atTime }} + </el-col> + </el-row> + <el-row> + <el-col class="info-label" :span="6">浜嬩欢鎻忚堪锛�</el-col> + <el-col class="info-text" :span="18">{{ form.eventDesc }}</el-col> + </el-row> + <el-row> + <el-col class="info-label" span="6">闄勪欢锛�</el-col> + <el-col class="info-text" :span="18"><a class="link-btn" href="javascript:">闄勪欢</a> + + <a class="link-btn" href="javascript:">闄勪欢</a> + </el-col> + </el-row> + </div> + </div> +<!-- </el-collapse-item>--> +<!-- <el-collapse-item title="棰勬鍖归厤" name="2">--> + <div> +<!-- <h3 class="sub-title">棰勬鍖归厤</h3>--> + <el-table :data="tableData" style="width: 100%"> + <el-table-column prop="name" label="棰勬鍚嶇О"></el-table-column> + <el-table-column prop="define" label="棰勬瀹氫箟"></el-table-column> + <el-table-column prop="hierarchy" label="棰勬灞傜骇"></el-table-column> + <el-table-column prop="classification" label="棰勬鍒嗙被"></el-table-column> + <el-table-column label="闄勪欢"> + <template> + <a class="link-btn" href="javascript:">棰勬</a> + </template> + </el-table-column> + </el-table> + </div> +<!-- </el-collapse-item>--> +<!-- <el-collapse-item title="鐜鍒嗘瀽鎶ュ憡" name="3">--> + <div> + <h3 class="sub-title">鐜鍒嗘瀽鎶ュ憡</h3> + <el-table :data="envTableData" style="width: 100%"> + <el-table-column prop="no" label="搴忓彿"></el-table-column> + <el-table-column prop="radius" label="鏌ヨ鍗婂緞"></el-table-column> + <el-table-column prop="reporterTime" label="鐢熸垚鎶ュ憡鏃堕棿"></el-table-column> + <el-table-column prop="classification" label="鎿嶄綔"> + <template slot-scope="scope" > + <el-button class="link-btn" @click="handleClickView(scope.row)" type="text" size="small">鏌ョ湅</el-button> + <el-button class="link-btn" @click="handleClickDownload(scope.row)" type="text" size="small">涓嬭浇</el-button> + </template> + </el-table-column> + </el-table> + </div> +<!-- </el-collapse-item>--> +<!-- </el-collapse>--> + </div> - <h3 class="sub-title">棰勬鍖归厤</h3> - <el-table :data="tableData" style="width: 100%"> - <el-table-column prop="name" label="棰勬鍚嶇О"></el-table-column> - <el-table-column prop="define" label="棰勬瀹氫箟"></el-table-column> - <el-table-column prop="hierarchy" label="棰勬灞傜骇"></el-table-column> - <el-table-column prop="classification" label="棰勬鍒嗙被"></el-table-column> - <el-table-column label="闄勪欢"> - <template> - <a class="link-btn" href="javascript:">棰勬</a> - </template> - </el-table-column> - </el-table> + </el-scrollbar> <div class="event-management"> + <el-input></el-input> <el-button type="primary" size="mini" @click="ToManagement">寮�濮嬪垎鏋�</el-button> <!-- <el-button size="mini">鍏抽棴</el-button>--> </div> </div> + </template> <script> @@ -77,6 +110,7 @@ name: 'DisposalEvent', data () { return { + activeNames: ['1'], form: { nameOfEvent: '***************浜嬩欢', eventLocation: '**********瑁呯疆', @@ -116,6 +150,23 @@ hierarchy: '鍩哄眰鍗曚綅', classification: '鐢熶骇' } + ], + envTableData: [ + { + no: '1', + radius: '500m', + reporterTime: '2021-6-1 18:00:00', + data: [], + downloadUrl: '' + }, + { + no: '2', + radius: '1km', + reporterTime: '2021-6-1 18:00:00', + data: [], + downloadUrl: '' + } + ] } }, @@ -123,6 +174,15 @@ // 寮�濮嬪垎鏋� ToManagement () { eventBus.$emit('event-handling', {}) + }, + handleClickView (item) { + console.log(item) + }, + handleClickDownload (item) { + console.log(item) + }, + handleChange (val) { + console.log(val) } } } @@ -131,7 +191,7 @@ <style lang="less" scoped> .disposal-event { padding: 5px; - +height: 400px; .fixed-width { width: 3.2459893rem; min-width: 3.2459893rem; @@ -144,11 +204,6 @@ /deep/ .el-form-item__label { color: @color; font-size: 0.08rem; - } - - .event-management { - text-align: right; - margin: 15px; } .sub-title { @@ -170,5 +225,8 @@ text-align: left; } } - +.event-management { + text-align: right; + margin: 15px; +} </style> diff --git a/src/components/base-page/enterprise-emergency/event-handling/DisposalProposed.vue b/src/components/base-page/enterprise-emergency/event-handling/DisposalProposed.vue index 38c50ee..da459bf 100644 --- a/src/components/base-page/enterprise-emergency/event-handling/DisposalProposed.vue +++ b/src/components/base-page/enterprise-emergency/event-handling/DisposalProposed.vue @@ -1,24 +1,59 @@ <template> - <div> -<!-- <el-table ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%">--> -<!-- <el-table-column prop="define" label="寤鸿澶勭疆鎺柦" show-overflow-tooltip></el-table-column>--> -<!-- <el-table-column type="selection" label="棰勮" width="55"></el-table-column>--> + <div class=""> + <!-- <el-table ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%">--> + <!-- <el-table-column prop="define" label="寤鸿澶勭疆鎺柦" show-overflow-tooltip></el-table-column>--> + <!-- <el-table-column type="selection" label="棰勮" width="55"></el-table-column>--> -<!-- </el-table>--> + <!-- </el-table>--> <div class="" style="padding: 5px;"> -<!-- <div v-for="o in tableData" :key="o" class="text item">--> -<!-- {{ o.content }}--> -<!-- </div>--> + <!-- <div v-for="o in tableData" :key="o" class="text item">--> + <!-- {{ o.content }}--> + <!-- </div>--> <div> - 1銆佸叧闂榾闂˙銆侀榾闂–锛屽涓婃父绠¢亾杩涜鎴祦锛涘叧闂榾闂―锛屽涓嬫父绠¢亾杩涜鎴祦 + <h4 class="sub-title ">绠$嚎鍩烘湰淇℃伅</h4> + <div> + 浜嬩欢绠$嚎锛� + <div class="report-con"> + 鐢熶骇1鍖虹绾緼锛屼粙璐ㄤ负鍚补姹℃按锛屽煁璁炬柟寮忎负鐩村煁锛屾潗璐ㄤ负鏃犵紳閽㈢锛岄檮灞炶鏂介榾闂ˋ銆� + </div> + 涓婃父绠$嚎 + <div class="report-con"> + 鐢熶骇2鍖虹绾緽锛屼粙璐ㄤ负鍚补姹℃按锛屽煁璁炬柟寮忎负鐩村煁锛屾潗璐ㄤ负鏃犵紳閽㈢锛岄檮灞炶鏂介榾闂˙ + </div> + <div class="report-con"> + 鐢熶骇2鍖虹绾緾锛屼粙璐ㄤ负鍚补姹℃按锛屽煁璁炬柟寮忎负鐩村煁锛屾潗璐ㄤ负鏃犵紳閽㈢锛岄檮灞炶鏂介榾闂– + </div> + 涓嬫父绠$嚎 + <div class="report-con"> + 鐢熶骇2鍖虹绾緿锛屼粙璐ㄤ负鍚补姹℃按锛屽煁璁炬柟寮忎负鐩村煁锛屾潗璐ㄤ负鏃犵紳閽㈢锛岄檮灞炶鏂介榾闂― + </div> + 浜嬩欢鑼冨洿鍐� + <div class="report-con"> + 瑁呯疆鍖洪洦姘寸嚎锛屼粙璐ㄤ负闆ㄦ按绠$嚎锛屽煁璁炬柟寮忎负鏄庢矡 锛屾潗璐ㄤ负鏃犳按娉ワ紝闄勫睘璁炬柦鎴祦闂� + </div> + <div class="report-con"> + 瑁呯疆鍖洪洦姘寸嚎锛屼粙璐ㄤ负闆ㄦ按绠$嚎锛屽煁璁炬柟寮忎负鏄庢矡 锛屾潗璐ㄤ负鏃犳按娉ワ紝闄勫睘璁炬柦鎴祦闂� + </div> + </div> + <div> + <h3 class="sub-title">鐜鍒嗘瀽鎶ュ憡</h3> + <el-table :data="envTableData" style="width: 100%"> + <el-table-column prop="process" label="寤鸿澶勭疆鎺柦"></el-table-column> + <el-table-column prop="operation" label="鎿嶄綔"> + <template slot-scope="scope"> + <el-button class="link-btn" @click="handleClickView(scope.row)" type="text" size="mini">棰勮</el-button> + </template> + </el-table-column> + </el-table> + </div> <div> </div> </div> </div> - <div > -</div> + <div> + </div> </div> </template> @@ -36,9 +71,25 @@ type: 'closeFM', fmGxList: { // 涓婃父闃�闂� - syfm: [{ name: '闃�闂˙', lng: 114, lat: 32 }, { name: '闃�闂╝', lng: 114, lat: 32 }], + syfm: [{ + name: '闃�闂˙', + lng: 114, + lat: 32 + }, { + name: '闃�闂╝', + lng: 114, + lat: 32 + }], // 涓嬫父闃�闂� - xyfm: [{ name: '闃�闂‥', lng: 114, lat: 32 }, { name: '闃�闂‵', lng: 114, lat: 32 }] + xyfm: [{ + name: '闃�闂‥', + lng: 114, + lat: 32 + }, { + name: '闃�闂‵', + lng: 114, + lat: 32 + }] } }, { no: 1, @@ -47,9 +98,25 @@ type: 'closeFM', fmGxList: { // 涓婃父闃�闂� - syfm: [{ name: '闃�闂˙', lng: 114, lat: 32 }, { name: '闃�闂╝', lng: 114, lat: 32 }], + syfm: [{ + name: '闃�闂˙', + lng: 114, + lat: 32 + }, { + name: '闃�闂╝', + lng: 114, + lat: 32 + }], // 涓嬫父闃�闂� - xyfm: [{ name: '闃�闂‥', lng: 114, lat: 32 }, { name: '闃�闂‵', lng: 114, lat: 32 }] + xyfm: [{ + name: '闃�闂‥', + lng: 114, + lat: 32 + }, { + name: '闃�闂‵', + lng: 114, + lat: 32 + }] } }, { no: 1, @@ -58,20 +125,54 @@ type: 'closeFM', fmGxList: { // 涓婃父闃�闂� - syfm: [{ name: '闃�闂˙', lng: 114, lat: 32 }, { name: '闃�闂╝', lng: 114, lat: 32 }], + syfm: [{ + name: '闃�闂˙', + lng: 114, + lat: 32 + }, { + name: '闃�闂╝', + lng: 114, + lat: 32 + }], // 涓嬫父闃�闂� - xyfm: [{ name: '闃�闂‥', lng: 114, lat: 32 }, { name: '闃�闂‵', lng: 114, lat: 32 }] + xyfm: [{ + name: '闃�闂‥', + lng: 114, + lat: 32 + }, { + name: '闃�闂‵', + lng: 114, + lat: 32 + }] } - }] + }], + envTableData: [ + { + process: '1銆佸叧闂榾闂˙銆侀榾闂–锛屽涓婃父绠¢亾杩涜鎴祦锛涘叧闂榾闂―锛屽涓嬫父绠¢亾杩涜鎴祦' + }, + { + process: '2.閫氳繃璺ㄧ嚎/鏃佽矾锛圶XX姹℃按绠$嚎锛夎繘琛屽娴�' + }, { + process: '3.灞曠ず鍙楀奖鍝嶆薄姘寸绾垮強澶栨帓鍙�' + } + ] } }, methods: { - + handleClickView (item) { + console.log(item) + }, + handleClickDownload (item) { + console.log(item) + } } } </script> -<style scoped> +<style lang="less" scoped> +.report-con{ + color: @color; +} </style> 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/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..3abd745 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