派生自 wuyushui/SewerAndRainNetwork

陈泽平
2021-05-31 bf517c803265dededbf51cab6d623c40c92451ed
src/components/panel/topicSearch/DischargeSearch.vue
@@ -1,170 +1,233 @@
<template>
  <div>
    <el-card 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-option
                v-for="item in pipelineTypeOptions"
                :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>
    </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 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="区域:" 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 areaTypeOptions"
                                :key="item.value"
                                :label="item.label"
                                :value="item.value">
                        </el-option>
                    </el-select>
                </el-form-item>
                <!--  <el-form-item label="企业名称" size="mini">
                  <el-select style="width: 100%"  v-model="form.enterpriseVal"  @change="enterpriseType" :popper-class="'select-down'">
                    <el-option
                            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="二级单位" 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-input>
                    <el-button class="el-icon-search" @click="handleSearch"></el-button>
                </div>
            </el-form>
        </div>
        <el-scrollbar style="height:416.44px">
            <div class="environmental-risk-list hover"><!-- v-for="(item,index) in list" :key="index" -->
                <i class="state"></i>
                <div>
                    <h3 @click="flyto">###炼化部</h3>
                    <p>所属部门:<span>炼化部</span></p>
                    <p>风险级别:<span>三级</span></p>
                </div>
            </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 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>
          <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>
      </div>
    </el-card>
    <el-card class="footer-page" v-if="total > 10">
      <el-pagination
          small
          @current-change="handlePage"
          :page-size=pageSize
          layout="prev, pager, next"
          :total=total
          :current-page=current
          class="warnPagination"
      >
      </el-pagination>
    </el-card>
  </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
                    @current-change="handlePage"
                    :page-size=pageSize
                    layout="prev, pager, next"
                    :total=total
                    :current-page=current
                    class="warnPagination"
            >
            </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: 'DischargeSearch',
  data () {
    return {
      isPanelVisible: false,
      total: 0,
      gdVisible: true,
      list: [],
      total: 0,
      pageSize: 10,
      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 () {
    handlePage () {
    },
    flyto () {
      const pos = [39.90751504898071, 116.38927817344666]
      window.map.setView(pos, 15)
    },
    // 区域筛选
    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">
.monitorHz {
  .el-message-box__content {
    background-color: #030D2E;
  }
<style lang="less" scoped>
  .search-form .el-form-item {
    margin: 0px;
  }
  .search-form .el-icon-search {
    display: grid;
    line-height: 30px;
    font-size: 18px;
  }
  .search-panel {
    border: #07325B;
    background-color: #07325B;
  }
  .search-result {
    margin: 5px 0px 0px 0px;
    padding: 0px;
    border: #051842;
    overflow-y: scroll;
    background-color: #051842;
  }
  .B-TMD-table-list {
    margin-top: 10px;
    text-align: left;
    padding-left: 10px;
    color: #328EB5;
    width: 100%;
    line-height: 25px;
    background-color: #0B3B6D;
  }
  .footer-page {
    position: absolute;
    bottom: 5px;
  }
}
</style>