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 | 210 ++++++++++++++++++++++++---------------------------- 1 files changed, 97 insertions(+), 113 deletions(-) diff --git a/src/components/LayerController/LayerController.vue b/src/components/LayerController/LayerController.vue index 7f2fd10..ef07406 100644 --- a/src/components/LayerController/LayerController.vue +++ b/src/components/LayerController/LayerController.vue @@ -1,39 +1,30 @@ <template> - <div class="float-panel"> -<!-- <i class="horn horn-br"></i>--> -<!-- <i class="horn horn-bl"></i>--> - <div class="head title-border"> - <div class="title-text-border"> - <div class="title-icon"></div> - <div class="title-text">涓氬姟鐪嬫澘</div> - <div class="title-button" :class="{'switch-head-up':true, 'switch-head-down': !panelSwitch.main}" - @click="switchPanel"> - <!-- <i class="el-icon-arrow-down"></i> --> - </div> - </div> - </div> - <div class="body-box" id="panelContent"> - <div id="panelInnerContent" :style="{ height:height }"> - <transition name="el-fade-in"> - <div v-show="isShow"> - <slot></slot> - </div> - </transition> - </div> + <div :class='["float-panel",layerControllerVisible ? "active" : ""]' > - </div> + <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> </template> <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' +import bus from '@/eventBus' export default { name: 'LayerController', - components: {}, + components: { LcServiceLayer }, props: { preset: { type: String, @@ -49,50 +40,45 @@ }, layerHelper () { return this.$store.state.map.layerHelper - }, - layerControllerVisible () { - return this.$store.state.map.layerControllerVisible } }, data () { return { - height: '200px', + width: '250px', isShow: true, icons: { setting: iconSetting }, + layerControllerVisible: false, panelSwitch: { main: true // 涓荤獥鍙� } } }, mounted () { - this.$nextTick(function () { - this.init() + const that = this + bus.$on('changeState', function (state) { + if (state.num !== 3 && state.type) { + that.layerControllerVisible = false + } }) }, methods: { - 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) - } + showPanel () { + this.layerControllerVisible = !this.layerControllerVisible + const state = { + type: this.layerControllerVisible, + num: 3 } + bus.$emit('changeState', state) }, switchPanel () { this.panelSwitch.main = !this.panelSwitch.main if (this.panelSwitch.main) { - this.height = '200px' + this.width = '250px' this.isShow = true } else { - this.height = '0px' + this.width = '0px' this.isShow = false } } @@ -102,22 +88,42 @@ <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: 10px; - bottom: 10px; - width: 230px; + left: 0.14583rem; + top: 0.73979rem; height: auto; font-size: 11px; z-index: 1000; - - div { - color: #90c8e0; - } - - #panelInnerContent { - overflow: hidden; - transition: all 0.5s linear; + display: flex; + min-height: 0.28rem; + min-width: 0.28rem; + overflow: hidden; + .iconBtn.active{ + display: none; } .title-border { width: 100%; @@ -153,11 +159,12 @@ } .title-text-border { - width: 100%; - height: 28px; + 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); + // -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 { @@ -170,14 +177,12 @@ } .title-text { - float: left; - width: 150px; + width: 25px; color: #00d0f9; - margin-left: 4px; - line-height: 20px; font-weight: bold; margin-top: 6px; - text-align: left; + 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; } @@ -219,28 +224,14 @@ 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; + transition: transform 2s linear 0s; } - select { background: transparent; margin: 6px; @@ -249,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; @@ -300,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