From 1da76d05ebba28eeebef8af3832680143d5699c5 Mon Sep 17 00:00:00 2001 From: seatonwan9 <seatonwan9@163.com> Date: 星期一, 31 五月 2021 17:12:37 +0800 Subject: [PATCH] 查询条件补充,治理设施优化 --- src/components/LayerController/LayerController.vue | 432 +++++++++++++++++++++++++++--------------------------- 1 files changed, 216 insertions(+), 216 deletions(-) diff --git a/src/components/LayerController/LayerController.vue b/src/components/LayerController/LayerController.vue index e6a8076..37af978 100644 --- a/src/components/LayerController/LayerController.vue +++ b/src/components/LayerController/LayerController.vue @@ -1,30 +1,31 @@ <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> + <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"> --> + <i class="icon iconfont iconlayer-group"></i> + <!-- <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, @@ -40,9 +41,6 @@ }, layerHelper () { return this.$store.state.map.layerHelper - }, - layerControllerVisible () { - return this.$store.state.map.layerControllerVisible } }, data () { @@ -52,30 +50,28 @@ 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 @@ -93,198 +89,202 @@ <style lang="less"> - .float-panel { - position: absolute; - top: 80px; - height: auto; - font-size: 11px; - z-index: 1000; + .layerChange-enter-active { + transform-origin: top left; + animation: bounce-in .2s; + } + .layerChange-leave-active { + transform-origin: top left; + animation: bounce-in .2s reverse; + } + /* - div { - color: #90c8e0; - } + .layerChange-enter-active, + .layerChange-leave-active { + transition: all 0.5s; + } - .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; - } + .layerChange-enter, + .layerChange-leave-to { + opacity: 0; + transform: translateX(-100px); + }*/ + .float-panel.active{ + overflow: visible; + } +.float-panel { + position: absolute; + left: 0.14583rem; + top: 0.73979rem; + height: auto; + font-size: 11px; + z-index: 1000; + display: flex; + min-height: 0.28rem; + min-width: 0.28rem; + overflow: hidden; + .iconBtn.active{ + display: none; + } + .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-down { + transform: rotateX(180deg); + transform-origin: 50% 50%; + transition: transform 2s linear 0s; + } + select { + background: transparent; + margin: 6px; + border: .5px solid #569EB7; + width: 150px; + color: #569EB7; + padding: 0 16px; + } + ::-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; + } + .el-button--default{ + padding: 0; + background:@background-color4; + color:@color-tool; + position: absolute; + top:20px; + 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