派生自 wuyushui/SewerAndRainNetwork

yangdelong
2021-05-26 3072da92f3c3f08b2ee0ca03ee4e74b12f545b0e
Merge remote-tracking branch 'origin/develop' into develop

# Conflicts:
# src/components/panel/topicSearch/enterprise-emergency/EventQuery.vue
5个文件已添加
18个文件已修改
1823 ■■■■ 已修改文件
public/assets/images/map/emergency/file.png 补丁 | 查看 | 原始文档 | blame | 历史
public/assets/images/map/emergency/fold.png 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/css/map/map-panel-style.less 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/base-page/enterprise-emergency/EventsReported.vue 467 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/base-page/enterprise-emergency/PipelineFile.vue 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/base-page/enterprise-emergency/PositionChange.vue 188 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/base-page/enterprise-emergency/ReportFile.vue 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/base-page/enterprise-emergency/ReportIncident.vue 77 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/base-page/enterprise-emergency/ReportLocation.vue 365 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/panel/topicSearch/DischargeSearch.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/panel/topicSearch/EnvRiskSearch.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/panel/topicSearch/GasWasteSearch.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/panel/topicSearch/SewersSearch.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/panel/topicSearch/SoilGroundWaterSearch.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/panel/topicSearch/SolidWasteSearch.vue 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/panel/topicSearch/WaterWasteSearch.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/panel/topicSearch/enterprise-emergency/EventQuery.vue 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/panel/topicSearch/enterprise-emergency/ResourcesQuery.vue 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/panel/topicSearch/pipeChangesSearch.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/panel/topicSearch/pipeInformationSearch.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/panel/topicSearch/sewers-select/SewersHistory.vue 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/table/summarySheets.vue 170 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/MapTemplate.vue 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/assets/images/map/emergency/file.png
public/assets/images/map/emergency/fold.png
src/assets/css/map/map-panel-style.less
@@ -828,3 +828,10 @@
  padding: 5px;
  color: #f2f2f2;
}
/************搜索数据分页功能总数量样式添加************/
.page_total {
  text-align: right;
  margin: 5px 0;
  color: @color;
}
src/components/base-page/enterprise-emergency/EventsReported.vue
New file
@@ -0,0 +1,467 @@
<template>
    <div class="event-report">
<!--        :rules="rules"-->
<!--        :show-close="false"-->
        <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="el-dialog--center"
                :visible.sync="dialogLocation"
                :append-to-body="true"
                :modal="false"
                v-dialogDragBottom
        >
            <ReportLocation @locationClick="getlocaltionClick"></ReportLocation>
        </el-dialog>
    </div>
</template>
<script>
import ReportLocation from '../../../components/base-page/enterprise-emergency/ReportLocation'
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
    }
  },
  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()
    },
    // form表单的取消按钮点击事件 重置信息
    resetForm (formName) {
      this.$refs[formName].resetFields()
    }
  }
}
</script>
<style lang="less" scoped>
    .event-report {
        margin: 0 10px !important;
    }
    /deep/ .el-dialog--center {
        /*left: 5.3rem !important;*/
        margin-top: 0.13979rem !important;
        margin-left: 5.5rem !important;
    }
    /*.event-report-dialog {*/
    /*    left: 2rem !important;*/
    /*    top: 0.73979rem !important;*/
    /*}*/
    /deep/ .el-dialog {
        width: 20%;
    }
    /deep/.el-dialog__header {
        /*display: none;*/
        /*max-height: 0.05rem !important;*/
        border: none !important;
    }
    .way-to {
        /deep/ .el-form-item__content {
            display: flex;
            /*.el-button {*/
            /*    margin-right: 30px;*/
            /*}*/
        }
    }
    /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 {
        /*width: 145px;*/
        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/PipelineFile.vue
@@ -1,6 +1,6 @@
<template>
    <div class="pipeline-file map-background" v-show="pipelineFile">
        <el-row style="margin: 0 15px">
        <el-row style="margin: 5px 15px">
            <el-form ref="form" :model="form" label-width="80px">
                <el-col :span="12">
                    <el-form-item label="管线名称">
@@ -22,11 +22,32 @@
                </el-col>
            </el-form>
        </el-row>
        <div v-for="(item,index) in folderList" :key="index">
            <div class="fold-box">
                <img :src="item.fold" alt="" @click="fileAccord(item)"/>
                <span @click="fileAccord(item)">{{ item.introduce }}</span>
            </div>
            <div v-for="(ite,ind) in item.items" :key="ind" v-show="item.fileCode" class="file">
                <!--                <el-col :span="12">-->
                <div class="file-left">
                    <img :src="ite.file" alt="" @click="codeAccord(ite)"/>
                    <span @click="codeAccord(ite)">{{ite.introduce}}</span>
                </div>
                <div class="file-right">
                    <span v-show="ite.fileCode">{{item.code}}</span>
                </div>
                <!--                </el-col>-->
                <!--                <el-col :span="12">-->
                <!--                </el-col>-->
            </div>
        </div>
    </div>
</template>
<script>
import eventBus from '../../../eventBus'
import foldPng from '../../../../public/assets/images/map/emergency/fold.png'
import filePng from '../../../../public/assets/images/map/emergency/file.png'
export default {
  name: 'PipelineFile',
@@ -36,7 +57,49 @@
      form: {
        pipeName: '',
        pipeCode: ''
      }
      },
      folderList: [
        {
          fold: foldPng,
          introduce: '生产一区',
          code: '400001',
          fileCode: false,
          items: [
            {
              file: filePng,
              introduce: '管线A',
              code: '1000001',
              fileCode: false
            },
            {
              file: filePng,
              introduce: '管线B',
              code: '2000002',
              fileCode: false
            }
          ]
        },
        {
          fold: foldPng,
          introduce: '生产二区',
          code: '400002',
          fileCode: false,
          items: [
            {
              file: filePng,
              introduce: '管线C',
              code: '3000003',
              fileCode: false
            },
            {
              file: filePng,
              introduce: '管线D',
              code: '4000004',
              fileCode: false
            }
          ]
        }
      ]
    }
  },
  mounted () {
@@ -44,17 +107,27 @@
      // console.log(obj)
      this.pipelineFile = obj
    })
  },
  methods: {
    fileAccord (item) {
      item.fileCode = !item.fileCode
    },
    codeAccord (item) {
      item.fileCode = !item.fileCode
    }
  }
}
</script>
<style lang="less" scoped>
    .pipeline-file {
        min-width: 2.94532rem;
        min-width: 1.94532rem;
        max-width: 1.94532rem;
    }
    /*/deep/ .el-input {*/
    /*    width: 65%;*/
    /*    margin: 0 auto;*/
    /*}*/
    .file {
        display: flex;
        align-items: center;
        justify-content: space-evenly;
    }
