派生自 wuyushui/SewerAndRainNetwork

yangdelong
2021-05-28 3054bbce49457c82df9ad32523f3a0186e268d6f
Merge remote-tracking branch 'origin/develop' into develop

# Conflicts:
# src/components/base-page/enterprise-emergency/event-handling/DisposalProposed.vue
# src/components/base-page/enterprise-emergency/event-handling/EventHandling.vue
# src/components/panel/topicSearch/enterprise-emergency/EventQuery.vue
3个文件已删除
22个文件已添加
24个文件已修改
1 文件已重命名
3351 ■■■■■ 已修改文件
public/assets/corporateEmergency.json 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/assets/environmentRisk.json 补丁 | 查看 | 原始文档 | blame | 历史
public/assets/environmentRiskPoint.json 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/assets/images/map/environmentRisk/risk_green.png 补丁 | 查看 | 原始文档 | blame | 历史
public/assets/images/map/environmentRisk/risk_red.png 补丁 | 查看 | 原始文档 | blame | 历史
public/assets/images/map/environmentRisk/risk_sandybrown.png 补丁 | 查看 | 原始文档 | blame | 历史
public/assets/images/map/environmentRisk/risk_yellow.png 补丁 | 查看 | 原始文档 | blame | 历史
public/assets/indexStatistics.json 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/assets/pipeline.json 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/assets/pollutionSource.json 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/assets/soilGroundwater.json 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/assets/warn.json 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/assets/wasteGas.json 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/assets/wasteWater.json 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/mapApi.js 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/mapUrl.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/request.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/LayerController/logic/EnvironmentRisk.js 68 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/LayerController/logic/RiskSource.js 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/LayerController/logic/WasteWater.js 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/LayerController/modules/LcServiceLayer.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/LayerController/service/LayerFactory.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/base-page/WasteWater/Detail.vue 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/base-page/WasteWater/WasteWaterDayChart.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/base-page/WasteWater/WasteWaterHoursChart.vue 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/base-page/enterprise-emergency/EventsReported.vue 467 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/base-page/enterprise-emergency/ReportFile.vue 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/base-page/enterprise-emergency/ReportLocation.vue 365 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/base-page/enterprise-emergency/events-reported/EventsReported.vue 471 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/base-page/enterprise-emergency/events-reported/ReportLocation.vue 146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/base-page/enterprise-emergency/events-reported/ReportLocationSearch.vue 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/base-page/enterprise-emergency/events-reported/ReportLocationSection.vue 483 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/message/index.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/panel/topicSearch/SewersSearch.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/panel/topicSearch/enterprise-emergency/EventQuery.vue 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/table/components/CorporateEmergency.vue 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/table/components/EnvironmentalRisk.vue 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/table/components/IndexStatistics.vue 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/table/components/Pipeline.vue 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/table/components/PollutionSource.vue 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/table/components/SoilGroundwater.vue 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/table/components/Warn.vue 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/table/components/WasteGas.vue 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/table/components/WasteWater.vue 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/table/components/tabHandover.vue 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/conf/Constants.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/conf/Topic.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/conf/layers/LayerEnvRisk.js 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/axios.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/MapTemplate.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/assets/corporateEmergency.json
New file
@@ -0,0 +1,53 @@
[
  {
    "UserName": "集团名称",
    "WasteWaters": "",
    "AddOutPut": "",
    "MonthOutPut": "",
    "NH4NPut": "",
    "NH4NMonth": "",
    "normal": "",
    "overProof": "",
    "Abnormal": "",
    "StopProduction": "",
    "deficiency": ""
  },
  {
    "UserName": "天津石化",
    "WasteWaters": "116.6",
    "AddOutPut": "58",
    "MonthOutPut": "13",
    "NH4NPut": "58",
    "NH4NMonth": "13",
    "normal": "21",
    "overProof": "2",
    "Abnormal": "2",
    "StopProduction": "2",
    "deficiency": "2"
  },
  {
    "UserName": "xxxx炼化3",
    "WasteWaters": "116",
    "MonthOutPut": "13",
    "NH4NPut": "58",
    "NH4NMonth": "13",
    "normal": "21",
    "overProof": "2",
    "Abnormal": "2",
    "StopProduction": "2",
    "deficiency": "2"
  },
  {
    "UserName": "xxxx4",
    "WasteWaters": "116",
    "AddOutPut": "58",
    "MonthOutPut": "13",
    "NH4NPut": "58",
    "NH4NMonth": "13",
    "normal": "21",
    "overProof": "2",
    "Abnormal": "2",
    "StopProduction": "2",
    "deficiency": "2"
  }
]
public/assets/environmentRisk.json
public/assets/environmentRiskPoint.json
New file
@@ -0,0 +1,91 @@
[
  [
    {
      "no": 1,
      "company": "扬子石化",
      "plate": "炼油板块",
      "unitname": "芳烃厂、炼油厂",
      "riskname": "硫回收装置大量酸性气紧急排放环境风险",
      "depiction": "R/Q描述:115.48。\nM值描述:30分。1. 氧化工艺, 10;2.1# 硫回收装置雨水系统防控措施不完善, 10 分;3. 硫回收装置毒性气体处置装备不完善, 10 分。 E界定因素: E1。 环境风险源周边5km范围内居住区、 医疗卫生机构、 文化教育机构、 科研单位、 行政机关、 企事业单位、 商场、 公园等人口总数5万人以上; 或0 .5 km范围内社会人口总数大于1000人。 ",
      "after": "R4(115.48)M1(10)E1",
      "Longitude": 118.7936111111,
      "Latitude": 32.2583305556,
      "iconType": 1
    },
    {
      "no": 2,
      "company": "扬子石化",
      "plate": "化工板块",
      "unitname": "水厂",
      "riskname": "净一污水处理装置超标排放风险",
      "depiction": "1.环境风险物质数量与临界量比值评估\n环境风险物质为:COD大于10000mg/L的废液,总量250t,临界值10t,R=25,计为R3。 2. 环境风险控制水平M评估( 1) 设备质量管理评估: 存在设备超期使用或降等级使用, M值计10;( 2) 环境风险监测预警措施评估: 环境监测因子不完善, M值计5;( 3) 环境风险防控措施有效性评估: 环境风险源具备有效的手动紧急关断措施, M值计3; 事故水储存能力不够, M值计10; 汇总M = 28, 15≤ M < 30, 环境风险控制水平为M2类。  3. 环境风险受体敏感性E评估  1# 排口处于长江水体, 下游10km范围内有饮用水水源保护区特殊生态系统等多类环境风险受体, 受体风险类型E1。 ",
      "after": "R3(25)M1(10)E1",
      "Longitude": 118.8174111111,
      "Latitude": 32.2429611111,
      "iconType": 1
    }
  ],[
      {
        "no": 1,
        "company": "长岭炼化",
        "plate": "化工板块",
        "unitname": "化工部",
        "riskname": "环氧丙烷联合装置",
        "depiction": "R描述:90.4585 M值描述:25   1、涉及易燃易爆物质 10   2、一般生产安全事故隐患未完成整改(环氧丙烷(甲B类液体)的装车未采用液下装卸车鹤管已在设计;甲醇加氢反应器无安全设施项目正在设计;双氧水装置萃取塔紧急排放不当项目已在设计;环氧丙烷反应器紧急排放风险已制定预案。) 10    3、所在厂区清净雨水通过自流方式排出厂界 5     E界定因素:排水进入受纳河流最大流速时,24小时流经范围内涉跨国界或省界的E1",
        "after": "R3(90)M2(25)E1",
        "Longitude": 113.36571,
        "Latitude": 29.54677,
        "iconType": 2
      },
      {
        "no": 2,
        "company": "长岭炼化",
        "plate": "化工板块",
        "unitname": "港口部",
        "riskname": "码头(0708#油品)",
        "depiction": "R/Q描述:Q值:29.18 M值描述:M值:30 1、未按规定或政府要求设置环境风险物质泄漏监测预警措施,5; 2紧急切断阀为手动操作方式,5; 3、作业区污水收集措施不完善,10; 4、驳位至陆地管道悬空,引桥防泄漏措施不完善,10。 E界定因素:码头位于长江沿岸,24小时流经范围跨省(至湖北)",
        "after": "Q3(29)M3(30)E1",
        "Longitude": 113.2917,
        "Latitude": 29.60036,
        "iconType": 2
      }
  ],[
      {
        "no": 1,
        "company": "长岭炼化",
        "plate": "化工板块",
        "unitname": "港口部",
        "riskname": "码头(0506#油品)",
        "depiction": "R/Q描述:Q值:19.71 M值描述:M值:30 1、未按规定或政府要求设置环境风险物质泄漏监测预警措施,5; 2紧急切断阀为手动操作方式,5; 3、作业区污水收集措施不完善,10; 4、驳位至陆地管道悬空,引桥防泄漏措施不完善,10。 E界定因素:码头位于长江沿岸,24小时流经范围跨省(至湖北)",
        "after": "Q3(19)M3(30)E1",
        "Longitude": 113.27935,
        "Latitude": 29.59832,
        "iconType": 3
      },
      {
        "no": 2,
        "company": "长岭炼化",
        "plate": "化工板块",
        "unitname": "港口部",
        "riskname": "码头(0506#化学品)",
        "depiction": "R/Q描述:2.108。M值描述:30分。1.未按规定或政府要求设置环境风险物质泄漏监测预警措施,5分;2.紧急切断阀为手动操作方式,5分;3.作业区污水收集措施不完善,10分;4.驳位至陆地管道悬空,引桥防泄漏措施不完善,10分。E界定因素:码头位于长江沿岸,24小时流经范围跨省(至湖北)。",
        "after": "R3(2.1)M3(30)E2",
        "Longitude": 113.28155,
        "Latitude": 29.59842,
        "iconType": 3
      }
  ],[
      {
        "no": 1,
        "company": "中韩石化",
        "plate": "炼油板块",
        "unitname": "炼油二部",
        "riskname": "1#催化裂化装置",
        "depiction": "R值:1#催化承担中石化武汉分公司重质油加工任务,评级为R3。M值:装置涉及危险工艺,裂解(裂化)工艺,高温,工艺温度≥300℃,10分;雨水排放口非提升排放,5分:评为M2。E值:环境受体为长江,下游10km阳逻电厂取水口;判为E1。",
        "after": "R3M2E1",
        "Longitude": 114.44016,
        "Latitude": 30.65305,
        "iconType": 4
      }
  ]
]
public/assets/images/map/environmentRisk/risk_green.png
public/assets/images/map/environmentRisk/risk_red.png
public/assets/images/map/environmentRisk/risk_sandybrown.png
public/assets/images/map/environmentRisk/risk_yellow.png
public/assets/indexStatistics.json
New file
@@ -0,0 +1,26 @@
[
  {
    "date": "集团公司",
    "name": "35",
    "province": "23",
    "city": "11",
    "address": 235,
    "zip": 23
  },
  {
    "date": "天津石化",
    "name": 32,
    "province": 33,
    "city": 44,
    "address": 53,
    "zip": 200333
  },
  {
    "date": "济南炼化",
    "name": 35,
    "province": 13,
    "city": 33,
    "address": 44,
    "zip": 200333
  }
]
public/assets/pipeline.json
New file
@@ -0,0 +1,34 @@
[
  {
    "date": "集团公司",
    "name": 1,
    "province": 1,
    "city": 0,
    "address": 1,
    "zip": 0
  },
  {
    "date": "天津石化",
    "name": 1,
    "province": 0,
    "city": 1,
    "address": 1,
    "zip": 2
  },
  {
    "date": "XXX炼化",
    "name": 1,
    "province": 2,
    "city": 0,
    "address": 0,
    "zip": 1
  },
  {
    "date": "XXX炼化2",
    "name": 1,
    "province": 2,
    "city": 0,
    "address": 0,
    "zip": 1
  }
]
public/assets/pollutionSource.json
New file
@@ -0,0 +1,22 @@
[
  {
    "UserName": "集团公司",
    "ProductionFacilities": 45,
    "GovernanceFacilities": 32
  },
  {
    "UserName": "北京石油",
    "ProductionFacilities": 22,
    "GovernanceFacilities": 14
  },
  {
    "UserName": "天津石化",
    "ProductionFacilities": 3,
    "GovernanceFacilities": 12
  },
  {
    "UserName": "贵州石油",
    "ProductionFacilities": 10,
    "GovernanceFacilities": 6
  }
]
public/assets/soilGroundwater.json
New file
@@ -0,0 +1,53 @@
[
  {
    UserName: '集团名称',
    WasteWaters: '',
    AddOutPut: '',
    MonthOutPut: '',
    NH4NPut: '',
    NH4NMonth: '',
    normal: '',
    overProof: '',
    Abnormal: '',
    StopProduction: '',
    deficiency: ''
  },
  {
    UserName: '天津石化',
    WasteWaters: '116.6',
    AddOutPut: '58.3',
    MonthOutPut: '13.1',
    NH4NPut: '58.3',
    NH4NMonth: '13.1',
    normal: '21',
    overProof: '2',
    Abnormal: '2',
    StopProduction: '2',
    deficiency: '2'
  },
  {
    UserName: 'xxxx炼化3',
    WasteWaters: '116.6',
    MonthOutPut: '13.1',
    NH4NPut: '58.3',
    NH4NMonth: '13.1',
    normal: '21',
    overProof: '2',
    Abnormal: '2',
    StopProduction: '2',
    deficiency: '2'
  },
  {
    UserName: 'xxxx4',
    WasteWaters: '116.6',
    AddOutPut: '58.3',
    MonthOutPut: '13.1',
    NH4NPut: '58.3',
    NH4NMonth: '13.1',
    normal: '21',
    overProof: '2',
    Abnormal: '2',
    StopProduction: '2',
    deficiency: '2'
  }
]
public/assets/warn.json
New file
@@ -0,0 +1,34 @@
[
  {
    "date": "集团公司",
    "name": 1,
    "province": 1,
    "city": 0,
    "address": 1,
    "zip": 0
  },
  {
    "date": "天津石化",
    "name": 1,
    "province": 0,
    "city": 1,
    "address": 1,
    "zip": 2
  },
  {
    "date": "XXX炼化",
    "name": 1,
    "province": 2,
    "city": 0,
    "address": 0,
    "zip": 1
  },
  {
    "date": "XXX炼化2",
    "name": 1,
    "province": 2,
    "city": 0,
    "address": 0,
    "zip": 1
  }
]
public/assets/wasteGas.json
New file
@@ -0,0 +1,53 @@
[
  {
    "UserName": "集团名称",
    "WasteWaters": "",
    "AddOutPut": "",
    "MonthOutPut": "",
    "NH4NPut": "",
    "NH4NMonth": "",
    "normal": "",
    "overProof": "",
    "Abnormal": "",
    "StopProduction": "",
    "deficiency": ""
  },
  {
    "UserName": "天津石化",
    "WasteWaters": "116.6",
    "AddOutPut": "58.3",
    "MonthOutPut": "13.1",
    "NH4NPut": "58.3",
    "NH4NMonth": "13.1",
    "normal": "21",
    "overProof": "2",
    "Abnormal": "2",
    "StopProduction": "2",
    "deficiency": "2"
  },
  {
    "UserName": "xxxx炼化3",
    "WasteWaters": "116.6",
    "MonthOutPut": "13.1",
    "NH4NPut": "58.3",
    "NH4NMonth": "13.1",
    "normal": "21",
    "overProof": "2",
    "Abnormal": "2",
    "StopProduction": "2",
    "deficiency": "2"
  },
  {
    "UserName": "xxxx4",
    "WasteWaters": "116.6",
    "AddOutPut": "58.3",
    "MonthOutPut": "13.1",
    "NH4NPut": "58.3",
    "NH4NMonth": "13.1",
    "normal": "21",
    "overProof": "2",
    "Abnormal": "2",
    "StopProduction": "2",
    "deficiency": "2"
  }
]
public/assets/wasteWater.json
New file
@@ -0,0 +1,53 @@
[
  {
    "UserName": "集团名称",
    "WasteWaters": "",
    "AddOutPut": "",
    "MonthOutPut": "",
    "NH4NPut": "",
    "NH4NMonth": "",
    "normal": "",
    "overProof": "",
    "Abnormal": "",
    "StopProduction": "",
    "deficiency": ""
  },
  {
    "UserName": "天津石化",
    "WasteWaters": "116.6",
    "AddOutPut": "58.3",
    "MonthOutPut": "13.1",
    "NH4NPut": "58.3",
    "NH4NMonth": "13.1",
    "normal": "21",
    "overProof": "2",
    "Abnormal": "2",
    "StopProduction": "2",
    "deficiency": "2"
  },
  {
    "UserName": "xxxx炼化3",
    "WasteWaters": "116.6",
    "MonthOutPut": "13.1",
    "NH4NPut": "58.3",
    "NH4NMonth": "13.1",
    "normal": "21",
    "overProof": "2",
    "Abnormal": "2",
    "StopProduction": "2",
    "deficiency": "2"
  },
  {
    "UserName": "xxxx4",
    "WasteWaters": "116.6",
    "AddOutPut": "58.3",
    "MonthOutPut": "13.1",
    "NH4NPut": "58.3",
    "NH4NMonth": "13.1",
    "normal": "21",
    "overProof": "2",
    "Abnormal": "2",
    "StopProduction": "2",
    "deficiency": "2"
  }
]
src/api/mapApi.js
@@ -4,6 +4,7 @@
// 测试环境IP:http://10.238.221.113
import axios from '@utils/axios'
import * as mapUrl from './mapUrl'
import qs from 'qs' // 解析参数
/**
 * 该方法配置
@@ -46,19 +47,19 @@
  },
  // 废水点
  getWasteWater (data) {
    return axios.get(mapUrl.getWasteWater, data)
    return axios.post(mapUrl.getWasteWater, qs.stringify(data), { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' })
  },
  // 废水点明细表
  getWasteWaterMonitoringDetails (data) {
    return axios.get(mapUrl.getWasteWaterMonitoringDetails, data)
  },
  // 废水日数据和小时数据及明细表
  getQueryOnlineMonData (data) {
    return axios.get(mapUrl.getQueryOnlineMonData, data)
  getQueryOnlineMonData (data, setHeaders) {
    return axios.post(mapUrl.getQueryOnlineMonData, qs.stringify(data), { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' })
  },
  // 废水人工数据
  getQueryLabMonData (data) {
    return axios.get(mapUrl.getQueryLabMonData, data)
    return axios.post(mapUrl.getQueryLabMonData, qs.stringify(data), { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' })
  },
  // 废水实时数据
  getDataItems (data) {
@@ -89,7 +90,37 @@
  getSourcesPoll (data) {
    return axios.get(mapUrl.getSourcesPoll, data)
  },
  getRiskEnterprise (data) {
    return axios.get('/assets/riskEnterprise.json', data)
  getEnvironmentRisk (data) {
    return axios.get('/assets/environmentRisk.json', data)
  },
  getEnvironmentRiskPoint (data) {
    return axios.get('/assets/environmentRiskPoint.json', data)
  },
  getPollutionSourceStatistics (data) {
    return axios.get('/assets/pollutionSource.json', data)
  },
  getWasteWaterStatistics (data) {
    return axios.get('/assets/wasteWater.json', data)
  },
  getWasteGasStatistics (data) {
    return axios.get('/assets/wasteGas.json', data)
  },
  getSolidWasteStatistics (data) {
    return axios.get('/assets/wasteGas.json', data)
  },
  getEnvironmentalRiskStatistics (data) {
    return axios.get('/assets/pollutionSource.json', data)
  },
  getIndexStatistics (data) {
    return axios.get('/assets/indexStatistics.json', data)
  },
  getwarnStatistics (data) {
    return axios.get('/assets/warn.json', data)
  },
  getPipelineStatistics (data) {
    return axios.get('/assets/pipeline.json', data)
  },
  getCorporateEmergencyStatistics (data) {
    return axios.get('/assets/corporateEmergency.json', data)
  }
}
src/api/mapUrl.js
@@ -19,11 +19,11 @@
export const getWasteGasManualData = $HOST + '/wasteGas/QueryLabMonData'
// 废水
export const getWasteWater = $HOST + '/wasteWater/getWasteWater' // 废水点信息
export const getWasteWater = 'http://10.246.162.140:8080/EPInterface/DataService/EPMapService.asmx/ObtainningConInfo' // 废水点信息
export const getWasteWaterMonitoring = $HOST + '/wasteWater/getWasteWaterMonitoring' // 废水监测数据
export const getWasteWaterMonitoringDetails = $HOST + '/wasteWater/getWasteWaterMonitoringDetails' // 废水监测数据明细表
export const getQueryOnlineMonData = $HOST + '/wasteWater/QueryOnlineMonData' // 废水日数据小时数据及明细表数据
export const getQueryLabMonData = $HOST + '/wasteWater/QueryLabMonData' // 人工数据
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 getDataItems = $HOST + '/wasteWater/RTDB/DataItems' // 实时数据
// 公司
src/api/request.js
@@ -23,3 +23,6 @@
    }
  })
}
export function reportLocationSearch (data = {}) {
  return $http.get('http://10.246.133.164//api/search?', data)
}
src/components/LayerController/logic/EnvironmentRisk.js
@@ -1,8 +1,6 @@
/**
 * 环境风险
 * 环境风险统计图
 */
