feat: Local simulation data and display on the Slicing task management page 84/98884/3
authorcyuamber <xuranyjy@chinamobile.com>
Wed, 27 Nov 2019 09:51:28 +0000 (17:51 +0800)
committerxu ran <xuranyjy@chinamobile.com>
Wed, 27 Nov 2019 10:27:16 +0000 (10:27 +0000)
Change-Id: I56fb1fbbb63e490980a4d1f4d9d148d825f311f6
Issue-ID: USECASEUI-352
Signed-off-by: cyuamber <xuranyjy@chinamobile.com>
usecaseui-portal/package.json
usecaseui-portal/src/app/core/services/serviceList.service.ts
usecaseui-portal/src/app/mock/json/slicing_task_list.json [new file with mode: 0644]
usecaseui-portal/src/app/mock/routes.js
usecaseui-portal/src/app/views/services/slicing-management/slicing-task-management/slicing-task-management.component.html
usecaseui-portal/src/app/views/services/slicing-management/slicing-task-management/slicing-task-management.component.ts

index eabd63d..5e75e09 100644 (file)
@@ -35,6 +35,7 @@
     "faker": "^4.1.0",
     "jquery": "^3.4.1",
     "lodash": "^4.17.15",
+    "moment": "^2.24.0",
     "ng-zorro-antd": "^0.7.1",
     "ngx-echarts": "^2.2.0",
     "rxjs": "^5.5.12",
