| | |
| | | <template> |
| | | <div class="floatPanel"> |
| | | <div class="float-panel"> |
| | | <!-- <i class="horn horn-tl"></i> --> |
| | | <!-- <i class="horn horn-tr"></i> --> |
| | | <i class="horn horn-br"></i> |
| | | <i class="horn horn-bl"></i> |
| | | |
| | | <div class="head titleBorder"> |
| | | <div class="titleTextBorder"> |
| | | <div class="titleIcon"></div> |
| | | <div class="titleText">业务看板</div> |
| | | <div class="titleButton" :class="{switchHeadUp:true, switchHeadDown: !panelSwitch.main}" @click="switchPanel"> |
| | | <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="bodyBox" id="panelContent"> |
| | | <div id="panelInnerContent" style="height: auto; overflow: hidden;"> |
| | | <slot>图层数据暂未加载......</slot> |
| | | <div class="body-box" id="panelContent"> |
| | | <div id="panelInnerContent" :style="{ height:height }"> |
| | | <slot></slot> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | |
| | | <script> |
| | | import api from './LayerControllerAPI' |
| | | import { mapState, mapMutations } from 'vuex' |
| | | // import { mapState, mapMutations } from 'vuex' |
| | | import '@assets/css/map/magic.min.css' |
| | | import presets from './layerControllerPresets' |
| | | import $ from 'jquery' |
| | | // import $ from 'jquery' |
| | | |
| | | import iconSetting from '@/assets/images/map-pages/icon/setting.png' |
| | | |
| | |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapState({ |
| | | map: state => state.map, |
| | | L: state => state.L, |
| | | layerHelper: state => state.layerHelper, |
| | | layerControllerVisible: state => state.layerControllerVisible |
| | | }) |
| | | map(){ |
| | | return this.$store.state.map.map |
| | | }, |
| | | L(){ |
| | | return this.$store.state.map.L |
| | | }, |
| | | layerHelper(){ |
| | | return this.$store.state.map.layerHelper |
| | | }, |
| | | layerControllerVisible(){ |
| | | return this.$store.state.map.layerControllerVisible |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | height:'200px', |
| | | icons:{ |
| | | setting:iconSetting |
| | | }, |
| | |
| | | }) |
| | | }, |
| | | methods: { |
| | | ...mapMutations(['updateLayerControllerVisible']), |
| | | async init() { |
| | | init() { |
| | | this.initPreset() |
| | | }, |
| | | initPreset() { |
| | |
| | | if (prmPreset === 'undefined') { |
| | | console.log('该图层控制面板的预设没有找到,请检查预设名称是否正确!') |
| | | } else { |
| | | this.updateLayerControllerVisible(this.layerControllerVisible) |
| | | this.$store.commit('updateLayerControllerVisible', this.layerControllerVisible); |
| | | } |
| | | } |
| | | }, |
| | | switchPanel() { |
| | | this.panelSwitch.main = !this.panelSwitch.main |
| | | if (this.panelSwitch.main) { |
| | | $('#panelInnerContent').animate({ height: '500px' }, 'fast', 'swing', () => { |
| | | $('#panelInnerContent').css('height', 'auto') |
| | | $('#panelContent').css('height', 'auto') |
| | | }) |
| | | this.height = '200px' |
| | | } else { |
| | | $('#panelInnerContent').animate({ height: '0px' }, 'fast', 'swing') |
| | | this.height = '0px' |
| | | } |
| | | }, |
| | | } |
| | |
| | | |
| | | <style lang="less"> |
| | | |
| | | .floatPanel{ |
| | | .float-panel{ |
| | | position: absolute; |
| | | left: 10px; |
| | | bottom: 10px; |
| | |
| | | div{ |
| | | color:#90c8e0; |
| | | } |
| | | .titleBorder{ |
| | | #panelInnerContent{ |
| | | overflow: hidden; |
| | | transition: all 0.5s linear; |
| | | } |
| | | .title-border{ |
| | | width: 100%; |
| | | height: 28px; |
| | | background: #10488c; |
| | |
| | | clip-path: polygon(0px 0px, 0px 28px, 230px 28px, 230px 9px, 95px 9px, 86px 0px); |
| | | position: relative; |
| | | } |
| | | .titleBorder:before { |
| | | .title-border:before { |
| | | content: ""; |
| | | display: block; |
| | | position: absolute; |
| | |
| | | left: 0; |
| | | background-color: #38c8ef; |
| | | } |
| | | .titleBorder:after { |
| | | .title-border:after { |
| | | content: ""; |
| | | display: block; |
| | | position: absolute; |
| | |
| | | -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); |
| | | } |
| | | .titleTextBorder { |
| | | .title-text-border { |
| | | width: 100%; |
| | | height: 28px; |
| | | 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); |
| | | } |
| | | .titleIcon{ |
| | | .title-icon{ |
| | | float: left; |
| | | width: 22px; |
| | | height: 22px; |
| | |
| | | margin-left: 2px; |
| | | background-image: url(/assets/images/map-pages/icon/setting.png); |
| | | } |
| | | .titleText{ |
| | | .title-text{ |
| | | float: left; |
| | | width: 150px; |
| | | color: #00d0f9; |
| | |
| | | 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; |
| | | } |
| | | .titleline{ |
| | | .title-line{ |
| | | display: inline-block; |
| | | width: 120px; |
| | | height: 1px; |
| | |
| | | line-height: 5px; |
| | | vertical-align: middle; |
| | | } |
| | | .titlepoint{ |
| | | .title-point{ |
| | | display: inline-block; |
| | | width: 5px; |
| | | height: 5px; |
| | |
| | | line-height: 5px; |
| | | vertical-align: middle; |
| | | } |
| | | .titleButton{ |
| | | .title-button{ |
| | | float: right; |
| | | width: 28px; |
| | | height: 28px; |
| | |
| | | } |
| | | } |
| | | |
| | | .bodyBox{ |
| | | background-color: rgba(0x04, 0x52, 0x7f, 0.6); |
| | | .body-box{ |
| | | background-color: rgba(44,62,80, 0.6); |
| | | border: 1px solid #10488c; |
| | | margin-top: -1px; |
| | | height: auto; |
| | | } |
| | | |
| | | .switchHeadUp{ |
| | | .switch-head-up{ |
| | | width: 22px; |
| | | height: 16px; |
| | | float: right; |
| | |
| | | transform-origin: 50% 50%; |
| | | transition: transform 0.5s linear 0s; |
| | | } |
| | | .switchHeadDown{ |
| | | .switch-head-down{ |
| | | transform: rotateX(180deg); |
| | | transform-origin: 50% 50%; |
| | | transition: transform 0.5s linear 0s; |