Merge branch 'develop' of http://xearth.cn:6600/r/wuyushui/SewerAndRainNetwork into develop
| | |
| | | -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> |
| | |
| | | <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" |
| | |
| | | |
| | | <script> |
| | | import LcServiceLayerFilter from '@components/LayerController/modules/LcServiceLayerFilter' |
| | | import bus from '@/eventBus' |
| | | |
| | | export default { |
| | | name: 'LcServiceLayer', |
| | | components: { LcServiceLayerFilter }, |
| | |
| | | } else { |
| | | this.toggleLayer(item) |
| | | } |
| | | /* <<<<<<< HEAD |
| | | bus.$emit('changeSearchBar', item) |
| | | this.serviceLayers.forEach(function (item1, index1) { |
| | | if (item1.layers) { |
| | | item1.istrue = 0 |
| | |
| | | // console.log(item1.layers.length, item1.istrue, item1.isfalse, item1.type) |
| | | } |
| | | }) |
| | | >>>>>>> de7390c66ef3e3fe316e804495a78d05a01f0160 */ |
| | | // console.log(this.serviceLayers) |
| | | }, |
| | | swLayers (configs, checked) { |
| | |
| | | } |
| | | } |
| | | }, |
| | | 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) |
| | |
| | | } |
| | | // this.updateWms() |
| | | } |
| | | }, |
| | | watch: { |
| | | serviceLayers: { |
| | | handler: function (val) { |
| | | this.setLayerType(val, 0) |
| | | }, |
| | | immediate: true, |
| | | deep: true |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <!-- <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> |
| | |
| | | <script> |
| | | export default { |
| | | name: 'PublicDataStandard', |
| | | watch: { |
| | | dataStandard (val, oldVal) { |
| | | this.dataStandard = val |
| | | } |
| | | }, |
| | | props: { |
| | | dataStandard: { |
| | | type: Array, |
| | |
| | | .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; |
| | | } |
| | | } |
| | | } |
| | |
| | | <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> |
| | |
| | | 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], |
| | |
| | | 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: '实测浓度(mg/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: '实测浓度(mg/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: '实测浓度(mg/l)', |
| | | prop: 'pH_MonQty' |
| | | }, |
| | | { |
| | | id: 530, |
| | | label: '标准值(mg/l)', |
| | | prop: 'pH_StdValue' |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | id: 600, |
| | | label: '废水流量', |
| | | prop: '', |
| | | children: [ |
| | | { |
| | | id: 610, |
| | | label: '实测流量(m³/h)', |
| | | prop: '废水流量_MonQty' |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | mounted () { |
| | |
| | | poltMtrlId: '', |
| | | emissTypeId: '', |
| | | onLineMonEmissPointId: 23, |
| | | monItemId: 28, |
| | | monItemId: '28,31,35', // 监测项 COD、氨氮、PH |
| | | beginTime: this.formData.timeStart, |
| | | endTime: this.formData.timeEnd, |
| | | dataType: this.dataType |
| | |
| | | }, |
| | | get24HourDate (res) { |
| | | if (res.length > 0) { |
| | | this.dataStandard = [] |
| | | this.tableData = this.analysisResult(res) // 小时明细表解析结果 |
| | | // 处理数据开始 |
| | | const d = res |
| | | const nameList = [] // 存放图例 |
| | |
| | | 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 { |
| | |
| | | } |
| | | 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) |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | 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) |
| | | } |
| | |
| | | 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) { |
| | |
| | | biaozhuiz = bzzList[i].bzhui |
| | | } |
| | | } |
| | | if (c.value) { |
| | | if (c.value[1] > biaozhuiz) { |
| | | return zdcbcolor |
| | | } else if (c.value[1] > biaozhuiz * 0.9) { |
| | | return '#FFA500' |
| | | } else { |
| | | return '#33c95f' |
| | | } |
| | | } |
| | | }, |
| | | lineStyle: { // 折线的颜色 |
| | |
| | | } |
| | | 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 |
| | | } |
| | | } |
| | | } |
| | |
| | | <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> |
| | |
| | | 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], |
| | |
| | | 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: '实测浓度(mg/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: '实测浓度(mg/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: '实测浓度(mg/l)', |
| | | prop: 'pH_MonQty' |
| | | }, |
| | | { |
| | | id: 530, |
| | | label: '标准值(mg/l)', |
| | | prop: 'pH_StdValue' |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | id: 600, |
| | | label: '废水流量', |
| | | prop: '', |
| | | children: [ |
| | | { |
| | | id: 610, |
| | | label: '实测流量(m³/h)', |
| | | prop: '废水流量_MonQty' |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | mounted () { |
| | |
| | | poltMtrlId: '', |
| | | emissTypeId: '', |
| | | onLineMonEmissPointId: 23, |
| | | monItemId: 28, |
| | | monItemId: '28,31,35', // 监测项 COD、氨氮、PH |
| | | 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 = [] // 存放时间 |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | 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 |
| | |
| | | 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++) { |
| | |
| | | // 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) |
| | | } |
| | | }, |
| | |
| | | } |
| | | 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 |
| | | } |
| | | } |
| | | } |
| | |
| | | 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 { |
| | |
| | | } |
| | | |
| | | .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; |
| | |
| | | } |
| | | |
| | | .navigation-left :hover { |
| | | background-color: #0e639e; |
| | | color: #fff; |
| | | cursor: pointer; |
| | | } |
| | |
| | | </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 |
| | |
| | | <el-row class="place-box"> |
| | | <div class="place-left"> |
| | | <el-form :model="LongLatPos" label-width="90px"> |
| | | <el-form-item label="经度:"> |
| | | <el-row style="display: flex;align-items: center"> |
| | | <el-form-item label="经度:" style="display: inline-block"> |
| | | <el-col :span="20"> |
| | | <el-input v-model="LongLatPos.longPos"></el-input> |
| | | </el-col> |
| | | </el-form-item> |
| | | <el-col :span="4"> |
| | | <el-button type="primary" size="small" @click="mapPoints">点击定位</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="display: flex;align-items: center"> |
| | | <el-form-item label="纬度:"> |
| | | <el-col :span="20"> |
| | | <el-input v-model="LongLatPos.latPos"></el-input> |
| | | </el-col> |
| | | </el-form-item> |
| | | <el-col :span="4"> |
| | | <el-button type="primary" size="small" @click="dataPoints">数据定位</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | </div> |
| | | <div class="place-right"> |
| | | <el-button type="primary" size="small" @click="mapPoints">点击定位</el-button> |
| | | <el-button type="primary" size="small" @click="dataPoints">数据定位</el-button> |
| | | </div> |
| | | <!-- <div class="place-right">--> |
| | | <!-- <el-button type="primary" size="small" @click="mapPoints">点击定位</el-button>--> |
| | | <!-- <el-button type="primary" size="small" @click="dataPoints">数据定位</el-button>--> |
| | | <!-- </div>--> |
| | | </el-row> |
| | | <div class="place-bottom" style="text-align: right;margin: 5px"> |
| | | <el-button type="primary" @click="confirm">确认</el-button> |
| | | <el-button type="primary" @click="confirm" size="small">确认</el-button> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { pulseEffect } from '../../../../utils/utils' |
| | | import iconUrl from '../../../../../public/assets/images/map/loc.png' |
| | | import iconUrl from '../../../../../public/assets/images/map/marker-icon.png' |
| | | import eventBus from '../../../../eventBus' |
| | | |
| | | export default { |
| | |
| | | this.marker = window.L.marker(as, { |
| | | icon: window.L.icon({ |
| | | iconUrl: iconUrl, |
| | | iconSize: [30, 30], |
| | | iconSize: [25, 45], |
| | | iconAnchor: [15, 15] |
| | | }) |
| | | }) |
| | |
| | | <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-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"> |
| | | <el-button type="primary" size="mini" icon="el-icon-position" @click="locationMapClick(item)">定位 |
| | | <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-pagination--> |
| | | <!-- layout="prev, pager, next"--> |
| | | <!-- :total="50">--> |
| | | <!-- </el-pagination>--> |
| | | </el-row> |
| | | </el-scrollbar> |
| | | <!-- </el-scrollbar>--> |
| | | <!-- <el-card class="footer-page" >--> |
| | | <div v-if="total > 10"> |
| | | <el-pagination |
| | | small |
| | | @current-change="handlePage" |
| | | :page-size=pageSize |
| | | :current-page.sync="currentPage" |
| | | layout="prev, pager, next" |
| | | :total=total |
| | | class="warnPagination" |
| | | > |
| | | </el-pagination> |
| | | </div> |
| | | <!-- </el-card>--> |
| | | <el-row style="text-align: right"> |
| | | <el-button type="primary" @click="confirm">确认</el-button> |
| | | <el-button type="primary" size="small" @click="confirm">确认</el-button> |
| | | </el-row> |
| | | </div> |
| | | </template> |
| | |
| | | import { reportLocationSearch } from '../../../../api/request' |
| | | import { pulseEffect } from '../../../../utils/utils' |
| | | import eventBus from '../../../../eventBus' |
| | | import iconUrl from '../../../../../public/assets/images/map/loc.png' |
| | | import iconUrl from '../../../../../public/assets/images/map/marker-icon.png' |
| | | |
| | | export default { |
| | | name: 'ReportLocationSearch', |
| | | data () { |
| | | return { |
| | | activeNum: -1, |
| | | // 点击定位绑定数据 |
| | | clickLocation: '', |
| | | searchList: [], |
| | | marker: null |
| | | marker: null, |
| | | total: 0, |
| | | // 分页 默认展示 |
| | | currentPage: 1, |
| | | // 分页 每页多少数据 |
| | | pageSize: 3 |
| | | } |
| | | }, |
| | | methods: { |
| | | handlePage (currentPage) { |
| | | // this.focusLocation() |
| | | this.currentPage = currentPage |
| | | }, |
| | | handleLocation (index) { |
| | | this.activeNum = index |
| | | }, |
| | | // 搜索定位 |
| | | focusLocation () { |
| | | // console.log(this.clickLocation) |
| | | // console.log(window.map.getZoom()) |
| | | // console.log(window.map.getBounds()) |
| | | const getBoundsData = '' + window.map.getBounds()._southWest.lng + ',' + window.map.getBounds()._southWest.lat + ',' + window.map.getBounds()._northEast.lng + ',' + window.map.getBounds()._northEast.lat |
| | | const data = { |
| | | postStr: { |
| | |
| | | }, |
| | | type: 'query' |
| | | } |
| | | // console.log(data) |
| | | reportLocationSearch(data).then(res => { |
| | | // console.log(res) |
| | | console.log(res) |
| | | this.searchList = res.pois |
| | | // console.log(this.searchList) |
| | | // const as = res.pois[0].lonlat.trim().split(' ') |
| | | // window.map.setView([as[1], as[0]], 17) |
| | | // pulseEffect([as[1], as[0]]) |
| | | // for (let i = 0; i < res.pois.length; i++) { |
| | | // const as = res.pois[i].lonlat.trim().split(' ') |
| | | // if (res.pois[i].name.indexOf(this.clickLocation) >= 0) { |
| | | // window.map.setView([as[1], as[0]], 17) |
| | | // pulseEffect([as[1], as[0]]) |
| | | // } |
| | | // } |
| | | this.total = res.pois.length |
| | | }) |
| | | this.clickLocation = '' |
| | | }, |
| | | // 点击定位 |
| | | locationMapClick (val) { |
| | | console.log(val) |
| | | locationMapClick (val, index) { |
| | | this.activeNum = index |
| | | // console.log(val) |
| | | const ps = val.lonlat.trim().split(' ') |
| | | // const htmls = '<div><ul><li>' + val.name + '</li> + <li>' + val.adress + '</li></ul></div>' |
| | | // const htmls = '<div><ul><li>' + val.name + '</li></ul></div>' |
| | | // var myIcon = window.L.divIcon({ |
| | | // html: htmls, |
| | | // className: 'company-bindTooltip', |
| | | // iconSize: 16 |
| | | // }) |
| | | const htmls = '<div><ul><li>' + val.name + '</li> <br/> <li>' + val.address + '</li> <br/> <li>' + val.phone + '</li></ul></div>' |
| | | this.marker = window.L.marker([ps[1], ps[0]], { |
| | | icon: window.L.icon({ |
| | | iconUrl: iconUrl, |
| | | iconSize: [30, 30], |
| | | iconSize: [25, 40], |
| | | iconAnchor: [15, 15] |
| | | }) |
| | | // icon: myIcon |
| | | }) |
| | | .bindTooltip(htmls, { |
| | | // permanent: 'true', |
| | | .bindTooltip(val.name, { |
| | | permanent: 'true', |
| | | direction: 'bottom', |
| | | offset: [0, 10], |
| | | sticky: true, |
| | |
| | | /* height: 10px;*/ |
| | | /* max-height: 10px;*/ |
| | | /*}*/ |
| | | .div-list-search { |
| | | .environmental-risk-list { |
| | | color: @color; |
| | | border-bottom: 1px solid rgba(0, 255, 246, 0.14); |
| | | |
| | | h3 { |
| | | font-size: 0.1rem; |
| | | } |
| | | } |
| | | |
| | | /*<!--.environmental-risk-list:hover {-->*/ |
| | | /*<!-- color: @color-highlight;-->*/ |
| | | /*<!-- background: @background-color;-->*/ |
| | | /*<!--}-->*/ |
| | | .search-list { |
| | | h3:hover { |
| | | color: @color-highlight; |
| | | } |
| | | } |
| | | |
| | | .hover { |
| | | color: @color-highlight; |
| | | } |
| | | |
| | | .click-location { |
| | |
| | | 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> |
| | |
| | | <template> |
| | | <div class="ReportLocationSection"> |
| | | <el-form :model="form" label-width="90px"> |
| | | <el-form :model="form" label-width="120px"> |
| | | <el-row class="pipe-line-search"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="管线名称:"> |
| | |
| | | </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> |
| | |
| | | </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> |
| | |
| | | form: { |
| | | pipeName: '', |
| | | sectionName: '', |
| | | affiliatedFacilities: '' |
| | | affiliatedFacilities: '', |
| | | affiliatedFacilitiesCode: '' |
| | | }, |
| | | // 管线查询数据列表 |
| | | tableList: [], |
| | |
| | | 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) { |
| | | this.searchSection(val) |
| | | this.searchAffFacData(val) |
| | | } |
| | | }, |
| | | // 管段查询 |
| | | async searchSection (val) { |
| | | const sectionNameSearch = val.properties.pipename |
| | | this.tableListSection = [] |
| | | this.wfsHelper.clearFilter() |
| | |
| | | if (res instanceof Object && Object.prototype.hasOwnProperty.call(res, 'features')) { |
| | | this.tableListSection = res.features |
| | | } |
| | | this.wfsHelper = new WfsHelper() |
| | | }, |
| | | // 附属设施查询 |
| | | async searchAffFacData (val) { |
| | | this.tableDataAffFac = [] |
| | | const AffFacSearch = val.properties.pipecode |
| | | console.log(AffFacSearch) |
| | | this.wfsHelper.clearFilter() |
| | | this.wfsHelper.setTypeName(['sewer:view_pipeline']) |
| | | this.wfsHelper.addLike('pipecode', 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 |
| | | } |
| | | }, |
| | | // 搜索的公共方法优化 |
| | | async publicSearch (searchVal, searchKeyword, searchTypeName, tableListData) { |
| | | tableListData = [] |
| | | this.wfsHelper = new WfsHelper() |
| | | this.wfsHelper.clearFilter() |
| | | this.wfsHelper.setTypeName(searchTypeName) |
| | | this.wfsHelper.addLike(searchKeyword, searchVal) |
| | | this.wfsHelper.addEquals(searchKeyword, '\'' + searchVal + '\'') |
| | | const res = await AjaxUtils.GetDataAsynByUrl(this.wfsHelper.getUrl(), {}) |
| | | // console.log(res) |
| | | if (res instanceof Object && Object.prototype.hasOwnProperty.call(res, 'features')) { |
| | | tableListData = res.features |
| | | } |
| | | }, |
| | | // 点击管段列表 管段编码传递 |
| | | sectionCode (val) { |
| | | // console.log(val) |
| | | this.form.sectionName = val.properties.pipecode |
| | | this.form.sectionName = val.properties.pipesegcode |
| | | }, |
| | | // 点击附属设施列表 管段编码传递 |
| | | affFacName (val) { |
| | | // console.log(val) |
| | | console.log(val) |
| | | this.form.affiliatedFacilities = val.properties.name |
| | | this.form.affiliatedFacilitiesCode = val.properties.code |
| | | }, |
| | | // 定位功能 |
| | | localAdr (val) { |
| | |
| | | pipeClickLocation () { |
| | | // 设施不进行 管线表格数据的点击交互 |
| | | this.SectionAndAffFacTableJudge = false |
| | | if (this.SectionAndAffFacTableJudge === false) { |
| | | // 点击获取数据 |
| | | window.map.on('click', (e) => { |
| | | this.SectionAndAffFacTableJudge = false |
| | | // 点击地图关闭弹框 |
| | | window.mapManager.clickDialogSwitch = false |
| | | // 管线点击数据 |
| | |
| | | // 关闭点击事件 |
| | | window.map.off('click') |
| | | }) |
| | | } |
| | | // 数据 重新获取 进行置空 |
| | | this.form.pipeName = '' |
| | | this.form.sectionName = '' |
| | | this.form.affiliatedFacilities = '' |
| | | this.form.affiliatedFacilitiesCode = '' |
| | | this.tableList = [] |
| | | this.tableListSection = [] |
| | | this.tableDataAffFac = [] |
| | |
| | | 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]) |
| | | } |
| | |
| | | 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, |
| | |
| | | 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) |
| | | }) |
| | |
| | | </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"> |
| | |
| | | <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 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', |
| | |
| | | return { |
| | | isShow: true, |
| | | topicMenu: [], |
| | | topicList: TopicList, |
| | | list: topicList, |
| | | topicCheckedList: [], |
| | | isPanelVisible: false, |
| | | gcComp: SewersSearch, |
| | |
| | | selectGroup: false |
| | | } |
| | | }, |
| | | computed: {}, |
| | | computed: { |
| | | serviceLayers () { |
| | | return this.$store.state.map.serviceLayers.LayerSewersLine |
| | | } |
| | | }, /* |
| | | watch: { |
| | | '$store.state.map.topic.topicCheckedList': function (newVal, oldVal) { |
| | | console.log(oldVal) |
| | |
| | | }) |
| | | }) |
| | | } |
| | | }, |
| | | }, */ |
| | | 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 |
| | |
| | | } |
| | | }, |
| | | handlePage (page) { |
| | | }, |
| | | handleGd () { |
| | | this.title = '管道信息查询' |
| | | }, |
| | | toggleMonitorPanel () { |
| | | this.isCollapse = !this.isCollapse |
| | |
| | | // }) |
| | | // } |
| | | }, |
| | | 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) |
| | | } |
| | | }) |
| | | this.selected(v) |
| | | } else if (checked) { |
| | | this.selected(topic) |
| | | } |
| | | break |
| | | } |
| | | } |
| | | this.containsLayer(lay.layers) |
| | | } |
| | | } |
| | | }, |
| | | 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 |
| | | /* 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 |
| | | } |
| | | // item.isShow = obj.checked |
| | | if (item.isShow) { |
| | | that.selected(item) |
| | | } else { |
| | | that.defaultLastOne() |
| | | } |
| | | } |
| | | }) |
| | | }) |
| | | // console.log(that.topicList) |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <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> |
| | |
| | | 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: { |
| | |
| | | return { |
| | | titleProp: '', |
| | | activeName: '污染源', |
| | | topicList: TopicList, // tab项 |
| | | gcComp: PollutionSource // 默认显示污染源内容 |
| | | topicList: topicList, // tab项 |
| | | gcComp: PollutionSource |
| | | } |
| | | }, |
| | | methods: { |
| | |
| | | emergencyesources: '应急物资', |
| | | firefightingunit: '消防单位', |
| | | unitareaboundary: '装置区边界', |
| | | sensitivetarget: '敏感目标' |
| | | sensitivetarget: '敏感目标', |
| | | chokevalve: '截流闸' |
| | | } |
| | | |
| | | export const LAYERPROPS = { |
| | |
| | | name: '管网名称', |
| | | linenumtype: '管线类型', |
| | | pipename: '管线名称', |
| | | subchaname: '支线名称', |
| | | mediumtype: '输送介质', |
| | | length: '长度(m)', |
| | | startposname: '起点位置名称', |
| | |
| | | huncount: '常规人口数量', |
| | | structureoridsitearea: '占地面积', |
| | | adminzonename: '行政隶属' |
| | | }, |
| | | // 截流闸 |
| | | chokevalve: { |
| | | closurename: '名称', |
| | | closurecode: '编码', |
| | | pointnumber: '测点编号', |
| | | mediumtype: '介质', |
| | | size: '尺寸(m)', |
| | | operatingtype: '控制方式', |
| | | telephone: '联系电话', |
| | | resperson: '负责人', |
| | | startdate: '投用日期', |
| | | operationalstatus: '运行状态' |
| | | } |
| | | } |
| | |
| | | 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: '' |
New file |
| | |
| | | <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> |
New file |
| | |
| | | <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> |