</style>
src/components/base-page/enterprise-emergency/PositionChange.vue
@@ -1,6 +1,6 @@
<template>
    <div class="side-box map-background" v-show="location">
        <el-tabs v-model="activeName" @tab-click="handleClick">
        <el-tabs v-model="activeName">
            <el-tab-pane label="点击定位" name="first">
                <div class="click-location">
                    <el-input v-model="clickLocation"></el-input>
@@ -10,26 +10,30 @@
            <el-tab-pane label="管段定位" name="second">
                <div class="place">
                    <div class="place-top">
                        <div class="place-left">
                            <el-form :model="linePos" label-width="90px">
                                <el-form-item label="管线名称:">
                                    <el-input v-model="linePos.lineName"></el-input>
                                </el-form-item>
                                <el-form-item label="附属设施:">
                                    <el-select v-model="linePos.affFac">
                                        <el-option
                                                v-for="item in linePos.affFacList"
                                                :key="item.value"
                                                :label="item.label"
                                                :value="item.value">
                                        </el-option>
                                    </el-select>
                                </el-form-item>
                            </el-form>
                        </div>
                        <div class="place-right">
                            <el-button type="primary" size="small" @click="fileChoose">搜索</el-button>
                        </div>
                        <!--                        <div class="place-left">-->
                        <el-form :model="linePos" label-width="90px">
                            <el-row class="elrow">
                                <el-col :span="16">
                                    <el-form-item label="管线名称:">
                                        <el-input v-model="linePos.lineName"></el-input>
                                    </el-form-item>
                                </el-col>
                                <el-col :span="8" style="vertical-align: middle !important;">
                                    <el-button type="primary" size="mini" @click="fileChoose">...</el-button>
                                    <el-button type="primary" size="mini" @click="tableAccod">搜索</el-button>
                                </el-col>
                            </el-row>
                            <el-form-item label="附属设施:">
                                <el-select v-model="linePos.affFac">
                                    <el-option
                                            v-for="item in linePos.affFacList"
                                            :key="item.value"
                                            :label="item.label"
                                            :value="item.value">
                                    </el-option>
                                </el-select>
                            </el-form-item>
                        </el-form>
                    </div>
                    <div class="place-bottom">
                        <el-button type="primary" @click="confirm">确认</el-button>
@@ -59,6 +63,38 @@
                </div>
            </el-tab-pane>
        </el-tabs>
        <div class="pipe-table" v-show="pipeTable">
            <el-table
                    :data="tableData.slice((currentPage-1)*pageSize,currentPage*pageSize)"
                    border
                    style="width: 100%">
                <el-table-column
                        prop="number"
                        label="序号">
                </el-table-column>
                <el-table-column
                        prop="seares"
                        label="搜索结果">
                </el-table-column>
                <el-table-column
                        prop="restype"
                        label="结果类型">
                </el-table-column>
            </el-table>
<!--            <el-card class="footer-page" v-if="total >= 0">-->
                <el-pagination
                        mini
                        @size-change="handleSizeChange"
                        @current-change="handlePage"
                        :page-size=pageSize
                        :current-page="currentPage"
                        layout="prev, pager, next"
                        :total=total
                        class="warnPagination"
                >
                </el-pagination>
<!--            </el-card>-->
        </div>
    </div>
