1 import {Component, OnInit} from '@angular/core';
2 import {SlicingTaskServices} from '.././../../../../../core/services/slicingTaskServices';
3 import {BUSINESS_STATUS} from '../../../../../../../constants/constants';
4 import { NzModalService } from 'ng-zorro-antd';
7 selector: 'app-slicing-business-table',
8 templateUrl: './slicing-business-table.component.html',
9 styleUrls: ['./slicing-business-table.component.less']
11 export class SlicingBusinessTableComponent implements OnInit {
14 private myhttp: SlicingTaskServices,
15 private modalService: NzModalService
20 this.getBusinessList()
23 clearInterval(this.progressingTimer);
25 selectedValue:string = BUSINESS_STATUS[0];
26 listOfData: any[] = [];
27 pageIndex: number = 1;
28 pageSize: number = 10;
31 isSelect: boolean = false;
32 statusOptions: any[] = BUSINESS_STATUS;
33 progressingTimer :any;
36 getBusinessList (): void{
38 this.isSelect = false;
40 pageNo: this.pageIndex,
41 pageSize: this.pageSize
43 if(this.selectedValue !== BUSINESS_STATUS[0]){
44 paramsObj["businessStatus"] = this.selectedValue;
47 this.myhttp.getSlicingBusinessList(paramsObj,this.isSelect).subscribe (res => {
48 const { result_header: { result_code }, result_body: { slicing_business_list,record_number } } = res;
49 if (+result_code === 200) {
50 this.total = record_number;
52 this.listOfData = slicing_business_list.map((item)=>{
53 if(item.last_operation_progress < 100){
54 let updata = (prodata) => {
55 item.last_operation_progress = prodata.operation_progress || item.last_operation_progress;
58 serviceId: item.service_instance_id
60 this.queryProgress(obj, updata).then((res) => {
61 item.last_operation_progress = 100;
62 item.orchestration_status = item.last_operation_type === 'activate'?'activated':item.last_operation_type === 'deactivated'?'deactivated':'terminated';
70 getListOfProcessingStatus(){
73 this.getBusinessList();
75 searchData(reset: boolean = false) {
76 this.getBusinessList();
78 switchChange(slicing,i){
79 this.modalService.confirm({
80 nzTitle: '<i>Do you Want to'+(slicing.orchestration_status === 'activated'?'deactivated':'activated')+ 'slicing business?</i>',
81 nzContent: '<b>service_instance_id:'+slicing.service_instance_id+'</b>',
84 serviceId:slicing.service_instance_id
86 if(slicing.orchestration_status === 'activated'){
87 this.changeActivate(paramsObj,false,slicing,"deactivate","deactivated")
89 this.changeActivate(paramsObj,true,slicing,"activate","activated");
94 let singleSlicing = Object.assign({},this.listOfData[i]);
95 this.listOfData[i] = singleSlicing;
96 this.listOfData = [...this.listOfData];
100 changeActivate(paramsObj,isActivate,slicing,activateValue,finished){
101 this.myhttp.changeActivateSlicingService(paramsObj,isActivate).subscribe (res => {
102 const { result_header: { result_code, result_message }, result_body: { operation_id } } = res;
103 if (+result_code === 200) {
104 slicing.last_operation_progress = 0;
105 slicing.orchestration_status = activateValue;
106 console.log(operation_id,"operation_id");
108 serviceId: slicing.service_instance_id
110 let updata = (prodata) => {
111 slicing.last_operation_progress = prodata.progress;
112 slicing.orchestration_status = prodata.operation_type;
113 this.queryProgress(obj, updata).then(() => {
114 slicing.last_operation_progress = 100;
115 slicing.orchestration_status = finished;
119 console.error(result_message)
124 this.modalService.confirm({
125 nzTitle: 'Do you Want to Terminate slicing business?',
126 nzContent: '<b>service_instance_id: </b>'+slicing.service_instance_id,
129 serviceId:slicing.service_instance_id
131 this.myhttp.terminateSlicingService(paramsObj).subscribe (res => {
132 const { result_header: { result_code, result_message }, result_body: { operation_id } } = res;
133 if (+result_code === 200) {
134 slicing.last_operation_progress = 0;
135 slicing.orchestration_status = 'deactivate';
136 console.log(operation_id,"operation_id");
138 serviceId: slicing.service_instance_id
140 let updata = (prodata) => {
141 slicing.last_operation_progress = prodata.progress;
142 slicing.orchestration_status = prodata.operation_type;
143 this.queryProgress(obj, updata).then(() => {
144 slicing.last_operation_progress = 100;
145 slicing.orchestration_status = "terminated";
149 console.error(result_message)
155 console.info('Cancel termination')
162 queryProgress(obj, callback) {
163 return new Promise( res => {
164 let requery = () => {
165 this.myhttp.getSlicingBusinessProgress(obj)
166 .subscribe((data) => {
167 if (data.result_body.operation_progress < 100) {
168 callback(data.result_body);
169 this.progressingTimer = setTimeout(()=>{
173 clearInterval(this.progressingTimer);
174 res(data.result_body);