feat:opmizite of slicing business page & 5G slicing monitor page 92/99392/1
authorcyuamber <xuranyjy@chinamobile.com>
Tue, 10 Dec 2019 08:53:06 +0000 (16:53 +0800)
committercyuamber <xuranyjy@chinamobile.com>
Tue, 10 Dec 2019 08:53:20 +0000 (16:53 +0800)
Change-Id: I8fc683a7a423605ef13b7eab43a2e816114df07e
Issue-ID: USECASEUI-369
Signed-off-by: cyuamber <xuranyjy@chinamobile.com>
13 files changed:
usecaseui-portal/src/app/mock/json/fetchBandwidthData.json
usecaseui-portal/src/app/mock/json/fetchOnlineusersData.json
usecaseui-portal/src/app/views/fcaps/monitor-5g/monitor-5g.component.html
usecaseui-portal/src/app/views/fcaps/monitor-5g/monitor-5g.component.less
usecaseui-portal/src/app/views/fcaps/monitor-5g/monitor-5g.component.ts
usecaseui-portal/src/app/views/services/slicing-management/slicing-resource-management/nsi-management/nsi-model/nsi-model.component.html
usecaseui-portal/src/app/views/services/slicing-management/slicing-resource-management/nsi-management/nsi-model/nsi-model.component.ts
usecaseui-portal/src/app/views/services/slicing-management/slicing-resource-management/nssi-management/nssi-model/nssi-model.component.html
usecaseui-portal/src/app/views/services/slicing-management/slicing-resource-management/nssi-management/nssi-model/nssi-model.component.ts
usecaseui-portal/src/app/views/services/slicing-management/slicing-resource-management/slicing-business-management/slicing-business-model/slicing-business-model.component.html
usecaseui-portal/src/app/views/services/slicing-management/slicing-resource-management/slicing-business-management/slicing-business-model/slicing-business-model.component.less
usecaseui-portal/src/app/views/services/slicing-management/slicing-resource-management/slicing-business-management/slicing-business-model/slicing-business-model.component.ts
usecaseui-portal/src/app/views/services/slicing-management/slicing-resource-management/slicing-business-management/slicing-business-table/slicing-business-table.component.ts

index 4fb9b9b..3b04a55 100644 (file)
@@ -9,11 +9,11 @@
         "service_id": "service1",
         "total_bandwidth_list": [
           {
-            "timestamp": "1454171445000",
+            "timestamp": "1454171446000",
             "total_bandwidth": "167"
           },
           {
-            "timestamp": "1454171445000",
+            "timestamp": "1454173447000",
             "total_bandwidth": "200"
           }
         ]
         "service_id": "service2",
         "total_bandwidth_list": [
           {
-            "timestamp": "1454171447000",
+            "timestamp": "1454171446000",
             "total_bandwidth": "88"
           },
           {
-            "timestamp": "1454171447000",
+            "timestamp": "1454173447000",
             "total_bandwidth": "184"
           }
         ]
         "service_id": "service3",
         "total_bandwidth_list": [
           {
-            "timestamp": "1454171448000",
+            "timestamp": "1454171446000",
             "total_bandwidth": "173"
           },
           {
-            "timestamp": "1454171448000",
+            "timestamp": "1454173447000",
             "total_bandwidth": "95"
           }
         ]
index 0c8dd97..777342d 100644 (file)
@@ -13,7 +13,7 @@
             "online_users": "100"
           },
           {
-            "timestamp": "1454171445000",
+            "timestamp": "1454176446000",
             "online_users": "200"
           }
         ]
         "service_id": "service2",
         "online_user_list": [
           {
-            "timestamp": "1454171446000",
+            "timestamp": "1454171445000",
             "online_users": "157"
           },
           {
-            "timestamp": "1454171446000",
+            "timestamp": "1454176446000",
             "online_users": "189"
           }
         ]
         "service_id": "service3",
         "online_user_list": [
           {
-            "timestamp": "1454171449000",
+            "timestamp": "1454171445000",
             "online_users": "215"
           },
           {
-            "timestamp": "1454171449000",
+            "timestamp": "1454176446000",
             "online_users": "148"
           }
         ]