</template>
@@ -70,8 +106,17 @@
  props: ['location'],
  data () {
    return {
      // 接收数据 控制页面展示/隐藏
      pipelineFile: false,
      // active tab切换
      activeName: 'first',
      // 管段查询table
      pipeTable: false,
      // 分页功能
      pageSize: 3,
      total: 0,
      currentPage: 1,
      // 点击定位绑定数据
      clickLocation: '',
      // 经纬度定位
      LongLatPos: {
@@ -93,7 +138,35 @@
          }
        ]
      },
      fileChoChange: false
      fileChoChange: false,
      tableData: [
        {
          number: 1,
          seares: '20路雨水管线',
          restype: '管线名称'
        }, {
          number: 2,
          seares: '20路雨水管线',
          restype: '管线名称'
        }, {
          number: 3,
          seares: '100020',
          restype: '管段编码'
        },
        {
          number: 4,
          seares: '20路雨水管线',
          restype: '管线名称'
        }, {
          number: 5,
          seares: '20路雨水管线',
          restype: '管线名称'
        }, {
          number: 6,
          seares: '100020',
          restype: '管段编码'
        }
      ]
    }
  },
  mounted () {
@@ -103,8 +176,15 @@
    })
  },
  methods: {
    // tab 切换用于判断
    handleClick (tab) {
    // 分页功能 currentPage 改变时会触发
    handlePage (val) {
      // console.log(val)
      this.currentPage = val
    },
    // 分页功能 pageSize 改变时会触发
    handleSizeChange (val) {
      // console.log(val)
      this.pageSize = val
    },
    // 点击文件选择 显示第三级页面 进行管线/段选择
    fileChoose () {
@@ -117,12 +197,70 @@
      this.$emit('localCation', false)
      // 通过bus 控制三级附属弹框的隐藏
      eventBus.$emit('pipelineFile-choose', false)
    },
    // 管段查询表格展示
    tableAccod () {
      this.pipeTable = !this.pipeTable
    }
  }
}
</script>
<style lang="less" scoped>
    /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;
        }
    }
    .elrow {
        display: flex;
        align-items: center;
        justify-content: space-around;
    }
    .side-box {
        min-width: 1.94532rem;
@@ -134,7 +272,7 @@
        text-align: center;
        .el-input {
            width: 90%;
            width: 80%;
            margin: 15px auto;
        }
src/components/base-page/enterprise-emergency/ReportFile.vue
New file
@@ -0,0 +1,139 @@
<template>
    <div class="report-file-box">
        <el-row style="margin: 5px 15px">
            <el-form ref="form" :model="form" label-width="80px">
                <el-col :span="12">
                    <el-form-item label="管线名称">
                        <el-input v-model="form.pipeName">
                            <el-button style="padding-right:10px;" slot="suffix" type="text">
                                <img src="../../../../public/assets/images/map/emergency/search.png" alt="">
                            </el-button>
                        </el-input>
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="管段编码">
                        <el-input v-model="form.pipeCode">
                            <el-button style="padding-right:10px;" slot="suffix" type="text">
                                <img src="../../../../public/assets/images/map/emergency/search.png" alt="">
                            </el-button>
                        </el-input>
                    </el-form-item>
                </el-col>
            </el-form>
        </el-row>
        <div v-for="(item,index) in folderList" :key="index">
            <div class="fold-box">
                <img :src="item.fold" alt="" @click="fileAccord(item)"/>
                <span @click="fileAccord(item)">{{ item.introduce }}</span>
            </div>
            <div v-for="(ite,ind) in item.items" :key="ind" v-show="item.fileCode" class="file">
                <div class="file-left">
                    <img :src="ite.file" alt="" @click="codeAccord(ite)"/>
                    <span @click="codeAccord(ite)">{{ite.introduce}}</span>
                </div>
                <div class="file-right">
                    <span v-show="ite.fileCode">{{item.code}}</span>
                </div>
            </div>
        </div>
    </div>
</template>
<script>
import eventBus from '../../../eventBus'
import foldPng from '../../../../public/assets/images/map/emergency/fold.png'
import filePng from '../../../../public/assets/images/map/emergency/file.png'
export default {
  name: 'ReportFile',
  data () {
    return {
      pipelineFile: false,
      form: {
        pipeName: '',
        pipeCode: ''
      },
      folderList: [
        {
          fold: foldPng,
          introduce: '生产一区',
          code: '400001',
          fileCode: false,
          items: [
            {
              file: filePng,
              introduce: '管线A',
              code: '1000001',
              fileCode: false
            },
            {
              file: filePng,
              introduce: '管线B',
              code: '2000002',
              fileCode: false
            }
          ]
        },
        {
          fold: foldPng,
          introduce: '生产二区',
          code: '400002',
          fileCode: false,
          items: [
            {
              file: filePng,
              introduce: '管线C',
              code: '3000003',
              fileCode: false
            },
            {
              file: filePng,
              introduce: '管线D',
              code: '4000004',
              fileCode: false
            }
          ]
        }
      ]
    }
  },
  mounted () {
    eventBus.$on('pipelineFile-choose', (obj) => {
      // console.log(obj)
      this.pipelineFile = obj
    })
  },
  methods: {
    fileAccord (item) {
      item.fileCode = !item.fileCode
    },
    codeAccord (item) {
      item.fileCode = !item.fileCode
    }
  }
}
</script>
<style lang="less" scoped>
    .file {
        display: flex;
        align-items: center;
        justify-content: space-evenly;
    }
    /deep/ .el-input__inner {
        border-radius: 5px;
        background: rgba(0, 16, 30, 0.5);
        border-color: @color;
    }
    /deep/ .el-form-item__label {
        color: @color;
    }
    /deep/ .el-radio__label {
        color: @color;
    }
</style>
src/components/base-page/enterprise-emergency/ReportIncident.vue
@@ -17,9 +17,12 @@
                    <!--            事件类型-->
                    <el-form-item label="事件类型" prop="eventOfType">
                        <el-radio-group v-model="ruleForm.eventOfType">
                            <el-radio v-for="(item,index) in ruleForm.eventOfTypeList" :label="item.value" :key="index">
                                <span>{{ item.name }}</span>
                            </el-radio>
                            <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>
                    <!--            事件等级-->
@@ -99,19 +102,15 @@
                        <el-upload
                                class="upload-demo"
                                action="uploadAction"
                                :on-preview="handlePreview"
                                :on-remove="handleRemove"
                                :before-remove="beforeRemove"
                                multiple
                                :limit="3"
                                :on-exceed="handleExceed"
                                :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="infotsChange">
                        <el-checkbox-group v-model="ruleForm.beingPushed" @change="infoChange">
                            <el-checkbox v-for="item in ruleForm.beingPushList"
                                         :key="item.name"
                                         :label="item.name"
@@ -141,7 +140,7 @@
            </div>
        </div>
        <div class="local-box">
            <PositionChange :location="location" @localCation="getlocalCation"></PositionChange>
            <PositionChange :location="location" @localCation="getLocalCation"></PositionChange>
        </div>
        <div class="file-box">
            <PipelineFile></PipelineFile>
@@ -151,6 +150,7 @@
<script>
import '../../../utils/dragBoxes'
import eventBus from '../../../eventBus'
// 引入组件
import PositionChange from './PositionChange'
import PipelineFile from './PipelineFile'
@@ -164,8 +164,6 @@
    return {
      // 判断弹框是否能展示 temp=>临时true 开发
      eventsReported: false,
      // eventsReported: true,
      saveSuccess: false,
      // 表单绑定数据
      ruleForm: {
        // 事件名称 绑定数据
@@ -175,16 +173,24 @@
        // 事件类型可选择数据radio 绑定数据
        eventOfTypeList: [
          {
            name: '待补充',
            name: '海(水)上溢油污染',
            value: 1
          },
          {
            name: '待补充',
            name: '油气管道泄漏污染',
            value: 2
          },
          {
            name: '待补充',
            name: '辐射污染',
            value: 3
          },
          {
            name: '生态环境破坏',
            value: 4
          },
          {
            name: '其他',
            value: 5
          }
        ],
        // 事件等级
@@ -256,6 +262,10 @@
        // 接收人员
        receiveOne: ''
      },
      // 上传列表
      fileList: [],
      // 上传地址
      uploadAction: '',
      // 表单验证
      rules: {
        // 事件名称校验
@@ -321,12 +331,8 @@
      },
      // 描述 接收 => 展示/隐藏
      wayTo: false,
      location: false,
      // 上传列表
      fileList: [],
      // 上传地址
      uploadAction: '',
      getLocalInfo: ''
      // 控制显示定位二级页面展示/隐藏
      location: false
    }
  },
  mounted () {
@@ -340,7 +346,7 @@
  },
  methods: {
    // 消息推送 选择推送的对象
    infotsChange () {
    infoChange () {
      if (this.ruleForm.beingPushed.indexOf('短信推送') > -1 || this.ruleForm.beingPushed.indexOf('手机应用推送') > -1) {
        this.wayTo = true
      } else {
@@ -357,7 +363,7 @@
      eventBus.$emit('tab-change', 'first')
    },
    // 接收子组件 传递 数据 进行 二级 附属框的显示/隐藏
    getlocalCation (value) {
    getLocalCation (value) {
      // console.log(value)
      this.location = value
    },
@@ -365,13 +371,18 @@
    submitForm (formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
          alert('submit!')
          // alert('submit!')
          this.$message({
            message: '事件上报提交成功',
            type: 'success'
          })
        } else {
          console.log('error submit!!')
          this.$message('事件上报提交失败')
          return false
        }
      })
      this.eventsReported = false
      this.circlePopup()
      this.$refs[formName].resetFields()
    },
    // 点击关闭 事件上报
    circlePopup () {
@@ -380,21 +391,7 @@
    // form表单的取消按钮点击事件 重置信息
    resetForm (formName) {
      this.$refs[formName].resetFields()
      this.eventsReported = false
    },
    // 点击上传 的取消上传事件
    handleRemove (file, fileList) {
      console.log(file, fileList)
    },
    // 点击上传 的上传事件
    handlePreview (file) {
      console.log(file)
    },
    handleExceed (files, fileList) {
      this.$message.warning(`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`)
    },
    beforeRemove (file, fileList) {
      return this.$confirm(`确定移除 ${file.name}?`)
      this.circlePopup()
    }
  }
}
src/components/base-page/enterprise-emergency/ReportLocation.vue
New file
@@ -0,0 +1,365 @@
<template>
    <div class="report-location-box">
        <div class="report-location">
            <el-tabs v-model="activeName">
                <el-tab-pane label="点击定位" name="first">
                    <div class="click-location">
                        <el-row>
                            <el-input type="text" v-model="clickLocation" clearable @focus="focusLocation"></el-input>
                        </el-row>
                        <el-row>
                            <el-button type="primary" @click="confirm">确认</el-button>
                        </el-row>
                    </div>
                </el-tab-pane>
                <el-tab-pane label="管段定位" name="second">
                    <div class="place">
                        <div class="place-top">
                            <!--                        <div class="place-left">-->
                            <el-form :model="linePos" label-width="90px">
                                <el-row class="elrow">
                                    <el-col :span="16">