index bde2c25..2280aa9 100644 (file)
@@ -23,6 +23,7 @@ export class ServiceListService {
 
   constructor(private http: HttpClient) { }
   baseUrl = baseUrl.baseUrl;
+  nsmfBaseUrl = '/api/uui-slicing/nsmf'
   url = {
     customers: this.baseUrl + "/uui-lcm/customers",
     serviceType: this.baseUrl + "/uui-lcm/customers/" + "*_*" + "/service-subscriptions",
@@ -51,6 +52,7 @@ export class ServiceListService {
     pnfDetail: this.baseUrl + "/uui-sotn/getPnfInfo/",
     connectivity: this.baseUrl + "/uui-sotn/getConnectivityInfo/",
     vpnBinding: this.baseUrl + "/uui-sotn/getPinterfaceByVpnId/",
+    slicingTaskList: this.nsmfBaseUrl + "/task/business/pageNo/{pageNo}/pageSize/{pageSize}"
   };
 
 
@@ -207,4 +209,11 @@ export class ServiceListService {
     let url = this.url.vpnBinding + id;
     return this.http.get<any>(url);
   }
+
+  // Get slicing order task list
+  getSlicingTaskList (pageNo, pageSize) {
+    const url = this.url.slicingTaskList.replace("{pageNo}", pageNo).replace("{pageSize}", pageSize)
+    return this.http.get<any>(url);
+  }
+
 }
diff --git a/usecaseui-portal/src/app/mock/json/slicing_task_list.json b/usecaseui-portal/src/app/mock/json/slicing_task_list.json
new file mode 100644 (file)
index 0000000..2c7b67c
--- /dev/null
@@ -0,0 +1,43 @@
+{\r
+    "result_header": {\r
+    "result_code": "200",\r
+        "result_message": "5G slicing task query result."\r
+    },\r
+    "result_body": {\r
+        "record_number": 2,\r
+        "slicing_task_list": [\r
+            {\r
+                "task_id": "b1bb0ce7-ebca-4fa7-95ed-4840d70a1177",\r
+                "task_name": "5G Slice service eMMB",\r
+                "service_snssai": "1-010101",\r
+                "service_type": "eMMB",\r
+                "arrival_time": "1454171445000",\r
+                "processing_status": "Waiting to Confirm"\r
+            },\r
+            {\r
+                "task_id": "6965-8758-5468-2548-457896541236",\r
+                "task_name": "5G Slice service eMMB",\r
+                "service_snssai": "1-010101",\r
+                "service_type": "eMMB",\r
+                "arrival_time": "1454171445500",\r
+                "processing_status": "Creating"\r
+            },\r
+            {\r
+                "task_id": "b1bb0ce7-ebca-4fa7-95ed-4840d7041177",\r
+                "task_name": "5G Slice service eMMB",\r
+                "service_snssai": "1-010101",\r
+                "service_type": "eMMB",\r
+                "arrival_time": "1454471445000",\r
+                "processing_status": "Planning"\r
+            },\r
+            {\r
+                "task_id": "b1bb0de7-ebca-4fa7-95ed-4840d7041177",\r
+                "task_name": "5G Slice service eMMB",\r
+                "service_snssai": "1-010101",\r
+                "service_type": "eMMB",\r
+                "arrival_time": "1544471445000",\r
+                "processing_status": "Completed"\r
+            }\r
+        ]\r
+    }\r
+}\r
index 093f847..bac9e15 100644 (file)
@@ -91,6 +91,9 @@ module.exports =
         "/POST/uui-lcm/vf-packages": "/POST_uui-lcm_vf-packages",
         "/POST/uui-lcm/:jsonData": "/POST_uui-lcm_create",
 
+        ///////<-------------slicing-tesk-management--------->/////
+        "/uui-slicing/nsmf/task/business/pageNo/:pageNo/pageSize/:pageSize": "/slicing_task_list",
+
         ///////<-------------general interface--------->/////
         "/api/*": "/$1",
         "/*/*": "/$1_$2",
index 6a5abe8..ac35003 100644 (file)
     <nz-table #basicTable [nzData]="listOfData">
       <thead>
         <tr>
-          <th>Name</th>
-          <th>Age</th>
-          <th>Status</th>
-          <th>Action</th>
+          <th>任务ID</th>
+          <th>任务名称</th>
+          <th>S-NSSAI</th>
+          <th>切片业务类型</th>
+          <th>到达时间</th>
+          <th>处理环节</th>
+          <th>操作</th>
         </tr>
       </thead>
       <tbody>
         <tr *ngFor="let data of basicTable.data">
-          <td>{{ data.name }}</td>
-          <td>{{ data.age }}</td>
-          <td>{{ data.status===0?"Checking Configuration":"Creating Slicing" }}</td>
+          <td>{{ data.task_id }}</td>
+          <td>{{ data.task_name }}</td>
+          <td>{{ data.service_snssai }}</td>
+          <td>{{ data.service_type }}</td>
+          <td>{{ data.arrival_time }}</td>
+          <td>{{ data.status }}</td>
           <td>
-            <a (click)="showdetail(data)">Show Detail</a>
+            <span *ngIf="data.processing_status === 'Planning'">任务处理</span>
+            <a (click)="showdetail(data)" *ngIf="data.processing_status === 'Waiting to Confirm'">任务处理</a>
+            <a (click)="showdetail(data)" *ngIf="data.processing_status === 'Creating'">查看进度</a>
+            <a (click)="showdetail(data)" *ngIf="data.processing_status === 'Completed'">查看结果</a>
           </td>
         </tr>
       </tbody>
index ad29c5e..3d8efab 100644 (file)
@@ -1,4 +1,6 @@
 import { Component, OnInit } from '@angular/core';
+import * as moment from 'moment';
+import { ServiceListService } from '.././../../../core/services/serviceList.service'
 
 @Component({
   selector: 'app-slicing-task-management',
@@ -7,33 +9,41 @@ import { Component, OnInit } from '@angular/core';
 })
 export class SlicingTaskManagementComponent implements OnInit {
 
-  constructor() { }
+  constructor(private myhttp: ServiceListService) { }
 
-  ngOnInit() { }
+  ngOnInit() { 
+    this.getTaskList()
+  }
   showDetail: boolean = false;
   selectedValue = null;
   detailData: object = {};
   moduleTitle: string = "";
-  listOfData = [
-    {
-      key: '1',
-      name: 'John Brown',
-      age: 32,
-      status: 0
-    },
-    {
-      key: '2',
-      name: 'Jim Green',
-      age: 42,
-      status: 0
-    },
-    {
-      key: '3',
-      name: 'Joe Black',
-      age: 32,
-      status: 1
-    }
-  ];
+  listOfData = []; 
+  getTaskList (): void{
+    this.myhttp.getSlicingTaskList(1,10).subscribe (res => {
+      const { result_header: { result_code }, result_body: { slicing_task_list } } = res
+      if (+result_code === 200) {
+        this.listOfData = slicing_task_list.map( item => {
+          item.arrival_time = moment(+item.arrival_time).format('YYYY-MM-DD hh:mm')
+          switch (item.processing_status){
+            case 'Planning':
+              item.status = '规划阶段';
+              break;
+            case 'Waiting to Confirm':
+              item.status = '审核阶段';
+              break;
+            case 'Creating':
+              item.status = '切片创建中';
+              break;
+            case 'Completed': 
+              item.status = '创建完成';
+              break;
+          }
+          return item;
+        })
+      }
+    })
+  }
   showdetail(data: any) {
     console.log(data, this.showDetail)
     this.detailData = data;