派生自 wuyushui/SewerAndRainNetwork

陈泽平
2021-05-27 468e07894ce1d60aaeec91440504a48a41d20410
src/components/panel/topicSearch/SoilGroundWaterSearch.vue
@@ -1,88 +1,116 @@
<template>
    <div class="sewers-search">
        <div class="search-title">
            土壤及地下水
        </div>
        <el-card class="search-panel">
    <div class="sewers-search" v-if="gdVisible">
        <div class="panel-title">{{title}}</div>
        <div class="search-panel ">
            <el-form ref="form" :model="form" label-width="90px" class="search-form">
                <el-form-item label="类型:">
                    <el-select v-model="form.pipelineType" @change="handlePipelineType">
                <el-form-item label="区域:" size="mini" class="search-panel-item">
                    <el-select style="width: 100%"  v-model="form.areaVal" @change="areaType"  :popper-class="'select-down'">
                        <el-option
                                v-for="item in pipelineTypeOptions"
                                v-for="item in areaTypeOptions"
                                :key="item.value"
                                :label="item.label"
                                :value="item.value">
                        </el-option>
                    </el-select>
                </el-form-item>
                <el-form-item label="数据类型:">
                    <el-select v-model="form.dataType">
                        <el-option
                                v-for="item in dataTypeOptions"
                                :key="item.value"
                                :label="item.label"
                                :value="item.value">
                        </el-option>
                    </el-select>
                <!--  <el-form-item label="企业名称" size="mini">
                  <el-select style="width: 100%"  v-model="form.enterpriseVal"  @change="enterpriseType" :popper-class="'select-down'">
                    <el-option
                            v-for="item in enterpriseTypeOptions"
                            :key="item.value"
                            :label="item.label"
                            :value="item.value">
                    </el-option>
                  </el-select>
                </el-form-item>
                <el-form-item label="模糊搜索:">
                    <el-input v-model="form.key" size="mini"
                              placeholder="在此输入关键字"></el-input>
                </el-form-item>
                <el-form-item>
                    <input type="button" class="btn-ok" @click="handleSearch" value="查询">
                    <input type="button" class="btn-reset" @click="handleSearch" value="重置">
                </el-form-item>
                <el-form-item label="二级单位" size="mini">
                  <el-select style="width: 100%"  v-model="form.enterpriseSubunitsVal"  @change="enterpriseSubunitsType" :popper-class="'select-down'">
                    <el-option
                            v-for="item in enterpriseSubunitsTypeOptions"
                            :key="item.value"
                            :label="item.label"
                            :value="item.value">
                    </el-option>
                  </el-select>
                </el-form-item> -->
                <!--   <el-form-item label="风险级别" size="mini"></el-form-item>
                <el-radio-group v-model="form.type" class="levelOfRisk">
                  <el-radio  v-for="(item,index) in levelOfRisk" :label="item.value" :key="index"><span class="levelOfRisk-type">{{item.name}}<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>-->
                        <!-- <i slot="prefix" class="el-input__icon el-icon-search"></i>-->
                        <!-- <i slot="suffix" class="search-btn el-input__icon el-icon-search" @click="handleSearch"></i> -->
                    </el-input>
                    <el-button class="el-icon-search" @click="handleSearch"></el-button>
                </div>
                <!--              </el-form-item>-->
                <!--              <el-form-item>-->
                <!--                <input type="button" class="btn-ok" @click="handleSearch" value="查询">-->
                <!--                <input type="button" class="btn-reset" @click="handleSearch" value="重置">-->
                <!--              </el-form-item>-->
            </el-form>
        </el-card>
        <el-card class="search-result" style="height:271px;">
            <div class="B-TMD-table-list" v-for="(item,index) in list" :key="index">
                <div class="B-TMD-table-list-title">
                    <div class="B-TMD-table-list-head">
                        <div class="B-TMD-table-list-title-y"
                             :class="['B-TMD-table-list-title-y-nam', { 'warning': item.vehicleStatus==='910003' }, { 'offline': item.vehicleStatus==='910001' }]">
                            <span>运单号:</span>
                            <span id="waybillNumber" class="B-TMD-table-list-title-y-num"
                                  :title="item.transNo">
                                                <span class="B-TMD-table-list-title-y-alarm">{{ item.transNo }}</span>
                                            </span>
                        </div>
                        <div class="B-TMD-table-list-title-c">
                            载具号:
                            <span id="plateNumber_p">
                                                <span id="plateNumber_n"><a href="#">{{ item.vehicleNo }}</a></span>
                                            </span>
                        </div>
                    </div>
                    <div class="B-TMD-table-icons" style="float:right">
                        <ul>
                            <li class="B-TMD-table-list-title-y-adress"
                                @click="handleLocation(item)"></li>
                            <li :class="[{'B-TMD-table-list-title-y-car': item.vehicleStatus ==='910002', 'B-TMD-table-list-title-y-car-offline': item.vehicleStatus ==='910001','B-TMD-table-list-title-y-car-warning': item.vehicleStatus==='910003' }]"></li>
                        </ul>
                    </div>
                </div>
                <div class="B-TMD-table-list-content">
                    <div>
                        <span>发货企业:</span>
                        <span id="b_twe_consignment" :title="item.outWarehouseName">{{
                item.outWarehouseName == null ? "暂无" : item.outWarehouseName
              }}</span>
                    </div>
                    <div>
                        <span>承&nbsp;&nbsp;运&nbsp;&nbsp;商:</span>
                        <span id="b_twe_loan" :title="item.carrierName">{{ item.carrierName }}</span>
                    </div>
                    <div><span>收货企业:</span> <span
                            id="b_twe_loan1" :title="item.recvWarehouseName">{{ item.recvWarehouseName }}</span></div>
                </div>
                <div class="B-TMD-table-list-bottom">
                    <div class="B-TMD-table-list-bottom-name">
                        货物名称:<span :title="item.materialName">{{ item.materialName }}</span></div>
        </div>
        <el-scrollbar style="height:416.44px">
            <div class="environmental-risk-list" ><!-- 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-card>
            <div class="environmental-risk-list" ><!-- 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" ><!-- 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" ><!-- 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" ><!-- 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" ><!-- 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>
        <!--   <span class="location-btn" @click="handleLocation(item)">588</span> -->
        <el-card class="footer-page" v-if="total > 10">
            <el-pagination
                    small