index ca3c1ef..921e5ed 100644 (file)
@@ -1,4 +1,4 @@
-<div>
+<div class="monitor-content">
     <h1>Slicing business Monitor</h1>
     <div nz-row>
         <div nz-col nzSpan="12" class="monitorDate">
@@ -13,7 +13,7 @@
             ></nz-date-picker>
         </div>
     </div>
-    <div nz-row nzType="flex" nzGutter="16" class="charts">
+    <div nz-row nzType="flex" class="charts">
         <div nz-col nzSpan="6" class="gutter-row col-boxshadow">
             <h4>Slicing Use Traffic</h4>
             <app-pie [initData]="trafficChartInit" [chartData]="trafficChartData"></app-pie>
index a100638..f740102 100644 (file)
@@ -1,20 +1,25 @@
-.monitorDate{
-  //margin-left: 2%;
-  margin-top: 30px;
-}
-.businessmonitor_imagecontainer {
-  width: 100%;
-  margin-bottom: 20px;
-}
-.charts{
-  margin: 30px 0 10px 0;
-}
-.col-boxshadow{
-  padding: 25px;
-  margin: 0 10px;
-  border-radius: 5px;
-  box-shadow: #a9a9a92e 0px 0px 15px 10px;
-  h4{
-    font-size: 18px;
+.monitor-content {
+  h1{
+    padding: 20px;
+  }
+  .monitorDate {
+    margin-left: 20px;
+    margin-top: 30px;
+  }
+  .businessmonitor_imagecontainer {
+    width: 100%;
+    margin-bottom: 20px;
+  }
+  .charts {
+    margin: 30px 0 10px 10px !important;
+  }
+  .col-boxshadow {
+    padding: 25px;
+    margin: 0 1%;
+    border-radius: 5px;
+    box-shadow: #a9a9a92e 0px 0px 15px 10px;
+    h4 {
+      font-size: 18px;
+    }
   }
 }
\ No newline at end of file
index e1eee18..0ad68c5 100644 (file)
@@ -1,6 +1,7 @@
 import { Component, OnInit } from '@angular/core';
 import { SlicingTaskServices } from '.././../../core/services/slicingTaskServices';
 import { pieChartconfig, lineChartconfig } from './monitorEchartsConfig';
+import *as moment from 'moment';
 @Component({
     selector: 'app-monitor-5g',
     templateUrl: './monitor-5g.component.html',
@@ -90,6 +91,8 @@ export class Monitor5gComponent implements OnInit {
         this.myhttp.getFetchTraffic(service_list, time).subscribe(res => {
             const { result_header: { result_code }, result_body: { slicing_usage_traffic_list } } = res;
             if (+result_code === 200 && slicing_usage_traffic_list.length > 0) {
+                this.trafficData = [];
+                this.trafficLegend = [];
                 slicing_usage_traffic_list.forEach((item) => {
                     this.trafficData.push({
                         name: item.service_id,
@@ -120,8 +123,12 @@ export class Monitor5gComponent implements OnInit {
         this.myhttp.getFetchOnlineusers(service_list, time).subscribe(res => {
             const { result_header: { result_code }, result_body: { slicing_online_user_list } } = res;
             if (+result_code === 200) {
+                this.onlineuserXAxis = [];
+                this.onlineusersData = [];
+                this.onlineuserLegend = [];
                 slicing_online_user_list[0].online_user_list.map((key) => {
-                    this.onlineuserXAxis.push(key.timestamp)
+                    let date = moment(Number(key.timestamp)).format('YYYY-MM-DD/HH:mm').split("/")[1];
+                    this.onlineuserXAxis.push(date)
                 });
                 slicing_online_user_list.forEach((item) => {
                     this.onlineuserLegend.push(item.service_id);
@@ -148,8 +155,12 @@ export class Monitor5gComponent implements OnInit {
         this.myhttp.getFetchBandwidth(service_list, time).subscribe(res => {
             const { result_header: { result_code }, result_body: { slicing_total_bandwidth_list } } = res;
             if (+result_code === 200) {
+                this.bandwidthXAxis = [];
+                this.bandwidthData = [];
+                this.bandwidthLegend = [];
                 slicing_total_bandwidth_list[0].total_bandwidth_list.map((key) => {
-                    this.bandwidthXAxis.push(key.timestamp)
+                    let date = moment(Number(key.timestamp)).format('YYYY-MM-DD/HH:mm').split("/")[1];
+                    this.bandwidthXAxis.push(date)
                 });
                 slicing_total_bandwidth_list.forEach((item) => {
                     this.bandwidthLegend.push(item.service_id);
index 47bd9e5..c6f4117 100644 (file)
@@ -1,15 +1,18 @@
+<nz-spin [nzSpinning]="isSpinning">
 <nz-list class="taskmodel_list"  nzBordered [nzHeader]="'Carry Slicing Businress List :'" [nzFooter]="null">
   <nz-table
           #businessTable
           [nzData]="businessList"
           [nzShowPagination]="false"
           nzHideOnSinglePage
+                class="model-table-padding"
   >
     <thead>
     <tr>
       <th>Service Instance Id</th>
       <th>Service Instance Name</th>
       <th>Service Type</th>
+                <th>S-NSSAI</th>
       <th>Status</th>
       <th width="100px">Detail</th>
     </tr>
           [nzData]="nssiList"
           [nzShowPagination]="false"
           nzHideOnSinglePage
+                class="model-table-padding"
   >
     <thead>
     <tr>
       <th>Service Instance Id</th>
       <th>Service Instance Name</th>
       <th>Service Type</th>
+                <th>Environment Context</th>
       <th>Status</th>
       <th width="100px">Detail</th>
     </tr>
@@ -61,4 +66,5 @@
     </ng-template>
     </tbody>
   </nz-table>
-</nz-list>
\ No newline at end of file
+</nz-list>
+</nz-spin>
\ No newline at end of file
index 070a483..c34787d 100644 (file)
@@ -18,6 +18,7 @@ export class NsiModelComponent implements OnInit {
     @Input() nsiId;
     businessList: any[];
     nssiList: any[];
+    isSpinning: boolean = true;
   ngOnInit() {
       this.getNsiDetail()
   }
@@ -25,6 +26,7 @@ export class NsiModelComponent implements OnInit {
         this.myhttp.getSlicingNsiDetail(this.nsiId).subscribe(res => {
             const {result_header: {result_code}, result_body: {hosted_business_list,included_nssi_list} } = res;
             if (+result_code === 200) {
+                this.isSpinning = false;
                 this.businessList = hosted_business_list;
                 this.nssiList = included_nssi_list;
             }
index 6be39ea..a5da344 100644 (file)
@@ -1,9 +1,11 @@
-<nz-list class="taskmodel_list"  nzBordered [nzHeader]="'Carry Slicing Nsi List £º'" [nzFooter]="null">
+<nz-spin [nzSpinning]="isSpinning">
+    <nz-list class="taskmodel_list" nzBordered [nzHeader]="'Carry Slicing Nsi List :'" [nzFooter]="null">
   <nz-table
           #nssiTable
           [nzData]="nsiList"
           [nzShowPagination]="false"
           nzHideOnSinglePage
+                class="model-table-padding"
   >
     <thead>
     <tr>
@@ -28,4 +30,5 @@
     </ng-template>
     </tbody>
   </nz-table>
-</nz-list>
\ No newline at end of file
+</nz-list>
+</nz-spin>
\ No newline at end of file
index 52e0f23..d1af545 100644 (file)
@@ -16,6 +16,7 @@ export class NssiModelComponent implements OnInit {
     }
     @Input() nssiId;
     nsiList: any[];
+    isSpinning: boolean = true;
   ngOnInit() {
       this.getNssiDetail()
   }
@@ -23,6 +24,7 @@ export class NssiModelComponent implements OnInit {
         this.myhttp.getSlicingNssiDetail(this.nssiId).subscribe(res => {
             const {result_header: {result_code}, result_body: {hosted_nsi_list} } = res;
             if (+result_code === 200) {
+                this.isSpinning = false;
                 this.nsiList = hosted_nsi_list;
             }
         })
index 9ece597..5a11ab1 100644 (file)
@@ -1,15 +1,17 @@
+<nz-spin [nzSpinning]="isSpinning">
 <app-basic-info
         [businessRequirement]="businessRequirement"
         [NSTinfo]="NSTinfo"
         [taskModel]="taskModel"
 >
 </app-basic-info>
-<nz-list class="taskmodel_list"  nzBordered [nzHeader]="'Slicing NSI £º'" [nzFooter]="null">
+    <nz-list class="taskmodel_list" nzBordered [nzHeader]="'Slicing NSI :'" [nzFooter]="null">
     <nz-table
             #basicTable
             [nzData]="nsiInfo"
             [nzShowPagination]="false"
             nzHideOnSinglePage
+                class="model-table-padding"
     >
         <thead>
         <tr>
@@ -34,4 +36,5 @@
         </ng-template>
         </tbody>
     </nz-table>
-</nz-list>
\ No newline at end of file
+</nz-list>
+</nz-spin>
\ No newline at end of file
index 8115a79..253e1c3 100644 (file)
@@ -18,9 +18,10 @@ export class SlicingBusinessModelComponent implements OnInit {
 
     @Input() businessId;
     businessRequirement: any[];
-    NSTinfo: any[];
-    nsiInfo: any[];
+    NSTinfo: any[] = [];
+    nsiInfo: any[] = [];
     taskModel: boolean = false;
+    isSpinning: boolean = true;
     ngOnInit() {
         console.log(this.businessId, "id");
         this.getDetail()
@@ -28,11 +29,14 @@ export class SlicingBusinessModelComponent implements OnInit {
 
     getDetail() {
         this.myhttp.getSlicingBusinessDetail(this.businessId).subscribe(res => {
-            const {result_header: {result_code}, result_body: {business_demand_info,nst_info,nsi_info} } = res;
+            const { result_body, result_header: { result_code } } = res;
             if (+result_code === 200) {
-                // business_demand_info.coverage_area_ta_list.map((item)=>{
-                //     item.replace(";","   ")
-                // });
+                this.isSpinning = false;
+                const {business_demand_info,business_demand_info: { coverage_area_ta_list },nst_info,nsi_info}  = result_body;
+                business_demand_info.area = coverage_area_ta_list.map(item => {
+                    item = item.split(';').join('-');
+                    return item
+                });
                 this.businessRequirement = [business_demand_info];
                 this.NSTinfo = [nst_info];
                 this.nsiInfo = [nsi_info];
index 515a4d3..a524b8b 100644 (file)
@@ -20,7 +20,9 @@ export class SlicingBusinessTableComponent implements OnInit {
         this.getBusinessList()
     }
     ngOnDestroy() {
-        clearInterval(this.progressingTimer);
+        this.progressingTimer.forEach((item) => {
+            clearInterval(item.timer);
+        })
     }
     selectedValue:string = BUSINESS_STATUS[0];
     listOfData: any[] = [];
@@ -30,7 +32,7 @@ export class SlicingBusinessTableComponent implements OnInit {
     loading = false;
     isSelect: boolean = false;
     statusOptions: any[] = BUSINESS_STATUS;
-    progressingTimer :any;
+    progressingTimer :any[] = [];
 
 
     getBusinessList (): void{
@@ -175,11 +177,19 @@ export class SlicingBusinessTableComponent implements OnInit {
                     .subscribe((data) => {
                         if (data.result_body.operation_progress < 100) {
                             callback(data.result_body);
-                            this.progressingTimer = setTimeout(()=>{
+                            let progressSetTimeOut = setTimeout(() => {
                                 requery();
                             },5000);
+                            this.progressingTimer.push({
+                                id:obj.serviceId,
+                                timer:progressSetTimeOut
+                            })
                         } else {
-                            clearInterval(this.progressingTimer);
+                            this.progressingTimer.forEach((item) => {
+                                if(item.serviceId === obj.serviceId){
+                                    clearInterval(item.timer);
+                                }
+                            });
                             res(data.result_body);
                         }
                     })