From 3db71a09cb73e24eda6d36f39df2e35f123f290b Mon Sep 17 00:00:00 2001 From: cyuamber Date: Tue, 11 Feb 2020 16:16:13 +0800 Subject: feat:Order business function development and improvement of csmf slicing Change-Id: Ie233f2882316fbe524112d44d61ed503372e8896 Issue-ID: USECASEUI-369 Signed-off-by: cyuamber --- .../business-order/business-order.component.html | 53 ++++++- .../business-order/business-order.component.less | 19 +++ .../business-order/business-order.component.ts | 170 ++++++++++++++++++++- ...csmf-slicing-business-management.component.html | 4 +- 4 files changed, 237 insertions(+), 9 deletions(-) diff --git a/usecaseui-portal/src/app/views/services/slicing-management/csmf-slicing-business-management/business-order/business-order.component.html b/usecaseui-portal/src/app/views/services/slicing-management/csmf-slicing-business-management/business-order/business-order.component.html index d4914dd1..0ad676a0 100644 --- a/usecaseui-portal/src/app/views/services/slicing-management/csmf-slicing-business-management/business-order/business-order.component.html +++ b/usecaseui-portal/src/app/views/services/slicing-management/csmf-slicing-business-management/business-order/business-order.component.html @@ -1,3 +1,54 @@ - + +
+
+ + + {{ item.title }} + + + + + + + + + + + +
+
+ + + + + + + + + + +
+
+
+
+
+ \ No newline at end of file diff --git a/usecaseui-portal/src/app/views/services/slicing-management/csmf-slicing-business-management/business-order/business-order.component.less b/usecaseui-portal/src/app/views/services/slicing-management/csmf-slicing-business-management/business-order/business-order.component.less index e69de29b..3871a5fa 100644 --- a/usecaseui-portal/src/app/views/services/slicing-management/csmf-slicing-business-management/business-order/business-order.component.less +++ b/usecaseui-portal/src/app/views/services/slicing-management/csmf-slicing-business-management/business-order/business-order.component.less @@ -0,0 +1,19 @@ +.subnet_params_container{ + padding-left: 3%; + .subnet_params_area{ + margin-right: 5px; + } + .ant-btn-icon-only{ + padding: 0 5px !important; + } + .subnet_params_button{ + margin-top: 7px; + margin-left: 10px; + } + .subnet_params_icon{ + font-size: 14px; + } +} +.ant-form-item-label { + text-align: left; +} \ No newline at end of file diff --git a/usecaseui-portal/src/app/views/services/slicing-management/csmf-slicing-business-management/business-order/business-order.component.ts b/usecaseui-portal/src/app/views/services/slicing-management/csmf-slicing-business-management/business-order/business-order.component.ts index 0647b76d..f31f4dd1 100644 --- a/usecaseui-portal/src/app/views/services/slicing-management/csmf-slicing-business-management/business-order/business-order.component.ts +++ b/usecaseui-portal/src/app/views/services/slicing-management/csmf-slicing-business-management/business-order/business-order.component.ts @@ -1,5 +1,8 @@ import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core'; -import {COMMUNICATION_FORM_ITEMS} from "../../../../../../constants/constants"; +import {COMMUNICATION_FORM_ITEMS, COMMUNICATION_FORM_ADDRESS} from "../../../../../../constants/constants"; +import {SlicingTaskServices} from "../../../../../core/services/slicingTaskServices"; +import {NzMessageService} from "ng-zorro-antd"; + @Component({ selector: 'app-business-order', templateUrl: './business-order.component.html', @@ -7,18 +10,173 @@ import {COMMUNICATION_FORM_ITEMS} from "../../../../../../constants/constants"; }) export class BusinessOrderComponent implements OnInit { - constructor() { } + constructor( + private myhttp: SlicingTaskServices, + private message: NzMessageService + ) { + } - ngOnInit() { - } + ngOnInit() { + } + ngOnChanges() { + this.AreaFormatting(); + } @Input() showModel: boolean; @Output() cancel = new EventEmitter(); + comunicationFormItems = COMMUNICATION_FORM_ITEMS; + slicing_order_info = { + name: null, + maxNumberofUEs: null, + expDataRateDL: null, + latency: null, + expDataRateUL: null, + resourceSharingLevel: "shared", + uEMobilityLevel: null, + useInterval: null, + coverageArea: '' + }; + areaList: any[] = []; + isSpinning: boolean = false; + AreaFormatting() { + let areaList = ['Beijing;Beijing;Haidian District;Wanshoulu Street']; + this.areaList = areaList.map((item: any) => { + let arr = item.split(';'); + item = arr.map((ite, index) => { + let key: string; + if (!index) { + key = 'province'; + } else if (index === 1) { + key = 'city' + } else if (index === 2) { + key = 'district' + } else { + key = 'street' + } + const obj: any = {}; + obj.key = key; + obj.selected = ite + obj.options = [{name: ite, id: ite}] + return obj + }) + return item; + }) + } + + creatAreaList (): void { + let arr = [ + { + key: 'province', + selected: '', + options: [] + }, + { + key: 'city', + selected: '', + options: [] + }, + { + key: 'district', + selected: '', + options: [] + }, + { + key: 'street', + selected: '', + options: [] + } + ] + this.areaList.push(arr) + } + + deleteAreaList (index: number): void { + this.areaList.splice(index,1); + } + + handleChange(area: any[], areaItem: any): void{ + if (areaItem.key === 'province' && areaItem.options.length <= 1) { + areaItem.options = COMMUNICATION_FORM_ADDRESS; + } else if (areaItem.key === 'city' && areaItem.options.length <= 1) { + COMMUNICATION_FORM_ADDRESS.forEach( item => { + if(item.name === area[0].selected) { + areaItem.options = item.city; + } + }) + }else if (areaItem.key === 'district' && areaItem.options.length <= 1) { + COMMUNICATION_FORM_ADDRESS.forEach( (item: any) => { + item.city.forEach(city => { + if (city.name === area[1].selected) { + areaItem.options = city.county; + } + }) + }) + }else if (areaItem.key === 'street' && areaItem.options.length <= 1) { + COMMUNICATION_FORM_ADDRESS.forEach( (item: any) => { + item.city.forEach(city => { + if (city.name === area[1].selected) { + city.county.forEach(county => { + if (county.name === area[2].selected) { + areaItem.options = county.street; + } + }) + } + }) + }) + } + } + + handleChangeSelected(area: any[], areaItem: any) { + if (areaItem.key === 'province') { + area[1].selected = '' + area[1].options = []; + area[2].selected = ''; + area[2].options = []; + area[3].selected = ''; + area[3].options = []; + } else if (areaItem.key === 'city') { + area[2].selected = ''; + area[2].options = []; + area[3].selected = ''; + area[3].options = []; + }else if (areaItem.key === 'district') { + area[3].selected = ''; + area[3].options = []; + } + } handleCancel() { this.showModel = false; this.cancel.emit(this.showModel) } - handleOk() { - console.log(1) + + handleOk(): void { + const coverage_list: string[] = []; + this.areaList.forEach( item => { + let str: string = ''; + item.forEach( area => { + str += area.selected + ';'; + }); + coverage_list.push(str.substring(0, str.length-1)); + }); + if(coverage_list.length>1){ + this.slicing_order_info.coverageArea = coverage_list.join('|') + }else { + this.slicing_order_info.coverageArea = coverage_list.toString(); + } + let paramsObj = { + slicing_order_info:this.slicing_order_info + }; + console.log(paramsObj,"-----paramsObj"); + this.isSpinning = true; + this.myhttp.csmfSlicingPurchase(paramsObj).subscribe(res => { + const { result_header: { result_code, result_message }, result_body: { service_id,operation_id } } = res; + if (+result_code === 200) { + this.isSpinning = false; + this.handleCancel(); + } + }, (err) => { + this.message.error(err); + this.handleCancel(); + this.isSpinning = false; + }) } } diff --git a/usecaseui-portal/src/app/views/services/slicing-management/csmf-slicing-business-management/csmf-slicing-business-management.component.html b/usecaseui-portal/src/app/views/services/slicing-management/csmf-slicing-business-management/csmf-slicing-business-management.component.html index 818fc136..9c039c6d 100644 --- a/usecaseui-portal/src/app/views/services/slicing-management/csmf-slicing-business-management/csmf-slicing-business-management.component.html +++ b/usecaseui-portal/src/app/views/services/slicing-management/csmf-slicing-business-management/csmf-slicing-business-management.component.html @@ -19,7 +19,7 @@ Service Instance Id Service Instance Name Creation Time - Service Type + S-NSSAI Status Aciton @@ -32,7 +32,7 @@ {{ data.order_id }} {{ data.order_name }} {{ data.order_creation_time }} - {{ data.service_type?data.service_type:'--' }} + {{ data.service_snssai }} -- cgit 1.2.3-korg