@@ -96,78 +124,94 @@
            </el-pagination>
        </el-card>
    </div>
    <!--        <div class="monitor2" v-if="hbVisible">-->
    <!--          <env-protect-search></env-protect-search>-->
    <!--        </div>-->
    <!--        <div class="monitor2" v-if="pkVisible">-->
    <!--          <discharge-search></discharge-search>-->
    <!--        </div>-->
</template>
<script>
import WfsHelper from '@components/helpers/WfsHelper'
import AjaxUtils from '@utils/AjaxUtils'
export default {
  name: 'MonitorAreaTips',
  components: {},
  name: 'SewersSearch',
  data () {
    return {
      isPanelVisible: false,
      total: 0,
      gdVisible: true,
      list: [],
      total: 0,
      inareaTypeOptions: [],
      enterpriseTypeOptions: [],
      enterpriseSubunitsTypeOptions: [],
      form: {
        name: '',
        region: '',
        date1: '',
        date2: '',
        delivery: false,
        type: [],
        resource: '',
        desc: ''
      }
        areaVal: '',
        enterpriseVal: '',
        enterpriseSubunitsVal: '',
        type: ''
      },
      // pageSize: 10,
      // current: 1,
      isWaybillHover: true,
      isRouteHover: false,
      levelOfRisk: [
        { name: '重大风险', value: '1', color: 'red' },
        { name: '一级风险', value: '2', color: 'sandybrown' },
        { name: '二级风险', value: '3', color: 'yellow' },
        { name: '三级风险', value: '4', color: 'green' }
      ],
      areaTypeOptions: []
    }
  },
  props: ['title'],
  methods: {
    handleClose (done) {
      console.log(done)
    },
    handleClick (tab, event) {
      console.log(tab, event)
    },
    handleSearch () {
    // 区域筛选
    areaType (val) {
      this.pipelineTypeOptions.forEach((itm) => {
        if (val === itm.value) {
        }
      })
    },
    // 企业筛选
    enterpriseType (val) {
      this.dataTypeOptions.forEach((itm) => {
        if (val === itm.value) {
        }
      })
    },
    // 二级单位筛选
    enterpriseSubunitsType (val) {
    },
    async handleSearch () {
      const param = {
        pipelineType: this.form.pipelineType,
        dataType: this.form.dataType
      }
      console.log(param)
      var wfsHelper = new WfsHelper()
      wfsHelper.addTypeName(this.form.query.layerName)
      wfsHelper.addLike(this.form.query.key, this.form.keyword)
      // const _this = this
      const res = await AjaxUtils.GetDataAsynByUrl(wfsHelper.getUrl(), {})
      if (res.data instanceof Object && Object.prototype.hasOwnProperty.call(res.data, 'features')) {
        this.list = res.data.features
      }
    },
    handleLocation (val) {
      console.log(val)
      const bound = this.L.geoJSON([val], {}).getBounds()
      var layer = window.serviceLayerHelper.getByLayerId(val.id)
      layer && layer.openPopup()
      this.$store.state.map.map.flyToBounds(bound)
    }
  },
  mounted () {
    this.handleSearch()
  }
}
</script>
<style lang="less">
    .sewers-search{
        position: relative;
        overflow: hidden;
        .search-panel{
            background-color: transparent;
            border: 1px solid @background-color-split;
            padding: 10px;
<style lang="less" scoped>
            /deep/ input {
                border-radius: 0;
                background-color: @background-color-split ;
                border: solid 1px @color ;
                color: @color-gray;
                font-size: 0.01rem;
                .el-select .el-input.is-focus .el-input__inner{
                    border-color: @color;
                }
            }
            /deep/ input:focus{
                border-color: @color;
            }
        }
        .search-btn{
        }
        //location-btn{
        //
        //}
        .location-btn:hover,.el-input__icon:hover{
            color: @color;
            cursor: pointer;
        }
    }
</style>