From 1c6ae6ae8e200a1d68db875a6a79382487929ef6 Mon Sep 17 00:00:00 2001
From: chenzeping <ChenZeping02609@163.com>
Date: 星期一, 08 三月 2021 09:29:47 +0800
Subject: [PATCH] 修改图例弹出/隐藏动画

---
 src/components/panel/RightSearchPanel.vue |  325 ++++++++++++++----------------------------------------
 1 files changed, 85 insertions(+), 240 deletions(-)

diff --git a/src/components/panel/RightSearchPanel.vue b/src/components/panel/RightSearchPanel.vue
index 4a59e18..9462fe7 100644
--- a/src/components/panel/RightSearchPanel.vue
+++ b/src/components/panel/RightSearchPanel.vue
@@ -1,258 +1,95 @@
 <template>
   <div id="right-panel">
     <div class="panel-tab">
-      <div class="btn-stretch" @click="toggleMonitorPanel"></div>
-      <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>
-    <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>
+      <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>
 
-            <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>
+<!--      <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">
+
+      <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: [],
-      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)
     },
-    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')
+      const el2 = $('.panel-fold-btn')
       // let cs = 'btn-stretch-active'
       var rightControl = $('#right-panel')
       const right = rightControl.css('right')
       if (right === '10px') {
         rightControl.animate({
-          right: '-290px'
+          right: '-322px'
         })
         el.css({
           transform: 'rotateY(180deg)',
           'transform-origin': '50% 50%',
           transition: 'transform 1s linear'
+        })
+        el2.animate({
+          right: '320px',
+          speed: 1000
         })
       } else {
         rightControl.animate({
@@ -263,6 +100,10 @@
           'transform-origin': '50% 50%',
           transition: 'transform 1s linear'
         })
+        el2.animate({
+          right: '290px',
+          speed: 1000
+        })
       }
     }
   },
@@ -272,9 +113,11 @@
 </script>
 
 <style lang="less">
+@import '@assets/css/map/_map-variable';
 #right-panel {
   width: 322px;
-  height: 573px;
+  //height: 573px;
+  height: 100%;
   position: absolute;
   right: 10px;
   top: 10px;
@@ -378,53 +221,51 @@
 
   .B-TMD-table-list-title {
     width: 100%;
-    height: 50px;
+    height: 30px;
   }
 
   .B-TMD-table-list-head {
-    width: 160px;
+    //width: 160px;
     float: left;
     padding-left: 5px;
     overflow: hidden;
     text-overflow: ellipsis;
     white-space: nowrap;
   }
+  .panel-fold-btn{
+    position: absolute;
+    top:45%;
+    //right: 320px;
+    right: 290px;
+    z-index: 1000;
+    background-color: rgba(5,24,66,.8);
+    border-radius: 10px 0 0 10px;
+    .btn-stretch {
+      width: 20px;
+      height: 40px;
+      background: url('../../assets/images/map-pages/icon/icon.png') no-repeat -408px 5px;
+      cursor: pointer;
 
-  .btn-stretch {
-    width: 15px;
-    height: 28px;
-    background: url('../../assets/images/map-pages/icon/icon.png') no-repeat -408px 0;
-    margin-left: 10px;
-    margin-top: 3px;
-    cursor: pointer;
-
-    transform: rotateY(180deg);
-    transform-origin: 50% 50%;
-    transition: transform 1s linear;
+      transform: rotateY(180deg);
+      transform-origin: 50% 50%;
+      transition: transform 1s linear;
+    }
   }
 
-  .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;
@@ -433,12 +274,14 @@
 
   .right-control {
     width: 290px;
-    height: 573px;
+    //height: 573px;
+    height: 100%;
     position: absolute;
     top: 0;
     right: 0;
     z-index: 999;
     background: url('../../assets/images/map-pages/icon/bgc.png') no-repeat;
+    background-size: 100% 98%;
   }
 
   .panel_searchTotal {
@@ -465,6 +308,7 @@
 
   .search-form .el-form-item {
     margin: 0px;
+    margin-bottom: 8px;
   }
 
   .search-form .el-icon-search {
@@ -506,7 +350,8 @@
     margin: 5px 0px 0px 0px;
     padding: 0px;
     border: #051842;
-    height: 290px;
+    //height: 290px;
+    height: calc(~"100vh - 180px");
     overflow-y: scroll;
     background-color: transparent !important;
     margin-bottom: -8px !important;

--
Gitblit v1.8.0