From 09f39367a9f30309bbd77b37062a54c9c8d7ebae Mon Sep 17 00:00:00 2001 From: chenyabin <Chenab123!> Date: 星期四, 15 四月 2021 15:20:23 +0800 Subject: [PATCH] 添加矢量图标字体库-替换图标 --- src/components/panel/RightSearchPanel.vue | 510 +++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 319 insertions(+), 191 deletions(-) diff --git a/src/components/panel/RightSearchPanel.vue b/src/components/panel/RightSearchPanel.vue index f9abbfb..f820713 100644 --- a/src/components/panel/RightSearchPanel.vue +++ b/src/components/panel/RightSearchPanel.vue @@ -1,46 +1,50 @@ <template> <div class="panel-right" v-show="isShow"> - <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="container"> - <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)}" > - <el-tooltip :popper-class="'map-tooltip'" effect="dark" :content="item.name" placement="left"> - <li style=" "> -<!-- <span>{{item.name}}</span>--> -<!-- <div >--> - <img src="../../assets/images/map-pages/icon/sl.png" class="icon"> -<!-- </div>--> - </li> - </el-tooltip> - </ul> - </div> - </div> -<!-- <div class="panel-fold-btn" >--> -<!-- <div class="btn-stretch" @click="toggleMonitorPanel"></div>--> -<!-- </div>--> - -<!-- <div class="panel-fold-btn" @click="toggleMonitorPanel" >--> -<!-- <div :class="[isCollapse? 'btn-stretch':'btn-shrink']" ></div>--> -<!--<!– <div class="btn-stretch" v-if="isCollapse" </div>–>--> -<!--<!– <div class="btn-shrink" v-else-if="!isCollapse" ></div>–>--> -<!--<!– :style = "{width:isCollapse ? '290px' : '0px'}"–>--> -<!-- </div>--> -<!-- <div class="right-control" v-if="!isCollapse" >--> - <div class="right-control" :class="[{ 'unfold': !isCollapse },{ 'shrink': isCollapse }] " > - <div class="panel-fold-btn" @click="toggleMonitorPanel"> -<!-- <div class="btn-stretch" v-if="isCollapse"></div>--> -<!-- <div class="btn-shrink" v-else-if="!isCollapse"></div>--> - <div :class="[isCollapse? 'btn-stretch':'btn-shrink']" ></div> - </div> - - <div :class="'search-container map-background'"> - <div class="el-message-box__content" style="padding:6px;font-size: 13px;"> - <component :title="title" :is="gcComp"></component> - </div> + <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> + <div class="right-control" :class="[{ 'unfold': !isCollapse },{ 'shrink': isCollapse }] "> + <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> @@ -54,9 +58,20 @@ 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 bus from '@/eventBus' + export default { name: 'MonitorPanel', - components: { GasWasteSearch, WaterWasteSearch, SolidWasteSearch, EnvRiskSearch, DischargeSearch }, + components: { + GasWasteSearch, + WaterWasteSearch, + SolidWasteSearch, + EnvRiskSearch, + DischargeSearch + }, data () { return { isShow: true, @@ -65,14 +80,14 @@ topicCheckedList: [], isPanelVisible: false, gcComp: SewersSearch, - gdVisible: true, hbVisible: false, pkVisible: false, toggleMonitorStyle: 'right:0px', title: '姹¢洦姘寸缃�', - isCollapse: true + isCollapse: true, + selectGroup: false } }, computed: {}, @@ -95,8 +110,18 @@ 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 }) @@ -104,13 +129,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 '鐜椋庨櫓': @@ -119,8 +144,14 @@ case '鍦熷¥鍙婂湴涓嬫按': this.gcComp = SoilGroundWaterSearch break - case '姹¢洦姘寸缃�': + case '绠$嚎': this.gcComp = SewersSearch + break + case '绠¢亾鍙樻洿': + this.gcComp = PipeChangesSearch + break + case '绠¢亾淇℃伅': + this.gcComp = PipeInformationSearch break } }, @@ -141,62 +172,91 @@ // 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 - // }) - // } + // 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) { + // 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> <style lang="less"> -.search-title{ - color: rgb(255, 255, 255); - font-size: 16px; - margin: 5px; +.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; - /*height: 5.6475rem;*/ - min-height: 60vh; - max-height: 80vh; - overflow: hidden; + position: relative; + //width: 1.79167rem; + //width: 2.39167rem; + width: 2.3rem; + /* height: 5.6475rem;*/ + overflow: hidden; } -.module-wrap{ + +.module-wrap { width: 0.15rem; height: 0.15rem; padding: .04167rem; //padding: .00521rem; - background: rgba(0,16,30,.5); + background: rgba(0, 16, 30, .5); border-radius: .03125rem; - border: .00521rem solid rgba(255,247,0,.5); + border: .00521rem solid rgba(255, 247, 0, .5); margin: .04167rem 0; font-size: .08333rem; -webkit-transition: all .2s linear; @@ -204,16 +264,19 @@ cursor: pointer; position: relative; line-height: 0.15rem; - li{ + + li { margin: 0.00521rem 0; text-align: center; - img{ + + img { width: 0.1rem; height: 0.1rem; } } } + .panel-right { display: inline-flex; //width: 322px; @@ -223,8 +286,8 @@ //top: 10px; height: 0; position: absolute; - top: .4rem; - right: .08333rem; + top: 0.42979rem; + right: 0.14583rem; z-index: 501; display: -webkit-box; display: -ms-flexbox; @@ -249,6 +312,29 @@ // 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: 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%; + z-index: 999; + } + + .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); @@ -343,18 +429,20 @@ 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;*/ z-index: 1000; /*right: 0px;*/ - background-color: rgba(5,24,66,.8); + background-color: rgba(5, 24, 66, .8); border-radius: 10px 0 0 10px; + .btn-stretch { //width: 20px; //height: 40px; @@ -364,8 +452,9 @@ transform: rotateY(0deg); transform-origin: 50% 50%; transition: transform 1s linear; - /*transition: 3s linear;*/ + /*transition: 3s linear;*/ } + .btn-shrink { width: 20px; height: 40px; @@ -385,14 +474,17 @@ font-size: 12px; background-color: #0B3B6D; } - .tab-item:hover{ + + .tab-item:hover { cursor: pointer; } + .panel-tab { position: relative; z-index: 500; margin-right: .025rem; - .container{ + + .container { max-height: 3.125rem; overflow: hidden; position: relative; @@ -412,10 +504,12 @@ //background: url('../../assets/images/map-pages/icon/bgc.png') no-repeat; //background-size: 100% 98%; } - .a{ + + .a { transform: translateX(328px); transition: transform 3s linear; - } + } + .panel_searchTotal { font-size: 12px; float: right; @@ -447,76 +541,90 @@ display: grid; font-size: 18px; } - /*input 鐐瑰嚮鎼滅储鏍峰紡*/ - .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: 26px; - line-height: 26px; - text-align: center; - color:#fff; - border-radius: 2px; - cursor:pointer; - background: rgba(0,16,30,.5); - } - } - /*鍗曢�夋寜閽牱寮�*/ - .levelOfRisk{padding-left:20px} - .levelOfRisk .el-radio{padding-bottom:6px} - .levelOfRisk-type{ - display: inline-block; - position: relative; - padding-right: 5px; - color:#f5f5f5; - i{ - display: block; - width: 15px; - height: 10px; - position: absolute; - top:50%; - right: -15px; - margin-top: -5px; - } - } - .el-radio.is-checked .levelOfRisk-type{color:#409EFF} + /*input 鐐瑰嚮鎼滅储鏍峰紡*/ - .environmental-risk-list{ - border:1px solid @color; - margin-right: 10px; - margin-bottom: 15px; - position: relative; - padding-left:50px; - padding-top:3px; - padding-bottom:3px; - color: #f5f5f5; - .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; - } + .rightButtonSearch { + display: flex; + justify-content: space-between; + align-items: center; + + .el-input { + margin-right: 10px } - //.search-panel { - // border: #07325B; - // background-color: #07325B !important; - // margin-top: 0px; - // - // .el-input__inner { - // border-radius: 0px !important; - // background-color: #061e51 !important; - // } - //} + + .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; + cursor: pointer; + padding-left: 50px; + padding-top: 5px; + padding-bottom: 5px; + color: @color-shadow; + border-bottom: 1px solid @background-color-split; + + .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 { + color: @color-over; + background: @background-color; + } input::-webkit-input-placeholder { color: #569ee1; @@ -643,7 +751,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; } @@ -672,46 +780,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{ + + /******************浠ヤ笅鍏叡閮ㄥ垎**********/ + + .sewers-search { position: relative; overflow: hidden; - .search-panel{ - background-color: transparent; - border: 1px solid @background-color-split; - padding: 10px; - // .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);} + + .panel-title { } - .search-btn{ + + .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; + .location-btn:hover, .el-input__icon:hover { + color: @color; + cursor: pointer; } + } } + </style> -- Gitblit v1.8.0