<!--                                        管段编码-->
                                        <el-form-item label="管线名称:">
                                            <el-input v-model="linePos.lineName"></el-input>
                                        </el-form-item>
                                    </el-col>
                                    <el-col :span="8" style="vertical-align: middle !important;">
                                        <el-button type="primary" size="mini" @click="fileChoose">...</el-button>
                                        <el-button type="primary" size="mini" @click="tableAccod">搜索</el-button>
                                    </el-col>
                                </el-row>
                                <el-form-item label="附属设施:">
                                    <el-select v-model="linePos.affFac">
                                        <el-option
                                                v-for="item in linePos.affFacList"
                                                :key="item.code"
                                                :label="item.name"
                                                :value="item.code">
                                        </el-option>
                                    </el-select>
                                </el-form-item>
                            </el-form>
                        </div>
                        <div class="place-bottom">
                            <el-button type="primary" @click="confirm">确认</el-button>
                        </div>
                    </div>
                    <div class="pipe-table" v-show="pipeTable">
                        <el-table
                                :data="tableData.slice((currentPage-1)*pageSize,currentPage*pageSize)"
                                border
                                style="width: 100%">
                            <el-table-column
                                    prop="number"
                                    label="序号">
                            </el-table-column>
                            <el-table-column
                                    prop="seares"
                                    label="搜索结果">
                            </el-table-column>
                            <el-table-column
                                    prop="restype"
                                    label="结果类型">
                            </el-table-column>
                        </el-table>
                        <!--            <el-card class="footer-page" v-if="total >= 0">-->
                        <el-pagination
                                mini
                                @size-change="handleSizeChange"
                                @current-change="handlePage"
                                :page-size=pageSize
                                :current-page="currentPage"
                                layout="prev, pager, next"
                                :total=total
                                class="warnPagination"
                        >
                        </el-pagination>
                        <!--            </el-card>-->
                    </div>
                </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">
                        <el-button type="primary" @click="confirm">确认</el-button>
                    </div>
                </el-tab-pane>
            </el-tabs>
        </div>
        <el-dialog
                custom-class="el-dialog--center"
                :visible.sync="dialogFile"
                :append-to-body="true"
                :modal="false"
                v-dialogDragBottom
        >
            <ReportFile></ReportFile>
        </el-dialog>
    </div>
</template>
<script>
import eventBus from '../../../eventBus'
import ReportFile from '../../../components/base-page/enterprise-emergency/ReportFile'
import { LayerFsss } from '../../../conf/layers/LayerFsss'
export default {
  name: 'ReportLocation',
  components: {
    ReportFile
  },
  data () {
    return {
      dialogFile: false,
      pipelineFile: false,
      // active tab切换
      activeName: 'first',
      // 管段查询table
      pipeTable: false,
      // 分页功能
      pageSize: 3,
      total: 0,
      currentPage: 1,
      // 点击定位绑定数据
      clickLocation: '',
      // 经纬度定位
      LongLatPos: {
        longPos: '',
        latPos: ''
      },
      // 管段定位
      linePos: {
        lineName: '',
        affFac: '',
        affFacList: LayerFsss.layers
      },
      tableData: [
        {
          number: 1,
          seares: '20路雨水管线',
          restype: '管线名称'
        }, {
          number: 2,
          seares: '20路雨水管线',
          restype: '管线名称'
        }, {
          number: 3,
          seares: '100020',
          restype: '管段编码'
        },
        {
          number: 4,
          seares: '20路雨水管线',
          restype: '管线名称'
        }, {
          number: 5,
          seares: '20路雨水管线',
          restype: '管线名称'
        }, {
          number: 6,
          seares: '100020',
          restype: '管段编码'
        }
      ]
    }
  },
  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
      this.clickLocation = '\'' + pointX + '\'' + pointY + ''
      this.mapPointResult(e)
    },
    mapPointResult (e) {
      console.log(e)
      this.LongLatPos.longPos = e.latlng.lng
      this.LongLatPos.latPos = e.latlng.lat
    },
    // 获得焦点 进行定位
    focusLocation () {
      this.selectPipeLine()
    },
    // 经纬度定位
    mapPoints () {
      this.selectPipeLine()
    },
    // 分页功能 currentPage 改变时会触发
    handlePage (val) {
      // console.log(val)
      this.currentPage = val
    },
    // 分页功能 pageSize 改变时会触发
    handleSizeChange (val) {
      // console.log(val)
      this.pageSize = val
    },
    // 点击文件选择 显示第三级页面 进行管线/段选择
    fileChoose () {
      this.dialogFile = !this.dialogFile
    },
    // 点击确认按钮事件
    confirm () {
      // 通过子组件向父组件传递数据
      this.$emit('locationClick', this.LongLatPos)
      this.clickLocation = ''
      this.LongLatPos.longPos = ''
      this.LongLatPos.latPos = ''
    },
    // 管段查询表格展示
    tableAccod () {
      this.pipeTable = !this.pipeTable
    }
  }
}
</script>
<style lang="less" scoped>
    /deep/ .el-dialog--center {
        /*left: 2rem !important;*/
        margin-left: 8rem !important;
        margin-top: 0.13979rem !important;
    }
    /deep/ .el-dialog {
        width: 20%;
    }
    .place-box {
        display: flex;
        align-items: center;
        justify-content: space-around;
    }
    #pane-third {
        text-align: center;
    }
    /*/deep/ .el-dialog .el-dialog__header {*/
    /*    display: none;*/
    /*}*/
    /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;
        }
    }
    .elrow {
        display: flex;
        align-items: center;
        justify-content: space-around;
    }
    .event-report-dialog {
        min-width: 1.94532rem;
        max-width: 1.94532rem;
    }
    .click-location {
        margin: 0 auto;
        text-align: center;
        .el-input {
            width: 80%;
            margin: 15px auto;
        }
        .el-button {
            margin: 15px auto;
        }
    }
    .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/panel/topicSearch/DischargeSearch.vue
