From bbce81a396e22743b1fbf0c54fed05ab79c99e72 Mon Sep 17 00:00:00 2001 From: 陈泽平 <chenzeping> Date: 星期六, 29 五月 2021 16:28:51 +0800 Subject: [PATCH] Merge branch 'develop' of http://xearth.cn:6600/r/wuyushui/SewerAndRainNetwork into develop --- src/components/panel/RightSearchPanel.vue | 604 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 489 insertions(+), 115 deletions(-) diff --git a/src/components/panel/RightSearchPanel.vue b/src/components/panel/RightSearchPanel.vue index 9462fe7..6df7286 100644 --- a/src/components/panel/RightSearchPanel.vue +++ b/src/components/panel/RightSearchPanel.vue @@ -1,48 +1,94 @@ <template> - <div id="right-panel"> - <div class="panel-tab"> - <div v-for="item in topicMenu" :key="item.id" :title="item.name" class="tab-item" @click="handleGd" :class="{'B-TMT-tab-waybill-isActive': isWaybillHover}"> - <img :src="item.icon" style="width: 24px;height: 24px;"></div> - -<!-- <div class="tab-item" @click="handleHb" :class="{'B-TMT-tab-route-isActive': isRouteHover}"></div>--> -<!-- <div class="tab-item" @click="handlePk" :class="{'B-TMT-tab-route-isActive': isRouteHover}"></div>--> - </div> - <div class="panel-fold-btn"> - <div class="btn-stretch" @click="toggleMonitorPanel"></div> - </div> - - <div class="right-control"> - - <component :title="title" :is="gcComp"></component> - </div> + <div class="panel-right" v-show="isShow"> + <transition name="searchPanelChange"> + <div style=" display: inline-flex;"> + <div class="panel-tab"> + <div class="container"> + <!-- <ul> + <li style="text-align: right"> + <div @click="setSearchPanelChange" type="button" 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> + </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)}" 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"> --> + <i class="icon iconfont" :class="item.icon"></i> + </li> + </el-tooltip> + </ul> + </div> + </div> + <div class="right-control" :class="[{ 'unfold': !isCollapse },{ 'shrink': isCollapse }] " v-if="gcComp!=''"> + <div class="panel-fold-btn" @click="toggleMonitorPanel"> + <div :class="[isCollapse? 'btn-stretch':'btn-shrink']"></div> + </div> + <div :class="'search-container map-background'" v-show="selectGroup"> + <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;font-size: 13px;"> + <component :title="title" :is="gcComp"></component> + </div> + </div> + </div> + </div> + </transition> + <!-- <el-tooltip :popper-class="'map-tooltip'" effect="dark" content="鎼滅储" placement="left" v-show="!selectGroup"> + <div :class="selectGroup === true ?'active-button':''" class="iconBtn" @click="setSearchPanelChange" style="position: absolute;top:0;right: 0" > + <i class="el-icon-search icon"></i> + </div> + </el-tooltip> --> </div> </template> <script> -import $ from 'jquery' -import EnvProtectSearch from './topicSearch/EnvProtectSearch' +import EnvRiskSearch from './topicSearch/EnvRiskSearch' import DischargeSearch from './topicSearch/DischargeSearch' import { TopicList } from '../../conf/Topic' +import GasWasteSearch from '@components/panel/topicSearch/GasWasteSearch' +import WaterWasteSearch from '@components/panel/topicSearch/WaterWasteSearch' +import SolidWasteSearch from '@components/panel/topicSearch/SolidWasteSearch' import SewersSearch from '@components/panel/topicSearch/SewersSearch' +import SoilGroundWaterSearch from '@components/panel/topicSearch/SoilGroundWaterSearch.vue' +import PipeChangesSearch from '@components/panel/topicSearch/pipeChangesSearch.vue' +import PipeInformationSearch from '@components/panel/topicSearch/pipeInformationSearch.vue' +import EnterpriseEmergencySearch from './topicSearch/EnterpriseEmergencySearch' + +import bus from '@/eventBus' + export default { name: 'MonitorPanel', - components: { EnvProtectSearch, DischargeSearch }, + components: { + GasWasteSearch, + WaterWasteSearch, + SolidWasteSearch, + EnvRiskSearch, + DischargeSearch, + EnterpriseEmergencySearch + }, data () { return { + isShow: true, topicMenu: [], topicList: TopicList, topicCheckedList: [], isPanelVisible: false, gcComp: SewersSearch, - gdVisible: true, hbVisible: false, pkVisible: false, toggleMonitorStyle: 'right:0px', - - title: '姹¢洦姘寸缃�' - + title: '姹¢洦姘寸缃�', + isCollapse: true, + selectGroup: false } }, computed: {}, @@ -55,7 +101,6 @@ this.topicList.forEach((item) => { this.topicCheckedList.forEach((itm) => { if (item.name === itm) { - // item.checked = tr this.topicMenu.push(item) } }) @@ -66,82 +111,244 @@ handleClose (done) { console.log(done) }, - + setSearchPanelChange () { + this.selectGroup = !this.selectGroup + if (!this.selectGroup) { + this.topicList.forEach((itm) => { + itm.checked = false + }) + } + }, + selected (val) { + // console.log(val) + this.title = val.name + this.selectGroup = true + this.topicList.forEach((itm) => { + itm.checked = val.name === itm.name + }) + switch (val.name) { + case '姹℃煋婧�': + this.gcComp = DischargeSearch + break + case '搴熸按': + this.gcComp = WaterWasteSearch + break + case '搴熸皵': + this.gcComp = GasWasteSearch + break + case '鍥哄簾': + this.gcComp = SolidWasteSearch + break + case '鐜椋庨櫓': + this.gcComp = EnvRiskSearch + break + case '鍦熷¥鍙婂湴涓嬫按': + this.gcComp = SoilGroundWaterSearch + break + case '绠$嚎': + this.gcComp = SewersSearch + break + case '绠¢亾鍙樻洿': + this.gcComp = PipeChangesSearch + break + case '绠¢亾淇℃伅': + this.gcComp = PipeInformationSearch + break + case '浼佷笟搴旀��': + this.gcComp = EnterpriseEmergencySearch + break + } + }, handlePage (page) { }, handleGd () { this.title = '绠¢亾淇℃伅鏌ヨ' }, toggleMonitorPanel () { - const el = $('.btn-stretch') - const el2 = $('.panel-fold-btn') - // let cs = 'btn-stretch-active' - var rightControl = $('#right-panel') - const right = rightControl.css('right') - if (right === '10px') { - rightControl.animate({ - right: '-322px' - }) - el.css({ - transform: 'rotateY(180deg)', - 'transform-origin': '50% 50%', - transition: 'transform 1s linear' - }) - el2.animate({ - right: '320px', - speed: 1000 - }) - } else { - rightControl.animate({ - right: '10px' - }) - el.css({ - transform: 'rotateY(0deg)', - 'transform-origin': '50% 50%', - transition: 'transform 1s linear' - }) - el2.animate({ - right: '290px', - speed: 1000 - }) - } + this.isCollapse = !this.isCollapse + // const el = $('.btn-stretch') + // const el2 = $('.panel-fold-btn') + // const el = document.getElementsByClassName('.btn-stretch') + // const el2 = document.getElementsByClassName('.panel-fold-btn') + // let = 'btn-stretch-active' + // var rightControl = $('#panel-right') + // var rightControl = document.getElementById('#panel-right') + // const right = rightControl.css('right') + // const rightit = rightControl.ownerDocument.defaultView + // const right = rightit.getComputedStyle(rightit, null).right + // if (right === '10px') { + // rightControl.animate({ + // right: '-322px' + // }) + // el.css({ + // transform: 'rotateY(180deg)', + // 'transform-origin': '50% 50%', + // transition: 'transform 1s linear' + // }) + // el2.animate({ + // right: '320px', + // speed: 1000 + // }) + // } else { + // rightControl.animate({ + // right: '10px' + // }) + // el.css({ + // transform: 'rotateY(0deg)', + // 'transform-origin': '50% 50%', + // transition: 'transform 1s linear' + // }) + // el2.animate({ + // right: '290px', + // 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) { + that.gcComp = '' + that.topicList.forEach((item) => { + if (item.name === obj.name) { + if (obj.type > 0) { + item.isShow = true + } else { + item.isShow = false + } + // item.isShow = obj.checked + if (item.isShow) { + that.selected(item) + } else { + that.defaultLastOne() + } + } + }) + }) + // console.log(that.topicList) } } </script> <style lang="less"> -@import '@assets/css/map/_map-variable'; -#right-panel { - width: 322px; - //height: 573px; - height: 100%; +.searchPanelChange-enter-active { + transform-origin: top right; + animation: bounce-in .2s; +} + +.searchPanelChange-leave-active { + transform-origin: top right; + animation: bounce-in .2s reverse; +} + +.search-container { + position: relative; + //width: 1.79167rem; + //width: 2.39167rem; + width: 2.3rem; + /* height: 5.6475rem;*/ + overflow: hidden; +} + +.module-wrap { + width: 0.15rem; + height: 0.15rem; + padding: .04167rem; + //padding: .00521rem; + background: rgba(0, 16, 30, .5); + border-radius: .03125rem; + border: .00521rem solid rgba(255, 247, 0, .5); + margin: .04167rem 0; + font-size: .08333rem; + -webkit-transition: all .2s linear; + transition: all .2s linear; + cursor: pointer; + position: relative; + line-height: 0.15rem; + li { + margin: 0.00521rem 0; + text-align: center; + font-size: 20px; + + img { + width: 0.1rem; + height: 0.1rem; + + } + } +} + +.panel-right { + display: inline-flex; + //width: 322px; + //height: 100%; + //position: absolute; + //right: 10px; + //top: 10px; + height: 0; position: absolute; - right: 10px; - top: 10px; + top: 0.73979rem; + right: 0.14583rem; + z-index: 501; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; - .el-card__body { - padding: 7px; + //.el-card__body { + // padding: 7px; + //} + //.el-form-item__content { + // color: rgb(52, 224, 255); + //} + // + //.el-picker-panel { + // background-color: #061e51 !important; + //} + // + //.el-input__inner { + // border-radius: 0 !important; + // background-color: #061e51 !important; + // border: solid 1px #0e639e !important; + //} + .el-button--default.special-button { + padding: 0; + background: @background-color4; + color: @color-tool; + position: absolute; + top: 20px; + left: 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%; + z-index: 999; } - .el-form-item__content { - color: rgb(52, 224, 255); - } - - .el-picker-panel { - background-color: #061e51 !important; - } - - .el-input__inner { - border-radius: 0 !important; - background-color: #061e51 !important; - border: solid 1px #0e639e !important; + .el-button--default.special-button:hover { + background: @background-color; + border: 1px solid @color; + box-shadow: 0 0 2px @color; + color: @color; } .el-form-item__label { color: rgb(52, 224, 255); + color: @color; } .el-input__inner::placeholder { @@ -232,15 +439,33 @@ text-overflow: ellipsis; white-space: nowrap; } - .panel-fold-btn{ + + .panel-fold-btn { + overflow: hidden; position: absolute; - top:45%; + top: 45%; + left: -18px; + /*left: 0px;*/ //right: 320px; - right: 290px; + /*right: 290px;*/ z-index: 1000; - background-color: rgba(5,24,66,.8); + /*right: 0px;*/ + background-color: rgba(5, 24, 66, .8); border-radius: 10px 0 0 10px; + .btn-stretch { + //width: 20px; + //height: 40px; + background: url('../../assets/images/map-pages/icon/icon.png') no-repeat -408px 5px; + cursor: pointer; + /*margin-left: -20px;*/ + transform: rotateY(0deg); + transform-origin: 50% 50%; + transition: transform 1s linear; + /*transition: 3s linear;*/ + } + + .btn-shrink { width: 20px; height: 40px; background: url('../../assets/images/map-pages/icon/icon.png') no-repeat -408px 5px; @@ -253,35 +478,46 @@ } .tab-item { - width: 32px; - height: 30px; + //width: .2rem; + //height: .2rem; color: @color; font-size: 12px; background-color: #0B3B6D; } - .tab-item:hover{ + + .tab-item:hover { cursor: pointer; } + .panel-tab { - position: absolute; - left: 0; - //height: 120px; - top: 0; - width: 32px; + position: relative; z-index: 500; - background: url('../../assets/images/map-pages/icon/caidan.png') no-repeat; + margin-right: .025rem; + + .container { + max-height: 3.125rem; + overflow: hidden; + position: relative; + position: relative; + } + } .right-control { - width: 290px; + /*width: 290px;*/ //height: 573px; height: 100%; - position: absolute; - top: 0; - right: 0; - z-index: 999; - background: url('../../assets/images/map-pages/icon/bgc.png') no-repeat; - background-size: 100% 98%; + position: relative; + //top: 0; + //right: 0; + z-index: 500; + //background: url('../../assets/images/map-pages/icon/bgc.png') no-repeat; + //background-size: 100% 98%; + } + + .a { + transform: translateX(328px); + transition: transform 3s linear; } .panel_searchTotal { @@ -291,13 +527,13 @@ .panel_header { // background-color: #030D2E; - padding: 7px 15px 3px 20px; + padding: 8px 15px 3px 20px; } .panel_title { font-size: 12px; - margin: 0px; - padding: 0px; + /*margin: 0px;*/ + /*padding: 0px;*/ color: #78c4ff; font-weight: bold; } @@ -307,25 +543,98 @@ } .search-form .el-form-item { - margin: 0px; + /*margin: 0px;*/ margin-bottom: 8px; } .search-form .el-icon-search { display: grid; - line-height: 30px; font-size: 18px; } - .search-panel { - border: #07325B; - background-color: #07325B !important; - margin-top: 0px; + /*input 鐐瑰嚮鎼滅储鏍峰紡*/ - .el-input__inner { - border-radius: 0px !important; - background-color: #061e51 !important; + .rightButtonSearch { + display: flex; + justify-content: space-between; + align-items: center; + + .el-input { + margin-right: 10px } + + .el-icon-search { + width: 40px; + border: 1px solid @color; + height: 28px; + line-height: 28px; + text-align: center; + color: #fff; + border-radius: 2px; + cursor: pointer; + background: rgba(0, 16, 30, .5); + padding: 0; + } + } + + /*鍗曢�夋寜閽牱寮�*/ + + .levelOfRisk { + padding-left: 20px + } + + .levelOfRisk .el-radio { + padding-bottom: 6px + } + + .levelOfRisk-type { + display: inline-block; + position: relative; + padding-right: 5px; + color: @color-shadow; + + i { + display: block; + width: 15px; + height: 10px; + position: absolute; + top: 50%; + right: -15px; + margin-top: -5px; + } + } + + .el-radio.is-checked .levelOfRisk-type { + color: #409EFF + } + + .environmental-risk-list { + position: relative; + padding-left: 50px; + padding-top: 5px; + padding-bottom: 5px; + color: @color-shadow; + border-bottom: 1px solid @background-color-split; + h3{ cursor: pointer;} + .state { + width: 30px; + height: 30px; + position: absolute; + top: 50%; + left: 10px; + margin-top: -15px; + border-radius: 50%; + box-shadow: 0 0 3px #000; + background: #0B3B6D; + } + } + .environmental-risk-list.hover, + .environmental-risk-list:hover{ + background: @background-color; + } + .environmental-risk-list.hover h3, + .environmental-risk-list h3:hover { + color: @color-highlight; } input::-webkit-input-placeholder { @@ -383,12 +692,16 @@ } .footer-page { - position: absolute; + // position: absolute; background-color: transparent !important; - bottom: 10px !important; - margin-left: 0px; + // bottom: 10px !important; + // margin-left: 0px; border: none; - + margin: 0; + border-top: 1px solid rgba(0, 255, 246, 0.14); + .el-card__body{ + padding: 5px; + } .warnPagination { .btn-quicknext, .btn-quickprev { color: #e4e8f1 !important; @@ -453,7 +766,7 @@ ::-webkit-scrollbar-track { /*婊氬姩鏉¢噷闈㈣建閬�*/ - // box-shadow : inset 0 0 5px rgba(0, 0, 0, 0.2); + box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2); border-radius: 0px; background: #0E3565; } @@ -482,5 +795,66 @@ background-color: #061e51 !important; } } + + .unfold { + transform: translateX(332px); + transition: transform 0.5s linear; + } + + .shrink { + transform: translateX(0px); + transition: transform 0.5s linear; + } + + /******************浠ヤ笅鍏叡閮ㄥ垎**********/ + + .sewers-search { + position: relative; + overflow: hidden; + + .panel-title { + } + + .search-panel { + background-color: transparent; + padding: 10px; + border-bottom: 1px solid @background-color-split; + // .el-input{width:calc(100% - 40px);position: relative} + /deep/ input { + border-radius: 0; + background-color: @background-color-split; + border: solid 1px @color; + color: @color-gray; + font-size: 0.01rem; + padding: 0 15px; + + .el-select .el-input.is-focus .el-input__inner { + border-color: @color; + } + } + + .el-input__inner { + background: none; + color: #fff; + font-size: 14px; + border-radius: 0; + border-color: @color; + background: rgba(0, 16, 30, .5); + } + } + + .search-btn { + + } + + //location-btn{ + // + //} + .location-btn:hover, .el-input__icon:hover { + color: @color; + cursor: pointer; + } + } } + </style> -- Gitblit v1.8.0