Merge remote-tracking branch 'origin/develop' into develop
1个文件已删除
8个文件已添加
26个文件已修改
2 文件已重命名
New file |
| | |
| | | [ |
| | | { |
| | | "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 |
| | | } |
| | | ] |
| | |
| | | -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> |
| | |
| | | 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' |
| | |
| | | }, |
| | | // 废气点加载 |
| | | 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) { |
| | |
| | | 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' }) |
| | | }, |
| | | // 废水人工数据 |
| | |
| | | /** |
| | | * 该文件配置接口的URL地址 |
| | | */ |
| | | import { $HOST, $HOSTANALYSE } from './host' |
| | | import { $HOST, $HOSTII, $HOSTANALYSE } from './host' |
| | | |
| | | export const GetUser = $HOST + '/user/getUser' |
| | | |
| | |
| | | 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' // 实时数据 |
| | | |
| | | // 公司 |
New file |
| | |
| | | /** |
| | | * 污染源 |
| | | */ |
| | | // 信息组件 |
| | | 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 |
| | | } |
| | | } |
| | |
| | | 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 |
| | |
| | | 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: '', |
| | |
| | | dataFlag: '', |
| | | runStatus: '', |
| | | emissTypeId: '' |
| | | }) |
| | | } |
| | | const res = await mapApi.getWasteWater(param) |
| | | const data = res.Result.DataInfo || {} |
| | | for (let i = 0; i < data.length; i++) { |
| | | // 经纬度 位置 |
| | |
| | | totransferData: data[i], |
| | | icon: L.icon({ |
| | | iconUrl: iconUrl, |
| | | iconSize: [35, 35], |
| | | iconSize: [30, 30], |
| | | iconAnchor: [15, 15] |
| | | }) |
| | | }) |
| | |
| | | <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; |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | .public-bounced-content { |
| | | padding: 0.05rem; |
| | | display: flex; |
| | | |
| | | .public-bounced-content-left { |
| | | } |
| | |
| | | <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> |
| | |
| | | |
| | | 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; |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | <template> |
| | | <div class="echarts-box"> |
| | | <div id="wasteWaterDayChartBox" class="echarts-box"> |
| | | <div class="tab-scroll"> |
| | | <PublicDataStandard :dataStandard="dataStandard"></PublicDataStandard> |
| | | </div> |
| | |
| | | <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> |
| | |
| | | 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: { // 折线的颜色 |
| | |
| | | saveAsImage: {} |
| | | } |
| | | }, |
| | | grid: { // 网格 |
| | | top: '20%' |
| | | // left: '5%' |
| | | grid: { |
| | | // 与绝对定位相似,top,left,right,bottom 设定是根据上级盒子宽高来计算 |
| | | top: '20%', |
| | | left: '6%', |
| | | right: '6%', |
| | | bottom: '12%' |
| | | }, |
| | | legend: { |
| | | data: legend |
| | |
| | | } |
| | | 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> |
| | |
| | | <template> |
| | | <div class="echarts-box"> |
| | | <div id="wasteWaterHoursChartBox" class="echarts-box"> |
| | | <div class="tab-scroll"> |
| | | <PublicDataStandard :dataStandard="dataStandard"></PublicDataStandard> |
| | | </div> |
| | |
| | | <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> |
| | |
| | | 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) |
| | | } |
| | | }, |
| | |
| | | saveAsImage: {} |
| | | } |
| | | }, |
| | | grid: { // 网格 |
| | | top: '20%' |
| | | // left: '15%' |
| | | }, |
| | | legend: { |
| | | data: legend |
| | | }, |
| | | grid: { |
| | | // 与绝对定位相似,top,left,right,bottom 设定是根据上级盒子宽高来计算 |
| | | top: '20%', |
| | | left: '6%', |
| | | right: '6%', |
| | | bottom: '12%' |
| | | }, |
| | | dataZoom: [{ |
| | | type: 'inside', |
| | |
| | | } |
| | | 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> |
| | |
| | | <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> |
| | | |
| | |
| | | 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; |
| | | } |
| | |
| | | <template> |
| | | <div class="echarts-box"> |
| | | <div id="wasteWaterRealChartBox" class="echarts-box"> |
| | | <div class="tab-scroll"> |
| | | <PublicDataStandard :dataStandard="dataStandard"></PublicDataStandard> |
| | | </div> |
| | |
| | | <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> |
| | |
| | | } |
| | | }, |
| | | grid: { |
| | | top: '20%' |
| | | // 与绝对定位相似,top,left,right,bottom 设定是根据上级盒子宽高来计算 |
| | | top: '20%', |
| | | left: '6%', |
| | | right: '6%', |
| | | bottom: '12%' |
| | | }, |
| | | legend: { |
| | | data: this.legendList |
| | |
| | | } |
| | | </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> |
| | |
| | | </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 |
| | |
| | | <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> |
| | | <div class="place-bottom" style="text-align: right;margin: 5px"> |
| | | <el-button type="primary" @click="confirm">确认</el-button> |
| | | </div> |
| | | </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 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 { |
| | |
| | | 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) |
| | | // 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: [30, 30], |
| | | iconAnchor: [15, 15] |
| | | iconSize: [26, 40], |
| | | iconAnchor: [13, 20] |
| | | }) |
| | | }) |
| | | window.map.addLayer(this.marker) |
| | | this.LongLatPos.latPos = '' |
| | | this.LongLatPos.longPos = '' |
| | | 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 = '' |
| | | } |
| | | } |
| | | } |
| | |
| | | <template> |
| | | <div class="click-location"> |
| | | <el-row> |
| | | <el-input type="text" v-model="clickLocation" clearable @change="focusLocation"></el-input> |
| | | <!-- 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: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: 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: { |
| | |
| | | }, |
| | | 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) |
| | | } |
| | | } |
| | |
| | | /* 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 { |
| | |
| | | width: 80%; |
| | | margin: 15px auto; |
| | | } |
| | | } |
| | | |
| | | .el-button { |
| | | 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-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> |
| | |
| | | </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.code |
| | | this.form.affiliatedFacilities = val.properties.name |
| | | this.form.affiliatedFacilitiesCode = val.properties.type |
| | | }, |
| | | // 定位功能 |
| | | 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 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' |
| | |
| | | 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, |
| | |
| | | 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 |
| | | break |
| | | case '废水': |
| | | this.gcComp = WaterWasteSearch |
| | | this.gcComp = WasteWaterSearch |
| | | break |
| | | case '废气': |
| | | this.gcComp = GasWasteSearch |
| | | this.gcComp = WasteGasSearch |
| | | break |
| | | case '固废': |
| | | this.gcComp = SolidWasteSearch |
| | |
| | | } |
| | | }, |
| | | 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> |
File was renamed from src/components/panel/topicSearch/GasWasteSearch.vue |
| | |
| | | <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" |
| | |
| | | :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 |
| | |
| | | </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" |
| | |
| | | </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"> |
| | |
| | | </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"> |
| | |
| | | <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> |
| | | |
| | |
| | | import { pulseEffect, setPanTo } from '../../../utils/utils' |
| | | |
| | | export default { |
| | | name: 'GasWasteSearch', |
| | | name: 'WasteGasSearch', |
| | | props: ['title'], |
| | | data () { |
| | | return { |
| | |
| | | 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: '正常', value: '2' }, |
| | | { name: '超标', value: '3' }, |
| | | { name: '异常', value: '4' }, |
| | | { name: '停产', value: '5' } |
| | | { name: '预警', value: '4' }, |
| | | { name: '异常', value: '5' }, |
| | | { name: '缺失', value: '6' }, |
| | | { name: '停运', value: '7' } |
| | | ] |
| | | } |
| | | }, |
| | |
| | | this.handleSearch() |
| | | }, |
| | | // 区域筛选 |
| | | areaType (val) { |
| | | /* areaType (val) { |
| | | this.pipelineTypeOptions.forEach((itm) => { |
| | | if (val === itm.value) { |
| | | |
| | | } |
| | | }) |
| | | }, |
| | | }, */ |
| | | // 企业筛选 |
| | | enterpriseType (val) { |
| | | this.dataTypeOptions.forEach((itm) => { |
| | |
| | | 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) { |
File was renamed from src/components/panel/topicSearch/WaterWasteSearch.vue |
| | |
| | | <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 |
| | |
| | | :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> |
| | | </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 |
| | |
| | | </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"> |
| | |
| | | <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> |
| | | |
| | |
| | | import { pulseEffect, setPanTo } from '../../../utils/utils' |
| | | |
| | | export default { |
| | | name: 'WaterWasteSearch', |
| | | name: 'WasteWaterSearch', |
| | | props: ['title'], |
| | | data () { |
| | | return { |
| | |
| | | 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: '正常', |
| | | value: '2' |
| | | }, |
| | | { |
| | | name: '超标', |
| | | value: '3' |
| | | }, |
| | | { |
| | | name: '异常', |
| | | value: '4' |
| | | }, |
| | | { |
| | | name: '停产', |
| | | value: '5' |
| | | } |
| | | { name: '全部', value: '1' }, |
| | | { name: '正常', value: '2' }, |
| | | { name: '超标', value: '3' }, |
| | | { name: '预警', value: '4' }, |
| | | { name: '异常', value: '5' }, |
| | | { name: '缺失', value: '6' }, |
| | | { name: '停运', value: '7' } |
| | | ] |
| | | } |
| | | }, |
| | |
| | | this.handleSearch() |
| | | }, |
| | | // 区域筛选 |
| | | areaType (val) { |
| | | /* areaType (val) { |
| | | this.pipelineTypeOptions.forEach((itm) => { |
| | | if (val === itm.value) { |
| | | |
| | | } |
| | | }) |
| | | }, |
| | | }, */ |
| | | // 企业筛选 |
| | | enterpriseType (val) { |
| | | this.dataTypeOptions.forEach((itm) => { |
| | |
| | | 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) { |
| | |
| | | <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: { |
| | |
| | | } |
| | | |
| | | 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', // 一级风险源 |
| | |
| | | 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: '' |
| | |
| | | name: '重大风险', |
| | | sname: '重大风险', |
| | | checked: false, // 默认选中状态 |
| | | minZoom: 10, |
| | | // minZoom: 10, |
| | | color: 'red', |
| | | level: 0 |
| | | }, |
| | |
| | | sname: '一级风险', |
| | | checked: false, // 默认选中状态 |
| | | type: 0, |
| | | minZoom: 10, |
| | | // minZoom: 10, |
| | | color: 'sandybrown', |
| | | level: 1 |
| | | }, |
| | |
| | | sname: '二级风险', |
| | | checked: false, |
| | | type: 0, |
| | | minZoom: 10, |
| | | // minZoom: 10, |
| | | color: 'yellow', |
| | | level: 2 |
| | | }, |
| | |
| | | sname: '三级风险', |
| | | checked: false, |
| | | type: 0, |
| | | minZoom: 10, |
| | | // minZoom: 10, |
| | | color: 'green', |
| | | level: 3 |
| | | } |
| | |
| | | * 脉冲效果 |
| | | */ |
| | | export function pulseEffect (xy) { |
| | | let times = 5 |
| | | let times = 1000 |
| | | const colors = ['#00f100', '#ff0000'] |
| | | // 插件 效果实现 |
| | | var pulsingIcon = window.L.icon.pulse({ |
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> |