From 61903a7e8e95405c23d627ad3c08618bd775715e Mon Sep 17 00:00:00 2001 From: chenyabin <Chenab123!> Date: 星期一, 12 四月 2021 11:42:19 +0800 Subject: [PATCH] 弹框样式修改&& 左侧联动关闭操作面板 --- src/components/LayerController/LayerController.vue | 180 ++++++++++++++++++++++++++--------------------------------- 1 files changed, 79 insertions(+), 101 deletions(-) diff --git a/src/components/LayerController/LayerController.vue b/src/components/LayerController/LayerController.vue index 9a60145..ef07406 100644 --- a/src/components/LayerController/LayerController.vue +++ b/src/components/LayerController/LayerController.vue @@ -1,9 +1,16 @@ <template> - <div class="float-panel"> - <div :class='["btn",layerControllerVisible ? "active" : ""]' @click="showPanel"><span><img src="@assets/images/map-pages/icon/layer.png" alt="" width="26px" style="display: block;margin: auto"><span class="icon-name">鍥惧眰</span></span></div> - <transition name="fade"> - <div :class="'legend-content map-background'" style="position: absolute;left: 50px;top: 0" v-show="layerControllerVisible"> + <div :class='["float-panel",layerControllerVisible ? "active" : ""]' > + + <el-tooltip :popper-class="'map-tooltip'" effect="dark" content="鍥惧眰鎺у埗" placement="left"> + <div @click="showPanel" class="iconBtn" :class='layerControllerVisible ? "active-button" : ""' v-show="!layerControllerVisible" style=" position: absolute;top:0;left: 0;"> + <img src="@assets/images/map-pages/icon/layer.png" alt="" class="icon"> + <!-- <span class="icon-name">鍥惧眰</span>--> + </div> + </el-tooltip> + <transition name="layerChange"> + <div :class="'legend-content map-background'" v-show="layerControllerVisible"> <lc-service-layer></lc-service-layer> + <button @click="showPanel" type="button" class="el-button special-button el-button--default el-icon-d-arrow-left"></button> </div> </transition> </div> @@ -11,12 +18,10 @@ <script> import '@assets/css/map/magic.min.css' -import presets from './layerControllerPresets' import iconSetting from '@/assets/images/map-pages/icon/setting.png' import LcServiceLayer from './modules/LcServiceLayer' - -const cityOptions = ['涓婃捣', '鍖椾含', '骞垮窞', '娣卞湷'] +import bus from '@/eventBus' export default { name: 'LayerController', components: { LcServiceLayer }, @@ -44,10 +49,6 @@ icons: { setting: iconSetting }, - checkAll: false, - checkedCities: ['涓婃捣', '鍖椾含'], - cities: cityOptions, - isIndeterminate: true, layerControllerVisible: false, panelSwitch: { main: true // 涓荤獥鍙� @@ -55,36 +56,21 @@ } }, mounted () { - this.$nextTick(function () { - this.init() + const that = this + bus.$on('changeState', function (state) { + if (state.num !== 3 && state.type) { + that.layerControllerVisible = false + } }) }, methods: { showPanel () { this.layerControllerVisible = !this.layerControllerVisible - }, - handleCheckAllChange (val) { - this.checkedCities = val ? cityOptions : [] - this.isIndeterminate = false - }, - handleCheckedCitiesChange (value) { - const checkedCount = value.length - this.checkAll = checkedCount === this.cities.length - this.isIndeterminate = checkedCount > 0 && checkedCount < this.cities.length - }, - init () { - this.initPreset() - }, - initPreset () { - if (this.preset !== 'default') { - const prmPreset = presets[this.preset] - Object.assign(this.layerControllerVisible, prmPreset) // 闃叉棰勮鍙傛暟涓庨粯璁ゅ弬鏁颁笉涓�鑷村鑷存姤閿欙紝濡傛灉娌℃湁鎸夌収鎮ㄧ殑閰嶇疆鍙戠敓鏀瑰彉锛岃妫�鏌ユ嫾鍐欐槸鍚︽纭� - if (prmPreset === 'undefined') { - console.log('璇ュ浘灞傛帶鍒堕潰鏉跨殑棰勮娌℃湁鎵惧埌锛岃妫�鏌ラ璁惧悕绉版槸鍚︽纭紒') - } else { - this.$store.commit('updateLayerControllerVisible', this.layerControllerVisible) - } + const state = { + type: this.layerControllerVisible, + num: 3 } + bus.$emit('changeState', state) }, switchPanel () { this.panelSwitch.main = !this.panelSwitch.main @@ -101,29 +87,43 @@ </script> <style lang="less"> + + .layerChange-enter-active { + transform-origin: top left; + animation: bounce-in .2s; + } + .layerChange-leave-active { + transform-origin: top left; + animation: bounce-in .2s reverse; + } + /* + + .layerChange-enter-active, + .layerChange-leave-active { + transition: all 0.5s; + } + + .layerChange-enter, + .layerChange-leave-to { + opacity: 0; + transform: translateX(-100px); + }*/ + .float-panel.active{ + overflow: visible; + } .float-panel { position: absolute; - left: 2px; - top: 120px; + left: 0.14583rem; + top: 0.73979rem; height: auto; font-size: 11px; z-index: 1000; - - div { - color: #00fff6; - } - .btn { - width:45px; - text-align: center; - background: rgba(0, 16, 30, 0.5); - cursor: pointer; - color: #00fff6; - border: 0.00521rem solid #00fff6; - box-shadow: 0 0 0.03rem #00fff6; - } - .active { - border: 0.00521rem solid #fff700; - box-shadow: 0 0 0.03rem #fff700; + display: flex; + min-height: 0.28rem; + min-width: 0.28rem; + overflow: hidden; + .iconBtn.active{ + display: none; } .title-border { width: 100%; @@ -227,26 +227,11 @@ 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; + transition: transform 2s linear 0s; } - select { background: transparent; margin: 6px; @@ -255,38 +240,6 @@ 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; @@ -306,6 +259,31 @@ border-radius: 0px; background: #0E3565; } + .el-button--default{ + padding: 0; + background:@background-color4; + color:@color-tool; + position: absolute; + top:24px; + right:0.02rem; + border:none;//1px solid @color-tool; + width: 0.2rem; + height: 0.2rem; + text-align: center; + line-height: 0.2rem; + margin-top: -0.1rem; + border-radius: 50%; + // border-radius: 0.03rem 50% 50% 0.03rem; + } + .el-button--default:hover{ + background:@background-color; + border:1px solid @color; + box-shadow: 0 0 2px @color; + color:@color; + } + .legend-content{ + width: 1.79167rem; + } } </style> -- Gitblit v1.8.0