派生自 wuyushui/SewerAndRainNetwork

YANGDL
2021-03-01 dedc31bf2e64bd6c977386a6e336af30ec826a4d
src/components/panel/RightSearchPanel.vue
@@ -1,252 +1,76 @@
<template>
    <div id="right-panel">
        <div class="panel-tab">
            <div class="tab-gd" @click="handleGd" :class="{'B-TMT-tab-waybill-isActive': isWaybillHover}"></div>
            <div class="tab-hb" @click="handleHb" :class="{'B-TMT-tab-route-isActive': isRouteHover}"></div>
            <div class="tab-pk" @click="handlePk" :class="{'B-TMT-tab-route-isActive': isRouteHover}"></div>
      <div v-for="item in topicMenu" :key="item.id" :title="item.name" class="tab-item" @click="handleGd" :class="{'B-TMT-tab-waybill-isActive': isWaybillHover}">
        <img :src="item.icon" style="width: 24px;height: 24px;"></div>
<!--      <div class="tab-item" @click="handleHb" :class="{'B-TMT-tab-route-isActive': isRouteHover}"></div>-->
<!--      <div class="tab-item" @click="handlePk" :class="{'B-TMT-tab-route-isActive': isRouteHover}"></div>-->
        </div>
      <div class="panel-fold-btn">
        <div class="btn-stretch" @click="toggleMonitorPanel"></div>
      </div>
        <div class="right-control">
            <div class="el-message-box__header panel_header">
                <div class="el-message-box__title panel_title"><!----><span>{{ title }}</span>
                </div>
            </div>
            <div class="el-message-box__content" style="padding:6px;font-size: 13px;">
                <div class="monitor1" v-if="gdVisible">
                    <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-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>
                                <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>
                                        <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>
                            </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>
                <div class="monitor2" v-if="hbVisible">
                    <env-protect-search></env-protect-search>
                </div>
                <div class="monitor2" v-if="pkVisible">
                    <discharge-search></discharge-search>
                </div>
            </div>
      <component :title="title" :is="gcComp"></component>
        </div>
    </div>
</template>
<script>
import $ from 'jquery'
import EnvProtectSearch from './EnvProtectSearch'
import DischargeSearch from './DischargeSearch'
import EnvProtectSearch from './topicSearch/EnvProtectSearch'
import DischargeSearch from './topicSearch/DischargeSearch'
import { TopicList } from '../../conf/Topic'
import SewersSearch from '@components/panel/topicSearch/SewersSearch'
export default {
  name: 'MonitorPanel',
  components: { EnvProtectSearch, DischargeSearch },
  data () {
    return {
      topicMenu: [],
      topicList: TopicList,
      topicCheckedList: [],
      isPanelVisible: false,
      gcComp: SewersSearch,
      gdVisible: true,
      hbVisible: false,
      pkVisible: false,
      toggleMonitorStyle: 'right:0px',
      list: [],
      total: 0,
      title: '管道信息查询',
      pipelineTypeOptions: [{
        value: '1',
        label: '管线本体'
      }, {
        value: '2',
        label: '附属设施'
      }],
      dataTypeOptions: [],
      attachOptions: [{
        value: '1',
        label: '阀门'
      }, {
        value: '2',
        label: '管廊'
      }, {
        value: '3',
        label: '管架'
      }, {
        value: '4',
        label: '三通'
      }, {
        value: '5',
        label: '四通'
      }, {
        value: '6',
        label: '弯头'
      }],
      pipelineOptions: [{
        value: '1',
        label: '管线'
      }, {
        value: '2',
        label: '雨水管段'
      }, {
        value: '3',
        label: '含盐管段'
      }, {
        value: '4',
        label: '含油管段'
      }, {
        value: '5',
        label: '事故水管段'
      }, {
        value: '6',
        label: '含碱管段'
      }, {
        value: '7',
        label: '循环水管段'
      }, {
        value: '8',
        label: '净化水管段'
      }, {
        value: '9',
        label: '生活污水管段'
      }],
      form: {
        transNo: null,
        carrierName: null,
        transMode: null,
        vehicleNo: null,
        orderState: null,
        size: 10,
        current: 1
      },
      pageSize: 10,
      current: 1,
      isWaybillHover: true,
      isRouteHover: false
      title: '污雨水管网'
    }
  },
  computed: {},
  watch: {},
  watch: {
    '$store.state.map.topic.topicCheckedList': function (newVal, oldVal) {
      console.log(oldVal)
      console.log(newVal)
      this.topicCheckedList = newVal
      this.topicMenu = []
      this.topicList.forEach((item) => {
        this.topicCheckedList.forEach((itm) => {
          if (item.name === itm) {
            // item.checked = tr
            this.topicMenu.push(item)
          }
        })
      })
    }
  },
  methods: {
    handleClose (done) {
      console.log(done)
    },
    handleSearch () {
    },
    handlePipelineType (item) {
      console.log(item)
      if (item === '2') {
        this.dataTypeOptions = this.attachOptions
      } else if (item === '1') {
        this.dataTypeOptions = this.pipelineOptions
      }
    },
    handlePage (page) {
    },
    handleGd () {
      this.gdVisible = true
      this.hbVisible = false
      this.pkVisible = false
      this.title = '管道信息查询'
    },
    handleHb () {
      this.gdVisible = false
      this.hbVisible = true
      this.pkVisible = false
      this.title = '环保设施查询'
    },
    handlePk () {
      this.gdVisible = false
      this.hbVisible = false
      this.pkVisible = true
      this.title = '排口信息查询'
    },
    toggleMonitorPanel () {
      const el = $('.btn-stretch')
@@ -289,6 +113,7 @@
</script>
<style lang="less">
@import '@assets/css/map/_map-variable';
    #right-panel {
        width: 322px;
        //height: 573px;
@@ -427,28 +252,20 @@
        }
      }
        .tab-gd {
  .tab-item {
            width: 32px;
            height: 30px;
    color: @color;
    font-size: 12px;
            background-color: #0B3B6D;
        }
        .tab-hb {
            width: 32px;
            height: 30px;
            background-color: #545454;
  .tab-item:hover{
    cursor: pointer;
        }
        .tab-pk {
            width: 32px;
            height: 30px;
            background-color: #83a6c4;
        }
        .panel-tab {
            position: absolute;
            left: 0;
            height: 120px;
    //height: 120px;
            top: 0;
            width: 32px;
            z-index: 500;