@@ -39,6 +39,12 @@
                  <el-radio  v-for="(item,index) in levelOfRisk" :label="item.value" :key="index"><span class="levelOfRisk-type">{{item.name}}<i :style="'background:'+item.color"></i></span></el-radio>
                </el-radio-group> -->
                <!--              <el-form-item >-->
                <div class="page_total">
                    <p>共计
                        <span>{{total}}</span>
                        条记录
                    </p>
                </div>
                <div class="rightButtonSearch">
                    <el-input v-model="form.keyword" size="mini" placeholder="在此输入关键字搜索"></el-input>
                    <el-button class="el-icon-search" @click="handleSearch"></el-button>
@@ -128,6 +134,7 @@
      gdVisible: true,
      list: [],
      total: 0,
      pageSize: 10,
      inareaTypeOptions: [],
      enterpriseTypeOptions: [],
      enterpriseSubunitsTypeOptions: [],
@@ -168,6 +175,9 @@
  },
  props: ['title'],
  methods: {
    handlePage () {
    },
    flyto () {
      const pos = [39.90751504898071, 116.38927817344666]
      window.map.setView(pos, 15)
src/components/panel/topicSearch/EnvRiskSearch.vue
@@ -37,6 +37,12 @@
        <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}}<i :style="'background:'+item.color"></i></span></el-radio>
        </el-radio-group>
        <div class="page_total">
          <p>共计
            <span>{{total}}</span>
            条记录
          </p>
        </div>
        <div class="rightButtonSearch">
          <el-input  v-model="form.keyword" size="mini"  placeholder="在此输入关键字搜索">
          </el-input>
src/components/panel/topicSearch/GasWasteSearch.vue
@@ -48,6 +48,12 @@
          <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">
          <p>共计
            <span>{{total}}</span>
            条记录
          </p>
        </div>
        <div class="rightButtonSearch">
          <el-input  v-model="form.keyword" size="mini"  placeholder="在此输入关键字搜索">
            <!-- <el-button slot="append" icon="el-icon-search" size="mini"></el-button>-->
@@ -109,6 +115,8 @@
      gdVisible: true,
      list: [],
      total: 0,
      // 分页
      pageSize: 10,
      inareaTypeOptions: [],
      enterpriseTypeOptions: [],
      enterpriseSubunitsTypeOptions: [],
