From 2366e25dea648aa39dd4ba21205bcc67ee85dc5d Mon Sep 17 00:00:00 2001
From: chenzeping <ChenZeping02609@163.com>
Date: 星期五, 12 三月 2021 16:08:23 +0800
Subject: [PATCH] 修改左上方工具

---
 src/components/plugin/Editable.js                  |   10 
 src/components/plugin/MeaSure.js                   |    6 
 src/components/panel/BaseNavMenuItem.vue           |   56 ++++
 src/components/panel/ToolBoxPanel.vue              |  276 +++++++++---------
 src/components/panel/bounced/TextBounced.vue       |   20 +
 src/components/plugin/MakeTation.js                |   72 +++--
 src/components/LayerController/LayerController.vue |  388 +++++++++++++-------------
 7 files changed, 448 insertions(+), 380 deletions(-)

diff --git a/src/components/LayerController/LayerController.vue b/src/components/LayerController/LayerController.vue
index e6a8076..1219e4b 100644
--- a/src/components/LayerController/LayerController.vue
+++ b/src/components/LayerController/LayerController.vue
@@ -1,19 +1,17 @@
 <template>
-    <div class="float-panel">
-        <!--    <i class="horn horn-br"></i>-->
-        <!--    <i class="horn horn-bl"></i>-->
-        <div class="title-text-border" @click="switchPanel">
-            <div class="title-icon"></div>
-            <div class="title-text">鍥惧眰鎺у埗</div>
-        </div>
-        <transition name="el-fade-in-linear">
-            <div class="body-box" id="panelContent" :style="{ width:width }">
-                <div v-show="isShow">
-                    <slot></slot>
-                </div>
-            </div>
-        </transition>
+  <div class="float-panel">
+    <div class="title-text-border" @click="switchPanel">
+      <div class="title-icon"></div>
+      <div class="title-text">鍥惧眰鎺у埗</div>
     </div>
+    <transition name="el-fade-in-linear">
+      <div class="body-box" id="panelContent" :style="{ width:width }">
+        <div v-show="isShow">
+          <slot></slot>
+        </div>
+      </div>
+    </transition>
+  </div>
 </template>
 
 <script>
@@ -93,198 +91,198 @@
 
 <style lang="less">
 
