getInstanceId: this.baseUrl + "/intent/getInstanceId",
createIntentInstance: this.baseUrl + "/intent/createIntentInstance",
getInstanceList: this.baseUrl + "/intent/getInstanceList",
+ getInstanceStatus: this.baseUrl + "/intent/getInstanceStatus",
queryInstancePerformanceData: this.baseUrl + "/intent/queryInstancePerformanceData",
getFinishedInstanceInfo: this.baseUrl + "/intent/getFinishedInstanceInfo",
deleteIntentInstance: this.baseUrl + "/intent/deleteIntentInstance",
activeIntentInstance: this.baseUrl + "/intent/activeIntentInstance",
invalidIntentInstance: this.baseUrl + "/intent/invalidIntentInstance",
queryAccessNodeInfo: this.baseUrl + "/intent/queryAccessNodeInfo",
- intentInstancePredict: this.baseUrl + "/intent/intentInstancePredict"
+ intentInstancePredict: this.baseUrl + "/intent/predict"
};
//The following APIs function are optimizable------------------------
return this.http.post<any>(this.url["getInstanceList"], requestBody);
}
+ getInstanceStatus(requestBody) {
+ return this.http.post<any>(this.url["getInstanceStatus"], requestBody);
+ }
+
queryInstancePerformanceData(requestBody) {
return this.http.post<any>(this.url["queryInstancePerformanceData"], requestBody);
}
selectedSubscriptionType: string = "";
selectedServiceInstance: string = "";
selectedTopology: string = "";
- instanceId: string = "";
- chartData: any = {
- xAxis: {
- data: [
- "2018-09-10 ",
- "2018-09-11",
- "2018-09-12",
- "2018-09-13",
- "2018-09-14",
- "2018-09-15",
- "2018-09-16",
- "2018-09-17",
- "2018-09-18",
- "2018-09-19",
- "2018-09-20",
- "2018-09-21",
- "2018-09-22"
- ]
- },
- series: [
- {
- data: [
- 30,
- 45,
- 34,
- 35,
- 43,
- 56,
- 36,
- 53,
- 42,
- 45,
- 44,
- 35,
- 32
- ]
- },
- {
- data: [
- 60,
- 60,
- 60,
- 60,
- 60,
- 60,
- 60,
- 60,
- 60,
- 60,
- 60,
- 60,
- 60
- ]
- }
- ]
- };
+ instanceId: string = "";
initData: any = {
height: 320,
option: {
updateOption: any;
instanceLists: any[] = [];
+ progressSetTimeOut: any;
ngOnInit() {
this.getFinishedInstanceInfo();
}
queryInstancePerformance(instanceId) {
- this.myHttp.queryInstancePerformanceData({ instanceId}).subscribe(
- (response) => {
- const { code, message, data } = response;
- if (code !== 200) {
- this.nzMessage.error(message);
- return;
- }
- if(this.chartIntance){
- this.updateOption = data;
+ const requery = () => {
+ this.myHttp.queryInstancePerformanceData({ instanceId}).subscribe(
+ (response) => {
+ const { code, message, data } = response;
+ if (code !== 200) {
+ this.nzMessage.error(message);
+ } else {
+ if(this.chartIntance) {
+ this.updateOption = data;
+ }
+ }
+
+ if (this.progressSetTimeOut) {
+ clearInterval(this.progressSetTimeOut);
+ }
+
+ this.progressSetTimeOut = setTimeout(() => {
+ requery();
+ }, 5000);
+ },
+ (err) => {
+ console.log(err);
}
- },
- (err) => {
- console.log(err);
- }
- )
+ )
+ }
+ requery();
}
-
}
[name]="nlpType"
[(ngModel)]="nlpType"
>
- <nz-option nzValue="nlp" nzLabel="nlp"></nz-option>
- <nz-option nzValue="intent" nzLabel="intent"></nz-option>
+ <nz-option nzValue="ccvpn" nzLabel="ccvpn"></nz-option>
+ <nz-option nzValue="5gs" nzLabel="5gs"></nz-option>
</nz-select>
</nz-form-control>
</nz-form-item>
// tslint:disable-next-line:no-any
this.fileList.forEach((file: any) => {
formData.set('file', file);
+ formData.set('modelType', this.nlpType);
});
this.uploading = true;
this.file = {
return nsvfc.id == nssdc.uuid
})
});
- this.nsTableData = this.nsTableData.concat(sameData);
+ console.log(sameData);
+ this.nsTableData = [...this.nsTableData, ...sameData];
},
(err) => {
this.msg.error(err);
*ngIf="item.type === 'select'"
>
<nz-option
- [nzValue]="option.key"
- [nzLabel]="option.title"
+ [nzValue]="option"
+ [nzLabel]="option"
*ngFor="let option of cloudPointOptions"
>
</nz-option>
[(ngModel)]="cloud_leased_line_info[item.key].name"
>
<nz-option
- [nzValue]="option.key"
- [nzLabel]="option.title"
+ [nzValue]="option"
+ [nzLabel]="option"
*ngFor="let option of nodeLists"
>
</nz-option>
queryAccessNodeInfo() {
this.myHttp.queryAccessNodeInfo().subscribe(
(response) => {
- console.log(response);
+ const { code, data } = response;
+ if (code !== 200) {
+ return;
+ }
+ this.cloudPointOptions = [...data.cloudAccessNodeList];
+ this.nodeLists = [...data.accessNodeList];
},
(err) => {
console.log(err);
2: 'Deleted',
3: 'Inactive'
}
- // 列表数据源
+ // table lists
listOfData: any[] = [];
- // 分页信息及总数
+ // pageSize or pageNum
pageIndex: number = 1;
pageSize: number = 10;
total: number = 0;
loading = false;
- // 控制弹窗展示变量
+ // cantrol dialog show or hidden
cloudLeasedLineShowFlag: boolean = false;
smartCloudLeasedLineShowFlag: boolean = false;
- // 初始化查询数据源
+ // resolve to dialog
+ resolveResult: any = null;
+ intervalTime: number = 5000;
+ progressingTimer: any[] = [];
+
+ // init source data
getCloudLeasedLineList(): void {
this.myHttp.getInstanceList({
currentPage: this.pageIndex,
return;
}
this.total = data.totalRecords;
- this.listOfData = [...data.list];
+ if (data.list === 0) {
+ return;
+ }
+
+ this.listOfData = data.list.map((item, index) => {
+ if (item.status === 'Incomplete') {
+ const updateStatus = (prodata) => {
+ item.status = prodata.status || item.status;
+ };
+
+ const obj = { serviceId: item.id };
+ this.queryStatus(obj, index, updateStatus).then(() => {
+ item.status = "Completed";
+ this.getCloudLeasedLineList();
+ });
+ }
+ return item;
+ });
}, (err) => {
console.log(err);
});
}
- // 分页信息变更查询数据
+
+ queryStatus(obj: any, index: number, callback: any) {
+ return new Promise((res) => {
+ const requery = () => {
+ const param = [obj.id];
+ this.myHttp.getInstanceStatus(param).subscribe((response) => {
+ if (
+ response.data.status && response.data.status === 'Incomplete') {
+ callback(response.data);
+ let progressSetTimeOut = setTimeout(() => {
+ requery();
+ }, this.intervalTime);
+ this.progressingTimer.push({
+ id: obj.id,
+ timer: progressSetTimeOut,
+ });
+ } else {
+ this.progressingTimer.forEach((item) => {
+ if (item.serviceId === obj.serviceId) {
+ clearInterval(item.timer);
+ }
+ });
+ res(response.data);
+ }
+ });
+ };
+ requery();
+ });
+ }
+
+ // change page message
searchData(): void {
this.getCloudLeasedLineList();
}
- // 解析结果传递到create弹窗
- resolveResult: any;
- // 弹窗加载
+
+ // dialog show
cloudLeasedLineShow(): void {
this.cloudLeasedLineShowFlag = true;
}
- // 弹窗关闭
+ // dialog close
cloudLeasedLineClose(): void {
this.cloudLeasedLineShowFlag = false;
this.pageIndex = 1;
this.pageSize = 10;
this.getCloudLeasedLineList();
}
- // smart 弹窗加载
+ // smart dialog show
smartCloudLeasedLineShow(): void {
this.smartCloudLeasedLineShowFlag = true;
}
- // smart 弹窗关闭
+ // smart dialog close
smartCloudLeasedLineClose(data): void {
this.smartCloudLeasedLineShowFlag = false;
if (data.cancel) {
return;
}
- this.cloudLeasedLineShowFlag = true;
+
this.resolveResult = {
name: 'test',
instanceId: '123456',
},
cloudPointName: 'aaa',
};
+
+ this.cloudLeasedLineShowFlag = true;
}
- // 跳转监控管理页面
+ // to monitor page
goMonitorService(): void {
this.router.navigateByUrl('/fcaps/monitor_service');
}
submitFormMessage(): void {
let params = {
"title": "predict",
+ "modelType": 'ccvpn',
"text": this.communicationMessage
};
this.myhttp.intentInstancePredict(params).subscribe(
-import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
+import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
import { NzMessageService } from 'ng-zorro-antd';
-import { Util } from '../../../../../shared/utils/utils';
import { onboardService } from '../../../../../core/services/onboard.service';
import { Recorder } from '../../../../../shared/utils/recorder';
+import { Util } from '../../../../../shared/utils/utils';
@Component({
selector: 'app-input-business-order',
return
}
let params = {
- "title": "predict",
- "text": this.communicationMessage
+ "title": "predict",
+ "modelType": '5gs',
+ "text": this.communicationMessage
};
this.myhttp["analysisInputText"](params)
.subscribe((data) => {