From d7c0f79217217f90546f4b3113bd85f86c42e4f8 Mon Sep 17 00:00:00 2001 From: chenzeping <ChenZeping02609@163.com> Date: 星期二, 13 四月 2021 14:57:37 +0800 Subject: [PATCH] 右侧管线分析 --- src/components/panel/RightSearchPanel.vue | 483 +++++++++++++---------- src/components/panel/topicSearch/SewersSelect/AnalysisChoose/Tube.vue | 45 ++ src/assets/css/map/map-panel-style.less | 233 +++++++--- src/components/panel/topicSearch/SewersSelect/AnalysisChoose/Flow.vue | 60 +++ src/components/panel/topicSearch/SewersSelect/AnalysisChoose/CrossSectional.vue | 62 +++ src/components/panel/topicSearch/SewersSearch.vue | 142 +++--- src/components/panel/topicSearch/SewersSelect/SewersAnalysis.vue | 48 ++ src/components/panel/topicSearch/SewersSelect/AnalysisChoose/Connectivity.vue | 83 ++++ 8 files changed, 802 insertions(+), 354 deletions(-) diff --git a/src/assets/css/map/map-panel-style.less b/src/assets/css/map/map-panel-style.less index 5e036a3..8be47de 100644 --- a/src/assets/css/map/map-panel-style.less +++ b/src/assets/css/map/map-panel-style.less @@ -1,9 +1,11 @@ @import "_map-variable"; + .leaflet-container, -html,body{ - // font-family: 'Microsoft YaHei'; +html, body { + // font-family: 'Microsoft YaHei'; font: 12px/1.5 "Microsoft YaHei", Arial, Helvetica, sans-serif; } + /*鍏ㄥ眬璁剧疆***********/ h1, h2, h3, h4, h5, h6, ul, li, p { padding: 0; @@ -11,7 +13,9 @@ list-style: none; } -i{font-style: normal} +i { + font-style: normal +} .el-button--primary { color: @color; @@ -214,60 +218,75 @@ margin-left: 10px; } -.el-scrollbar__wrap{ +.el-scrollbar__wrap { } + .el-scrollbar__wrap::-webkit-scrollbar { /*婊氬姩鏉℃暣浣撴牱寮�*/ - width : 5px; /*楂樺鍒嗗埆瀵瑰簲妯珫婊氬姩鏉$殑灏哄*/ + width: 5px; /*楂樺鍒嗗埆瀵瑰簲妯珫婊氬姩鏉$殑灏哄*/ height: 1px; } + .el-scrollbar__wrap::-webkit-scrollbar-thumb { /*婊氬姩鏉¢噷闈㈠皬鏂瑰潡*/ - border-radius : 10px; + border-radius: 10px; background: none; } + .el-scrollbar__wrap::-webkit-scrollbar-track { /*婊氬姩鏉¢噷闈㈣建閬�*/ - box-shadow : inset 0 0 5px rgba(0, 0, 0, 0.2); - background : none; + box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2); + background: none; border-radius: 10px; } + #el-scrollbar__wrap::-webkit-scrollbar-button { /*婊氬姩鏉′袱绔殑鎸夐挳锛屽彲浠ョ敤display:none璁╁叾涓嶆樉绀猴紝涔熷彲浠ユ坊鍔犺儗鏅浘鐗囷紝棰滆壊鏀瑰彉鏄剧ず鏁堟灉锛堜綅缃�2锛�*/ background: #74D334; } + /*******************鎿嶄綔鎸夐挳鐐瑰嚮閫変腑鏁翠綋鏍峰紡******************************/ -.el-button{ +.el-button { } + .hover-bottom:hover, -.active-button{ +.active-button { border: 0.00521rem solid #fff700 !important; box-shadow: 0 0 0.03rem #fff700 !important; - color:#fff700 !important; + color: #fff700 !important; } /***************Company 鍥惧眰 鎮诞妗嗘牱寮忋��*********************************/ -.company-bindTooltip{ +.company-bindTooltip { position: absolute; - top:0; + top: 0; left: 0; display: flex; justify-content: center; justify-items: center; - img{display: block;width: 30px;height: 30px;margin-left: -15px;margin-top: -15px} - ul{ + + img { + display: block; + width: 30px; + height: 30px; + margin-left: -15px; + margin-top: -15px + } + + ul { width: 120px; margin-left: -60px; text-align: center; display: flex; position: absolute; - top:20px; - left:0; - li{ + top: 20px; + left: 0; + + li { position: absolute; - top:0; - left:0; + top: 0; + left: 0; width: 100%; font-weight: 900; text-shadow: 0 0 4px #fff; @@ -279,6 +298,7 @@ } } } + /*.company-bindTooltip { //background: @background-color-split; background: none; @@ -308,7 +328,7 @@ } } }*/ -.company-bindTooltip:before{ +.company-bindTooltip:before { display: none; } @@ -336,16 +356,19 @@ /*************** PublicTable 琛ㄦ牸鏍峰紡銆�*********************************/ -.el-table{ +.el-table { border: 1px solid #396d83 !important; + .el-table__body-wrapper::-webkit-scrollbar { width: 0; height: 0; background: none; } - .cell{ + + .cell { padding: 0 3px !important; - i{ + + i { display: block; font-style: normal; font-size: 10px; @@ -353,26 +376,34 @@ } } } -.el-table--border th{ + +.el-table--border th { border-right: none; border-left: 1px solid #ddd; } -.el-table--border th.gutter{border-left: none} + +.el-table--border th.gutter { + border-left: none +} .el-table .cell, .el-table--border td:first-child .cell, .el-table--border th:first-child .cell { text-align: center; } -.el-table th>.cell { + +.el-table th > .cell { border: 1px #396d83 solid; color: #00fff6; } -.el-table__row>td{ + +.el-table__row > td { border: none; } -.el-table::before {//鍘绘帀鏈�涓嬮潰鐨勯偅涓�鏉$嚎 + +.el-table::before { //鍘绘帀鏈�涓嬮潰鐨勯偅涓�鏉$嚎 height: 0; } + .el-table td, .el-table th.is-leaf { font-size: 0.08rem; } @@ -384,21 +415,24 @@ .el-table .success-row { background: #30455f; } -.el-table tbody tr:hover>td { - background-color:#28304d !important; + +.el-table tbody tr:hover > td { + background-color: #28304d !important; } + //淇敼琛ㄦ牸楂樺害 .el-table td { - padding: 0!important; + padding: 0 !important; font-size: 0.01rem !important; } /***********************************************鍔ㄧ敾鏁堟灉************/ -.transition{ +.transition { transition: all .5s; - /* transform-origin: top left;*/ + /* transform-origin: top left;*/ animation: bounce-in .2s; } + @keyframes bounce-in { 0% { transform: scale(0); @@ -409,9 +443,10 @@ opacity: 1; } } + /**map 椤甸潰鍥炬爣鎸夐挳*/ .iconBtn { - width:0.26rem; + width: 0.26rem; height: 0.26rem; text-align: center; background: rgba(0, 16, 30, 0.5); @@ -424,14 +459,16 @@ justify-content: center; justify-items: center; border-radius: 0.03rem; - .icon{ + + .icon { width: 20px; margin: 0 auto; font-size: 20px; } } -.panel-title{ + +.panel-title { color: @color-title; font-size: 18px; padding: 10px; @@ -443,61 +480,109 @@ } -.el-picker-panel{ +.el-picker-panel { background: @background-color; - border-color:@color; - color:@color; - .el-picker-panel__body-wrapper{ + border-color: @color; + color: @color; + + .el-picker-panel__body-wrapper { background: @background-color; } - .el-input__inner{ - background:@background-color; - border-color:@color; - } - .el-date-table td.today span{ - color:@color-highlight; - } - .el-picker-panel__footer{ + + .el-input__inner { background: @background-color; - border-top-color:@color; + border-color: @color; } - .el-date-table th{ - border-bottom-color:@color; + + .el-date-table td.today span { + color: @color-highlight; } - .el-button{ + + .el-picker-panel__footer { background: @background-color; - color:@color; - border-color:@color; + border-top-color: @color; } - .el-button--text{ + + .el-date-table th { + border-bottom-color: @color; + } + + .el-button { + background: @background-color; + color: @color; + border-color: @color; + } + + .el-button--text { padding: 7px 15px; } - .el-button:hover{ + + .el-button:hover { background: @background-color; - color:@color-highlight; - border-color:@color-highlight; + color: @color-highlight; + border-color: @color-highlight; } - .el-input__inner{ - color:#fff; + + .el-input__inner { + color: #fff; text-align: center; } - .el-date-picker__time-header{ - border-bottom-color:@background-color-split; + + .el-date-picker__time-header { + border-bottom-color: @background-color-split; } - .el-date-picker__header-label{color:#fff} + + .el-date-picker__header-label { + color: #fff + } } -.el-select-dropdown{ + +.el-select-dropdown { background: @background-color; - border-color:@color; - color:@color; - .el-select-dropdown__item{ - color:#fff; + border-color: @color; + color: @color; + + .el-select-dropdown__item { + color: #fff; } - .el-select-dropdown__item.hover{ + + .el-select-dropdown__item.hover { background: @background-color; - box-shadow: 0 0 5px @color-highlight inset; + box-shadow: 0 0 5px @color-highlight inset; } - .el-select-dropdown__item.selected{ - color:@color-highlight; + + .el-select-dropdown__item.selected { + color: @color-highlight; } - } +} + +/***********************************************鍙充晶瀹樼綉鐩稿叧************/ +.el-tabs__header { + background: none; +} + +.el-tabs--top .el-tabs__item.is-top:nth-child(2) { + padding-left: 20px; +} +.el-tabs--border-card { + background: none; + border: none; + box-shadow: none; +} +.el-tabs--border-card>.el-tabs__header { + background: none; + border-bottom: none; + margin: 0; +} +.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active { + color: #409EFF; + background: none; + border: none; +} +.el-tabs--border-card>.el-tabs__header .el-tabs__item { + border: none; +} +.panel-right ::-webkit-scrollbar-thumb { + background: none; + border: none; +} diff --git a/src/components/panel/RightSearchPanel.vue b/src/components/panel/RightSearchPanel.vue index 11b4c9b..afdd752 100644 --- a/src/components/panel/RightSearchPanel.vue +++ b/src/components/panel/RightSearchPanel.vue @@ -1,47 +1,49 @@ <template> <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"> - </li> - </el-tooltip> - </ul> - </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> + <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"> + </li> + </el-tooltip> + </ul> </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> + <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> - </el-tooltip> --> + <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> @@ -56,9 +58,16 @@ 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 }, + components: { + GasWasteSearch, + WaterWasteSearch, + SolidWasteSearch, + EnvRiskSearch, + DischargeSearch + }, data () { return { isShow: true, @@ -153,33 +162,33 @@ // 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 = {} @@ -211,28 +220,32 @@ </script> <style lang="less"> - .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;*/ - overflow: hidden; +.searchPanelChange-enter-active { + transform-origin: top right; + animation: bounce-in .2s; } -.module-wrap{ + +.searchPanelChange-leave-active { + transform-origin: top right; + animation: bounce-in .2s reverse; +} + +.search-container { + position: relative; + //width: 1.79167rem; + width: 4.7rem; + /* height: 5.6475rem;*/ + overflow: hidden; +} + +.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; @@ -240,16 +253,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; @@ -285,28 +301,30 @@ // 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-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); color: @color; @@ -400,18 +418,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; @@ -421,8 +441,9 @@ transform: rotateY(0deg); transform-origin: 50% 50%; transition: transform 1s linear; - /*transition: 3s linear;*/ + /*transition: 3s linear;*/ } + .btn-shrink { width: 20px; height: 40px; @@ -442,14 +463,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; @@ -469,10 +493,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; @@ -504,71 +530,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: 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} + /*input 鐐瑰嚮鎼滅储鏍峰紡*/ - .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; - } + .rightButtonSearch { + display: flex; + justify-content: space-between; + align-items: center; + + .el-input { + margin-right: 10px } - .environmental-risk-list.hover, - .environmental-risk-list:hover{ - color:@color-over; - background: @background-color; + + .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; @@ -695,7 +740,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; } @@ -724,48 +769,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; - } + /******************浠ヤ笅鍏叡閮ㄥ垎**********/ + + .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> diff --git a/src/components/panel/topicSearch/SewersSearch.vue b/src/components/panel/topicSearch/SewersSearch.vue index f8b485f..5d18286 100644 --- a/src/components/panel/topicSearch/SewersSearch.vue +++ b/src/components/panel/topicSearch/SewersSearch.vue @@ -1,78 +1,71 @@ <template> <div class="sewers-search" v-if="gdVisible"> <div class="panel-title">{{ title }}</div> - <div class="search-panel "> - <el-form ref="form" :model="form" label-width="90px" class="search-form"> - <el-form-item label="璁炬柦绫诲瀷锛�" size="mini" class="search-panel-item"> - <el-select style="width: 100%" v-model="form.pipelineType" @change="handlePipelineType" - :popper-class="'select-down'"> - <el-option - v-for="item in pipelineTypeOptions" - :key="item.value" - :label="item.label" - :value="item.value"> - </el-option> - </el-select> - </el-form-item> - <el-form-item :label="form.pipelineType+'锛�'" size="mini"> - <el-select style="width: 100%" v-model="form.dataType" @change="handleDataType" :popper-class="'select-down'"> - <el-option - v-for="item in dataTypeOptions" - :key="item.value" - :label="item.label" - :value="item.value"> - </el-option> - </el-select> - </el-form-item> - <!-- <el-form-item >--> - <div class="rightButtonSearch"> - <el-input v-model="form.keyword" size="mini" placeholder="鍦ㄦ杈撳叆鍏抽敭瀛楁悳绱�"> - <!-- <el-button slot="append" icon="el-icon-search" size="mini"></el-button>--> - <!-- <i slot="prefix" class="el-input__icon el-icon-search"></i>--> - <!-- <i slot="suffix" class="search-btn el-input__icon el-icon-search" @click="handleSearch"></i> --> - </el-input> - <el-button class="el-icon-search" @click="handleSearch"></el-button> + <el-tabs v-model="activeName" @tab-click="handleClick"> + <el-tab-pane label="鏌ヨ" name="first"> + <div class="search-panel "> + <el-form ref="form" :model="form" label-width="90px" class="search-form"> + <el-form-item label="璁炬柦绫诲瀷锛�" size="mini" class="search-panel-item"> + <el-select style="width: 100%" v-model="form.pipelineType" @change="handlePipelineType" + :popper-class="'select-down'"> + <el-option + v-for="item in pipelineTypeOptions" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item :label="form.pipelineType+'锛�'" size="mini"> + <el-select style="width: 100%" v-model="form.dataType" @change="handleDataType" + :popper-class="'select-down'"> + <el-option + v-for="item in dataTypeOptions" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <div class="rightButtonSearch"> + <el-input v-model="form.keyword" size="mini" placeholder="鍦ㄦ杈撳叆鍏抽敭瀛楁悳绱�"> + </el-input> + <el-button class="el-icon-search" @click="handleSearch"></el-button> + </div> + </el-form> </div> - <!-- </el-form-item>--> - <!-- <el-form-item>--> - <!-- <input type="button" class="btn-ok" @click="handleSearch" value="鏌ヨ">--> - <!-- <input type="button" class="btn-reset" @click="handleSearch" value="閲嶇疆">--> - <!-- </el-form-item>--> - </el-form> - </div> - <el-scrollbar style="height:380.44px;"> - <div class="environmental-risk-list" v-for="(item,index) in list" :key="index"> - <!-- <i class="state"></i> --> - <div @click="handleLocation(item)"> - <h3 class="B-TMD-table-list-title-y" - :class="['B-TMD-table-list-title-y-nam', { 'warning': item.vehicleStatus==='910003' }, { 'offline': item.vehicleStatus==='910001' }]"> - {{ item.properties.pipename }}</h3> - <p v-for="itm in labelList" :key="itm.label"> - <span>{{ itm.label }}锛�</span> - <span :title="item.properties[itm.key] ">{{ item.properties[itm.key] }}</span> - </p> - </div> - </div> - </el-scrollbar> - <el-card class="footer-page" v-if="total > 10"> - <el-pagination - small - @current-change="handlePage" - :page-size=pageSize - layout="prev, pager, next" - :total=total - :current-page=current - class="warnPagination" - > - </el-pagination> - </el-card> + <el-scrollbar style="height:380.44px;"> + <div class="environmental-risk-list" v-for="(item,index) in list" :key="index"> + <div @click="handleLocation(item)"> + <h3 class="B-TMD-table-list-title-y" + :class="['B-TMD-table-list-title-y-nam', { 'warning': item.vehicleStatus==='910003' }, { 'offline': item.vehicleStatus==='910001' }]"> + {{ item.properties.pipename }}</h3> + <p v-for="itm in labelList" :key="itm.label"> + <span>{{ itm.label }}锛�</span> + <span :title="item.properties[itm.key] ">{{ item.properties[itm.key] }}</span> + </p> + </div> + </div> + </el-scrollbar> + <el-card class="footer-page" v-if="total > 10"> + <el-pagination + small + @current-change="handlePage" + :page-size=pageSize + layout="prev, pager, next" + :total=total + :current-page=current + class="warnPagination" + > + </el-pagination> + </el-card> + </el-tab-pane> + <el-tab-pane label="鍒嗘瀽" name="second"> + <SewersAnalysis></SewersAnalysis> + </el-tab-pane> + <el-tab-pane label="鍘嗗彶" name="third">鍘嗗彶</el-tab-pane> + </el-tabs> </div> - <!-- <div class="monitor2" v-if="hbVisible">--> - <!-- <env-protect-search></env-protect-search>--> - <!-- </div>--> - <!-- <div class="monitor2" v-if="pkVisible">--> - <!-- <discharge-search></discharge-search>--> - <!-- </div>--> </template> <script> @@ -81,10 +74,16 @@ import WfsHelper from '@components/helpers/WfsHelper' import AjaxUtils from '@utils/AjaxUtils' +import SewersAnalysis from '@components/panel/topicSearch/SewersSelect/SewersAnalysis' + export default { name: 'SewersSearch', + components: { + SewersAnalysis + }, data () { return { + activeName: 'first', gdVisible: true, list: [], labelList: PipelineTypeOptions[0].labelList, @@ -108,6 +107,9 @@ }, props: ['title'], methods: { + handleClick (tab, event) { + console.log(tab, event) + }, handlePipelineType (val) { this.pipelineTypeOptions.forEach((itm) => { if (val === itm.value) { diff --git a/src/components/panel/topicSearch/SewersSelect/AnalysisChoose/Connectivity.vue b/src/components/panel/topicSearch/SewersSelect/AnalysisChoose/Connectivity.vue new file mode 100644 index 0000000..325eb98 --- /dev/null +++ b/src/components/panel/topicSearch/SewersSelect/AnalysisChoose/Connectivity.vue @@ -0,0 +1,83 @@ +<template> + <div class="connectivity"> + <el-row> + <el-button type="primary" size="mini">璧峰绠℃</el-button> + <el-button type="primary" size="mini">缁撴潫绠℃</el-button> + <el-button type="primary" size="mini">杩為�氭�у垎鏋�</el-button> + <el-button type="primary" size="mini">娓呴櫎</el-button> + </el-row> + <el-table + :data="tableData" + height="250" + border + style="width: 100%"> + <el-table-column + prop="date" + label="绠$嚎鍚嶇О" + width="180"> + </el-table-column> + <el-table-column + prop="name" + label="绠$嚎绫诲瀷" + width="180"> + </el-table-column> + <el-table-column + prop="address" + label="鎿嶄綔"> + </el-table-column> + </el-table> + <el-table + :data="tableData" + height="250" + border + style="width: 100%"> + <el-table-column + prop="date" + label="绠$嚎鍚嶇О" + width="180"> + </el-table-column> + <el-table-column + prop="name" + label="绠$嚎绫诲瀷" + width="180"> + </el-table-column> + <el-table-column + prop="address" + label="鎿嶄綔"> + </el-table-column> + </el-table> + </div> +</template> + +<script> +export default { + name: 'Connectivity', + data () { + return { + tableData: [{ + date: '2016-05-02', + name: '鐜嬪皬铏�', + address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�' + }, { + date: '2016-05-04', + name: '鐜嬪皬铏�', + address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1517 寮�' + }, { + date: '2016-05-01', + name: '鐜嬪皬铏�', + address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1519 寮�' + }, { + date: '2016-05-03', + name: '鐜嬪皬铏�', + address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�' + }] + } + } +} +</script> + +<style lang="less" scoped> +/deep/ .el-table { + margin-top: 15px; +} +</style> diff --git a/src/components/panel/topicSearch/SewersSelect/AnalysisChoose/CrossSectional.vue b/src/components/panel/topicSearch/SewersSelect/AnalysisChoose/CrossSectional.vue new file mode 100644 index 0000000..b417149 --- /dev/null +++ b/src/components/panel/topicSearch/SewersSelect/AnalysisChoose/CrossSectional.vue @@ -0,0 +1,62 @@ +<template> + <div class="connectivity"> + <el-row> + <el-button type="primary" size="mini">缁樺埗绾挎</el-button> + <el-button type="primary" size="mini">鎴柇闈㈠垎鏋�</el-button> + <el-button type="primary" size="mini">娓呴櫎</el-button> + </el-row> + <el-table + :data="tableData" + height="250" + border + style="width: 100%"> + <el-table-column + prop="date" + label="绠$嚎鍚嶇О" + width="180"> + </el-table-column> + <el-table-column + prop="name" + label="绠$嚎绫诲瀷" + width="180"> + </el-table-column> + <el-table-column + prop="address" + label="鎿嶄綔"> + </el-table-column> + </el-table> + </div> +</template> + +<script> +export default { + name: 'CrossSectional', + data () { + return { + tableData: [{ + date: '2016-05-02', + name: '鐜嬪皬铏�', + address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�' + }, { + date: '2016-05-04', + name: '鐜嬪皬铏�', + address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1517 寮�' + }, { + date: '2016-05-01', + name: '鐜嬪皬铏�', + address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1519 寮�' + }, { + date: '2016-05-03', + name: '鐜嬪皬铏�', + address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�' + }] + } + } +} +</script> + +<style lang="less" scoped> +/deep/ .el-table { + margin-top: 15px; +} +</style> diff --git a/src/components/panel/topicSearch/SewersSelect/AnalysisChoose/Flow.vue b/src/components/panel/topicSearch/SewersSelect/AnalysisChoose/Flow.vue new file mode 100644 index 0000000..1b10461 --- /dev/null +++ b/src/components/panel/topicSearch/SewersSelect/AnalysisChoose/Flow.vue @@ -0,0 +1,60 @@ +<template> + <div class="connectivity"> + <el-row> + <el-button type="primary" size="mini">閫夋嫨绠℃</el-button> + </el-row> + <el-table + :data="tableData" + height="250" + border + style="width: 100%"> + <el-table-column + prop="date" + label="绠$嚎鍚嶇О" + width="180"> + </el-table-column> + <el-table-column + prop="name" + label="绠$嚎绫诲瀷" + width="180"> + </el-table-column> + <el-table-column + prop="address" + label="鎿嶄綔"> + </el-table-column> + </el-table> + </div> +</template> + +<script> +export default { + name: 'Flow', + data () { + return { + tableData: [{ + date: '2016-05-02', + name: '鐜嬪皬铏�', + address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�' + }, { + date: '2016-05-04', + name: '鐜嬪皬铏�', + address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1517 寮�' + }, { + date: '2016-05-01', + name: '鐜嬪皬铏�', + address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1519 寮�' + }, { + date: '2016-05-03', + name: '鐜嬪皬铏�', + address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�' + }] + } + } +} +</script> + +<style lang="less" scoped> +/deep/ .el-table { + margin-top: 15px; +} +</style> diff --git a/src/components/panel/topicSearch/SewersSelect/AnalysisChoose/Tube.vue b/src/components/panel/topicSearch/SewersSelect/AnalysisChoose/Tube.vue new file mode 100644 index 0000000..650dcdd --- /dev/null +++ b/src/components/panel/topicSearch/SewersSelect/AnalysisChoose/Tube.vue @@ -0,0 +1,45 @@ +<template> + <div class="connectivity"> + <el-row> + <el-button type="primary" size="mini">閫夋嫨绠$嚎</el-button> + <el-button type="primary" size="mini">娓呴櫎</el-button> + </el-row> + <el-table + :data="tableData" + height="250" + border + style="width: 100%"> + <el-table-column + prop="date" + label="绠$嚎鍚嶇О" + width="180"> + </el-table-column> + <el-table-column + prop="name" + label="绠$嚎绫诲瀷" + width="180"> + </el-table-column> + <el-table-column + prop="address" + label="鎿嶄綔"> + </el-table-column> + </el-table> + </div> +</template> + +<script> +export default { + name: 'Tube', + data () { + return { + tableData: [] + } + } +} +</script> + +<style lang="less" scoped> +/deep/ .el-table { + margin-top: 15px; +} +</style> diff --git a/src/components/panel/topicSearch/SewersSelect/SewersAnalysis.vue b/src/components/panel/topicSearch/SewersSelect/SewersAnalysis.vue new file mode 100644 index 0000000..3d3d000 --- /dev/null +++ b/src/components/panel/topicSearch/SewersSelect/SewersAnalysis.vue @@ -0,0 +1,48 @@ +<template> + <div class="sewers-analysis-tab"> + <el-tabs v-model="activeName" type="border-card" @tab-click="handleClick"> + <el-tab-pane label="杩為�氭��" name="first"> + <Connectivity></Connectivity> + </el-tab-pane> + <el-tab-pane label="鐖嗙" name="second"> + <Tube></Tube> + </el-tab-pane> + <el-tab-pane label="娴佸悜" name="third"> + <Flow></Flow> + </el-tab-pane> + <el-tab-pane label="妯柇闈�" name="four"> + <CrossSectional></CrossSectional> + </el-tab-pane> + </el-tabs> + </div> +</template> + +<script> +import Connectivity from '@components/panel/topicSearch/SewersSelect/AnalysisChoose/Connectivity' +import Tube from '@components/panel/topicSearch/SewersSelect/AnalysisChoose/Tube' +import Flow from '@components/panel/topicSearch/SewersSelect/AnalysisChoose/Flow' +import CrossSectional from '@components/panel/topicSearch/SewersSelect/AnalysisChoose/CrossSectional' + +export default { + name: 'SewersFirstTab', + components: { + Connectivity, + Tube, + Flow, + CrossSectional + }, + data () { + return { + activeName: 'first' + } + }, + methods: { + handleClick (tab, event) { + console.log(tab, event) + } + } +} +</script> + +<style lang="less" scoped> +</style> -- Gitblit v1.8.0