1 import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
2 import { NzMessageService } from 'ng-zorro-antd';
3 import { SlicingTaskServices } from '../../../../../core/services/slicingTaskServices'
6 selector: 'app-check-process-model',
7 templateUrl: './check-process-model.component.html',
8 styleUrls: ['./check-process-model.component.less']
10 export class CheckProcessModelComponent implements OnInit {
12 @Input() moduleTitle: string;
13 @Input() showProcess: boolean;
14 @Input() taskId: string;
15 @Input() moduleOperation: string;
17 @Output() cancel = new EventEmitter<boolean>();
19 constructor(private http: SlicingTaskServices, private message: NzMessageService) { }
22 businessRequirement: any[];
25 currentProgress: number = 1;
27 isSpinning: boolean = false;
28 isGetData: boolean = false;
33 if (this.showProcess) {
34 this.isSpinning = true;
38 clearTimeout(this.timer);
39 this.isGetData = false;
44 let getSlicingBasicInfoFailedCallback = () => {
47 this.http.getSlicingBasicInfo(this.taskId, getSlicingBasicInfoFailedCallback).then(res => {
48 const { result_body } = res;
56 business_demand_info: { service_snssai, coverage_area_ta_list }
59 this.checkDetail = [{ task_id, task_name, create_time, processing_status, service_snssai }];
61 business_demand_info.area = coverage_area_ta_list.map(item => {
62 item = item.split(';').join(' - ')
66 let area = ["Beijing;Beijing;Haidian District", "Beijing;Beijing;Xicheng District", "Beijing;Beijing;Changping District"].map(item => {
67 item = item.split(';').join(' - ')
70 this.businessRequirement = [{ ...business_demand_info, area }];
72 this.NSTinfo = [nst_info];
79 this.isSpinning = false;
81 this.isGetData = true;
86 let getSlicingCreateProgressFailedCallback = () => {
89 this.http.getSlicingCreateProgress(this.taskId, getSlicingCreateProgressFailedCallback).then(res => {
90 const { result_body } = res;
92 const nssiList: string[] = ['an', 'tn', 'cn'];
93 nssiList.forEach(item => {
94 const progress: number = +result_body[item + '_progress'];
95 const title: string = item.charAt(0).toUpperCase() + item.slice(1);
96 let status: string = result_body[item + '_status'];
97 if ((progress || progress === 0) && status) {
98 let currentProgress = 1
99 if (progress === 100 && status === 'finished') {
103 const obj = { progress, currentProgress, title, status };
107 this.data = [this.data];
108 let flag: boolean = false;
109 nssiList.forEach(item => {
110 if (result_body[item + '_status'] === 'processing' && result_body[item + '_progress'] !== 0) {
115 this.timer = setTimeout(() => {
119 this.isLoadingShow();
124 this.showProcess = false;
125 this.cancel.emit(this.showProcess)