// const EnvironmentRiskIndex = require('@components/base-page/').default
// 请求接口数据
const mapApi = require('../../../api/mapApi').default
// 使用封装方法
@@ -11,75 +9,80 @@
const echarts = require('echarts/lib/echarts')
module.exports = function () {
  let animalService = null
  // 环形统计图数组
  let riskLayerGroup = null
  /**
   * 返回marker对象数组
   * 初始化图层数组
   * @param L leaflet对象
   */
  this.init = async (layer, L) => {
    this.animalService = new AnimalService({
    animalService = new AnimalService({
      L: L,
      layer: layer
    })
    const result = await mapApi.getRiskEnterprise()
  }
  /**
   * 加载图层
   * @returns {Promise<void>}
   */
  this.start = async () => {
    if (riskLayerGroup) { // 图层全选时,清理图层数组并重新加载
      riskLayerGroup.remove()
      riskLayerGroup = null
    }
    riskLayerGroup = animalService.L.featureGroup().addTo(animalService.layer)
    const result = await mapApi.getEnvironmentRisk()
    const features = result.features
    for (var i = 0; i < features.length; i++) {
    for (let i = 0; i < features.length; i++) {
      const feature = features[i]
      const geometry = feature.geometry
      const properties = feature.properties
      const qyId = properties.QY_ID
      // const qyJc = properties.QY_JC
      const distract = properties.DISTRACT
      const coordinates = geometry.coordinates
      if (distract !== '长江沿线') {
        continue
      }
      const bgMarker = L.marker([coordinates[1], coordinates[0]], {
        icon: L.divIcon({
      animalService.L.marker([coordinates[1], coordinates[0]], {
        icon: animalService.L.divIcon({
          className: '',
          iconAnchor: [15, 45],
          iconSize: [40, 40],
          html: '<div style="width: 40px; height: 40px; background-color: rgba(255,255,255,1); position: relative; border-radius: 50%;"></div>'
        })
      })
      layer.addLayer(bgMarker)
      const chartMarker = L.marker([coordinates[1], coordinates[0]], {
        icon: L.divIcon({
      }).addTo(riskLayerGroup)
      animalService.L.marker([coordinates[1], coordinates[0]], {
        icon: animalService.L.divIcon({
          className: '',
          iconAnchor: [30, 60],
          iconSize: [70, 70],
          html: '<div id="qy_id_' + qyId + '" style="width: 70px; height: 70px; background-color: transparent; position: relative; border-radius: 50%;"></div>'
        })
      })
      layer.addLayer(chartMarker)
      }).addTo(riskLayerGroup)
      chartRender(properties)
    }
  }
  /**
   * tips
   * @param layer
   * @returns {string}
   * 清除图层
   */
  this.bindTooltip = (layer) => {
  this.destory = () => {
    if (riskLayerGroup) {
      riskLayerGroup.remove()
      riskLayerGroup = null
    }
  }
  /**
   * 点击弹窗
   * @param e
   */
  this.clickListener = (e) => {
  }
  /**
   * 环形饼图
   * Echarts环形饼图
   * @param properties
   */
  function chartRender (properties) {
    const qyId = properties.QY_ID
    const qyjc = properties.QY_JC
    // const qyQc = properties.QY_QC
    const num = properties.QY_NUM
    const oneLevel = properties.QY_ONELEVEL
    const twoLevel = properties.QY_TWOLEVEL
@@ -140,8 +143,5 @@
      }]
    }
    o.setOption(option)
    /* o.on('click', function (params) {
        map.flyTo(L.latLng([params.data.y, params.data.x]), 15)
    }) */
  }
}
src/components/LayerController/logic/RiskSource.js
New file
@@ -0,0 +1,98 @@
/**
 * 环境风险源
 */
// 信息组件
const RiskSourceIndex = require('../../../components/base-page/WasteSolid/WasteSolidIndex.vue').default
const riskRed = '/assets/images/map/environmentRisk/risk_red.png'
const riskSandybrown = '/assets/images/map/environmentRisk/risk_sandybrown.png'
const riskYellow = '/assets/images/map/environmentRisk/risk_yellow.png'
const riskGreen = '/assets/images/map/environmentRisk/risk_green.png'
// 公共方法 panTo() 引用
const { setPanTo } = require('../../../utils/utils')
// 请求接口数据
const mapApi = require('../../../api/mapApi').default
// 使用封装方法
const AnimalService = require('../service/AnimalService').default
module.exports = function () {
  /**
   * 初始化并加载图层
   * @param L leaflet对象
   */
  this.init = async (layer, L, config) => {
    this.animalService = new AnimalService({
      L: L,
      layer: layer
    })
    const result = await mapApi.getEnvironmentRiskPoint() // 数据
    const data = result[config.level] // 此处级别对应data数组下标,作为参数取数标识
    for (let i = 0; i < data.length; i++) {
      const postion = [data[i].Latitude, data[i].Longitude] // 坐标
      const iconUrl = this.riskIconUrl(data[i].iconType) // 风险源图标
      const marker = L.marker(postion, {
        totransferData: data[i],
        icon: L.icon({
          iconUrl: iconUrl,
          iconSize: [20, 20],
          iconAnchor: [10, 10]
        })
      })
      layer.addLayer(marker)
    }
  }
  /**
   * 提示窗
   * @param layer
   * @returns {string}
   */
  this.bindTooltip = (layer) => {
    return layer.options.totransferData.riskname
  }
  /**
   * 信息弹窗
   * @param e
   */
  this.clickListener = (e) => {
    // 点击marker的pulse()光波
    this.animalService.pulseEffect(e.latlng)
    /* flyTo()弹出框平移事件 */
    setPanTo(e.latlng, 200)
    // 弹框标题
    const title = e.layer.options.totransferData.Name
    window.$layer.open({
      content: {
        comp: RiskSourceIndex, // 组件
        parent: this, // 父组件
        data: { // 传递的参数
          storagePlaceId: e.layer.options.totransferData.StoragePlaceId
        }
      },
      title: title // 标题
    })
  }
  // 图标配置
  this.riskIconUrl = (t) => {
    let iconUrl = null
    switch (t) {
      case 1:
        iconUrl = riskRed
        break
      case 2:
        iconUrl = riskSandybrown
        break
      case 3:
        iconUrl = riskYellow
        break
      case 4:
        iconUrl = riskGreen
        break
      default:
        iconUrl = riskGreen
        break
    }
    return iconUrl
  }
}
src/components/LayerController/logic/WasteWater.js
@@ -27,7 +27,20 @@
      L: L,
      layer: layer
    })
    const res = await mapApi.getWasteWater()
    const res = await mapApi.getWasteWater({
      companyId: 3900100145, // 企业名称
      id: '',
      monType: 1, // 值为1查询废水
      userCode: 'wenchun.deng', // 角色名称
      monDuration: '',
      epName: '',
      secdDeptId: '',
      contrLevel: '',
      dataStatus: '',
      dataFlag: '',
      runStatus: '',
      emissTypeId: ''
    })
    const data = res.Result.DataInfo || {}
    for (let i = 0; i < data.length; i++) {
      // 经纬度 位置
src/components/LayerController/modules/LcServiceLayer.vue
@@ -106,7 +106,7 @@
            item1.type = 1 // 半选
          }
          if (item1.name === '企业应急') {
            console.log(item1)
            // console.log(item1)
            bus.$emit('changeSearchBar', item1)
          }
          // console.log(item1.layers.length, item1.istrue, item1.isfalse, item1.type)
src/components/LayerController/service/LayerFactory.js
@@ -132,7 +132,7 @@
        layer.addTo(this.map)
      }
    } else {
      logic && logic.init(this.addLayer(config), this.L)
      logic && logic.init(this.addLayer(config), this.L, config)
    }
    logic && logic.start && logic.start()
    this.wmsLayerService && this.wmsLayerService.add(config)
src/components/base-page/WasteWater/Detail.vue
@@ -62,8 +62,20 @@
  methods: {
    async initdetail () {
      const timeEnd = dayjs().format('YYYY-MM-DD HH:mm:ss')
      const timeStart = dayjs().subtract(3, 'minute').format('YYYY-MM-DD HH:mm:ss')
      var timeStart = null
      var oDate = new Date()
      var year = oDate.getFullYear()
      if ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0) { // 判断是平年还是闰年
        timeStart = dayjs().subtract(366, 'day').format('YYYY-MM-DD HH:mm:ss')
      } else {
        timeStart = dayjs().subtract(365, 'day').format('YYYY-MM-DD HH:mm:ss')
      }
      const data = {
        poltSourceId: '',
        poltMtrlId: '',
        companyCode: '',
        emissTypeId: '',
        monItemId: 28,
        companyId: 3900100145,
        labMonPointId: 219,
        beginTime: timeStart,
@@ -73,7 +85,6 @@
      // console.log(result)
      this.tableData = result
      for (let i = 0; i < result.length; i++) {
        console.log(result[i].LabMonValue)
        if (result[i].LabMonValue === '0') {
          return '-'
        }
src/components/base-page/WasteWater/WasteWaterDayChart.vue
@@ -100,6 +100,9 @@
    },
    async draw24Chart () {
      const data = {
        poltSourceId: '',
        poltMtrlId: '',
        emissTypeId: '',
        onLineMonEmissPointId: 23,
        monItemId: 28,
        beginTime: this.formData.timeStart,
src/components/base-page/WasteWater/WasteWaterHoursChart.vue
@@ -79,8 +79,8 @@
      formData: {
        region: '25',
        regionList: [25, 50, 75, 100],
        startTime: dayjs().subtract(16, 'hour').format('YYYY-MM-DD HH'),
        endTime: dayjs().format('YYYY-MM-DD HH')
        startTime: dayjs().subtract(24, 'hour').format('YYYY-MM-DD HH:mm:ss'),
        endTime: dayjs().format('YYYY-MM-DD HH:mm:ss')
      },
      chart: null,
      jcdID: 1,
@@ -101,6 +101,9 @@
    // 初始化数据请求
    async draw24Chart () {
      const data = {
        poltSourceId: '',
        poltMtrlId: '',
        emissTypeId: '',
        onLineMonEmissPointId: 23,
        monItemId: 28,
        beginTime: this.formData.startTime,
@@ -327,6 +330,7 @@
                      biaozhuiz = bzzList[i].bzhui
                    }
                  }
                  if (c.value) {
                  if (c.value[1] > biaozhuiz) {
                    return zdcbcolor
                  } else if (c.value[1] > biaozhuiz * 0.9) {
@@ -334,6 +338,7 @@
                  } else {
                    return '#33c95f'
                  }
                  }
                },
                lineStyle: { // 折线的颜色
                  color: ydatas[i].zxcolor,
src/components/base-page/enterprise-emergency/EventsReported.vue
File was deleted
src/components/base-page/enterprise-emergency/ReportFile.vue
File was deleted
src/components/base-page/enterprise-emergency/ReportLocation.vue
File was deleted
src/components/base-page/enterprise-emergency/events-reported/EventsReported.vue
New file
@@ -0,0 +1,471 @@
<template>
    <div class="event-report">
        <el-form :model="ruleForm" ref="ruleForm" label-width="90px" class="search-form">
            <!--            事件名称-->
            <el-form-item class="input-event-name" label="事件名称" prop="nameOfEvent">
                <el-input
                        v-model="ruleForm.nameOfEvent"
                        placeholder="将事件命名"
                ></el-input>
            </el-form-item>
            <!--            事件类型-->
            <el-form-item label="事件类型" prop="eventOfType">
                <el-radio-group v-model="ruleForm.eventOfType">
                    <el-col :span="8" v-for="(item,index) in ruleForm.eventOfTypeList" :key="index"
                            :style="{margin:'5px 0'}">
                        <el-radio :label="item.value">
                            <span>{{ item.name }}</span>
                        </el-radio>
                    </el-col>
                </el-radio-group>
            </el-form-item>
            <!--            事件等级-->
            <el-form-item label="事件分级" prop="eventOfLevel">
                <el-radio-group v-model="ruleForm.eventOfLevel">
                    <el-col :span="8" v-for="(item,index) in ruleForm.eventOfLevelList" :key="index"
                            :style="{margin:'5px 0'}">
                        <el-radio :label="item.value">
                            <span>{{ item.name }}</span>
                        </el-radio>
                    </el-col>
                </el-radio-group>
            </el-form-item>
            <el-row>
                <!--                事发单位-->
                <el-col :span="12">
                    <el-form-item label="事发单位" prop="unit">
                        <el-select v-model="ruleForm.unit" placeholder="单位,装置选择">
                            <el-option
                                    v-for="item in ruleForm.unitList"
                                    :key="item.value"
                                    :label="item.label"
                                    :value="item.value">
                            </el-option>
                        </el-select>
                    </el-form-item>
                </el-col>
                <!--                事发时间-->
                <el-col :span="12">
                    <el-form-item class="search-panel-item" label="事发时间" prop="atTime">
                        <el-date-picker
                                v-model="ruleForm.atTime"
                                type="datetime"
                                placeholder="年/月/日">
                        </el-date-picker>
                    </el-form-item>
                </el-col>
            </el-row>
            <el-row>
                <!--                事发位置-->
                <el-col :span="12">
                    <el-form-item label="事发位置" prop="positionOf">
                        <el-input v-model="ruleForm.positionOf" clearable>
                            <!--                            <el-button slot="suffix" type="text" class="el-icon-location-information"-->
                            <!--                                       @click="locationInfo"></el-button>-->
                            <el-button style="padding-right:10px;" slot="suffix" type="text"
                                       @click="locationInfo">
                                <img src="../../../../../public/assets/images/map/loc.png" alt="">
                            </el-button>
                        </el-input>
                    </el-form-item>
                </el-col>
                <!--                位置描述-->
                <el-col :span="12">
                    <el-form-item label="位置描述" prop="positionDescription">
                        <el-input v-model="ruleForm.positionDescription"></el-input>
                    </el-form-item>
                </el-col>
            </el-row>
            <el-row>
                <!--                管线名称-->
                <el-col :span="12">
                    <el-form-item label="管线名称" prop="lineName" class="search-panel-item">
                        <el-input disabled v-model="ruleForm.lineName" placeholder="自动带出不可修改"
                                  class="report-input"></el-input>
                    </el-form-item>
                </el-col>
                <!--                管线类型-->
                <el-col :span="12">
                    <el-form-item label="管线类型" prop="lineType">
                        <label>{{ ruleForm.lineTypeText }}</label>
                    </el-form-item>
                </el-col>
            </el-row>
            <!--             点击上传-->
            <el-form-item label="附件上传" prop="upload">
                <el-upload
                        class="upload-demo"
                        action="uploadAction"
                        multiple
                        :limit="3"
                        :file-list="fileList">
                    <el-button size="small" type="primary">点击上传</el-button>
                </el-upload>
            </el-form-item>
            <!--            消息推送-->
            <el-form-item label="消息推送" prop="beingPush">
                <el-checkbox-group v-model="ruleForm.beingPushed" @change="infoChange">
                    <el-checkbox v-for="item in ruleForm.beingPushList"
                                 :key="item.name"
                                 :label="item.name"
                    >
                    </el-checkbox>
                </el-checkbox-group>
            </el-form-item>
            <!--            // 描述 接收 展示、隐藏-->
            <div v-show="wayTo" class="way-to">
                <el-form-item label="事件描述" prop="desc">
                    <el-input type="textarea" resize="none" v-model="ruleForm.desc"
                              placeholder="带出事件类型,事件位置,事件单位,事件时间等字段自动生产一部分描述">
                    </el-input>
                    <el-button type="primary">一键<br/>生成</el-button>
                </el-form-item>
                <el-form-item label="接收人员" prop="receiveOne">
                    <el-input type="textarea" resize="none" v-model="ruleForm.receiveOne"
                              placeholder="张三;李四,"></el-input>
                    <el-button type="primary">+</el-button>
                </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-form-item>
        </el-form>
        <el-dialog
                custom-class="event-report-dialog"
                title="事发位置定位"
                :visible.sync="dialogLocation"
                :append-to-body="true"
                :modal="false"
                v-dialogDrag
        >
            <ReportLocation @locationClick="getlocaltionClick"></ReportLocation>
        </el-dialog>
    </div>
</template>
<!--        :rules="rules"-->
<!--        :show-close="false"-->
<script>
import ReportLocation from './ReportLocation'
import eventBus from '../../../../eventBus'
export default {
  name: 'EventsReported',
  components: {
    ReportLocation
  },
  data () {
    return {
      // 表单绑定数据
      ruleForm: {
        // 事件名称 绑定数据
        nameOfEvent: '',
        // 事件类型 绑定数据值
        eventOfType: '',
        // 事件类型可选择数据radio 绑定数据
        eventOfTypeList: [
          {
            name: '海(水)上溢油污染',
            value: 1
          },
          {
            name: '油气管道泄漏污染',
            value: 2
          },
          {
            name: '辐射污染',
            value: 3
          },
          {
            name: '生态环境破坏',
            value: 4
          },
          {
            name: '其他',
            value: 5
          }
        ],
        // 事件等级
        eventOfLevel: '',
        // 事件等级可选择数据radio 绑定数据
        eventOfLevelList: [
          {
            name: '特别重大环境事件',
            value: 1
          },
          {
            name: '重大环境事件',
            value: 2
          },
          {
            name: '较大环境事件',
            value: 3
          },
          {
            name: '一般A级',
            value: 4
          },
          {
            name: '一般B级',
            value: 5
          },
          {
            name: '一般C级',
            value: 6
          }
        ],
        // 事发单位 绑定数据值
        unit: '',
        unitList: [
          {
            label: '扬子',
            value: '1'
          },
          {
            label: '南京',
            value: '2'
          }
        ],
        // 事发时间 绑定数据
        atTime: '',
        // 事发位置
        positionOf: '',
        // 位置描述
        positionDescription: '',
        // 管线名称
        lineName: '',
        // 管线类型
        lineType: '',
        lineTypeText: '自动带出不可修改',
        // 消息推送
        beingPushed: [],
        beingPushList: [
          {
            name: '短信推送',
            value: false
          },
          {
            name: '手机应用推送',
            value: false
          }
        ],
        // 事件描述
        desc: '',
        // 接收人员
        receiveOne: ''
      },
      // 上传列表
      fileList: [],
      // 上传地址
      uploadAction: '',
      // 表单验证
      // rules: {
      //   // 事件名称校验
      //   nameOfEvent: [
      //     {
      //       required: true,
      //       message: '请输入活动名称',
      //       trigger: 'blur'
      //     }
      //   ],
      //   // 事件类型校验
      //   eventOfType: [
      //     {
      //       required: true,
      //       message: '请选择事件类型',
      //       trigger: 'blur'
      //     }
      //   ],
      //   // 事件等级校验
      //   eventOfLevel: [
      //     {
      //       required: true,
      //       message: '请选择事件等级',
      //       trigger: 'blur'
      //     }
      //   ],
      //   // 事发单位 绑定数据值
      //   unit: [
      //     {
      //       required: true,
      //       message: '请选择活动区域',
      //       trigger: 'change'
      //     }
      //   ],
      //   // 事发时间
      //   atTime: [
      //     {
      //       required: true,
      //       message: '请选择活动资源',
      //       trigger: 'change'
      //     }
      //   ],
      //   // 事件位置校验
      //   positionOf: [
      //     {
      //       required: true,
      //       message: '请输入活动位置',
      //       trigger: 'blur'
      //     }
      //   ],
      //   // 位置描述校验
      //   positionDescription: [
      //     {
      //       required: true,
      //       message: '请输入位置描述',
      //       trigger: 'blur'
      //     }
      //   ],
      //   // 管线名称
      //   lineName: [],
      //   // 管线类型
      //   lineType: []
      // },
      // 描述 接收 => 展示/隐藏
      wayTo: false,
      // 定位位置选择弹框
      dialogLocation: false
    }
  },
  mounted () {
    eventBus.$on('location-setChange', (obj) => {
      if (obj) {
        this.dialogLocation = false
      }
    })
  },
  methods: {
    // 接收子组件传递的数据
    getlocaltionClick (val) {
      // console.log(val)
      this.ruleForm.positionOf = val.latPos + '-' + val.longPos
      this.dialogLocation = !this.dialogLocation
    },
    // 消息推送 选择推送的对象
    infoChange () {
      if (this.ruleForm.beingPushed.indexOf('短信推送') > -1 || this.ruleForm.beingPushed.indexOf('手机应用推送') > -1) {
        this.wayTo = true
      } else {
        this.wayTo = false
      }
    },
    // 点击定位 进行位置选择
    locationInfo () {
      this.dialogLocation = !this.dialogLocation
    },
    // 表单的确认按钮点击事件
    submitForm (formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
          // alert('submit!')
          this.$message({
            message: '事件上报提交成功',
            type: 'success'
          })
        } else {
          this.$message('事件上报提交失败')
          return false
        }
      })
      // this.$refs[formName].resetFields()
      eventBus.$emit('event-report-popup', false)
    },
    // form表单的取消按钮点击事件 重置信息
    resetForm (formName) {
      this.$refs[formName].resetFields()
      eventBus.$emit('event-report-popup', false)
    }
  }
}
</script>
<style lang="less" scoped>
    /*/deep/ .el-dialog .el-dialog--center {*/
    /*    margin-top: 1rem !important;*/
    /*    margin-left: 6.4rem !important;*/
    /*}*/
    /deep/ .event-report-dialog {
        left: 5rem;
        top: 1rem;
        margin-top: 2rem;
        margin-left: 2rem;
    }
    /deep/ .el-dialog {
        left: 5rem;
        top: 1rem;
        width: 3.087834rem;
    }
    .event-report {
        margin: 0 5px !important;
    }
    .way-to {
        /deep/ .el-form-item__content {
            display: flex;
        }
    }
    /deep/ .el-form-item {
        margin: 2px 0 !important;
        color: #00fff6 !important;
    }
    /deep/ .el-textarea__inner {
        height: 0.28rem !important;
        max-height: 0.45rem !important;
        width: 2rem;
        color: darkgrey;
        border: solid 1px #00fff6;
        background-color: rgba(0, 255, 246, 0.14);
        outline: none;
        font-size: 0.01rem;
    }
    /deep/ .el-checkbox__label {
        color: #00fff6 !important;
    }
    /deep/ .el-icon-time:before {
        content: " ";
    }
    /deep/ input {
        border-radius: 0;
        background-color: rgba(0, 255, 246, 0.14);
        border: solid 1px #00fff6;
        color: #C0C4CC;
        font-size: 0.01rem;
    }
    /deep/ .el-input.is-disabled .el-input__inner {
        color: #C0C4CC;
        font-size: 0.01rem;
        border-radius: 4px;
        background: @background-color;
        border-color: @color;
    }
    /deep/ .el-input__inner {
        height: 0.2rem !important;
        border-radius: 5px;
        background: rgba(0, 16, 30, 0.5);
    }
    /deep/ .el-form-item__label {
        color: @color;
    }
    /deep/ .el-radio__label {
        color: @color;
    }
    .confirmCancel {
        text-align: right;
        margin: 0.071234rem !important;
    }
</style>
src/components/base-page/enterprise-emergency/events-reported/ReportLocation.vue
New file
@@ -0,0 +1,146 @@
<template>
    <div class="report-location-box">
        <el-tabs v-model="activeName">
            <el-tab-pane label="搜索定位" name="first">
                <ReportLocationSearch></ReportLocationSearch>
            </el-tab-pane>
            <el-tab-pane label="管段定位" name="second">
                <ReportLocationSection></ReportLocationSection>
            </el-tab-pane>
            <el-tab-pane label="经纬度定位" name="third">
                <el-row class="place-box">
                    <div class="place-left">
                        <el-form :model="LongLatPos" label-width="90px">
                            <el-form-item label="经度:">
                                <el-input v-model="LongLatPos.longPos"></el-input>
                            </el-form-item>
                            <el-form-item label="纬度:">
                                <el-input v-model="LongLatPos.latPos"></el-input>
                            </el-form-item>
                        </el-form>
                    </div>
                    <div class="place-right">
                        <el-button type="primary" @click="mapPoints">定位</el-button>
                    </div>
                </el-row>
                <div class="place-bottom" style="text-align: center;margin: 5px">
                    <el-button type="primary" @click="confirm">确认</el-button>
                </div>
            </el-tab-pane>
        </el-tabs>
    </div>
</template>
<script>
// import eventBus from '../../../../eventBus'
// 管段定位组件
import ReportLocationSection from './ReportLocationSection'
import ReportLocationSearch from './ReportLocationSearch'
import iconUrl from '../../../../../public/assets/images/map/loc.png'
export default {
  name: 'ReportLocation',
  components: {
    ReportLocationSearch,
    ReportLocationSection
  },
  data () {
    return {
      // active tab切换
      activeName: 'first',
      // 经纬度定位
      LongLatPos: {
        longPos: '',
        latPos: ''
      }
    }
  },
  // mounted () {
  //   // 接收规定 每次重新选择定位 都指定 选择第一个开始
  //   eventBus.$on('tab-change', (obj) => {
  //     this.activeName = obj
  //   })
  // },
  methods: {
    // 地图上点击
    selectPipeLine () {
      window.map.on('click', this.selectClick)
      // window.mapManager.clickDialogSwitch = false
    },
    // 地图上点击回调
    selectClick (e) {
      window.map.off('click', this.selectClick)
      // const point = [e.latlng.lng, e.latlng.lat]
      const pointX = e.latlng.lng
      const pointY = e.latlng.lat
      // let marker = window.L.marker(point,{
      //
      // })
      this.clickLocation = '\'' + pointX + '\'' + pointY + ''
      this.mapPointResult(e)
    },
    mapPointResult (e) {
      console.log(e)
      this.LongLatPos.longPos = e.latlng.lng
      this.LongLatPos.latPos = e.latlng.lat
      const as = [e.latlng.lat, e.latlng.lng]
      // console.log(as)
      const marker = window.L.marker(as, {
        icon: window.L.icon({
          iconUrl: iconUrl,
          iconSize: [30, 30],
          iconAnchor: [15, 15]
        })
      })
      window.map.addLayer(marker)
    },
    // 获得焦点 进行定位
    focusLocation () {
      this.selectPipeLine()
    },
    // 经纬度定位
    mapPoints () {
      this.selectPipeLine()
    },
    // 点击确认按钮事件
    confirm () {
      // 通过子组件向父组件传递数据
      this.$emit('locationClick', this.LongLatPos)
      this.clickLocation = ''
      this.LongLatPos.longPos = ''
      this.LongLatPos.latPos = ''
    }
  }
}
</script>
<style lang="less" scoped>
    .place-box {
        display: flex;
        align-items: center;
        justify-content: space-around;
    }
    .place {
        text-align: center;
        .place-top {
            display: flex;
            align-items: center;
            justify-content: space-around;
            .place-right {
                .el-button {
                    margin: 15px;
                }
            }
        }
        .place-bottom {
            .el-button {
                /*margin: 15px;*/
            }
        }
    }
</style>
src/components/base-page/enterprise-emergency/events-reported/ReportLocationSearch.vue
New file
@@ -0,0 +1,84 @@
<template>
    <div class="click-location">
        <el-row>
            <el-input type="text" v-model="clickLocation" clearable @change="focusLocation"></el-input>
        </el-row>
        <el-row>
            <el-button type="primary" @click="confirm" style="text-align: right">确认</el-button>
        </el-row>
    </div>
</template>
<script>
import { reportLocationSearch } from '../../../../api/request'
import { pulseEffect } from '../../../../utils/utils'
import eventBus from '../../../../eventBus'
export default {
  name: 'ReportLocationSearch',
  data () {
    return {
      // 点击定位绑定数据
      clickLocation: ''
    }
  },
  methods: {
    // 获得焦点 进行定位
    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: {
          keyWord: this.clickLocation,
          level: window.map.getZoom(),
          mapBound: getBoundsData,
          queryType: 7,
          count: 14,
          start: 0,
          queryTerminal: 10000
        },
        type: 'query'
      }
      // console.log(data)
      reportLocationSearch(data).then(res => {
        console.log(res)
        // 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]])
          }
        }
      })
    },
    // 点击确认按钮事件
    confirm () {
      // 通过子组件向父组件传递数据
      // this.$emit('locationClick', this.LongLatPos)
      eventBus.$emit('location-setChange', true)
      // console.log('搜索定位')
    }
  }
}
</script>
<style lang="less" scoped>
    .click-location {
        margin: 0 auto;
        text-align: center;
        .el-input {
            width: 80%;
            margin: 15px auto;
        }
        .el-button {
            margin: 15px auto;
        }
    }
