From 2e876ee0ba719df9a0008c2eb93de5a6d3697ee7 Mon Sep 17 00:00:00 2001
From: chenyabin <Chenab123!>
Date: 星期二, 13 四月 2021 11:01:20 +0800
Subject: [PATCH] 修改 图层控制和搜索组件联动。
---
src/components/panel/RightSearchPanel.vue | 45 +++++++++++++++++-----
src/conf/Topic.js | 15 +++++--
src/components/panel/LegendPanel.vue | 15 +++++++
src/components/LayerController/modules/LcServiceLayer.vue | 13 ++++--
4 files changed, 67 insertions(+), 21 deletions(-)
diff --git a/src/components/LayerController/modules/LcServiceLayer.vue b/src/components/LayerController/modules/LcServiceLayer.vue
index f6af058..153db9d 100644
--- a/src/components/LayerController/modules/LcServiceLayer.vue
+++ b/src/components/LayerController/modules/LcServiceLayer.vue
@@ -7,7 +7,7 @@
<i class="downUp el-icon-caret-bottom" @click="item.isShow=!item.isShow" :class="item.isShow?'':'active'" ></i><!-- el-icon-arrow-down -->
<!-- 涓�绾у浘灞傞亶鍘� -->
<div style="padding-left:25px;padding-top:10px;color:#fff">
- <input type="checkbox" :name="'wmsLayer_'+item.code" :checked="item.checked" :value="item.code" @change="swAllLayers(item)"/>{{ item.name }}
+ <input type="checkbox" :name="'wmsLayer_'+item.code" :checked="item.checked" :value="item.code" @change="swAllLayers(item,'')"/>{{ item.name }}
</div>
<div class="layerbox-item" v-show="item.isShow">
<!-- 浜岀骇鍥惧眰閬嶅巻 -->
@@ -16,7 +16,7 @@
:name="'wmsSublayers_'+item.code+'_'+itm.code"
:checked="itm.checked"
:value="itm.code"
- @change="swAllLayers(itm)"/>{{ itm.name }}
+ @change="swAllLayers(itm,item.name)"/>{{ itm.name }}
<!-- 涓夌骇鍥惧眰閬嶅巻 -->
<div class="layerbox-item-3">
<div class="basemap-layer-item" v-for="layer in itm.layers" :key="layer.code">
@@ -24,7 +24,7 @@
:name="'wmsSublayers_'+item.code+'_'+layer.code"
:checked="layer.checked"
:value="layer.code"
- @change="swAllLayers(layer)"/>
+ @change="swAllLayers(layer,'')"/>
<span :style="'color:'+layer.color">{{ layer.name }}</span>
</div>
</div>
@@ -39,7 +39,7 @@
<script>
import LcServiceLayerFilter from '@components/LayerController/modules/LcServiceLayerFilter'
-
+import bus from '@/eventBus'
export default {
name: 'LcServiceLayer',
components: { LcServiceLayerFilter },
@@ -51,11 +51,14 @@
mounted () {
},
methods: {
- swAllLayers (item) {
+ swAllLayers (item, v) {
// eslint-disable-next-line no-debugger
item.checked = !item.checked
this.toggleLayer(item)
this.swLayers(item.layers, item.checked)
+ if (v === '涓撻鍥惧眰') {
+ bus.$emit('changeSearchBar', item)
+ }
},
swLayers (layers, checked) {
if (layers) {
diff --git a/src/components/panel/LegendPanel.vue b/src/components/panel/LegendPanel.vue
index d14a1b3..36e0efd 100644
--- a/src/components/panel/LegendPanel.vue
+++ b/src/components/panel/LegendPanel.vue
@@ -32,7 +32,7 @@
import { LayerPipeLines } from '../../conf/layers/LayerPipeLines'
import { LayerPk } from '../../conf/layers/LayerPk'
import { LayerArea } from '../../conf/layers/LayerArea'
-
+import bus from '@/eventBus'
export default {
name: 'LegendPanel',
data () {
@@ -42,10 +42,23 @@
serviceLayers: [LayerSoilGroundWater, LayerEnvRisk, LayerAirQuality, LayerWasteSolid, LayerWasteGas, LayerWasteWater, LayerArea, LayerPk, LayerPipeLines]
}
},
+ mounted () {
+ const that = this
+ bus.$on('changeState', function (state) {
+ if (state.num !== 4 && state.type) {
+ that.isShow = false
+ }
+ })
+ },
methods: {
// 鍥炬爣 鎺у埗鍐呭鐨勫睍绀轰笌闅愯棌
legendChange () {
this.isShow = !this.isShow
+ const state = {
+ type: this.isShow,
+ num: 4
+ }
+ bus.$emit('changeState', state)
}
}
}
diff --git a/src/components/panel/RightSearchPanel.vue b/src/components/panel/RightSearchPanel.vue
index 28910bb..cc2ba13 100644
--- a/src/components/panel/RightSearchPanel.vue
+++ b/src/components/panel/RightSearchPanel.vue
@@ -12,7 +12,7 @@
</div>
</li>
</ul> -->
- <ul v-for="item in topicList" :key="item.name" :class="item.checked?'module-wrap map-btn-active':'module-wrap map-btn-unactive'" @click="()=>{selected(item)}" >
+ <ul v-for="item in topicList" :key="item.name" :class="item.checked?'module-wrap map-btn-active':'module-wrap map-btn-unactive'" @click="()=>{selected(item)}" v-show="item.isShow" >
<el-tooltip :popper-class="'map-tooltip'" effect="dark" :content="item.name" placement="left">
<li>
<img src="../../assets/images/map-pages/icon/sl.png" class="icon">
@@ -26,11 +26,11 @@
<div :class="[isCollapse? 'btn-stretch':'btn-shrink']" ></div>
</div>
<div :class="'search-container map-background'" v-show="selectGroup" >
- <div @click="setSearchPanelChange" type="button" class="el-button special-button el-button--default ">
+ <div @click="setSearchPanelChange" class="el-button special-button el-button--default ">
<i class=" el-icon-d-arrow-right" v-if="selectGroup"></i>
<i class=" el-icon-d-arrow-left" v-else ></i>
</div>
- <div class="el-message-box__content" style="padding:0 6px 6px 6px;font-size: 13px;">
+ <div class="el-message-box__content" style="padding:0;font-size: 13px;">
<component :title="title" :is="gcComp"></component>
</div>
</div>
@@ -55,6 +55,7 @@
import SolidWasteSearch from '@components/panel/topicSearch/SolidWasteSearch'
import SewersSearch from '@components/panel/topicSearch/SewersSearch'
import SoilGroundWaterSearch from '@components/panel/topicSearch/SoilGroundWaterSearch.vue'
+import bus from '@/eventBus'
export default {
name: 'MonitorPanel',
components: { GasWasteSearch, WaterWasteSearch, SolidWasteSearch, EnvRiskSearch, DischargeSearch },
@@ -66,7 +67,6 @@
topicCheckedList: [],
isPanelVisible: false,
gcComp: SewersSearch,
-
gdVisible: true,
hbVisible: false,
pkVisible: false,
@@ -74,7 +74,7 @@
title: '姹¢洦姘寸缃�',
isCollapse: true,
- selectGroup: true
+ selectGroup: false
}
},
computed: {},
@@ -116,13 +116,13 @@
case '姹℃煋婧�':
this.gcComp = DischargeSearch
break
- case '搴熸按鐩戞祴':
+ case '搴熸按':
this.gcComp = WaterWasteSearch
break
- case '搴熸皵鐩戞祴':
+ case '搴熸皵':
this.gcComp = GasWasteSearch
break
- case '鍥哄簾绠$悊':
+ case '鍥哄簾':
this.gcComp = SolidWasteSearch
break
case '鐜椋庨櫓':
@@ -131,7 +131,7 @@
case '鍦熷¥鍙婂湴涓嬫按':
this.gcComp = SoilGroundWaterSearch
break
- case '姹¢洦姘寸缃�':
+ case '绠$綉':
this.gcComp = SewersSearch
break
}
@@ -180,9 +180,32 @@
// speed: 1000
// })
// }
+ },
+ defaultLastOne () {
+ let v = {}
+ this.topicList.forEach((item) => {
+ if (item.isShow) {
+ v = item
+ }
+ })
+ this.selected(v)
}
},
mounted () {
+ const that = this
+ bus.$on('changeSearchBar', function (obj) {
+ // console.log(obj.checked, obj.name)
+ that.topicList.forEach((item) => {
+ if (item.name === obj.name) {
+ item.isShow = obj.checked
+ if (item.isShow) {
+ that.selected(item)
+ } else {
+ that.defaultLastOne()
+ }
+ }
+ })
+ })
}
}
</script>
@@ -199,7 +222,7 @@
.search-container {
position: relative;
width: 1.79167rem;
- /*height: 5.6475rem;*/
+ /* height: 5.6475rem;*/
overflow: hidden;
}
.module-wrap{
@@ -716,7 +739,7 @@
.panel-title{}
.search-panel{
background-color: transparent;
- padding: 10px 0;
+ padding: 10px;
border-bottom: 1px solid @background-color-split;
// .el-input{width:calc(100% - 40px);position: relative}
/deep/ input {
diff --git a/src/conf/Topic.js b/src/conf/Topic.js
index 49707dd..bcf296e 100644
--- a/src/conf/Topic.js
+++ b/src/conf/Topic.js
@@ -15,42 +15,49 @@
name: '姹℃煋婧�',
id: 1,
check: false,
+ isShow: true,
icon: '/assets/images/menu/special.png',
comp: ''
}, {
- name: '搴熸按鐩戞祴',
+ name: '搴熸按',
id: 2,
checked: false,
+ isShow: true,
icon: '/assets/images/menu/special.png',
comp: ''
}, {
- name: '搴熸皵鐩戞祴',
+ name: '搴熸皵',
id: 3,
checked: false,
+ isShow: true,
icon: '/assets/images/menu/special.png',
comp: ''
}, {
- name: '鍥哄簾绠$悊',
+ name: '鍥哄簾',
id: 4,
checked: false,
+ isShow: true,
icon: '/assets/images/menu/special.png',
comp: ''
}, {
name: '鐜椋庨櫓',
id: 5,
checked: false,
+ isShow: true,
icon: '/assets/images/menu/special.png',
comp: ''
}, {
name: '鍦熷¥鍙婂湴涓嬫按',
id: 6,
checked: false,
+ isShow: true,
icon: '/assets/images/menu/special.png',
comp: ''
}, {
- name: '姹¢洦姘寸缃�',
+ name: '绠$嚎',
id: 7,
checked: false,
+ isShow: true,
icon: '/assets/images/menu/special.png',
comp: ''
}]
--
Gitblit v1.8.0