Fix VNF Alarm Query Bugs 32/71532/1
authorzhangab <zhanganbing@chinamobile.com>
Wed, 31 Oct 2018 08:22:18 +0000 (16:22 +0800)
committerzhangab <zhanganbing@chinamobile.com>
Wed, 31 Oct 2018 08:22:46 +0000 (16:22 +0800)
Change-Id: Ib649f6f30005a47bdf11958cd8c80f2108100982
Issue-ID: USECASEUI-165
Signed-off-by: zhangab <zhanganbing@chinamobile.com>
usecaseui-portal/src/app/alarm/alarm.component.css
usecaseui-portal/src/app/alarm/alarm.component.html
usecaseui-portal/src/app/alarm/alarm.component.less
usecaseui-portal/src/app/alarm/alarm.component.ts

index cb6a8ed..37c2d93 100644 (file)
@@ -25,31 +25,27 @@ hr {
   margin-bottom: 20px;
 }
 .select {
-  clear: both;
-}
-.select .query_criteria {
-  width: 75%;
-  float: left;
+  margin-bottom: 20px;
 }
-.select .query_criteria span {
+.select span {
   display: inline-block;
   font: 700 14px "Arial";
   color: #4c5e70;
 }
-.select .query_criteria nz-dropdown {
+.select nz-dropdown {
   vertical-align: middle;
 }
-.select .query_criteria nz-dropdown :hover {
+.select nz-dropdown :hover {
   border-color: #147dc2;
 }
-.select .query_criteria nz-dropdown button {
+.select nz-dropdown button {
   width: 165px;
   height: 30px;
   background-color: #eceff4;
   text-align: left;
   border-color: #9fa9ab;
 }
-.select .query_criteria nz-dropdown button span {
+.select nz-dropdown button span {
   font-weight: 400;
   display: inline-block;
   width: 120px;
@@ -57,42 +53,28 @@ hr {
   text-overflow: ellipsis;
   padding-top: 2px;
 }
-.select .query_criteria nz-dropdown button i {
+.select nz-dropdown button i {
   position: absolute;
   top: 10px;
   right: 10px;
 }
-.select .query_criteria .search {
+.select .search {
   margin-left: 20px;
   height: 30px;
   padding: 0 10px;
 }
-.select .query_criteria .search span {
+.select .search span {
   color: #fff;
   font-weight: 400;
 }
-.select .thumbnail {
-  width: 25%;
-  height: 90px;
-  float: left;
-  margin-top: 8px;
-}
-::ng-deep .vertical-center-modal {
-  display: flex;
-  align-items: center;
-  justify-content: center;
-}
-::ng-deep .vertical-center-modal .ant-modal {
-  top: 0;
-}
-.titles {
-  border-radius: 5px 5px 5px 5px;
+.content .title {
+  border-radius: 5px 5px 0 0;
   background-color: #fff;
   height: 106px;
   border-bottom: 1px solid #f0f0f0;
-  margin-bottom: 20px;
+  margin-bottom: 0;
 }
-.titles ul {
+.content .title ul {
   display: flex;
   display: -webkit-flex;
   justify-content: space-around;
@@ -100,30 +82,68 @@ hr {
   padding: 0;
   margin: 0;
   height: 100%;
-  width: 70%;
-  float: left;
 }
-.titles ul li {
+.content .title ul li {
   list-style: none;
   padding-left: 32px;
   width: 100%;
   border-left: 1px solid #eceff4;
 }
-.titles ul li h5 {
+.content .title ul li h5 {
   font: 500 14px "Arial";
   color: #3d4d65;
 }
-.titles ul li p {
+.content .title ul li p {
   font: 500 24px "Arial";
   color: #3fa8eb;
   margin-bottom: 0;
 }
-.titles ul li:nth-child(1) {
+.content .title ul li:nth-child(1) {
   border: none;
 }
-.content {
-  clear: both;
-  padding-top: 20px;
+.content .chart {
+  background-color: #fff;
+  position: relative;
+  padding-bottom: 24px;
+}
+.content .chart h3 {
+  font: 700 18px/18px "思源黑体";
+  color: #4c5e70;
+  padding: 20px 15px;
+  margin: 0;
+  width: 12%;
+  display: inline-block;
+}
+.content .chart .AlarmChart {
+  height: 0px;
+  overflow: hidden;
+  border-bottom: 1px solid #f5f5f5;
+  transition: all 0.3s linear;
+}
+.content .chart .alarmChart-active {
+  height: 386px;
+}
+.content .chart .open-close {
+  width: 50px;
+  height: 25px;
+  position: absolute;
+  left: 50%;
+  bottom: 0px;
+  transform: translate(-25px, 0);
+  border: none;
+  outline: none;
+  cursor: pointer;
+  background-color: #fff;
+  background: url(../../assets/images/open-close.png) no-repeat center -27px;
+}
+.content .chart .open-close:hover {
+  background: url(../../assets/images/open-close.png) no-repeat center -79px;
+}
+.content .chart .open-close-active {
+  background: url(../../assets/images/open-close.png) center -1px;
+}
+.content .chart .open-close-active:hover {
+  background: url(../../assets/images/open-close.png) no-repeat center -53px;
 }
 .content .tablelist {
   background-color: #fff;
index fcb0e70..378cebc 100644 (file)
 <h3 class="title"> <span (click)="detailHide()" style="cursor:pointer;">Alarm</span> <span *ngIf="detailshow">>
     Details</span> </h3>
 <hr>
-<div class="titles" [@showHideAnimate]="state">
-<ul>
-    <li>
-        <h5>Closed</h5>
-        <p>{{alarmList.closed }}</p>
-    </li>
-    <li>
-        <h5>Action</h5>
-        <p>{{alarmList.Action }}</p>
-    </li>
-</ul>
-
-</div>
 <div class="select" [@showHideAnimate]="state">
 <div class="query_criteria">
     <span>Source Name: </span>
     <span>Report Time: </span>
     <nz-range-picker [(ngModel)]="dateRange" (ngModelChange)="onChange($event)" nzShowTime></nz-range-picker>
 
-    <button class="search" nz-button [nzType]="'primary'" (click)="getAlarmFormData()"><i class="anticon anticon-search"></i><span>Search</span></button>
-</div>
-<div class="thumbnail" (click)="showModalMiddle()">
-    <app-line [initData]="alarmChartInit" [chartData]="alarmChartData"></app-line>
+    <!-- <button class="search" nz-button [nzType]="'primary'" (click)="getAlarmFormData()"><i class="anticon anticon-search"></i><span>Search</span></button> -->
+    <button class="search" nz-button [nzType]="'primary'"><i class="anticon anticon-search"></i><span>Search</span></button>
 </div>
 </div>
-<nz-modal nzWrapClassName="vertical-center-modal" [(nzVisible)]="isVisibleMiddle" nzTitle="Alarm Chart" (nzOnCancel)="handleCancelMiddle()"
-(nzOnOk)="handleOkMiddle()">
-<app-line [initData]="alarmChartInitBig" [chartData]="alarmChartDataBig"></app-line>
-</nz-modal>
 <div class="content" [@showHideAnimate]="state">
+<div class="title">
+    <ul>
+        <li><h5>All</h5> <p>{{alarmList.all }}</p></li>
+        <li><h5>Closed</h5> <p>{{alarmList.closed }}</p></li>
+        <li><h5>Active</h5> <p>{{alarmList.activeNum }}</p></li>
+    </ul>
+</div>
+<div class="chart">
+    <h3>Alarm Chart</h3>
+    <nz-radio-group [(ngModel)]="size">
+        <label nz-radio-button nzValue="day"> day </label>
+        <label nz-radio-button nzValue="month">month</label>
+      </nz-radio-group>
+    <div class="AlarmChart" [ngClass]="{'alarmChart-active':alarmShow}">
+        <app-line [initData]="alarmChartInit" [chartData]="alarmChartData"></app-line>
+    </div>
+    <button class="open-close" [ngClass]="{'open-close-active':alarmShow}" (click)="alarmShow=!alarmShow"></button>
+</div>
 <div class="tablelist">
     <nz-table #nzTable [nzData]="list" [nzPageSize]="10" nzShowSizeChanger nzShowQuickJumper [nzPageSizeOptions]="[5,10,15,20]"
         nzSize="middle">
@@ -90,7 +89,7 @@
             </tr>
         </thead>
         <tbody>
-            <tr *ngFor="let item of list; let i = index;">
+            <tr *ngFor="let item of nzTable.data; let i = index;">
                 <td>{{i+1}}</td>
                 <td>{{item.sourceName}}</td>
                 <td>{{item.priority}}</td>
index dc07bdc..649815c 100644 (file)
@@ -25,109 +25,128 @@ hr {
     margin-bottom: 20px;
 }
 .select {
-    clear: both;
-    .query_criteria {
-        width: 75%;
-        float: left;
-        span {
-            display: inline-block;
-            font: 700 14px "Arial";
-            color: #4c5e70;
-        }
-        nz-dropdown {
-            vertical-align: middle;
-            :hover{
-                border-color: #147dc2;
-            }
-            button {
-                width: 165px;
-                height: 30px;
-                background-color: #eceff4;
-                text-align: left;
-                border-color: #9fa9ab;
-                span {
-                    font-weight: 400;
-                    display: inline-block;
-                    width: 120px;
-                    overflow: hidden;
-                    text-overflow: ellipsis;
-                    padding-top: 2px;
-                }
-                i {
-                    position: absolute;
-                    top: 10px;
-                    right: 10px;
-                }
-            }
-            //下拉框中的样式在style.less中,下拉框是在body中额外临时生成的
+    margin-bottom: 20px;
+    span {
+        display: inline-block;
+        font: 700 14px "Arial";
+        color: #4c5e70;
+    }
+    nz-dropdown {
+        vertical-align: middle;
+        :hover{
+            border-color: #147dc2;
         }
-        .search {
-            margin-left: 20px;       
+        button {
+            width: 165px;
             height: 30px;
-            padding: 0 10px;
+            background-color: #eceff4;
+            text-align: left;
+            border-color: #9fa9ab;
             span {
-                color: #fff;
                 font-weight: 400;
+                display: inline-block;
+                width: 120px;
+                overflow: hidden;
+                text-overflow: ellipsis;
+                padding-top: 2px;
+            }
+            i {
+                position: absolute;
+                top: 10px;
+                right: 10px;
             }
         }
     }
-    .thumbnail {
-        width: 25%;
-        height: 90px;
-        float: left;
-        margin-top: 8px;
+    .search {
+        margin-left: 20px;       
+        height: 30px;
+        padding: 0 10px;
+        span {
+            color: #fff;
+            font-weight: 400;
+        }
     }
+    
 }
-// model style
-::ng-deep .vertical-center-modal {
-    display: flex;
-    align-items: center;
-    justify-content: center;
-}
-::ng-deep .vertical-center-modal .ant-modal {
-    top: 0;
-}
-.titles {
-    border-radius: 5px 5px 5px 5px;
-    background-color: #fff;
-    height: 106px;
-    border-bottom: 1px solid #f0f0f0;
-    margin-bottom: 20px;
-    // clear: both;
-    ul {
-        display: flex;
-        display: -webkit-flex; 
-        justify-content: space-around;
-        align-items: center;
-        padding: 0;
-        margin: 0;
-        height: 100%;
-        width: 70%;
-        float: left;
-        li {
-            list-style: none;
-            padding-left: 32px;
-            width: 100%;
-            border-left: 1px solid #eceff4;
-            h5 {
-                font: 500 14px "Arial";
-                color: #3d4d65;
+.content {
+    .title {
+        border-radius: 5px 5px 0 0;
+        background-color: #fff;
+        height: 106px;
+        border-bottom: 1px solid #f0f0f0;
+        margin-bottom: 0;
+        ul {
+            display: flex;
+            display: -webkit-flex; 
+            justify-content: space-around;
+            align-items: center;
+            padding: 0;
+            margin: 0;
+            height: 100%;
+            li {
+                list-style: none;
+                padding-left: 32px;
+                width: 100%;
+                border-left: 1px solid #eceff4;
+                h5 {
+                    font: 500 14px "Arial";
+                    color: #3d4d65;
+                }
+                p {
+                    font: 500 24px "Arial";
+                    color: #3fa8eb;
+                    margin-bottom: 0;
+                }
             }
-            p {
-                font: 500 24px "Arial";
-                color: #3fa8eb;
-                margin-bottom: 0;
+            li:nth-child(1){
+                border: none;
             }
         }
-        li:nth-child(1){
+    }
+    .chart {
+        background-color: #fff;
+        position: relative;
+        padding-bottom: 24px;
+        h3 {
+            font: 700 18px/18px "思源黑体";
+            color: #4c5e70;
+            padding: 20px 15px;
+            margin: 0;
+            width: 12%;
+            display: inline-block;
+        }
+        .AlarmChart {
+            height: 0px;
+            overflow: hidden;
+            border-bottom: 1px solid #f5f5f5;
+            transition: all 0.3s linear;
+        }
+        .alarmChart-active {
+            height: 386px;
+        }
+        .open-close {
+            width: 50px;
+            height: 25px;
+            position: absolute;
+            left: 50%;
+            bottom: 0px;
+            transform: translate(-25px,0);
             border: none;
+            outline: none;
+            cursor: pointer;
+            background-color: #fff;
+            background: url(../../assets/images/open-close.png) no-repeat center -27px;
+            &:hover {
+                background: url(../../assets/images/open-close.png) no-repeat center -79px;
+            }
+        }
+        .open-close-active {
+            background: url(../../assets/images/open-close.png) center -1px;
+            &:hover {
+                background: url(../../assets/images/open-close.png) no-repeat center -53px;
+            }
         }
     }
-  
-}
-.content {
-    clear: both;
-    padding-top: 20px;
     .tablelist {
         background-color: #fff;
         padding: 24px 10px 0px;
index 42b05b1..d437211 100644 (file)
@@ -27,55 +27,61 @@ import { showHideAnimate, slideToRight } from '../animates';
   ]
 })
 export class AlarmComponent implements OnInit {
-  @HostBinding('@routerAnimate') routerAnimateState; //路由动画
-  public pageNumber:number=1;
+  size = 'day';
+  @HostBinding('@routerAnimate') routerAnimateState; //Routing animation
+  public currentPage:number=1;
   public pageSize:number=5;
-  public name:string='';
-  public Priority:string ='';
-  public Status:string ='';
-  public Report:string ='';
+  public sourceName:string='';
+  public priority:string ='';
+  public startTime:string ='';
+  public endTime:string ='';
+  public vfStatus:string ='';
   list: any;
+  sourcenames:any;
 
 
   constructor(
     private myhttp:MyhttpService) { }
-  isVisibleMiddle = false;
+    ngOnInit() {
+      // this.getAlarmFormData();
+      // this. getSourceNames();
+      // this.getstatuscount();
+    }
 
-  showModalMiddle(): void {
-    this.isVisibleMiddle = true;
-  }
-  handleOkMiddle(): void {
-    console.log('click ok');
-    this.isVisibleMiddle = false;
-  }
-  handleCancelMiddle(): void {
-    this.isVisibleMiddle = false;
-  }
-  ngOnInit() {
-    this.getAlarmFormData();
-  }
+  // Filter box
+  sourceNameList = [];
+  sourceNameSelected = this.sourceNameList;
 
-  // 筛选框(下拉框)
-  sourceNameList = ['---auto---','shentao-test-1001','vnf_a_1','cccc','dddddDDDDDDD'];
-  sourceNameSelected = this.sourceNameList[0];
   priorityList = ['---auto---','Critical','Major','Minor','Warning'];
   prioritySelected = this.priorityList[0];
+
+  
   statusList = ['---auto---','active','Close'];
   statusSelected = this.statusList[0];
+  
   choseSourceName(item){
     console.log(item,'item1');
     this.sourceNameSelected = item;
+    return this.sourceName = item;
   }
   chosePriority(item){
     console.log(item);
     this.prioritySelected = item;
+    return this.priority = item;
   }
   choseStatus(item){
     console.log(item);
     this.statusSelected = item;
+    return this.vfStatus = item;
   }
+  //  getSourceNames(){
+  //   this.myhttp.getSourceNames().subscribe((data)=>{
+  //     this.sourceNameList=data;
+  //   console.log(data,'datass');
+  // })
+  // }
 
-  // 日期筛选
+  // Date screening
   dateRange =  [ addDays(new Date(), -30), new Date() ];
 
   onChange(result: Date): void {
@@ -84,38 +90,52 @@ export class AlarmComponent implements OnInit {
   sort(e){
 
   }
-  // 数量统计
+  // total
   alarmList = {
-    closed:37923,
-    Action: 12342
+    all:200,
+    closed:0,
+    activeNum:0
   }
+  // total data
+  // getstatuscount(){
+  //   this.myhttp.getstatuscount().subscribe((data)=>{
+  //     this.alarmList.activeNum = data[0];
+  //     this.alarmList.closed = data[1];
+      
+  //   })
+  // }
 
-  //折线图縮略圖
+  //Line chart
+  alarmShow = false;
   alarmChartData:Object;
   alarmChartInit:Object = {
-    height:100,
-    width:290,
+    height:380,
     option:{
-      tooltip : {
-        show : false,
-        trigger: 'axis',
-      },
       legend: {
-        show :false,
         bottom: '0px',
         data: ['All', 'Active', 'Closed']
       },
+      dataZoom: [
+        {
+          type: 'slider',
+          show: true,
+          // xAxisIndex: [0],
+          start: 1,
+          height: 10,
+          end: 40
+        }
+    ],
       series: [
         {
             name: 'All',
             type: 'line',
-            smooth: true,//将图变得平缓
+            smooth: true,
             showSymbol: false,
             areaStyle: {
               opacity: 0.8
             },
             //timeframe_one
-            data: [40, 45, 38, 52, 64, 58, 69, 87, 76, 33, 64, 87, 45, 76, 88, 56, 33, 76, 45, 65],
+            data: [40, 45, 38, 52, 64, 58, 69, 87, 76, 33, 64, 87, 45, 76, 88, 56, 33, 76, 45, 65,38, 52, 64, 58, 69, 87, 76, 33, 64, 87,40, 45, 38, 52, 64, 58, 69, 87, 76,40, 45, 38, 52, 64, 58, 69, 87, 76],
             itemStyle: {
               color: "#526b75"
             },
@@ -127,13 +147,13 @@ export class AlarmComponent implements OnInit {
         {
             name: 'Active',
             type: 'line',
-            smooth: true,//将图变得平缓
+            smooth: true,
             showSymbol: false,
             areaStyle: {
               opacity: 0.8
             },
             //timeframe_two
-            data: [32, 43, 23, 45, 63, 24, 54, 22, 32, 42, 42, 22, 23, 43, 32, 34, 42, 33, 42, 12],
+            data: [32, 43, 23, 45, 63, 24, 54, 22, 32, 42, 42, 22, 23, 43, 32, 34, 42, 33, 42, 12,32, 43, 23, 45, 63, 24, 54, 22, 32, 42, 42, 22, 23, 43, 32, 34, 42, 33, 42, 12,32, 43, 23, 45, 63, 24, 54, 22],
             itemStyle: {
               color: "#fb6e6e"
             },
@@ -145,13 +165,13 @@ export class AlarmComponent implements OnInit {
         {
             name: 'Closed',
             type: 'line',
-            smooth: true,//将图变得平缓
+            smooth: true,//
             showSymbol: false,
             areaStyle: {
               opacity: 0.8
             },
             //timeframe_two
-            data: [12, 23, 13, 25, 33, 14, 34, 12, 12, 22, 12, 12, 13, 23, 12, 24, 22, 13, 22, 5],
+            data: [12, 23, 13, 25, 33, 14, 34, 12, 12, 22, 12, 12, 13, 23, 12, 24, 22, 13, 22, 5,12, 23, 13, 25, 33, 14, 34, 12, 12, 22, 12, 12, 13, 23, 12, 24, 22, 13, 22, 5,12, 23, 13, 25, 33, 14, 34, 12, 125],
             itemStyle: {
               color: "#3fa8eb"
             },
@@ -180,82 +200,9 @@ export class AlarmComponent implements OnInit {
         console.log(err);
       })
   }
-  //折线图放大圖 
-  alarmChartDataBig:Object;
-  alarmChartInitBig:Object = {
-    height:240,
-    width:500,
-    option:{
-      tooltip : {
-        show : true,
-        trigger: 'axis',
-      },
-      legend: {
-        show :true,
-        bottom: '0px',
-        data: ['All', 'Active', 'Closed']
-      },
-      series: [
-        {
-            name: 'All',
-            type: 'line',
-            smooth: true,//将图变得平缓
-            showSymbol: false,
-            areaStyle: {
-              opacity: 0.8
-            },
-            //timeframe_one
-            data: [40, 45, 38, 52, 64, 58, 69, 87, 76, 33, 64, 87, 45, 76, 88, 56, 33, 76, 45, 65],
-            itemStyle: {
-              color: "#526b75"
-            },
-            lineStyle: {
-              width: 1,
-              opacity: 0.5
-            }
-        },
-        {
-            name: 'Active',
-            type: 'line',
-            smooth: true,//将图变得平缓
-            showSymbol: false,
-            areaStyle: {
-              opacity: 0.8
-            },
-            //timeframe_two
-            data: [32, 43, 23, 45, 63, 24, 54, 22, 32, 42, 42, 22, 23, 43, 32, 34, 42, 33, 42, 12],
-            itemStyle: {
-              color: "#fb6e6e"
-            },
-            lineStyle: {
-              width: 1,
-              opacity: 0.5
-            }
-        },
-        {
-            name: 'Closed',
-            type: 'line',
-            smooth: true,//将图变得平缓
-            showSymbol: false,
-            areaStyle: {
-              opacity: 0.8
-            },
-            //timeframe_two
-            data: [12, 23, 13, 25, 33, 14, 34, 12, 12, 22, 12, 12, 13, 23, 12, 24, 22, 13, 22, 5],
-            itemStyle: {
-              color: "#3fa8eb"
-            },
-            lineStyle: {
-              width: 1,
-              opacity: 0.5
-            }
-        }
-      ]
-    }
-  };
-  //详情页标题显示
+  //Detail page title display
   detailshow = false;
-  // 显示隐藏动画
+  // Show hidden animation
   state = "show";
   state2 = "hide";
   detailShow() {
@@ -268,6 +215,9 @@ export class AlarmComponent implements OnInit {
     this.state2 = 'hide';
     this.detailshow = false;
   }
+
+
   getSelects:Object = {
     countAll:0,
     countClose:0,
@@ -277,10 +227,11 @@ export class AlarmComponent implements OnInit {
     reportingEntityNameList:[],
     sourceNameList:[],
 };
-  getAlarmFormData(){
-    this.myhttp.getAlarmFormData(this.pageNumber,this.pageSize,this.name,this.Priority,this.Status,this.Report).subscribe((data)=>{
-        this.list = data.list;
-      console.log(data,'data');
-    })
-  }
+  // getAlarmFormData(){
+  //   this.myhttp.getAlarmFormData(this.currentPage,this.pageSize,this.sourceName,this.priority,this.startTime,this.endTime,this.vfStatus).subscribe((data)=>{
+  //       this.list = data.alarms;
+  //     // console.log(data,'data');
+  //   })
+  // }
+
 }