</style>
src/components/base-page/enterprise-emergency/events-reported/ReportLocationSection.vue
New file
@@ -0,0 +1,483 @@
<template>
    <div class="ReportLocationSection">
        <el-form :model="form" label-width="90px">
            <el-row class="pipe-line-search">
                <el-col :span="12">
                    <el-form-item label="管线名称:">
                        <el-input v-model="form.pipeName">
                            <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-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-form-item label="管段编码:">
                        <el-input v-model="form.sectionName" disabled></el-input>
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="附属设施:">
                        <el-input v-model="form.affiliatedFacilities" disabled></el-input>
                    </el-form-item>
                </el-col>
            </el-row>
        </el-form>
        <div class="pipe-table" v-show="this.tableList.length>=1">
            <el-card>
                <span class="fixed-style" style="display: block">管线名称</span>
                <el-table
                        :data="tableList"
                        border
                        height="120"
                        max-height="140"
                        @row-click="sectionShowClick"
                        style="width: 100%">
                    <el-table-column
                            label="序号"
                            type="index"
                    >
                    </el-table-column>
                    <el-table-column
                            show-overflow-tooltip
                            prop="properties.pipename"
                            label="管线名称">
                    </el-table-column>
                    <el-table-column
                            show-overflow-tooltip
                            prop="properties.subchaname"
                            label="支线名称">
                    </el-table-column>
                    <el-table-column
                            show-overflow-tooltip
                            prop="properties.mediumtype"
                            label="管线类型">
                    </el-table-column>
                    <el-table-column width="40" fixed="right" label="操作">
                        <template slot-scope="scope">
                            <el-button @click="localAdr(scope.row)" type="text" size="small">定位</el-button>
                        </template>
                    </el-table-column>
                </el-table>
            </el-card>
            <el-card>
                <span class="fixed-style" style="display: block">管段列表</span>
                <el-table
                        :data="tableListSection"
                        border
                        @row-click="sectionCode"
                        height="100"
                        max-height="100"
                        style="width: 100%">
                    <el-table-column
                            show-overflow-tooltip
                            prop="properties.pipesegcode"
                            label="管段编码">
                    </el-table-column>
                    <el-table-column
                            show-overflow-tooltip
                            prop="properties.startpointnumber"
                            label="起点探查号">
                    </el-table-column>
                    <el-table-column
                            show-overflow-tooltip
                            prop="properties.endpointnumber"
                            label="终点探查号">
                    </el-table-column>
                    <el-table-column
                            show-overflow-tooltip
                            prop="properties.material"
                            label="材质">
                    </el-table-column>
                    <el-table-column
                            show-overflow-tooltip
                            prop="properties.embeddingmode"
                            label="埋设方式">
                    </el-table-column>
                    <el-table-column width="40" fixed="right" label="操作">
                        <template slot-scope="scope">
                            <el-button @click="localAdr(scope.row)" type="text" size="small">定位</el-button>
                        </template>
                    </el-table-column>
                </el-table>
                <span class="fixed-style" style="display: block">附属设施列表</span>
                <el-table
                        :data="tableDataAffFac"
                        border
                        @row-click="affFacName"
                        height="120"
                        max-height="140"
                        style="width: 100%">
                    <el-table-column
                            show-overflow-tooltip
                            width="150"
                            prop="properties.code"
                            label="编号">
                    </el-table-column>
                    <el-table-column
                            show-overflow-tooltip
                            width="150"
                            prop="properties.name"
                            label="附属设施名称">
                    </el-table-column>
                    <el-table-column
                            width="150"
                            show-overflow-tooltip
                            prop="properties.type"
                            label="类型">
                    </el-table-column>
                    <el-table-column width="90" fixed="right" label="操作">
                        <template slot-scope="scope">
                            <el-button @click="localAdr(scope.row)" type="text" size="small">定位</el-button>
                        </template>
                    </el-table-column>
                </el-table>
            </el-card>
        </div>
        <el-row style="text-align: right;margin: 10px">
            <el-button type="primary" @click="confirm">确认</el-button>
        </el-row>
    </div>
