From 17e7836b1d0a7bd1a51d44ae071a88423a9f9370 Mon Sep 17 00:00:00 2001
From: chenzeping <ChenZeping02609@163.com>
Date: 星期一, 08 三月 2021 17:57:16 +0800
Subject: [PATCH] 添加工具栏功能

---
 src/components/panel/ToolBoxPanel.vue |  195 +++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 158 insertions(+), 37 deletions(-)

diff --git a/src/components/panel/ToolBoxPanel.vue b/src/components/panel/ToolBoxPanel.vue
index 6c6178d..5747cc7 100644
--- a/src/components/panel/ToolBoxPanel.vue
+++ b/src/components/panel/ToolBoxPanel.vue
@@ -1,11 +1,25 @@
 <template>
   <div class="lefttop-toolbox-panel">
-    <ul>
-      <li v-for="(item,i) in imgList" :key="i" @click="toggleActive(i)" :value="total"
-          :class="{'active':activeTools[i]}">
-        <img :src="item"/>
-      </li>
-    </ul>
+    <div class="init-choose" @click="changeSelect()">
+      <img src="@/assets/images/map-pages/icon/toolbox/circle.png" alt="">
+    </div>
+    <!--    <transition name="fade">-->
+    <!--      <ul v-show='selectGroup'>-->
+    <!--        <li v-for="(item,i) in imgList" :key="i" @click="toggleActive(i)" :value="total"><img :src="item"/></li>-->
+    <!--      </ul>-->
+    <!--    </transition>-->
+    <div class="el-select-dropdown" v-show='selectGroup'>
+      <el-dropdown @command="handleCommand" trigger="click" v-for="(item,i) in imgLists" :key="i" :value="total">
+        <transition name="fade">
+          <img :src="item.title" :title="item.alt"/>
+        </transition>
+        <el-dropdown-menu>
+          <el-dropdown-item v-for="(ite,index) in item.items" :key="index" :command='ite.headings'>
+            <span @click='toggleActive(ite)'>{{ ite.headings }}</span>
+          </el-dropdown-item>
+        </el-dropdown-menu>
+      </el-dropdown>
+    </div>
   </div>
 </template>
 
@@ -20,35 +34,98 @@
 export default {
   name: 'ToolBoxPanel',
   components: {},
+  props: ['map'],
   data () {
     return {
       isPanelVisible: false,
       total: 0,
       activeTools: {},
-      imgList: {
-        circle: circle,
-        square: square,
-        polygon: polygon,
-        legend: legend,
-        location: location,
-        fullscreen: fullscreen
-      },
+      imgLists: [
+        {
+          title: circle,
+          alt: '鏍囩粯',
+          items: [
+            { headings: '绾挎爣缁�' },
+            { headings: '闈㈡爣缁�' },
+            { headings: '绠ご鏍囩粯' }
+          ]
+        },
+        {
+          title: square,
+          alt: '鏍囨敞',
+          items: [
+            { headings: '鐐规爣娉�' },
+            { headings: '绾挎爣娉�' },
+            { headings: '闈㈡爣娉�' },
+            { headings: '鏂囧瓧鏍囨敞' },
+            { headings: '鍥炬爣鏍囨敞' }
+          ]
+        },
+        {
+          title: legend,
+          alt: '娴嬮噺',
+          items: [
+            { headings: '璺濈娴嬮噺' },
+            { headings: '闈㈢Н娴嬮噺' }
+          ]
+        },
+        {
+          title: location,
+          alt: '鍒囨崲搴曞浘',
+          items: [
+            { headings: '褰卞儚鍥�' },
+            { headings: '鐭㈤噺鍥�' },
+            { headings: '鍦板舰鍥�' }
+          ]
+        },
+        {
+          title: polygon,
+          alt: '绠$綉',
+          items: [
+            { headings: '杩為�氭�у垎鏋�' },
+            { headings: '鐖嗙鍒嗘瀽' },
+            { headings: '娴佸悜鍒嗘瀽' },
+            { headings: '妯柇闈㈠垎鏋�' }
+          ]
+        },
+        {
+          title: fullscreen,
+          alt: '涓嬭浇',
+          items: [
+            { headings: '鍏ㄥ睆' },
+            { headings: 'A4妯悜' },
+            { headings: 'A4绾靛悜' }
+          ]
+        }
+      ],
       form: {
         regionType: '',
         enterprise: ''
-      }
+      },
+      selectGroup: false,
+      selectGroupOne: false
     }
   },
   methods: {
+    changeSelect () {
+      this.selectGroup = !this.selectGroup
+    },
     handleClose (done) {
       console.log(done)
     },
     handleClick (tab, event) {
       console.log(tab, event)
     },
+    handleCommand (command) {
+      console.log(command)
+      if (command === '鍏ㄥ睆') {
+        this.map.toggleFullscreen()
+      }
+    },
     toggleActive (k) {
-      this.total++
-      this.activeTools[k] = !this.activeTools[k]
+      if (k === 'fullscreen') {
+        this.map.toggleFullscreen()
+      }
     },
     loadData () {
 
@@ -58,6 +135,7 @@
     this.loadData()
   },
   created () {
+
   }
 }
 </script>
@@ -67,31 +145,74 @@
   position: absolute;
   left: 5px;
   top: 5px;
-  z-index: 1000;
-  width: 180px;
-  height: 35px;
-  line-height: 30px;
-  background: #07325b;
-  border: 1px solid #5EF2FF;
-  border-radius: 3px;
-  text-align: center;
+  z-index: 999;
+  display: flex;
 
-  ul {
-    list-style: none;
-    margin: 0;
-    padding: 5px;
+  .init-choose {
+    //margin: 15px 5px;
+    background: #305B62;
+    //margin-top: 15px;
+    width: 35px;
+    height: 35px;
+    border-radius: 50%;
+    border: 2px skyblue solid;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    z-index: 999;
+  }
 
-    li {
-      float: left;
-      width: 23px;
-      height: 23px;
-      margin: 0 1px;
-      border: 1px solid #073C4F;
+  .el-select-dropdown {
+    position: absolute;
+    z-index: 1;
+    width: 250px;
+    height: 35px;
+    display: flex;
+    align-items: center;
+    justify-content: space-evenly;
+    background: #305B62;
+    border-radius: 15px;
+    padding-inline: 10px;
+    padding-inline-start: 30px;
+
+    .el-dropdow {
+      width: 20%;
+    }
+
+    @keyframes bounce-in {
+      0% {
+        transform: scale(0);
+        opacity: 0.3;
+      }
+      100% {
+        transform: scale(1);
+        opacity: 1;
+      }
+    }
+
+    .fade-enter-active {
+      transform-origin: left center;
+      animation: bounce-in .2s;
+    }
+
+    .fade-leave-active {
+      transform-origin: left;
+      animation: bounce-in .2s reverse;
     }
   }
 
-  .active {
-    border: 1px solid #5EF2FF;
+  .el-select-dropdown:last-child {
+    margin-left: 10px;
   }
+
+  .el-dropdown-link {
+    cursor: pointer;
+    color: #409EFF;
+  }
+
+  .el-icon-arrow-down {
+    font-size: 12px;
+  }
+
 }
 </style>

--
Gitblit v1.8.0