@@ -130,6 +138,11 @@
    }
  },
  methods: {
    // 页面切换 分页功能
    handlePage (page) {
      // this.wfsHelper.setPage(page)
      this.handleSearch()
    },
    // 区域筛选
    areaType (val) {
      this.pipelineTypeOptions.forEach((itm) => {
src/components/panel/topicSearch/SewersSearch.vue
@@ -27,6 +27,12 @@
                                </el-option>
                            </el-select>
                        </el-form-item>
                        <div class="page_total">
                            <p>共计
                                <span>{{total}}</span>
                                条记录
                            </p>
                        </div>
                        <div class="rightButtonSearch">
                            <el-input v-model="form.keyword" size="mini" placeholder="在此输入关键字搜索"></el-input>
                            <el-button class="el-icon-search" @click="handleSearch"></el-button>
src/components/panel/topicSearch/SoilGroundWaterSearch.vue
@@ -38,6 +38,12 @@
                  <el-radio  v-for="(item,index) in levelOfRisk" :label="item.value" :key="index"><span class="levelOfRisk-type">{{item.name}}<i :style="'background:'+item.color"></i></span></el-radio>
                </el-radio-group> -->
                <!--              <el-form-item >-->
                <div class="page_total">
                    <p>共计
                        <span>{{total}}</span>
                        条记录
                    </p>
                </div>
                <div class="rightButtonSearch">
                    <el-input  v-model="form.keyword" size="mini"  placeholder="在此输入关键字搜索">
                        <!-- <el-button slot="append" icon="el-icon-search" size="mini"></el-button>-->
src/components/panel/topicSearch/SolidWasteSearch.vue
@@ -30,6 +30,12 @@
                        <span class="levelOfRisk-type">{{ item.name }}</span>
                    </el-radio>
                </el-radio-group>
                <div class="page_total">
                    <p>共计
                        <span>{{total}}</span>
                        条记录
                    </p>
                </div>
                <div class="rightButtonSearch">
                    <el-input v-model="form.keyword" size="mini" placeholder="在此输入关键字搜索"></el-input>
                    <el-button class="el-icon-search" @click="handleSearch"></el-button>
@@ -47,6 +53,17 @@
                </div>
            </div>
        </el-scrollbar>
        <el-card class="footer-page" v-if="total > 10">
            <el-pagination
                    small
                    @current-change="handlePage"
                    :page-size=pageSize
                    layout="prev, pager, next"
                    :total=total
                    class="warnPagination"
            >
            </el-pagination>
        </el-card>
    </div>
</template>
@@ -87,10 +104,18 @@
      // 数据搜索之后,存储数据的
      items: [LayerWasteSolid],
      subItems: LayerWasteSolid.layers,
      list: []
      list: [],
      total: 0,
      // 分页
      pageSize: 10
    }
  },
  methods: {
    // 页面切换 分页功能
    handlePage (page) {
      // this.wfsHelper.setPage(page)
      this.handleSearch()
    },
    // select的option的数据选择
    handlePipelineType (val) {
      this.list = []
src/components/panel/topicSearch/WaterWasteSearch.vue
@@ -53,6 +53,12 @@
                            class="levelOfRisk-type">{{item.name}}</span></el-radio>
                </el-radio-group>
                <!--              <el-form-item >-->
                <div class="page_total">
                    <p>共计
                        <span>{{total}}</span>
                        条记录
                    </p>
                </div>
                <div class="rightButtonSearch">
                    <el-input v-model="form.keyword" size="mini" placeholder="在此输入关键字搜索">
                        <!-- <el-button slot="append" icon="el-icon-search" size="mini"></el-button>-->
@@ -114,7 +120,10 @@
    return {
      gdVisible: true,
      list: [],
      // 搜索到的数据数量
      total: 0,
      // 分页
      pageSize: 10,
      inareaTypeOptions: [],
      enterpriseTypeOptions: [],
      enterpriseSubunitsTypeOptions: [],
@@ -153,6 +162,11 @@
    }
  },
  methods: {
    // 页面切换 分页功能
    handlePage (page) {
      // this.wfsHelper.setPage(page)
      this.handleSearch()
    },
    // 区域筛选
    areaType (val) {
      this.pipelineTypeOptions.forEach((itm) => {
src/components/panel/topicSearch/enterprise-emergency/EventQuery.vue
@@ -32,6 +32,13 @@
                        </el-radio>
                    </el-radio-group>
                </el-form-item>
                <el-button type="primary" small @click="dialogVisibleChange">事件上报</el-button>
                <div class="page_total">
                    <p>共计
                        <span>{{total}}</span>
                        条记录
                    </p>
                </div>
                <div class="rightButtonSearch">
                    <el-input v-model="form.keyword" size="mini" placeholder="在此输入关键字搜索"></el-input>
                    <el-button class="el-icon-search" @click="handleSearch"></el-button>
@@ -62,7 +69,8 @@
                <div>
                    <h3>
                        <span @click="disposalfx">件名称:XXX事件</span>
                        <el-button class="rt btn00fff6" size="mini" style="margin-right: 0.04rem;" @click="startAnalysis">
                        <el-button class="rt btn00fff6" size="mini" style="margin-right: 0.04rem;"
                                   @click="startAnalysis">
                            <span>开始分析</span>
                        </el-button>
                    </h3>
@@ -76,12 +84,27 @@
                    <p>事件类型:<span>模拟管线事件</span>
                        <el-button class="rt btn00fff6" size="mini" style="margin-right: 0.04rem;"
                                   @click="accordPopup()">
                            <span>事件处置</span>
                            <span>事件管理</span>
                        </el-button>
                    </p>
                </div>
            </div>
        </el-scrollbar>
        <div class="event-report">
            <el-dialog
                    custom-class="el-dialog--center"
                    title="事件上报"
                    :visible.sync="dialogVisible"
                    :append-to-body="true"
                    :modal="false"
                    v-dialogDragBottom
            >
                <EventsReported></EventsReported>
            </el-dialog>
        </div>
<!--        <Dialog ref="EReported" title="事件上报2">-->
<!--            <EventsReported></EventsReported>-->
<!--        </Dialog>-->
    </div>
</template>
@@ -91,23 +114,24 @@
// import AjaxUtils from '@utils/AjaxUtils'
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'
export default {
  name: 'EventQuery',
  components: {
    // DisposalEvent
    // Dialog,
    EventsReported
  },
  data () {
    return {
      dialogVisible: false,
      reportIncident: false,
      list: [],
      total: 0,
      activeNum: -1,
      LayerEvent: {},
      LayerResources: {},
      // items: [LayerEvent, LayerResources],
      // subItems: LayerEntEmer.layers,
      items: [],
      subItems: [],
      form: {
@@ -133,19 +157,12 @@
    // this.wfsHelper = new WfsHelper()
  },
  methods: {
    // 点击事件处理
    dialogVisibleChange () {
      this.dialogVisible = !this.dialogVisible
    },
    // 点击事件管理
    accordPopup () {
      // eventBus.$emit('disposal-analysis', true)
      window.$layer.open({
        content: {
          comp: EventHandling, // 组件
          parent: this, // 父组件
          data: { // 传递的参数
            // info: this.info
          }
        },
        title: '事件处置'
      })
      eventBus.$emit('disposal-analysis', true)
    },
    // 开始分析
    startAnalysis () {
@@ -163,7 +180,6 @@
        title: '事件处置'
      })
    },
    // radio数据选择
    redioChange (item) {
      console.log(item)
@@ -201,5 +217,18 @@
</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;*/
        }
    //}
    /*.event-report {*/
    /deep/ .el-dialog {
            /*width: 30%;*/
            width: 550px;
        }
    /*}*/
</style>
src/components/panel/topicSearch/enterprise-emergency/ResourcesQuery.vue
@@ -34,6 +34,12 @@
                    </el-option>
                </el-select>
            </el-form-item>
            <div class="page_total">
                <p>共计
                    <span>{{total}}</span>
                    条记录
                </p>
            </div>
            <div class="rightButtonSearch">
                <el-input v-model="form.keyword" size="mini" placeholder="在此输入关键字搜索"></el-input>
                <el-button class="el-icon-search" @click="handleSearch"></el-button>
@@ -51,6 +57,17 @@
                <p v-else>地址:<span>{{item.properties.adminzonename}}</span></p>
            </div>
        </el-scrollbar>
        <el-card class="footer-page" v-if="total > 10">
            <el-pagination
                    small
                    @current-change="handlePage"
                    :page-size=pageSize
                    layout="prev, pager, next"
                    :total=total
                    class="warnPagination"
            >
            </el-pagination>
        </el-card>
    </div>
</template>
@@ -84,6 +101,10 @@
      activeNum: -1,
      // 搜索到的数据进行存储的list
      list: [],
      // 搜索到的数据数量
      total: 0,
      // 分页
      pageSize: 10,
      // form表单绑定的图层数据
      items: [LayerEmergencySource, LayerSurroundings],
      subItems: LayerEmergencySource.layers || LayerSurroundings.layers,
@@ -97,6 +118,11 @@
    this.wfsHelper = new WfsHelper()
  },
  methods: {
    // 页面切换 分页功能
    handlePage (page) {
      // this.wfsHelper.setPage(page)
      this.handleSearch()
    },
    // 搜索展示图片根据返回值展示
    getImgSrc (type) {
      // console.log(type)
@@ -107,6 +133,7 @@
    handlePipelineType (val) {
      // console.log(val)
      this.list = []
      this.total = 0
      for (let i = 0; i < this.items.length; i++) {
        const item = this.items[i].name
        if (val === item.name) {
@@ -126,10 +153,12 @@
    handleDataType (val) {
      // console.log(val)
      this.list = []
      this.total = 0
    },
    // 点击搜索事件
    async handleSearch () {
      this.list = []
      this.total = 0
      this.wfsHelper.clearFilter()
      this.wfsHelper.setTypeName(['sewer:view_emergency'])
      this.wfsHelper.setMaxFeatures(100)
@@ -143,9 +172,10 @@
        this.wfsHelper.addLike('name', this.form.keyword)
      }
      const res = await AjaxUtils.GetDataAsynByUrl(this.wfsHelper.getUrl(), {})
      // console.log(res)
      console.log(res)
      if (res instanceof Object && Object.prototype.hasOwnProperty.call(res, 'features')) {
        this.list = res.features
        this.total = res.numberReturned
      }
    },
    // 查询定位功能
src/components/panel/topicSearch/pipeChangesSearch.vue
@@ -21,6 +21,12 @@
                        </el-option>
                    </el-select>
                </el-form-item>
                <div class="page_total">
                    <p>共计
                        <span>{{total}}</span>
                        条记录
                    </p>
                </div>
                <div class="rightButtonSearch">
                    <el-input  v-model="form.keyword" size="mini"  placeholder="在此输入关键字搜索"></el-input>
                    <el-button class="el-icon-search" @click="handleSearch"></el-button>
src/components/panel/topicSearch/pipeInformationSearch.vue
@@ -15,6 +15,12 @@
                        </el-option>
                    </el-select>
                </el-form-item>
                <div class="page_total">
                    <p>共计
                        <span>{{total}}</span>
                        条记录
                    </p>
                </div>
                <div class="rightButtonSearch">
                    <el-input  v-model="form.keyword" size="mini"  placeholder="在此输入关键字搜索"></el-input>
                    <el-button class="el-icon-search" @click="handleSearch"></el-button>
src/components/panel/topicSearch/sewers-select/SewersHistory.vue
@@ -1,52 +1,69 @@
<template>
  <div class="sewers-search" v-if="judgeVisible">
    <div class="search-panel ">
      <el-form ref="form" :model="form" label-width="90px" class="search-form">
        <el-form-item v-for="(item,index) in Options" :key="index" :label="item.label+':'" size="mini"
                      class="search-panel-item">
          <el-select style="width: 100%" v-model="form.pipelineType" @change="handlePipelineType"
                     :popper-class="'select-down'">
            <el-option
                v-for="(ite,index) in item.options"
                :key="index"
                :label="ite.label"
                :value="ite.value">
            </el-option>
          </el-select>
        </el-form-item>
        <div class="rightButtonSearch">
          <el-input v-model="form.keyword" size="mini" placeholder="在此输入关键字搜索"></el-input>
          <el-button class="el-icon-search" @click="handleSearch"></el-button>
    <div class="sewers-search" v-if="judgeVisible">
        <div class="search-panel ">
            <el-form ref="form" :model="form" label-width="90px" class="search-form">
                <el-form-item v-for="(item,index) in Options" :key="index" :label="item.label+':'" size="mini"
                              class="search-panel-item">
                    <el-select style="width: 100%" v-model="form.pipelineType" @change="handlePipelineType"
                               :popper-class="'select-down'">
                        <el-option
                                v-for="(ite,index) in item.options"
                                :key="index"
                                :label="ite.label"
                                :value="ite.value">
                        </el-option>
                    </el-select>
                </el-form-item>
                <div class="page_total">
                    <p>共计
                        <span>{{total}}</span>
                        条记录
                    </p>
                </div>
                <div class="rightButtonSearch">
                    <el-input v-model="form.keyword" size="mini" placeholder="在此输入关键字搜索"></el-input>
                    <el-button class="el-icon-search" @click="handleSearch"></el-button>
                </div>
            </el-form>
        </div>
      </el-form>
        <el-scrollbar style="height:377px">
            <div class="environmental-risk-list hover"><!-- v-for="(item,index) in list" :key="index" -->
                <i class="state"></i>
                <div>
                    <h3>###炼化部</h3>
                    <p>所属部门:<span>炼化部</span></p>
                    <p>风险级别:<span>三级</span></p>
                </div>
            </div>
            <div class="environmental-risk-list hover">
                <i class="state"></i>
                <div>
                    <h3>###炼化部</h3>
                    <p>所属部门:<span>炼化部</span></p>
                    <p>风险级别:<span>三级</span></p>
                </div>
            </div>
            <div class="environmental-risk-list hover">
                <i class="state"></i>
                <div>
                    <h3>###炼化部</h3>
                    <p>所属部门:<span>炼化部</span></p>
                    <p>风险级别:<span>三级</span></p>
                </div>
            </div>
        </el-scrollbar>
        <el-card class="footer-page" v-if="total > 10">
            <el-pagination
                    small
                    @current-change="handlePage"
                    :page-size=pageSize
                    layout="prev, pager, next"
                    :total=total
                    class="warnPagination"
            >
            </el-pagination>
        </el-card>
    </div>
    <el-scrollbar style="height:377px">
      <div class="environmental-risk-list hover"><!-- v-for="(item,index) in list" :key="index" -->
        <i class="state"></i>
        <div>
          <h3>###炼化部</h3>
          <p>所属部门:<span>炼化部</span></p>
          <p>风险级别:<span>三级</span></p>
        </div>
      </div>
      <div class="environmental-risk-list hover"><!-- v-for="(item,index) in list" :key="index" -->
        <i class="state"></i>
        <div>
          <h3>###炼化部</h3>
          <p>所属部门:<span>炼化部</span></p>
          <p>风险级别:<span>三级</span></p>
        </div>
      </div>
      <div class="environmental-risk-list hover"><!-- v-for="(item,index) in list" :key="index" -->
        <i class="state"></i>
        <div>
          <h3>###炼化部</h3>
          <p>所属部门:<span>炼化部</span></p>
          <p>风险级别:<span>三级</span></p>
        </div>
      </div>
    </el-scrollbar>
  </div>
</template>
<script>
@@ -123,10 +140,18 @@
            key: 'length'
          }]
        }
      ]
      ],
      list: [],
      total: 0,
      // 分页
      pageSize: 10
    }
  },
  methods: {
    // 分页
    handlePage (val) {
      console.log(val)
    },
    handlePipelineType (val) {
      console.log(val)
    },
src/components/table/summarySheets.vue
@@ -1,43 +1,43 @@
<template>
  <div class="summary-sheets">
    <el-tooltip :popper-class="'map-tooltip'" effect="dark" content="报表" placement="left">
      <div :class='["iconBtn",selectGroup ? "active-button" : ""]' @click="subtopicBtn" >
         <i class="el-icon-tickets icon"></i>
      </div>
    </el-tooltip>
    <transition name="animationChange">
        <div class="subtopic" v-show="selectGroup">
            <el-tooltip :popper-class="'map-tooltip'" effect="dark" content="统计表" placement="bottom">
              <div :class='["iconBtn",summaryVisible ? "active-button" : ""]' @click="closeBtn">
                  <!--  -->
                  <i class="icon iconfont iconbiaoge2"></i>
                <!--<span class="icon-name">统计表</span>-->
              </div>
            </el-tooltip>
            <el-tooltip :popper-class="'map-tooltip'" effect="dark" content="指标" placement="bottom">
              <div :class='["iconBtn",companyVisible ? "active-button" : ""]' @click="showStatisDialog()" >
                <!-- <img src="@/assets/images/map-pages/icon/map/company.png" alt="" class="icon"> -->
                <i class="el-icon-office-building icon"></i>
              </div>
            </el-tooltip>
            <el-tooltip :popper-class="'map-tooltip'" effect="dark" content="预报警" placement="bottom">
              <div :class='["iconBtn",warnVisible ? "active-button" : ""]' @click="showWarnDialog()" >
                <i class="icon iconfont iconbaojing01"></i>
                <!--<span class="icon-name">预报警</span>-->
              </div>
            </el-tooltip>
        </div>
    </transition>
    <Dialog ref="summarySheets" title="报表" class="baoBiao" >
      <tab-handover></tab-handover>
    </Dialog>
    <Dialog ref="warnDialog" title="预报警" >
      <warn></warn>
    </Dialog>
    <Dialog ref="indexStatisticsDialog" title="企业指标分类统计" >
      <index-statistics></index-statistics>
    </Dialog>
  </div>
    <div class="summary-sheets">
        <el-tooltip :popper-class="'map-tooltip'" effect="dark" content="报表" placement="left">
            <div :class='["iconBtn",selectGroup ? "active-button" : ""]' @click="subtopicBtn">
                <i class="el-icon-tickets icon"></i>
            </div>
        </el-tooltip>
        <transition name="animationChange">
            <div class="subtopic" v-show="selectGroup">
                <el-tooltip :popper-class="'map-tooltip'" effect="dark" content="统计表" placement="bottom">
                    <div :class='["iconBtn",summaryVisible ? "active-button" : ""]' @click="closeBtn">
                        <!--  -->
                        <i class="icon iconfont iconbiaoge2"></i>
                        <!--<span class="icon-name">统计表</span>-->
                    </div>
                </el-tooltip>
                <el-tooltip :popper-class="'map-tooltip'" effect="dark" content="指标" placement="bottom">
                    <div :class='["iconBtn",companyVisible ? "active-button" : ""]' @click="showStatisDialog()">
                        <!-- <img src="@/assets/images/map-pages/icon/map/company.png" alt="" class="icon"> -->
                        <i class="el-icon-office-building icon"></i>
                    </div>
                </el-tooltip>
                <el-tooltip :popper-class="'map-tooltip'" effect="dark" content="预报警" placement="bottom">
                    <div :class='["iconBtn",warnVisible ? "active-button" : ""]' @click="showWarnDialog()">
                        <i class="icon iconfont iconbaojing01"></i>
                        <!--<span class="icon-name">预报警</span>-->
                    </div>
                </el-tooltip>
            </div>
        </transition>
        <Dialog ref="summarySheets" title="报表" class="baoBiao">
            <tab-handover></tab-handover>
        </Dialog>
        <Dialog ref="warnDialog" title="预报警">
            <warn></warn>
        </Dialog>
        <Dialog ref="indexStatisticsDialog" title="企业指标分类统计">
            <index-statistics></index-statistics>
        </Dialog>
    </div>
</template>
<script>
@@ -51,6 +51,7 @@
// import '@/components/plugin/DialogDrag'
import bus from '@/eventBus'
export default {
  name: 'summary-sheet.vue',
  components: {
@@ -121,55 +122,60 @@
</script>
<style lang="less">
.summary-sheets {
  position: absolute;
  display: inline-flex;
  overflow: hidden;
  top: 0.42979rem;
  left: 0.14583rem;
  /*width: 850px;*/
  /*height: 265px;*/
  z-index: 500;
  .subtopic{
    display: inline-flex;
    .iconBtn{
      margin-left: 0.03rem;
      border-color:#00fff6;
      color:#00fff6;
    }
    .iconBtn.active-button{
      //border-color:#00fff6 !important;
      //color:#00fff6 !important;
    }
  }
    .summary-sheets {
        position: absolute;
        display: inline-flex;
        overflow: hidden;
        top: 0.42979rem;
        left: 0.14583rem;
        /*width: 850px;*/
        /*height: 265px;*/
        z-index: 500;
  .dialog {
    //width: 800px;
    //height: 300px;
    position: absolute;
    top: 15%;
    left: 3rem;
  }
    .animationChange-enter-active, .animationChange-leave-active {
        transition: all 0.5s;
    }
        .subtopic {
            display: inline-flex;
    .animationChange-enter, .animationChange-leave-to {
        opacity: 0;
        transform: translateX(-100px);
    }
  /*color: #fff;*/
            .iconBtn {
                margin-left: 0.03rem;
                border-color: #00fff6;
                color: #00fff6;
            }
  .el-icon-c-scale-to-original {
    width: 30px;
    height: 30px;
    font-size: 30px;
  }
            .iconBtn.active-button {
                //border-color:#00fff6 !important;
                //color:#00fff6 !important;
            }
        }
        .el-dialog.el-dialog--center{
        .dialog {
            //width: 800px;
            //height: 300px;
            position: absolute;
            top: 15%;
            left: 3rem;
        }
        .animationChange-enter-active, .animationChange-leave-active {
            transition: all 0.5s;
        }
        .animationChange-enter, .animationChange-leave-to {
            opacity: 0;
            transform: translateX(-100px);
        }
        /*color: #fff;*/
        .el-icon-c-scale-to-original {
            width: 30px;
            height: 30px;
            font-size: 30px;
        }
        .el-dialog.el-dialog--center {
            left: 0.5rem;
            top: 0.73979rem;
        }
}
    }
</style>
src/views/MapTemplate.vue
@@ -20,6 +20,7 @@
            <ReportIncident></ReportIncident>
        <Emergency ref="Emergency"></Emergency>
        <Message></Message>
        <EventsReported></EventsReported>
    </div>
</template>
@@ -43,6 +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'
export default {
  name: 'MapTemplate',
@@ -59,7 +61,8 @@
    // PublicBounced,
    Emergency,
    Message,
    ReportIncident
    ReportIncident,
    EventsReported
  },
  data () {
    return {