</template>
<script>
// import { pulseEffect } from '../../../../utils/utils'
// import mapApi from '../../../../api/mapApi'
import WfsHelper from '@components/helpers/WfsHelper'
import AjaxUtils from '@utils/AjaxUtils'
import { fitBounds, highlight } from '../../../../components/helpers/LocateHelper'
import eventBus from '../../../../eventBus'
import { WMS_URL } from '../../../../conf/Constants'
export default {
  name: 'ReportLocationSection',
  data () {
    return {
      form: {
        pipeName: '',
        sectionName: '',
        affiliatedFacilities: ''
      },
      // 管线查询数据列表
      tableList: [],
      // 管段查询数据列表
      tableListSection: [],
      // 附属设施查询列表数据
      tableDataAffFac: [],
      // 定义类型判断 if 是搜索到的数据可以进行管线选择 else 点击定位选择的管线不可以进行选择
      SectionAndAffFacTableJudge: false
    }
  },
  mounted () {
    this.wfsHelper = new WfsHelper()
  },
  methods: {
    // 点击管线列表 展示管段内容 和附属设施内容
    async sectionShowClick (val) {
      console.log(val)
      // 如果 SectionAndAffFacTableJudge === true 是搜索数据结果的列表 可以进行 管段 附属设施交互 点击定位查询结果 不进行点击交互
      if (this.SectionAndAffFacTableJudge === true) {
        // 管段查询
        const sectionNameSearch = val.properties.pipename
        this.tableListSection = []
        this.wfsHelper.clearFilter()
        this.wfsHelper.setTypeName(['sewer:pipesegment'])
        this.wfsHelper.addLike('pipename', sectionNameSearch)
        this.wfsHelper.addEquals('pipename', '\'' + sectionNameSearch + '\'')
        const res = await AjaxUtils.GetDataAsynByUrl(this.wfsHelper.getUrl(), {})
        // console.log(res)
        if (res instanceof Object && Object.prototype.hasOwnProperty.call(res, 'features')) {
          this.tableListSection = res.features
        }
        this.wfsHelper = new WfsHelper()
        // 附属设施查询
        this.tableDataAffFac = []
        const AffFacSearch = val.properties.pipecode
        console.log(AffFacSearch)
        this.wfsHelper.clearFilter()
        this.wfsHelper.setTypeName(['sewer:view_pipeline'])
        this.wfsHelper.addLike('pipecode', AffFacSearch)
        // this.wfsHelper.addEquals('type', '\'' + AffFacSearch + '\'')
        const resAffFac = await AjaxUtils.GetDataAsynByUrl(this.wfsHelper.getUrl(), {})
        console.log(resAffFac)
        if (resAffFac instanceof Object && Object.prototype.hasOwnProperty.call(resAffFac, 'features')) {
          // console.log(resAffFac.features)
          // for (let i = 0; i < resAffFac.features.length; i++) {
          //   console.log(resAffFac.features[i])
          // }
          this.tableDataAffFac = resAffFac.features
        }
        this.wfsHelper = new WfsHelper()
      }
    },
    // 点击管段列表 管段编码传递
    sectionCode (val) {
      // console.log(val)
      this.form.sectionName = val.properties.pipecode
    },
    // 点击附属设施列表 管段编码传递
    affFacName (val) {
      // console.log(val)
      this.form.affiliatedFacilities = val.properties.name
    },
    // 定位功能
    localAdr (val) {
      // console.log(val)
      fitBounds(val)
      highlight(val)
    },
    // 管线 点击定位管段的选择功能
    pipeClickLocation () {
      // 设施不进行 管线表格数据的点击交互
      this.SectionAndAffFacTableJudge = false
      window.mapManager.clickDialogSwitch = false
      // this.tableList = []
      // 点击获取数据
      window.map.on('click', (e) => {
        // window.mapManager.loadWfsDatas(e.latlng).then((res) => {
        //   console.log(res)
        //   for (let i = 0; i < res.features.length; i++) {
        //     this.tableList.push(res.features[i])
        //     this.tableListSection.push(res.features[i])
        //     this.tableDataAffFac.push(res.features[i])
        //   }
        // })
        // return new Promise((resolve, reject) => {
        const size = window.map.getSize()
        var point = window.map.latLngToContainerPoint(e.latlng, window.map.getZoom())
        const wmsParams = Object.assign({
          LAYERS: 'pipeline_group',
          QUERY_LAYERS: 'pipeline_group',
          WIDTH: size.x,
          HEIGHT: size.y,
          X: Math.round(point.x),
          Y: Math.round(point.y),
          BBOX: window.map.getBounds().toBBoxString()
        }, {
          VERSION: '1.1.1',
          SERVICE: 'WMS',
          REQUEST: 'GetFeatureInfo',
          // bbox: bbox,
          FORMAT: 'image/png',
          INFO_FORMAT: 'application/json',
          TRANSPARENT: true,
          FEATURE_COUNT: 50,
          SRS: 'EPSG:4326',
          EXCEPTIONS: 'application/vnd.ogc.se_inimage'
        })
        AjaxUtils.get4JsonDataByUrl(WMS_URL, wmsParams, (res) => {
          console.log(res)
          for (let i = 0; i < res.data.features.length; i++) {
            // console.log(res.data.features[i])
            this.tableList.push(res.data.features[i])
          }
        })
        // 管段
        this.sectionData(e)
        // 附属设施
        this.affFacData(e)
        // })
      })
      // 数据 重新获取 进行置空
      this.tableList = []
      this.tableListSection = []
      this.form.pipeName = ''
      this.tableDataAffFac = []
      this.form.sectionName = ''
      this.form.affiliatedFacilities = ''
    },
    // 点击定位 擦寻管段
    sectionData (e) {
      const size = window.map.getSize()
      var point = window.map.latLngToContainerPoint(e.latlng, window.map.getZoom())
      const wmsParams = Object.assign({
        LAYERS: 'sewer:pipesegment',
        QUERY_LAYERS: 'sewer:pipesegment',
        WIDTH: size.x,
        HEIGHT: size.y,
        X: Math.round(point.x),
        Y: Math.round(point.y),
        BBOX: window.map.getBounds().toBBoxString()
      }, {
        VERSION: '1.1.1',
        SERVICE: 'WMS',
        REQUEST: 'GetFeatureInfo',
        // bbox: bbox,
        FORMAT: 'image/png',
        INFO_FORMAT: 'application/json',
        TRANSPARENT: true,
        FEATURE_COUNT: 50,
        SRS: 'EPSG:4326',
        EXCEPTIONS: 'application/vnd.ogc.se_inimage'
      })
      AjaxUtils.get4JsonDataByUrl(WMS_URL, wmsParams, (res) => {
        // console.log(res)
        for (let i = 0; i < res.data.features.length; i++) {
          this.tableListSection.push(res.data.features[i])
        }
      })
    },
    // 附属设施
    affFacData (e) {
      const size = window.map.getSize()
      var point = window.map.latLngToContainerPoint(e.latlng, window.map.getZoom())
      const wmsParams = Object.assign({
        LAYERS: 'sewer:view_pipeline',
        QUERY_LAYERS: 'sewer:view_pipeline',
        // LAYERS: 'pipeline_fs',
        // QUERY_LAYERS: 'pipeline_fs',
        WIDTH: size.x,
        HEIGHT: size.y,
        X: Math.round(point.x),
        Y: Math.round(point.y),
        BBOX: window.map.getBounds().toBBoxString()
      }, {
        VERSION: '1.1.1',
        SERVICE: 'WMS',
        REQUEST: 'GetFeatureInfo',
        // bbox: bbox,
        FORMAT: 'image/png',
        INFO_FORMAT: 'application/json',
        TRANSPARENT: true,
        FEATURE_COUNT: 50,
        SRS: 'EPSG:4326',
        EXCEPTIONS: 'application/vnd.ogc.se_inimage'
      })
      AjaxUtils.get4JsonDataByUrl(WMS_URL, wmsParams, (res) => {
        // console.log(res)
        for (let i = 0; i < res.data.features.length; i++) {
          this.tableDataAffFac.push(res.data.features[i])
        }
      })
    },
    // 管线搜索
    async pipelineSearch () {
      this.SectionAndAffFacTableJudge = true
      this.tableList = []
      this.tableListSection = []
      this.tableDataAffFac = []
      this.wfsHelper.clearFilter()
      this.wfsHelper.setTypeName(['sewer:pipeline'])
      if (this.form.pipeName) {
        this.wfsHelper.addLike('subchaname', this.form.pipeName)
      }
      // this.wfsHelper.addEquals('pipename', '\'' + this.form.pipeName + '\'')
      const res = await AjaxUtils.GetDataAsynByUrl(this.wfsHelper.getUrl(), {})
      // console.log(res)
      if (res instanceof Object && Object.prototype.hasOwnProperty.call(res, 'features')) {
        this.total = res.totalFeatures
        // console.log(res.features)
        this.tableList = res.features
      }
      this.wfsHelper = new WfsHelper()
      this.form.pipeName = ''
      this.form.sectionName = ''
      this.form.affiliatedFacilities = ''
    },
    // 点击确认
    confirm () {
      // console.log('点击确定选择完成')
      eventBus.$emit('location-setChange', true)
      this.form.pipeName = ''
      this.form.sectionName = ''
      this.form.affiliatedFacilities = ''
      this.tableList = []
      this.tableListSection = []
      this.tableDataAffFac = []
      this.SectionAndAffFacTableJudge = false
    }
  }
}
</script>
<style lang="less" scoped>
    /*/deep/ .el-input {*/
    /*    width: 0.74353rem;*/
    /*}*/
    .pipe-line-search {
        display: flex;
        align-items: center;
        .el-button {
            margin: 0 15px;
        }
    }
    .pipe-table {
        /*display: flex;*/
        /*align-items: center;*/
        /*justify-content: space-around;*/
        /deep/ .el-card {
            /*width: 1.39523rem;*/
            /*max-width: 1.39523rem;*/
            /*height: 0.9343rem;*/
            /*max-height: 0.9343rem;*/
            .el-table {
                margin: 0.05345rem auto;
            }
        }
    }
    .fixed-style {
        color: @color;
    }
    /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>
