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