|
@@ -1,438 +0,0 @@
|
|
|
-<template>
|
|
|
- <div class="dashboard">
|
|
|
- <div class="left">
|
|
|
- <div class="box scadadata">
|
|
|
- <div class="handertitle">生产数据展示</div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="box dmadata">
|
|
|
- <div class="handertitle">漏损管控展示</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="center">
|
|
|
- <div class="maindata">
|
|
|
- <div class="labeldata">
|
|
|
- <div class="numdata" v-for="(data,index) in numList" :key="index">
|
|
|
- <div class="labelfont"><label class="ledfont">{{data.typevalue}}</label><label>{{data.unit1}}</label><label class="unitfont">{{data.unit2}}</label></div>
|
|
|
- <div class="note">{{data.typename}}</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="mapdata">
|
|
|
- <div class="leftdata">
|
|
|
- <div class="numdata" v-bind:class="{ isActive: activeIndex == data.index }" v-for="data in leftdata" :key="data.index" @click="numClick(data)">
|
|
|
- <div :class="(activeIndex == data.index)?'activelabelfont':'defaultlabelfont'"><label class="ledfont">{{data.typevalue}}</label><label class="unitfont">{{data.unit}}</label></div>
|
|
|
- <div :class="(activeIndex == data.index)?'activenote':'defaultnote'">{{data.typename}}</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="rightdata">
|
|
|
- <div class="numdata " v-bind:class="{ isActive: activeIndex == data.index }" v-for="(data,index) in rightdata" :key="index" @click="numClick(data)">
|
|
|
- <div :class="(activeIndex == data.index)?'activelabelfont':'defaultlabelfont'"><label class="ledfont">{{data.typevalue}}</label><label class="unitfont">{{data.unit}}</label></div>
|
|
|
- <div :class="(activeIndex == data.index)?'activenote':'defaultnote'">{{data.typename}}</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="chartdata">
|
|
|
- ttt杀杀杀
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="box xjdata">
|
|
|
- <div class="handertitle">管网巡检展示</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="right">
|
|
|
- <div class="box misdata">
|
|
|
- <div class="handertitle">生产数据展示</div>
|
|
|
- </div>
|
|
|
- <div class="box userdata">
|
|
|
- <div class="handertitle">用户数据展示</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-</template>
|
|
|
-
|
|
|
-<script>
|
|
|
-// @ is an alias to /src // lang='scss'
|
|
|
-
|
|
|
-export default {
|
|
|
- name: 'dashboard',
|
|
|
- components: {
|
|
|
- },
|
|
|
- data() {
|
|
|
- return {
|
|
|
- numList:[
|
|
|
- {
|
|
|
- typename:'设计供水能力',
|
|
|
- typevalue:'12.3',
|
|
|
- unit1:'万',
|
|
|
- unit2:'m³/d',
|
|
|
- },
|
|
|
- {
|
|
|
- typename:'昨日供水量',
|
|
|
- typevalue:'6',
|
|
|
- unit1:'万',
|
|
|
- unit2:'吨',
|
|
|
- },
|
|
|
- {
|
|
|
- typename:'漏损率',
|
|
|
- typevalue:'12.3',
|
|
|
- unit1:'',
|
|
|
- unit2:'%',
|
|
|
- },
|
|
|
- {
|
|
|
- typename:'产销差',
|
|
|
- typevalue:'12.3',
|
|
|
- unit1:'',
|
|
|
- unit2:'%',
|
|
|
- },
|
|
|
- {
|
|
|
- typename:'安全生产天数',
|
|
|
- typevalue:'7822',
|
|
|
- unit1:'',
|
|
|
- unit2:'天',
|
|
|
- }
|
|
|
- ],
|
|
|
- leftdata:[
|
|
|
- {
|
|
|
- index:0,
|
|
|
- typename:'水源地数量',
|
|
|
- typevalue:'3',
|
|
|
- unit:'个',
|
|
|
- },
|
|
|
- {
|
|
|
- index:1,
|
|
|
- typename:'加压站数量',
|
|
|
- typevalue:'22',
|
|
|
- unit:'座',
|
|
|
- },
|
|
|
- {
|
|
|
- index:2,
|
|
|
- typename:'制水厂数量',
|
|
|
- typevalue:'22',
|
|
|
- unit:'处',
|
|
|
- },
|
|
|
- {
|
|
|
- index:3,
|
|
|
- typename:'阀门数量',
|
|
|
- typevalue:'67',
|
|
|
- unit:'个',
|
|
|
- },
|
|
|
- {
|
|
|
- index:4,
|
|
|
- typename:'视频监控',
|
|
|
- typevalue:'67',
|
|
|
- unit:'个',
|
|
|
- },
|
|
|
- ],
|
|
|
- rightdata:[
|
|
|
- {
|
|
|
- index:5,
|
|
|
- typename:'管网水质监测点',
|
|
|
- typevalue:'20',
|
|
|
- unit:'个',
|
|
|
- },
|
|
|
- {
|
|
|
- index:6,
|
|
|
- typename:'管网压力监测点',
|
|
|
- typevalue:'51',
|
|
|
- unit:'个',
|
|
|
- },
|
|
|
- {
|
|
|
- index:7,
|
|
|
- typename:'流量监测点',
|
|
|
- typevalue:'30',
|
|
|
- unit:'个',
|
|
|
- },
|
|
|
- {
|
|
|
- index:8,
|
|
|
- typename:'噪声检测仪',
|
|
|
- typevalue:'12',
|
|
|
- unit:'个',
|
|
|
- },
|
|
|
- {
|
|
|
- index:9,
|
|
|
- typename:'设备完好率',
|
|
|
- typevalue:'96',
|
|
|
- unit:'%',
|
|
|
- },
|
|
|
- ],
|
|
|
-
|
|
|
- activeIndex:'0'
|
|
|
- }
|
|
|
- },
|
|
|
- computed: {
|
|
|
- activeClass:function(){
|
|
|
- let _activeClass = '';
|
|
|
- if(this.activeIndex <=4 ){
|
|
|
- _activeClass += " activeleft"
|
|
|
- }
|
|
|
- if(this.activeIndex > 4){
|
|
|
- _activeClass += " activeright"
|
|
|
- }
|
|
|
-
|
|
|
- return _activeClass
|
|
|
- }
|
|
|
- },
|
|
|
- methods: {
|
|
|
- numClick(e){
|
|
|
- console.log(JSON.stringify(e))
|
|
|
- this.activeIndex = e.index
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-</script>
|
|
|
-
|
|
|
-<style lang='scss'>
|
|
|
- .dashboard{
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
- border: 1px red solid;
|
|
|
- display: flex;
|
|
|
- flex-direction:row;
|
|
|
- justify-content:space-between;
|
|
|
-
|
|
|
- .left{
|
|
|
- width:30%;
|
|
|
- height:100%;
|
|
|
- padding: 6px;
|
|
|
- border:1px red solid;
|
|
|
-
|
|
|
- .scadadata{
|
|
|
- height: 40%;
|
|
|
- width:calc(100% - 10px);
|
|
|
- }
|
|
|
-
|
|
|
- .dmadata{
|
|
|
- margin-top: 6px;
|
|
|
- height: calc(60% - 10px);;
|
|
|
- width:calc(100% - 10px);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .center{
|
|
|
- width:40%;
|
|
|
- height:100%;
|
|
|
- padding: 6px;
|
|
|
- border:1px red solid;
|
|
|
-
|
|
|
- .maindata{
|
|
|
- height: 64%;
|
|
|
- width:calc(100% - 10px);
|
|
|
-
|
|
|
- .labeldata{
|
|
|
- width:100%;
|
|
|
- height: 88px;
|
|
|
- display:flex;
|
|
|
- align-items:center;
|
|
|
- justify-content: space-around;
|
|
|
-
|
|
|
- .numdata{
|
|
|
- width: 170px;
|
|
|
- height: 88px;
|
|
|
- background: url('~@/assets/label.png') no-repeat;
|
|
|
- background-size:100%100%;
|
|
|
- border: 1px red solid;
|
|
|
- text-align: center;
|
|
|
- cursor: pointer;
|
|
|
- }
|
|
|
-
|
|
|
- .labelfont{
|
|
|
- color: #EFDF8D;
|
|
|
- font-size: 20px;
|
|
|
- padding-top: 10%;
|
|
|
- border: 1px red solid;
|
|
|
- }
|
|
|
-
|
|
|
- .ledfont{
|
|
|
- font-size:24px;
|
|
|
- font-family: "myFont";
|
|
|
- color: #EFDF8D;
|
|
|
- }
|
|
|
- .fontdata{
|
|
|
- color: #A4D9F9;
|
|
|
- border: 1px red solid;
|
|
|
- }
|
|
|
- .unitfont{
|
|
|
- font-size: 16px;
|
|
|
- }
|
|
|
- .note{
|
|
|
- color: #A4D9F9;
|
|
|
- font-weight: 400;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .mapdata{
|
|
|
- width:100%;
|
|
|
- margin-top:6px;
|
|
|
- height: calc(100% - 94px);
|
|
|
- position:relative;
|
|
|
- border: 1px red solid;
|
|
|
-
|
|
|
- .chartdata{
|
|
|
- // background-color: yellow;
|
|
|
- }
|
|
|
-
|
|
|
- .leftdata{
|
|
|
- position:absolute;
|
|
|
- // border: 1px red solid;
|
|
|
- left: 0px;
|
|
|
- width: 110px;
|
|
|
-
|
|
|
- .numdata{
|
|
|
- width: 100px;
|
|
|
- height: 65px;
|
|
|
-
|
|
|
- text-align: left;
|
|
|
- cursor: pointer;
|
|
|
- }
|
|
|
-
|
|
|
- // .numdata:hover{
|
|
|
- // background: url('~@/assets/hovernum.png') no-repeat;
|
|
|
- // border-left: 0px;
|
|
|
- // padding-left: 10px;
|
|
|
- // cursor: pointer;
|
|
|
- // }
|
|
|
-
|
|
|
- .isActive {
|
|
|
- background: url('~@/assets/hovernum.png') no-repeat;
|
|
|
- border-left: 0px;
|
|
|
- padding-left: 24px;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .rightdata{
|
|
|
- // border: 1px #EFDF8D solid;
|
|
|
- width: 154px;
|
|
|
- position:absolute;
|
|
|
- // left:calc(100% - 110px);
|
|
|
- // float: right;
|
|
|
- right: 0px;
|
|
|
-
|
|
|
- .numdata{
|
|
|
- width: 130px;
|
|
|
- height: 65px;
|
|
|
- text-align: right;
|
|
|
- // border: 1px red solid;;
|
|
|
- }
|
|
|
-
|
|
|
- .isActive {
|
|
|
- // background: url('~@/assets/hovernum.png') no-repeat ;
|
|
|
- // transform: rotate(180deg);
|
|
|
- // background-position:right bottom;
|
|
|
- // image-orientation: flip;
|
|
|
- border-right: 0px;
|
|
|
- padding-right: 24px;
|
|
|
- position: relative;
|
|
|
- }
|
|
|
-
|
|
|
- .isActive::before {
|
|
|
- content: "";
|
|
|
- position: absolute;
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
- right: 0;
|
|
|
- // z-index: -1;
|
|
|
- background: url('~@/assets/hovernum.png') no-repeat ;
|
|
|
- transform: rotate(180deg);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .activeleft{
|
|
|
- padding-left: 19px;
|
|
|
- border-left: 5px rgba($color: #1EAAFE, $alpha: 0.3) solid;
|
|
|
- }
|
|
|
-
|
|
|
- .activeright{
|
|
|
- padding-right: 19px;
|
|
|
- border-right: 5px rgba($color: #1EAAFE, $alpha: 0.3) solid;
|
|
|
- }
|
|
|
-
|
|
|
- .labelfont{
|
|
|
- color: #29B1FF;
|
|
|
- font-size: 20px;
|
|
|
- // border: 1px red solid;
|
|
|
- }
|
|
|
-
|
|
|
- .defaultlabelfont{
|
|
|
- color: #29B1FF;
|
|
|
- font-weight: 400;
|
|
|
-
|
|
|
- }
|
|
|
- .activelabelfont{
|
|
|
- color: #FFFFFF;
|
|
|
- font-weight: 400; transform: rotate(0deg);
|
|
|
- }
|
|
|
-
|
|
|
- .ledfont{
|
|
|
- font-size:24px;
|
|
|
- font-family: "myFont";
|
|
|
- }
|
|
|
- .unitfont{
|
|
|
- font-size: 1rem;
|
|
|
- }
|
|
|
- .defaultnote{
|
|
|
- color: #A4D9F9;
|
|
|
- font-weight: 400;
|
|
|
- }
|
|
|
- .activenote{
|
|
|
- color: #FFFFFF;
|
|
|
- font-weight: 400;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .xjdata{
|
|
|
- margin-top: 6px;
|
|
|
- height: calc(36% - 10px);;
|
|
|
- width:calc(100% - 10px);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .right{
|
|
|
- width:30%;
|
|
|
- height:100%;
|
|
|
- padding: 6px;
|
|
|
- border:1px red solid;
|
|
|
-
|
|
|
- .misdata{
|
|
|
- height: 50%;
|
|
|
- width:calc(100% - 10px);
|
|
|
- }
|
|
|
-
|
|
|
- .userdata{
|
|
|
- margin-top: 6px;
|
|
|
- height: calc(50% - 10px);;
|
|
|
- width:calc(100% - 10px);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .handertitle{
|
|
|
- background: url('~@/assets/handertitle.png') no-repeat;
|
|
|
- background-size:100%100%;
|
|
|
- height: 46px;
|
|
|
- font-weight: 400;
|
|
|
- color: #FFFFFF;
|
|
|
- line-height: 46px;
|
|
|
- width: 100%;
|
|
|
- }
|
|
|
-
|
|
|
- .box{
|
|
|
- border: 1px #2BAEFD solid;
|
|
|
- padding: 5px;
|
|
|
- background: linear-gradient(to top, #28ACFF , #28ACFF ) left top no-repeat,/*上左*/
|
|
|
- linear-gradient(to right, #28ACFF , #28ACFF ) left top no-repeat,/*左上*/
|
|
|
- linear-gradient(to left, #28ACFF , #28ACFF ) right top no-repeat,/*上右*/
|
|
|
- linear-gradient(to bottom, #28ACFF , #28ACFF ) right top no-repeat,/*上右*/
|
|
|
- linear-gradient(to left, #28ACFF , #28ACFF ) left bottom no-repeat,/*下左*/
|
|
|
- linear-gradient(to bottom, #28ACFF , #28ACFF ) left bottom no-repeat,/*左下*/
|
|
|
- linear-gradient(to top, #28ACFF , #28ACFF ) right bottom no-repeat,/*下右*/
|
|
|
- linear-gradient(to left, #28ACFF , #28ACFF ) right bottom no-repeat;/*右下*/
|
|
|
- background-size: 5px 5px, 5px 5px, 5px 5px, 5px 5px;
|
|
|
- /* background-color: rgba(36,56,128,0.21); */
|
|
|
- }
|
|
|
-
|
|
|
-</style>
|
|
|
-
|
|
|
-
|