-    .float-panel {
-        position: absolute;
-        top: 80px;
-        height: auto;
-        font-size: 11px;
-        z-index: 1000;
+.float-panel {
+  position: absolute;
+  top: 80px;
+  height: auto;
+  font-size: 11px;
+  z-index: 1000;
 
-        div {
-            color: #90c8e0;
-        }
+  div {
+    color: #90c8e0;
+  }
 
-        .title-border {
-            width: 100%;
-            height: 28px;
-            background: #10488c;
-            -webkit-clip-path: polygon(0px 0px, 0px 28px, 230px 28px, 230px 9px, 95px 9px, 86px 0px);
-            clip-path: polygon(0px 0px, 0px 28px, 230px 28px, 230px 9px, 95px 9px, 86px 0px);
-            position: relative;
-        }
+  .title-border {
+    width: 100%;
+    height: 28px;
+    background: #10488c;
+    -webkit-clip-path: polygon(0px 0px, 0px 28px, 230px 28px, 230px 9px, 95px 9px, 86px 0px);
+    clip-path: polygon(0px 0px, 0px 28px, 230px 28px, 230px 9px, 95px 9px, 86px 0px);
+    position: relative;
+  }
 
-        .title-border:before {
-            content: "";
-            display: block;
-            position: absolute;
-            width: 6px;
-            height: 6px;
-            top: 0;
-            left: 0;
-            background-color: #38c8ef;
-        }
+  .title-border:before {
+    content: "";
+    display: block;
+    position: absolute;
+    width: 6px;
+    height: 6px;
+    top: 0;
+    left: 0;
+    background-color: #38c8ef;
+  }
 
-        .title-border:after {
-            content: "";
-            display: block;
-            position: absolute;
-            width: 6px;
-            height: 6px;
-            top: 9px;
-            right: 0;
-            background-color: #38c8ef;
-            -webkit-clip-path: polygon(0px 0px, 0px 1px, 5px 1px, 5px 6px, 6px 6px, 6px 0px);
-            clip-path: polygon(0px 0px, 0px 1px, 5px 1px, 5px 6px, 6px 6px, 6px 0px);
-        }
+  .title-border:after {
+    content: "";
+    display: block;
+    position: absolute;
+    width: 6px;
+    height: 6px;
+    top: 9px;
+    right: 0;
+    background-color: #38c8ef;
+    -webkit-clip-path: polygon(0px 0px, 0px 1px, 5px 1px, 5px 6px, 6px 6px, 6px 0px);
+    clip-path: polygon(0px 0px, 0px 1px, 5px 1px, 5px 6px, 6px 6px, 6px 0px);
+  }
 
-        .title-text-border {
-            width: 30px;
-            height: 120px;
-            float: left;
-            background: #091331;
-            // -webkit-clip-path: polygon(1px 1px, 1px 27px, 229px 27px, 229px 10px, 94px 10px, 85px 1px);
-            // clip-path: polygon(1px 1px, 1px 27px, 229px 27px, 229px 10px, 94px 10px, 85px 1px);
-        }
+  .title-text-border {
+    width: 30px;
+    height: 120px;
+    float: left;
+    background: #091331;
+    // -webkit-clip-path: polygon(1px 1px, 1px 27px, 229px 27px, 229px 10px, 94px 10px, 85px 1px);
+    // clip-path: polygon(1px 1px, 1px 27px, 229px 27px, 229px 10px, 94px 10px, 85px 1px);
+  }
 
-        .title-icon {
-            float: left;
-            width: 22px;
-            height: 22px;
-            margin-top: 4px;
-            margin-left: 2px;
-            background-image: url(../../assets/images/map-pages/icon/setting.png);
-        }
+  .title-icon {
+    float: left;
+    width: 22px;
+    height: 22px;
+    margin-top: 4px;
+    margin-left: 2px;
+    background-image: url(../../assets/images/map-pages/icon/setting.png);
+  }
 
-        .title-text {
-            width: 25px;
-            color: #00d0f9;
-            font-weight: bold;
-            margin-top: 6px;
-            text-align: center;
-            font-size: 14px;
-            filter: brightness(100%);
-            text-shadow: 0 0 5px #00d0f9, 0 0 0 #00d0f9, 0 0 0 #00d0f9, 0 0 0 #0258c5, 0 0 0 #0258c5, 0 0 2px #0258c5, 0 0 5px #0258c5, 0 0 15px #0258c5;
-        }
+  .title-text {
+    width: 25px;
+    color: #00d0f9;
+    font-weight: bold;
+    margin-top: 6px;
+    text-align: center;
+    font-size: 14px;
+    filter: brightness(100%);
+    text-shadow: 0 0 5px #00d0f9, 0 0 0 #00d0f9, 0 0 0 #00d0f9, 0 0 0 #0258c5, 0 0 0 #0258c5, 0 0 2px #0258c5, 0 0 5px #0258c5, 0 0 15px #0258c5;
+  }
 
-        .title-line {
-            display: inline-block;
-            width: 120px;
-            height: 1px;
-            // margin-top: 14px;
-            margin-left: 4px;
-            background-color: #04527f;
-            line-height: 5px;
-            vertical-align: middle;
-        }
+  .title-line {
+    display: inline-block;
+    width: 120px;
+    height: 1px;
+    // margin-top: 14px;
+    margin-left: 4px;
+    background-color: #04527f;
+    line-height: 5px;
+    vertical-align: middle;
+  }
 
-        .title-point {
-            display: inline-block;
-            width: 5px;
-            height: 5px;
-            // margin-top: 12px;
-            background-color: #04527f;
-            line-height: 5px;
-            vertical-align: middle;
-        }
+  .title-point {
+    display: inline-block;
+    width: 5px;
+    height: 5px;
+    // margin-top: 12px;
+    background-color: #04527f;
+    line-height: 5px;
+    vertical-align: middle;
+  }
 
-        .title-button {
-            float: right;
-            width: 28px;
-            height: 28px;
-            cursor: pointer;
+  .title-button {
+    float: right;
+    width: 28px;
+    height: 28px;
+    cursor: pointer;
 
-            :hover {
-                font-weight: bold;
-                color: white;
-            }
-        }
-
-        .body-box {
-            background-color: rgba(44, 62, 80, 0.6);
-            border: 1px solid #10488c;
-            margin-top: -1px;
-            margin-left: 30px;
-            height: auto;
-        }
-
-        .switch-head-up {
-            width: 22px;
-            height: 16px;
-            float: right;
-            margin-top: 10px;
-            margin-right: 10px;
-            cursor: pointer;
-            background-image: url(../../assets/images/map-pages/icon/xljt1.png);
-            transform: rotateX(0deg);
-            transform-origin: 50% 50%;
-            transition: transform 0.5s linear 0s;
-        }
-
-        .switch-head-down {
-            transform: rotateX(180deg);
-            transform-origin: 50% 50%;
-            transition: transform 0.5s linear 0s;
-        }
-
-        select {
-            background: transparent;
-            margin: 6px;
-            border: .5px solid #569EB7;
-            width: 150px;
-            color: #569EB7;
-            padding: 0 16px;
-        }
-
-        .horn {
-            width: 6px;
-            height: 6px;
-            float: left;
-            position: absolute;
-        }
-
-        .horn-tl {
-            background-image: url(../../assets/images/map-pages/cosmetics/horn_tl.png);
-            left: -1px;
-            top: -1px;
-        }
-
-        .horn-tr {
-            background-image: url(../../assets/images/map-pages/cosmetics/horn_tr.png);
-            right: -1px;
-            top: -1px;
-        }
-
-        .horn-bl {
-            background-image: url(../../assets/images/map-pages/cosmetics/horn_bl.png);
-            left: -1px;
-            bottom: -1px;
-        }
-
-        .horn-br {
-            background-image: url(../../assets/images/map-pages/cosmetics/horn_br.png);
-            right: -1px;
-            bottom: -1px;
-        }
-
-        ::-webkit-scrollbar {
-            width: 7px;
-            height: 5px !important;
-        }
-
-        ::-webkit-scrollbar-thumb {
-            /*婊氬姩鏉¢噷闈㈠皬鏂瑰潡*/
-            border-radius: 10px;
-            box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
-            background: #0661AE;
-            border: 1px solid transparent;
-        }
-
-        ::-webkit-scrollbar-track {
-            /*婊氬姩鏉¢噷闈㈣建閬�*/
-            // box-shadow   : inset 0 0 5px rgba(0, 0, 0, 0.2);
-            border-radius: 0px;
-            background: #0E3565;
-        }
+    :hover {
+      font-weight: bold;
+      color: white;
     }
+  }
+
+  .body-box {
+    background-color: rgba(44, 62, 80, 0.6);
+    border: 1px solid #10488c;
+    margin-top: -1px;
+    margin-left: 30px;
+    height: auto;
+  }
+
+  .switch-head-up {
+    width: 22px;
+    height: 16px;
+    float: right;
+    margin-top: 10px;
+    margin-right: 10px;
+    cursor: pointer;
+    background-image: url(../../assets/images/map-pages/icon/xljt1.png);
+    transform: rotateX(0deg);
+    transform-origin: 50% 50%;
+    transition: transform 0.5s linear 0s;
+  }
+
+  .switch-head-down {
+    transform: rotateX(180deg);
+    transform-origin: 50% 50%;
+    transition: transform 0.5s linear 0s;
+  }
+
+  select {
+    background: transparent;
+    margin: 6px;
+    border: .5px solid #569EB7;
+    width: 150px;
+    color: #569EB7;
+    padding: 0 16px;
+  }
+
+  .horn {
+    width: 6px;
+    height: 6px;
+    float: left;
+    position: absolute;
+  }
+
+  .horn-tl {
+    background-image: url(../../assets/images/map-pages/cosmetics/horn_tl.png);
+    left: -1px;
+    top: -1px;
+  }
+
+  .horn-tr {
+    background-image: url(../../assets/images/map-pages/cosmetics/horn_tr.png);
+    right: -1px;
+    top: -1px;
+  }
+
+  .horn-bl {
+    background-image: url(../../assets/images/map-pages/cosmetics/horn_bl.png);
+    left: -1px;
+    bottom: -1px;
+  }
+
+  .horn-br {
+    background-image: url(../../assets/images/map-pages/cosmetics/horn_br.png);
+    right: -1px;
+    bottom: -1px;
+  }
+
+  ::-webkit-scrollbar {
+    width: 7px;
+    height: 5px !important;
+  }
+
+  ::-webkit-scrollbar-thumb {
+    /*婊氬姩鏉¢噷闈㈠皬鏂瑰潡*/
+    border-radius: 10px;
+    box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
+    background: #0661AE;
+    border: 1px solid transparent;
+  }
+
+  ::-webkit-scrollbar-track {
+    /*婊氬姩鏉¢噷闈㈣建閬�*/
+    // box-shadow   : inset 0 0 5px rgba(0, 0, 0, 0.2);
+    border-radius: 0px;
+    background: #0E3565;
+  }
+}
 
 </style>
diff --git a/src/components/panel/BaseNavMenuItem.vue b/src/components/panel/BaseNavMenuItem.vue
new file mode 100644
index 0000000..67980cc
--- /dev/null
+++ b/src/components/panel/BaseNavMenuItem.vue
@@ -0,0 +1,56 @@
+<template>
+  <div class="base-nav-menu">
+    <template v-for="(item,index) in menuList">
+      <template v-if="item.items && item.items.length">
+        <el-submenu :index="index+''" :key="index">
+          <template slot="title" v-if="item.title">
+            <img :src="item.title" :title="item.alt"/>
+          </template>
+          <template slot="title" v-else>{{item.headings}}</template>
+          <base-nav-menu-item v-for="child in item.items" :key="child.title" :menuList='[child]'></base-nav-menu-item>
+        </el-submenu>
+      </template>
+      <template v-else>
+        <el-menu-item :index="index+''" :key="index">
+          {{ item.headings }}
+        </el-menu-item>
+      </template>
+    </template>
+  </div>
+</template>
+
+<script>
+
+export default {
+  name: 'BaseNavMenuItem',
+  data () {
+    return {}
+  },
+  props: {
+    menuList: Array
+  }
+}
+</script>
+
+<style lang="less" scoped>
+.base-nav-menu {
+  height: 38px;
+  line-height: 38px;
+  display: flex;
+  align-items: center;
+  justify-content: space-around;
+  outline: none;
+  border: none;
+
+  .el-submenu {
+    .el-submenu__title {
+      border-radius: 50%;
+
+      .el-icon-arrow-down {
+        display: none;
+      }
+
+    }
+  }
+}
+</style>
diff --git a/src/components/panel/ToolBoxPanel.vue b/src/components/panel/ToolBoxPanel.vue
index 7e6489e..74a25e2 100644
--- a/src/components/panel/ToolBoxPanel.vue
+++ b/src/components/panel/ToolBoxPanel.vue
@@ -1,32 +1,33 @@
 <template>
   <div class="lefttop-toolbox-panel">
-    <div class="init-choose" @click="changeSelect()">
-      <img src="@/assets/images/map-pages/icon/toolbox/circle.png" alt="">
+    <div>
+      <div class="init-choose" @click="changeSelect()">
+        <img src="@/assets/images/map-pages/icon/toolbox/circle.png" alt=""/>
+      </div>
+      <el-menu class="el-menu"
+               mode="horizontal"
+               :collapse="isCollapse"
+               unique-opened
+               @open="handleOpen"
+               @close="handleClose"
+               @select="handleSelect"
+               v-show='selectGroup'
+      >
+        <base-nav-menu-item :menuList='menuList'></base-nav-menu-item>
+      </el-menu>
     </div>
-    <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>{{ ite.headings }}</span>
-          </el-dropdown-item>
-        </el-dropdown-menu>
-      </el-dropdown>
-    </div>
-    <!--    // 寮规-->
-    <TextBounced v-show="this.bouncedText" @changeBounced="gitBounced"></TextBounced>
+    <!--鏂囧瓧鏍囨敞寮规-->
+    <!--    <TextBounced v-show="this.bouncedText" @changeBounced="gitBounced"></TextBounced>-->
   </div>
 </template>
 
 <script>
-import circle from '@/assets/images/map-pages/icon/toolbox/circle.png'
-import fullscreen from '@/assets/images/map-pages/icon/toolbox/fullscreen.png'
-import legend from '@/assets/images/map-pages/icon/toolbox/legend.png'
-import location from '@/assets/images/map-pages/icon/toolbox/location.png'
-import polygon from '@/assets/images/map-pages/icon/toolbox/polygon.png'
-import square from '@/assets/images/map-pages/icon/toolbox/square.png'
+// import legend from '@/assets/images/map-pages/icon/toolbox/legend.png'
+// import square from '@/assets/images/map-pages/icon/toolbox/square.png'
+import circle from '@assets/images/map-pages/icon/toolbox/circle.png'
+import location from '@assets/images/map-pages/icon/toolbox/location.png'
+import polygon from '@assets/images/map-pages/icon/toolbox/polygon.png'
+import fullscreen from '@assets/images/map-pages/icon/toolbox/fullscreen.png'
 
 // 娴嬮噺鐨勬柟娉�
 import '@/components/plugin/leaflet-measure-path/leaflet-measure-path.css'
@@ -36,52 +37,75 @@
 import MakeTation from '@components/plugin/MakeTation'
 
 // 灏佽鐨勯�夋嫨寮规
-import TextBounced from '@components/panel/bounced/TextBounced'
+import BaseNavMenuItem from '@components/panel/BaseNavMenuItem'
 
 export default {
   name: 'ToolBoxPanel',
-  components: { TextBounced },
+  components: { BaseNavMenuItem },
   data () {
     return {
-      isPanelVisible: false,
-      total: 0,
-      activeTools: {},
-      imgLists: [
+      menuList: [
         {
           title: circle,
           alt: '鏍囩粯',
           items: [
-            { headings: '绾挎爣缁�' },
-            { headings: '闈㈡爣缁�' },
-            { headings: '绠ご鏍囩粯' }
+            {
+              headings: '鐐规爣缁�'
+            },
+            {
+              headings: '绾挎爣缁�'
+            },
+            {
+              headings: '闈㈡爣缁�',
+              items: [
+                { headings: '鍦嗗舰' },
+                { headings: '澶氳竟褰�' },
+                { headings: '鐭╁舰' }
+              ]
+            }
           ]
         },
-        {
-          title: square,
-          alt: '鏍囨敞',
-          items: [
-            { headings: '鐐规爣娉�' },
-            { headings: '绾挎爣娉�' },
-            { headings: '闈㈡爣娉�' },
-            { headings: '鏂囧瓧鏍囨敞' },
-            { headings: '鍥炬爣鏍囨敞' }
-          ]
-        },
-        {
-          title: legend,
-          alt: '娴嬮噺',
-          items: [
-            { headings: '璺濈娴嬮噺' },
-            { headings: '闈㈢Н娴嬮噺' }
-          ]
-        },
+        // {
+        //   title: square,
+        //   alt: '鏍囨敞',
+        //   items: [
+        //     { headings: '鐐规爣娉�' },
+        //     { headings: '绾挎爣娉�' },
+        //     { headings: '闈㈡爣娉�' },
+        //     { headings: '鏂囧瓧鏍囨敞' },
+        //     { headings: '鍥炬爣鏍囨敞' }
+        //   ]
+        // },
+        // {
+        //   title: legend,
+        //   alt: '娴嬮噺',
+        //   items: [
+        //     { headings: '璺濈娴嬮噺' },
+        //     { headings: '闈㈢Н娴嬮噺' }
+        //   ]
+        // },
         {
           title: location,
           alt: '鍒囨崲搴曞浘',
           items: [
-            { headings: '褰卞儚鍥�' },
-            { headings: '鐭㈤噺鍥�' },
-            { headings: '鍦板舰鍥�' }
+            {
+              headings: '褰卞儚鍥�',
+              items: [
+                { headings: '褰卞儚妯欐敞' }
+              ]
+            },
+            {
+              headings: '鐭㈤噺鍥�',
+              items: [
+                { headings: '鐭㈤噺妯欐敞' }
+              ]
+            },
+            {
+              headings: '鍦板舰鍥�',
+              items: [
+                { headings: '鍦板舰妯欐敞' }
+              ]
+            }
           ]
         },
         {
@@ -104,10 +128,7 @@
           ]
         }
       ],
-      form: {
-        regionType: '',
-        enterprise: ''
-      },
+      isCollapse: false,
       selectGroup: false,
       drawLayer: null,
       map: null,
@@ -117,19 +138,20 @@
     }
   },
   methods: {
+    handleOpen () {
+    },
+    handleClose () {
+    },
+    handleSelect (index, indexPath) {
+
+    },
     gitBounced (params) {
       this.bouncedText = params
     },
     changeSelect () {
       this.selectGroup = !this.selectGroup
     },
-    handleClose (done) {
-      console.log(done)
-    },
-    handleClick (tab, event) {
-      console.log(tab, event)
-    },
-    handleCommand (command) {
+    handleSelects (command) {
       console.log(command)
       switch (command) {
         case '鍏ㄥ睆':
@@ -163,17 +185,17 @@
         case '绾挎爣缁�':
           this.drawLayer = this.map.editTools.startPolyline()
           this.drawLayer.on('dblclick').on('dblclick', this.drawLayer.toggleEdit)
+          Measure.startMeasureLen(this.map, this.L)
           break
         case '闈㈡爣缁�':
           this.drawLayer = this.map.editTools.startPolygon()
           this.drawLayer.on('dblclick').on('dblclick', this.drawLayer.toggleEdit)
           break
-        case '绠ご鏍囩粯':
-          this.drawLayer = this.map.editTools.startPolylineArrow()
-          this.drawLayer.on('dblclick').on('dblclick', this.drawLayer.toggleEdit)
+        case '澶氳竟褰�':
+          alert('澶氳竟褰�')
           break
-        case '鐐规爣娉�':
-          MakeTation.StartCircleAnnotation(this.map, this.L)
+        case '鐐规爣缁�':
+          MakeTation.StartPointAnnotation(this.map, this.L)
           break
         case '鍥炬爣鏍囨敞':
           this.drawLayer = this.map.editTools.startIcon()
@@ -190,93 +212,71 @@
           Measure.startMeasureArea(this.map, this.L)
           break
       }
-    },
-    loadData () {
-
     }
-  },
-  mounted () {
-    this.loadData()
-  },
-  created () {
-
   }
 }
 </script>
 
 <style lang="less">
+
 .lefttop-toolbox-panel {
   position: absolute;
-  left: 5px;
-  top: 5px;
+  left: 15px;
+  top: 15px;
   z-index: 999;
-  display: flex;
 
-  .init-choose {
-    //margin: 15px 5px;
-    background: #305B62;
-    //margin-top: 15px;
-    width: 35px;
-    height: 38px;
-    border-radius: 50%;
-    border: 2px skyblue solid;
+  div {
+    width: 100%;
+    height: 55px;
+    line-height: 55px;
     display: flex;
     align-items: center;
-    justify-content: center;
-    z-index: 999;
-  }
+    justify-content: space-around;
 
-  .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%;
+    .init-choose {
+      background: #305B62;
+      width: 35px;
+      height: 35px;
+      border-radius: 50%;
+      border: 2px skyblue solid;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      z-index: 999;
     }
 
-    @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;
+    .el-menu {
+      width: 80%;
+      background: none;
+      z-index: 1;
+      border: none;
+      background: #305B62;
+      border-radius: 50px;
     }
   }
 
-  .el-select-dropdown:last-child {
-    margin-left: 10px;
-  }
-
-  .el-dropdown-link {
-    cursor: pointer;
-    color: #409EFF;
-  }
-
-  .el-icon-arrow-down {
-    font-size: 12px;
-  }
+  //.transition {
+  //  @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;
+  //  }
+  //}
 
 }
 </style>
diff --git a/src/components/panel/bounced/TextBounced.vue b/src/components/panel/bounced/TextBounced.vue
index d5dde64..6ccfe85 100644
--- a/src/components/panel/bounced/TextBounced.vue
+++ b/src/components/panel/bounced/TextBounced.vue
@@ -16,7 +16,7 @@
       <li class="bounced-box-choose">
         <span>棰滆壊锛�</span>
         <select v-model='bouncedSelect' @click="changeLabelTextSelect()">
-          <option v-for="(item,index) in selectOptions" :key="index" :value="item">{{ item }}</option>
+          <option v-for="(item,index) in selectOptions" :key="index" :value="item.value">{{ item.text }}</option>
         </select>
       </li>
     </ul>
@@ -32,8 +32,21 @@
   data () {
     return {
       bouncedText: '',
-      bouncedSelect: '绾㈣壊',
-      selectOptions: ['绾㈣壊', '钃濊壊', '榛勮壊']
+      bouncedSelect: 'red',
+      selectOptions: [
+        {
+          value: 'red',
+          text: '绾㈣壊'
+        },
+        {
+          value: 'blue',
+          text: '钃濊壊'
+        },
+        {
+          value: 'yellow',
+          text: '榛勮壊'
+        }
+      ]
     }
   },
   methods: {
@@ -43,6 +56,7 @@
     changeLabelTextSelect () {
       // this.bouncedSelect = item
       console.log('鑾峰彇棰滆壊')
+      MakeTation.setContentColor(this.bouncedSelect)
     },
     ChangeText () {
       MakeTation.setContentText(this.bouncedText)
diff --git a/src/components/plugin/Editable.js b/src/components/plugin/Editable.js
index bd287f5..d39de14 100644
--- a/src/components/plugin/Editable.js
+++ b/src/components/plugin/Editable.js
@@ -306,16 +306,6 @@
         line.enableEdit(this.map).newShape(latlng)
         return line
       },
-      // 绠ご鏍囩粯
-      startPolylineArrow: function (latlng, options) {
-        const lineArrow = this.createPolyline([], {
-          color: 'black',
-          weight: 3,
-          opacity: 1.0
-        })
-        lineArrow.enableEdit(this.map).newShape(latlng)
-        return lineArrow
-      },
 
       // 馃崅method startPolygon(latlng: L.LatLng, options: hash): L.Polygon
       // Start drawing a Polygon. If `latlng` is given, a first point will be added. In any case, continuing on user click.
diff --git a/src/components/plugin/MakeTation.js b/src/components/plugin/MakeTation.js
index 9aedc5e..189619f 100644
--- a/src/components/plugin/MakeTation.js
+++ b/src/components/plugin/MakeTation.js
@@ -20,14 +20,20 @@
     TextAnnotation.layers = L.layerGroup()
     map.on('click', TextAnnotation.click).on('dblclick', TextAnnotation.dblclick)
   },
-  setContent :function (changeContent) {
-    console.log(changeContent)
+  // 璁剧疆鏀瑰彉鏂囧瓧鍐呭
+  setContent: function (changeContent) {
+    // console.log(changeContent)
     TextAnnotation.changeContent = changeContent
   },
+  // 璁剧疆鏀瑰彉鏂囧瓧棰滆壊
+  setColor: function (changeColor) {
+    // console.log(changeColor)
+    TextAnnotation.changeColor = changeColor
+  },
   click: function (e) {
-    console.log(TextAnnotation.changeContent)
+    // console.log(TextAnnotation.changeContent)
     let labIcon = L.divIcon({
-      html: '<div style="color: red;font-size: 18px;">' + TextAnnotation.changeContent + '</div>',
+      html: '<div style="color:' + TextAnnotation.changeColor + ';font-size: 18px;">' + TextAnnotation.changeContent + '</div>',
       iconSize: [100, 40],
       iconAnchor: [0, 0],
       className: ''
@@ -52,7 +58,7 @@
 }
 
 // 娣诲姞 鐐� 鐨勬爣娉�
-var CircleAnnotation = {
+let pointAnnotation = {
   points: [],
   color: 'yellow',
   L: null,
@@ -61,54 +67,60 @@
   polyline: null,
   marker: null,
   init: function (map, L) {
-    // console.log(L)
-    CircleAnnotation.L = L
-    CircleAnnotation.map = map
-    CircleAnnotation.points = []
-    CircleAnnotation.polyline = null
-    CircleAnnotation.marker = null
-    CircleAnnotation.layers = L.layerGroup()
-    map.on('click', CircleAnnotation.click).on('dblclick', CircleAnnotation.dblclick)
+    pointAnnotation.L = L
+    pointAnnotation.map = map
+    pointAnnotation.points = []
+    pointAnnotation.polyline = null
+    pointAnnotation.marker = null
+    pointAnnotation.layers = L.layerGroup()
+    map.on('click', pointAnnotation.click).on('dblclick', pointAnnotation.dblclick)
   },
   click: function (e) {
-    // var myIcon = L.divIcon({className: 'my-div-icon'});
     let marker = L.marker(e.latlng)
-    marker.addTo(CircleAnnotation.map)
+    marker.addTo(pointAnnotation.map)
+    // pointAnnotation.map.panBy(L.point(e.latlng))
   },
   dblclick: function (e) {
-    CircleAnnotation.map.off('click', CircleAnnotation.click).off('dblclick', CircleAnnotation.dblclick)
+    pointAnnotation.map.off('click', pointAnnotation.click).off('dblclick', pointAnnotation.dblclick)
   },
   destory: function () {
-    if (CircleAnnotation.polyline) {
-      CircleAnnotation.map.removeLayer(CircleAnnotation.polyline)
+    if (pointAnnotation.polyline) {
+      pointAnnotation.map.removeLayer(pointAnnotation.polyline)
     }
-    if (CircleAnnotation.marker) {
-      CircleAnnotation.marker.remove()
+    if (pointAnnotation.marker) {
+      pointAnnotation.marker.remove()
     }
-    if (CircleAnnotation.layers) {
-      CircleAnnotation.layers.clearLayers()
+    if (pointAnnotation.layers) {
+      pointAnnotation.layers.clearLayers()
     }
   }
 }
 
+// 娣诲姞鏂囧瓧鏍囨敞
 const startMakeText = function (map, L) {
   TextAnnotation.init(map, L)
 }
-
-const StartCircleAnnotation = function (map, L) {
-  CircleAnnotation.init(map, L)
-}
-
+// 鏂囧瓧鏍囨敞鐨� 鍐呭绀捐缃�
 const setContentText = function (text) {
   TextAnnotation.setContent(text)
+}
+// 鏂囧瓧鏍囨敞鍐呭鐨� 棰滆壊 璁剧疆
+const setContentColor = function (color) {
+  TextAnnotation.setColor(color)
+}
+
+// 鐐� 鏍囨敞
+const StartPointAnnotation = function (map, L) {
+  pointAnnotation.init(map, L)
 }
 
 const clearText = function () {
   startMakeText.destory()
 }
 export default {
-  startMakeText,
   clearText,
-  StartCircleAnnotation,
-  setContentText
+  startMakeText,
+  setContentText,
+  setContentColor,
+  StartPointAnnotation
 }
diff --git a/src/components/plugin/MeaSure.js b/src/components/plugin/MeaSure.js
index b6730f1..2c05000 100644
--- a/src/components/plugin/MeaSure.js
+++ b/src/components/plugin/MeaSure.js
@@ -77,14 +77,14 @@
 var distanceMeasure = {
   points: [],
 // markers:[],
-  color: 'red',
+  color: 'blue',
   L: null,
   map: null,
   layers: null,
   polyline: null,
   marker: null,
   init: function (map, L) {
-    console.log(L)
+    // console.log(L)
     distanceMeasure.L = L
     distanceMeasure.map = map
     distanceMeasure.points = []
@@ -127,8 +127,6 @@
     console.log('鍙屽嚮缁撴潫', e)
     distanceMeasure.polyline.addTo(distanceMeasure.layers)
     distanceMeasure.close(e.latlng)
-//distanceMeasure.polygon.enableEdit();
-//map.on('editable:vertex:drag editable:vertex:deleted', distanceMeasure.polygon.updateMeasurements, distanceMeasure.polygon);
     distanceMeasure.map.off('click', distanceMeasure.click).off('mousemove', distanceMeasure.mousemove).off('dblclick', distanceMeasure.dblclick)
   },
   destory: function () {

--
Gitblit v1.8.0