src/components/message/index.vue
@@ -1,6 +1,6 @@
<template>
    <div class="message">
        <el-tooltip :popper-class="'message-btn'" effect="dark" content="通知" placement="left">
        <el-tooltip id="notification" :popper-class="'message-btn'" effect="dark" content="通知" placement="left">
            <div :class='["iconBtn",selectGroup === true  ? "active-button" : ""]' @click="changeSelectMouse" >
                <i class="icon el-icon-bell" ></i>
            </div>
@@ -71,6 +71,7 @@
      this.selectGroup = !this.selectGroup
      this.isShowMessage = this.selectGroup
      if (this.selectGroup) {
        document.querySelector('#notification').style.opacity = '0'
        this.isShow = []
      } else {
        this.isShow = !this.isShow
@@ -88,6 +89,7 @@
    handleClose (done) {
      this.selectGroup = false
      this.isShowMessage = false
      document.querySelector('#notification').style.opacity = '1'
    }
  }
}
@@ -102,7 +104,8 @@
        .dialogMessage{
            /deep/ .el-dialog{
                width: 30vw;
                left: 60%;
                right: 0.14583rem;
                top: 0.11979rem;
            }
            .conclusion{
                text-indent:2em;
src/components/panel/topicSearch/SewersSearch.vue
@@ -193,6 +193,7 @@
      // }
      // const _this = this
      const res = await AjaxUtils.GetDataAsynByUrl(this.wfsHelper.getUrl(), {})
      console.log(res)
      if (res instanceof Object && Object.prototype.hasOwnProperty.call(res, 'features')) {
        this.total = res.totalFeatures
        this.list = res.features
src/components/panel/topicSearch/enterprise-emergency/EventQuery.vue
@@ -1,7 +1,6 @@
<template>
    <div class="search-panel">
        <el-form ref="form" :model="form" label-width="90px" class="search-form">
            <el-form ref="form" :model="form" label-width="90px" class="search-form">
                <el-form-item label="企业名称:" size="mini" class="search-panel-item">
                    <el-select style="width: 100%" v-model="form.pipelineType" @change="handlePipelineType"
                               :popper-class="'select-down'">
@@ -43,7 +42,6 @@
                    <el-input v-model="form.keyword" size="mini" placeholder="在此输入关键字搜索"></el-input>
                    <el-button class="el-icon-search" @click="handleSearch"></el-button>
                </div>
            </el-form>
        </el-form>
        <el-scrollbar style="height:286.22px">
            <!--            <div class="environmental-risk-list" v-for="(item,index) in list" :key="index" :class="activeNum===index?'hover':''" @click="accordPopup(item)">-->
@@ -92,19 +90,16 @@
        </el-scrollbar>
        <div class="event-report">
            <el-dialog
                    custom-class="el-dialog--center"
                    custom-class="event-report-dialog"
                    title="事件上报"
                    :visible.sync="dialogVisible"
                    :append-to-body="true"
                    :modal="false"
                    v-dialogDragBottom
                    v-dialogDrag
            >
                <EventsReported></EventsReported>
            </el-dialog>
        </div>
<!--        <Dialog ref="EReported" title="事件上报2">-->
<!--            <EventsReported></EventsReported>-->
<!--        </Dialog>-->
    </div>
</template>
@@ -113,23 +108,19 @@
// import WfsHelper from '@components/helpers/WfsHelper'
// import AjaxUtils from '@utils/AjaxUtils'
// import DisposalEvent from '../../../base-page/enterprise-emergency/DisposalEvent'
import DisposalEvent from '../../../base-page/enterprise-emergency/DisposalEvent'
import EventHandling from '@components/base-page/enterprise-emergency/event-handling/EventHandling'
// import eventBus from '../../../../eventBus'
import EventsReported from '../../../../components/base-page/enterprise-emergency/EventsReported'
// import Dialog from '../../../../views/popup/Dialog'
import eventBus from '../../../../eventBus'
import EventsReported from '../../../base-page/enterprise-emergency/events-reported/EventsReported'
export default {
  name: 'EventQuery',
  components: {
    // Dialog,
    EventsReported
  },
  data () {
    return {
      dialogVisible: false,
      reportIncident: false,
      list: [],
      total: 0,
      activeNum: -1,
@@ -156,6 +147,9 @@
  },
  mounted () {
    // this.wfsHelper = new WfsHelper()
    eventBus.$on('event-report-popup', (obj) => {
      this.dialogVisible = obj
    })
  },
  methods: {
    dialogVisibleChange () {
@@ -229,18 +223,20 @@
</script>
<style lang="less" scoped>
    /*.event-report {*/
        /deep/ .el-dialog--center {
            /*left: 2rem !important;*/
            margin-left: 2rem !important;
            margin-top: 0.73979rem !important;
            /*bottom: 0 !important;*/
        }
    //}
    /*/deep/ .event-report-dialog {*/
    /*    left: 3rem;*/
    /*    top: 1rem;*/
    /*}*/
    /*.event-report {*/
    /deep/ .el-dialog {
            /*width: 30%;*/
            width: 550px;
            width: 3.343545rem;
        }
    /*}*/
    /deep/ .event-report-dialog {
        left: 3rem;
        top: 1rem;
        margin-top: 2rem;
        margin-left: 2rem;
    }
</style>
src/components/table/components/CorporateEmergency.vue
New file
@@ -0,0 +1,39 @@
<template>
  <div class="Pipeline">
    <el-table class="tableBox" :data="tableData" border>
      <el-table-column width="30px" label="">
        <template>
          <i class="el-icon-caret-right"></i>
          <span style="margin-left: 10px"></span>
        </template>
      </el-table-column>
      <el-table-column label="序号" width="60px" type="index"></el-table-column>
      <el-table-column prop="UserName" label="企业名称"></el-table-column>
      <el-table-column prop="WasteWaters" label="应急预案数量(个)"></el-table-column>
      <el-table-column prop="AddOutPut" label="应急预案备案号"></el-table-column>
      <el-table-column prop="MonthOutPut" label="应急物资存放点"></el-table-column>
      <el-table-column prop="NH4NPut" label="环保事件(个)"></el-table-column>
      <el-table-column prop="NH4NMonth" label="环保处罚(个)"></el-table-column>
      <el-table-column prop="normal" label="处罚金额(万元)"></el-table-column>
    </el-table>
  </div>
</template>
<script>
import mapApi from '@/api/mapApi'
export default {
  name: 'CorporateEmergency',
  data () {
    return {
      tableData: null
    }
  },
  async mounted () {
    this.tableData = await mapApi.getCorporateEmergencyStatistics()
  }
}
</script>
<style scoped>
</style>
src/components/table/components/EnvironmentalRisk.vue
New file
@@ -0,0 +1,46 @@
<template>
  <div class="PollutionSource">
    <el-table class="tableBox" :data="tableData" :header-cell-style="tableHeaderColor" :cell-style="rowClass" border>
      <el-table-column width="30px" label="">
        <template>
          <i class="el-icon-caret-right"></i>
          <span style="margin-left: 10px"></span>
        </template>
      </el-table-column>
      <el-table-column label="序号" width="60px" type="index"></el-table-column>
      <el-table-column prop="UserName" label="企业名称"></el-table-column>
      <el-table-column prop="ProductionFacilities" label="一级风险源(个)"></el-table-column>
      <el-table-column prop="GovernanceFacilities" label="二级风险源(个)"></el-table-column>
      <el-table-column prop="GovernanceFacilities" label="三级风险源(个)"></el-table-column>
      <el-table-column prop="GovernanceFacilities" label="应急物资存放点"></el-table-column>
    </el-table>
  </div>
</template>
<script>
import mapApi from '@/api/mapApi'
export default {
  name: 'AirQuality',
  data () {
    return {
      tableData: null
    }
  },
  async mounted () {
    this.tableData = await mapApi.getEnvironmentalRiskStatistics()
  },
  methods: {
    tableHeaderColor ({ row, column, owIndex, columnIndex }) {
      // return 'background-color: rgba(26, 73, 81, 0.901960784313726);color:#fff;font-wight:500;font-size:12px;text-align:center;height:0px'
    },
    // 表头样式设置
    rowClass  () {
      // return 'text-align: center;background-color: rgba(26, 73, 81, 0.901960784313726);color:#fff;width:64px'
    }
  }
}
</script>
<style scoped>
</style>
src/components/table/components/IndexStatistics.vue
@@ -66,37 +66,19 @@
</template>
<script>
import mapApi from '@/api/mapApi'
export default {
  name: 'IndexStatistics',
  data () {
    return {
      titleProp: '',
      activeName: 'first',
      tableData: [{
        date: '集团公司',
        name: '35',
        province: '23',
        city: '11',
        address: 235,
        zip: 23
      }, {
        date: '天津石化',
        name: 32,
        province: 33,
        city: 44,
        address: 53,
        zip: 200333
      }, {
        date: '济南炼化',
        name: 35,
        province: 13,
        city: 33,
        address: 44,
        zip: 200333
      }]
      tableData: null
    }
  },
  async mounted () {
    this.tableData = await mapApi.getIndexStatistics()
  },
  methods: {
    refsDatatitle (item) {
      this.titleProp = item
src/components/table/components/Pipeline.vue
New file
@@ -0,0 +1,37 @@
<template>
  <div class="Pipeline">
    <el-table class="tableBox" :data="tableData" border>
      <el-table-column width="30px" label="">
        <template>
          <i class="el-icon-caret-right"></i>
          <span style="margin-left: 10px"></span>
        </template>
      </el-table-column>
      <el-table-column label="序号" width="60px" type="index"></el-table-column>
      <el-table-column prop="date" label="企业名称"></el-table-column>
      <el-table-column prop="name" label="管线总长度(km)"></el-table-column>
      <el-table-column prop="province" label="周边环境 "></el-table-column>
      <el-table-column prop="city" label="拦截设施"></el-table-column>
      <el-table-column prop="address" label="内外排口"></el-table-column>
    </el-table>
  </div>
</template>
<script>
import mapApi from '@/api/mapApi'
export default {
  name: 'Pipeline',
  data () {
    return {
      tableData: null
    }
  },
  async mounted () {
    this.tableData = await mapApi.getPipelineStatistics()
  }
}
</script>
<style scoped>
</style>
src/components/table/components/PollutionSource.vue
New file
@@ -0,0 +1,44 @@
<template>
    <div class="PollutionSource">
        <el-table class="tableBox" :data="tableData" :header-cell-style="tableHeaderColor" :cell-style="rowClass" border>
            <el-table-column width="30px" label="">
                <template>
                    <i class="el-icon-caret-right"></i>
                    <span style="margin-left: 10px"></span>
                </template>
            </el-table-column>
            <el-table-column label="序号" width="60px" type="index"></el-table-column>
            <el-table-column prop="UserName" label="企业名称"></el-table-column>
            <el-table-column prop="ProductionFacilities" label="生产设施"></el-table-column>
            <el-table-column prop="GovernanceFacilities" label="治理设施"></el-table-column>
        </el-table>
    </div>
</template>
<script>
import mapApi from '@/api/mapApi'
export default {
  name: 'AirQuality',
  data () {
    return {
      tableData: null
    }
  },
  async mounted () {
    this.tableData = await mapApi.getPollutionSourceStatistics()
  },
  methods: {
    tableHeaderColor ({ row, column, owIndex, columnIndex }) {
      // return 'background-color: rgba(26, 73, 81, 0.901960784313726);color:#fff;font-wight:500;font-size:12px;text-align:center;height:0px'
    },
    // 表头样式设置
    rowClass  () {
      // return 'text-align: center;background-color: rgba(26, 73, 81, 0.901960784313726);color:#fff;width:64px'
    }
  }
}
</script>
<style scoped>
</style>
src/components/table/components/SoilGroundwater.vue
@@ -1,6 +1,6 @@
<template>
    <div class="waste-water">
        <el-table class="tableBox" :data="tableData" style="width: 100%" @cell-click="handle">
        <el-table class="tableBox" :data="SolidWastetableDataList" style="width: 100%" @cell-click="handle">
            <el-table-column width="30px" label="">
                <template slot-scope="{row,$index}">
                    <el-popover placement="bottom" trigger="click" :disabled="!isShowIcon" popper-class="popovers">
@@ -84,6 +84,7 @@
<script>
// import ChemicalWastewater from './componented/ChemicalWastewater'
import Refinery from '@components/table/components/componented/refinery'
import mapApi from '@/api/mapApi'
// import MissingAlarm from '@components/table/components/componented/MissingAlarm'
export default {
  name: 'WasteWater',
@@ -96,55 +97,6 @@
    return {
      isActive: '',
      isShowIcon: false,
      tableData: [{
        UserName: '集团名称',
        WasteWaters: '',
        AddOutPut: '',
        MonthOutPut: '',
        NH4NPut: '',
        NH4NMonth: '',
        normal: '',
        overProof: '',
        Abnormal: '',
        StopProduction: '',
        deficiency: ''
      }, {
        UserName: '天津石化',
        WasteWaters: '116.6',
        AddOutPut: '58.3',
        MonthOutPut: '13.1',
        NH4NPut: '58.3',
        NH4NMonth: '13.1',
        normal: '21',
        overProof: '2',
        Abnormal: '2',
        StopProduction: '2',
        deficiency: '2'
      }, {
        UserName: 'xxxx炼化3',
        WasteWaters: '116.6',
        MonthOutPut: '13.1',
        NH4NPut: '58.3',
        NH4NMonth: '13.1',
        normal: '21',
        overProof: '2',
        Abnormal: '2',
        StopProduction: '2',
        deficiency: '2'
      }, {
        UserName: 'xxxx4',
        WasteWaters: '116.6',
        AddOutPut: '58.3',
        MonthOutPut: '13.1',
        NH4NPut: '58.3',
        NH4NMonth: '13.1',
        normal: '21',
        overProof: '2',
        Abnormal: '2',
        StopProduction: '2',
        deficiency: '2'
      }],
      tableHeader1: [
        { name: '企业名称', width: '140', propS: 'value1' },
        { name: '地块名称', width: '140', propS: 'value2' },
@@ -165,6 +117,9 @@
      ]
    }
  },
  async mounted () {
    this.tableData = await mapApi.getSolidWasteStatistics()
  },
  methods: {
    tableHeaderColor ({ row, column, owIndex, columnIndex }) {
      //  return 'background-color: rgba(26, 73, 81, 0.901960784313726);color:#fff;font-wight:500;font-size:12px;text-align:center;height:0px'
src/components/table/components/Warn.vue
@@ -149,42 +149,18 @@
</template>
<script>
import mapApi from '@/api/mapApi'
export default {
  data () {
    return {
      titleProp: '',
      activeName: 'first',
      tableData: [{
        date: '集团公司',
        name: 1,
        province: 1,
        city: 0,
        address: 1,
        zip: 0
      }, {
        date: '天津石化',
        name: 1,
        province: 0,
        city: 1,
        address: 1,
        zip: 2
      }, {
        date: 'XXX炼化',
        name: 1,
        province: 2,
        city: 0,
        address: 0,
        zip: 1
      }, {
        date: 'XXX炼化2',
        name: 1,
        province: 2,
        city: 0,
        address: 0,
        zip: 1
      }]
      tableData: null
    }
  },
  async mounted () {
    this.tableData = await mapApi.getwarnStatistics()
  },
  methods: {
    refsDatatitle (item) {
      this.titleProp = item
src/components/table/components/WasteGas.vue
@@ -63,6 +63,7 @@
import ChemicalWastewater from '@components/table/components/componented/ChemicalWastewater'
import Refinery from '@components/table/components/componented/refinery'
import MissingAlarm from '@components/table/components/componented/MissingAlarm'
import mapApi from '@/api/mapApi'
export default {
  name: 'WasteGas',
  components: {
@@ -74,55 +75,7 @@
    return {
      isActive: '',
      isShowIcon: false,
      tableData: [{
        UserName: '集团名称',
        WasteWaters: '',
        AddOutPut: '',
        MonthOutPut: '',
        NH4NPut: '',
        NH4NMonth: '',
        normal: '',
        overProof: '',
        Abnormal: '',
        StopProduction: '',
        deficiency: ''
      }, {
        UserName: '天津石化',
        WasteWaters: '116.6',
        AddOutPut: '58.3',
        MonthOutPut: '13.1',
        NH4NPut: '58.3',
        NH4NMonth: '13.1',
        normal: '21',
        overProof: '2',
        Abnormal: '2',
        StopProduction: '2',
        deficiency: '2'
      }, {
        UserName: 'xxxx炼化3',
        WasteWaters: '116.6',
        MonthOutPut: '13.1',
        NH4NPut: '58.3',
        NH4NMonth: '13.1',
        normal: '21',
        overProof: '2',
        Abnormal: '2',
        StopProduction: '2',
        deficiency: '2'
      }, {
        UserName: 'xxxx4',
        WasteWaters: '116.6',
        AddOutPut: '58.3',
        MonthOutPut: '13.1',
        NH4NPut: '58.3',
        NH4NMonth: '13.1',
        normal: '21',
        overProof: '2',
        Abnormal: '2',
        StopProduction: '2',
        deficiency: '2'
      }],
      tableData: null,
      tableHeader1: [
        { name: '排放点', width: '140', propS: 'value1' },
        { name: '单位部门', width: '80', propS: 'value2' },
@@ -137,6 +90,9 @@
      ]
    }
  },
  async mounted () {
    this.tableData = await mapApi.getWasteGasStatistics()
  },
  methods: {
    tableHeaderColor ({ columnIndex }) {
      //   return 'background-color: rgba(26, 73, 81, 0.901960784313726);color:#fff;font-wight:500;font-size:12px;text-align:center;height:0px'
src/components/table/components/WasteWater.vue
@@ -70,6 +70,7 @@
import ChemicalWastewater from './componented/ChemicalWastewater'
import Refinery from '@components/table/components/componented/refinery'
import MissingAlarm from '@components/table/components/componented/MissingAlarm'
import mapApi from '@/api/mapApi'
export default {
  name: 'WasteWater',
  components: {
@@ -81,57 +82,12 @@
    return {
      isActive: '',
      isShowIcon: false,
      tableData: [{
        UserName: '集团名称',
        WasteWaters: '',
        AddOutPut: '',
        MonthOutPut: '',
        NH4NPut: '',
        NH4NMonth: '',
        normal: '',
        overProof: '',
        Abnormal: '',
        StopProduction: '',
        deficiency: ''
      }, {
        UserName: '天津石化',
        WasteWaters: '116.6',
        AddOutPut: '58.3',
        MonthOutPut: '13.1',
        NH4NPut: '58.3',
        NH4NMonth: '13.1',
        normal: '21',
        overProof: '2',
        Abnormal: '2',
        StopProduction: '2',
        deficiency: '2'
      }, {
        UserName: 'xxxx炼化3',
        WasteWaters: '116.6',
        MonthOutPut: '13.1',
        NH4NPut: '58.3',
        NH4NMonth: '13.1',
        normal: '21',
        overProof: '2',
        Abnormal: '2',
        StopProduction: '2',
        deficiency: '2'
      }, {
        UserName: 'xxxx4',
        WasteWaters: '116.6',
        AddOutPut: '58.3',
        MonthOutPut: '13.1',
        NH4NPut: '58.3',
        NH4NMonth: '13.1',
        normal: '21',
        overProof: '2',
        Abnormal: '2',
        StopProduction: '2',
        deficiency: '2'
      }]
      tableData: null
    }
  },
  async mounted () {
    this.tableData = await mapApi.getWasteWaterStatistics()
  },
  methods: {
    tableHeaderColor ({ row, column, owIndex, columnIndex }) {
    //  return 'background-color: rgba(26, 73, 81, 0.901960784313726);color:#fff;font-wight:500;font-size:12px;text-align:center;height:0px'
src/components/table/components/tabHandover.vue
@@ -15,10 +15,12 @@
import SoilGroundwater from '@components/table/components/SoilGroundwater'
import WasteGas from '@components/table/components/WasteGas'
import SolidWaste from '@components/table/components/WasteSolid'
import AirQuality from '@components/table/components/AirQuality'
import PollutionSource from '@components/table/components/PollutionSource'
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'
export default {
  name: 'tabHandover',
  components: {
@@ -26,14 +28,17 @@
    // WasteGas,
    // SoilGroundwater,
    SolidWaste,
    AirQuality
    PollutionSource,
    EnvironmentalRisk,
    Pipeline,
    CorporateEmergency
  },
  data () {
    return {
      titleProp: '',
      activeName: 'gcComp',
      topicList: TopicList,
      gcComp: AirQuality
      activeName: '污染源',
      topicList: TopicList, // tab项
      gcComp: PollutionSource // 默认显示污染源内容
    }
  },
  methods: {
@@ -41,10 +46,9 @@
      this.titleProp = item
    },
    handleClick (tab, event) {
      console.log(tab.label)
      switch (tab.label) {
        case '污染源':
          this.gcComp = AirQuality
          this.gcComp = PollutionSource
          break
        case '废水':
          this.gcComp = WasteWater
@@ -56,13 +60,16 @@
          this.gcComp = SolidWaste
          break
        case '环境风险':
          this.gcComp = AirQuality
          this.gcComp = EnvironmentalRisk
          break
        case '土壤及地下水':
          this.gcComp = SoilGroundwater
          break
        case '管线':
          this.gcComp = AirQuality
          this.gcComp = Pipeline
          break
        case '企业应急':
          this.gcComp = CorporateEmergency
          break
      }
    }
src/conf/Constants.js
@@ -23,7 +23,11 @@
  sewersAreaGs: 'Company.js',
  pipesegment: 'PipeLineAnimal.js',
  pollutionSources: 'SourcesPollution.js',
  envRiskChart: 'EnvironmentRisk.js'
  envRiskChart: 'EnvironmentRisk.js', // 风险统计图
  envRiskMajor: 'RiskSource.js', // 重大风险源
  envRiskFirst: 'RiskSource.js', // 一级风险源
  envRiskSecond: 'RiskSource.js', // 二级风险源
  envRiskThird: 'RiskSource.js' // 三级风险源
}
export const STYLES = {
src/conf/Topic.js
@@ -47,14 +47,14 @@
  isShow: false,
  icon: 'iconditu',
  comp: ''
}, {
}, /* {
  name: '土壤及地下水',
  id: 6,
  checked: false,
  isShow: false,
  icon: 'icondxs_green',
  comp: ''
}, {
} */ {
  name: '管线',
  id: 7,
  checked: false,
src/conf/layers/LayerEnvRisk.js
@@ -14,20 +14,21 @@
      checked: false, // 默认选中状态
      color: ''
    },
    {
      code: 'envRiskMaterial',
      name: '物资库',
      sname: '物资库',
      checked: false, // 默认选中状态
      color: ''
    },
    // {
    //   code: 'envRiskMaterial',
    //   name: '物资库',
    //   sname: '物资库',
    //   checked: false, // 默认选中状态
    //   color: ''
    // },
    {
      code: 'envRiskMajor',
      name: '重大风险',
      sname: '重大风险',
      checked: false, // 默认选中状态
      minZoom: 10,
      color: 'red'
      color: 'red',
      level: 0
    },
    {
      code: 'envRiskFirst',
@@ -36,7 +37,8 @@
      checked: false, // 默认选中状态
      type: 0,
      minZoom: 10,
      color: 'sandybrown'
      color: 'sandybrown',
      level: 1
    },
    {
      code: 'envRiskSecond',
@@ -45,7 +47,8 @@
      checked: false,
      type: 0,
      minZoom: 10,
      color: 'yellow'
      color: 'yellow',
      level: 2
    },
    {
      code: 'envRiskThird',
@@ -54,7 +57,8 @@
      checked: false,
      type: 0,
      minZoom: 10,
      color: 'green'
      color: 'green',
      level: 3
    }
  ]
}
src/utils/axios.js
@@ -191,11 +191,12 @@
    params: $T.filterParams(params)
  })
}
$http.post = function (url, data = {}) {
$http.post = function (url, data = {}, setHeaders) {
  return Service({
    url: url,
    method: 'post',
    data: data
    data: data,
    headers: setHeaders || { 'Content-Type': 'application/json; charset=UTF-8' }
  })
}
$http.put = function (url, data = {}) {
src/views/MapTemplate.vue
@@ -44,7 +44,7 @@
import Emergency from '@components/emergency/index'
import MapManager from '../components/helpers/MapManager'
import Message from '@components/message/index'
import EventsReported from '../components/base-page/enterprise-emergency/EventsReported'
import EventsReported from '../components/base-page/enterprise-emergency/events-reported/EventsReported'
export default {
  name: 'MapTemplate',