1 import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
2 import { SlicingTaskServices } from '../../../../../core/services/slicingTaskServices';
3 import { BUSINESS_REQUIREMENT } from '../../../../../../constants/constants';
6 selector: 'app-slicing-task-model',
7 templateUrl: './slicing-task-model.component.html',
8 styleUrls: ['./slicing-task-model.component.less']
10 export class SlicingTaskModelComponent implements OnInit {
11 @Input() showDetail: boolean;
12 @Input() moduleTitle: string;
13 @Input() taskId: string;
14 @Output() cancel = new EventEmitter<boolean>();
16 constructor(private http: SlicingTaskServices) { }
19 businessList: object[] = BUSINESS_REQUIREMENT;
21 checkDetail: object[] = [{}];
23 businessRequirement: object[] = [{}];
25 NSTinfo: object[] = [{}];
27 selectedServiceId: string;
28 selectedServiceName: string;
29 slicingInstances: any[];
30 loading: boolean = false;
32 slicingSubnet: any[] = [
56 isShowParams: boolean;
63 if (this.showDetail) {
68 getautidInfo(): void {
69 this.http.getAuditInfo(this.taskId).subscribe( res => {
70 const { result_header: { result_code } } = res;
71 if (+result_code === 200) {
72 const { task_id, task_name, create_timer, processing_status, business_demand_info, nst_info, nsi_nssi_info, business_demand_info: { service_snssai } } = res.result_body;
84 an_coverage_area_ta_list,
88 cn_resource_sharing_level,
95 cn_area_traffic_cap_dl,
96 cn_area_traffic_cap_ul
99 this.checkDetail = [{ task_id, task_name, create_timer, processing_status, service_snssai }];
101 this.businessRequirement = [business_demand_info];
102 this.NSTinfo = [nst_info];
104 this.selectedServiceId = suggest_nsi_id;
105 this.selectedServiceName = suggest_nsi_name;
106 this.slicingInstances = [{
107 service_instance_id: this.selectedServiceId,
108 service_instance_name: this.selectedServiceName
111 this.slicingSubnet[0].slicingId = an_suggest_nssi_id;
112 this.slicingSubnet[0].slicingName = an_suggest_nssi_name;
113 this.slicingSubnet[0].instances = [{
114 service_instance_id: an_suggest_nssi_id,
115 service_instance_name: an_suggest_nssi_name
117 this.slicingSubnet[0].params = { an_latency, an_5qi, an_coverage_area_ta_list }
119 this.slicingSubnet[1].slicingId = tn_suggest_nssi_id;
120 this.slicingSubnet[1].slicingName = tn_suggest_nssi_name;
121 this.slicingSubnet[1].instances = [{
122 service_instance_id: tn_suggest_nssi_id,
123 service_instance_name: tn_suggest_nssi_name
125 this.slicingSubnet[1].params = { tn_latency, tn_bandwidth };
127 this.slicingSubnet[2].slicingId = cn_suggest_nssi_id;
128 this.slicingSubnet[2].slicingName = cn_suggest_nssi_name;
129 this.slicingSubnet[2].instances = [{
130 service_instance_id: cn_suggest_nssi_id,
131 service_instance_name: cn_suggest_nssi_name
133 this.slicingSubnet[2].params = {
135 cn_resource_sharing_level,
136 cn_ue_mobility_level,
138 cn_max_number_of_ues,
142 cn_area_traffic_cap_dl,
143 cn_area_traffic_cap_ul
149 getSlicingData ( bool: boolean): void {
151 if (bool && this.slicingInstances.length === 1) {
152 this.http.getSlicingInstance('1', '10').subscribe ( res => {
153 this.loading = false;
154 const { result_header: { result_code }, result_body: { nsi_service_instances } } = res
155 if (+result_code === 200) {
156 this.slicingInstances = nsi_service_instances;
162 slicingInstanceChange ():void {
164 this.http.getSlicingSubnetInstance(this.selectedServiceId).subscribe( res => {
165 const { result_header: { result_code }, result_body} = res;
166 if (+result_code === 200) {
167 const { an_suggest_nssi_id, an_suggest_nssi_name, tn_suggest_nssi_id, tn_suggest_nssi_name, cn_suggest_nssi_id, cn_suggest_nssi_name } = result_body;
168 this.slicingSubnet[0].slicingId = an_suggest_nssi_id;
169 this.slicingSubnet[0].slicingName = an_suggest_nssi_name;
170 this.slicingSubnet[1].slicingId = tn_suggest_nssi_id;
171 this.slicingSubnet[1].slicingName = tn_suggest_nssi_name;
172 this.slicingSubnet[2].slicingId = cn_suggest_nssi_id;
173 this.slicingSubnet[2].slicingName = cn_suggest_nssi_name;
176 this.slicingInstances.forEach (item => {
177 if (item.service_instance_id === this.selectedServiceId) {
178 this.selectedServiceName = item.service_instance_name;
183 resetSlicingInstance (): void {
184 this.selectedServiceId = '';
185 this.selectedServiceName = '';
186 this.slicingSubnet.map( item => {
188 item.slicingName = '';
192 getSubnetInstances (bool: boolean, instance: any): void {
193 if(bool && instance.instances.length === 1) {
194 this.http.getSubnetInContext(instance.context, '1', '10').subscribe( res => {
195 const { result_header: { result_code }, result_body } = res;
196 if (+result_code === 200) {
197 this.slicingSubnet.map (item => {
198 if (item.context === instance.context) {
199 item.instances = result_body.nssi_service_instances;
207 slicingSubnetChange (instance: any): void {
208 instance.instances.forEach( item => {
209 if (instance.slicingId === item.service_instance_id) {
210 instance.slicingName = item.service_instance_name;
215 restSubnetInstance (instance: any): void {
216 instance.slicingId = '';
217 instance.slicingName = '';
220 showParamsModel (item: any): void {
221 this.isShowParams = true;
222 this.paramsTitle = item.title;
223 this.params = item.params
227 this.showDetail = false;
228 this.cancel.emit(this.showDetail);