1 import { Component, EventEmitter, Input, OnInit, Output } from "@angular/core";
2 import { NzMessageService } from "ng-zorro-antd";
3 import { intentBaseService } from "../../../../core/services/intentBase.service";
4 import { Util } from "../../../../shared/utils/utils";
5 import { COMMUNICATION_FORM_ITEMS } from "../constants";
8 selector: 'app-cloud-leased-line-modal',
9 templateUrl: './cloud-leased-line-modal.component.html',
10 styleUrls: ['./cloud-leased-line-modal.component.less']
12 export class CloudLeasedLineModalComponent implements OnInit {
15 private myHttp: intentBaseService,
16 private nzMessage: NzMessageService,
20 @Input() modelParams: any;
21 @Input() cloudLeasedLineShowFlag: boolean;
22 @Output() cancelEmitter = new EventEmitter<boolean>();
23 comunicationFormItems = COMMUNICATION_FORM_ITEMS;
24 isUpdateFlag: boolean = false;
25 nodeLists: any[] = [];
26 cloudPointOptions: any[] = [];
27 cloud_leased_line_info = {
41 if (this.cloudLeasedLineShowFlag) {
42 if (this.modelParams) {
43 this.isUpdateFlag = this.modelParams.isUpdateFlag;
44 this.cloud_leased_line_info = { ...this.modelParams };
48 this.queryAccessNodeInfo();
52 queryAccessNodeInfo() {
53 this.myHttp.queryAccessNodeInfo().subscribe(
55 const { code, data } = response;
59 this.cloudPointOptions = [...data.cloudAccessNodeList];
60 this.nodeLists = [...data.accessNodeList];
69 this.myHttp.getInstanceId().subscribe(
71 const { code, message, data} = response;
73 this.nzMessage.error(message);
76 this.cloud_leased_line_info.instanceId = data && data.instanceId;
85 const paramOnj = { ...this.cloud_leased_line_info };
86 for (const iterator in paramOnj) {
87 if (this.isBoolean(paramOnj[iterator])) {
90 if (this.isString(paramOnj[iterator]) && !paramOnj[iterator]) {
91 this.nzMessage.error(`Please enter ${iterator}`);
94 if (!this.isString(paramOnj[iterator])) {
95 const { name, bandwidth} = paramOnj[iterator];
97 this.nzMessage.error(`Please enter accessPointOne Name`);
101 if (bandwidth !== 0 && !/^\+?[1-9][0-9]*$/.test(bandwidth)) {
102 this.nzMessage.error(`Please enter a positive integer accessPointOne bandwidth`);
108 if (this.isUpdateFlag) {
109 this.updateIntentInstance();
112 this.createIntentInstance();
115 updateIntentInstance(): void {
116 const { accessPointOne: { bandwidth } } = this.cloud_leased_line_info;
117 this.myHttp.updateIntentInstance({
118 instanceId: this.modelParams.instanceId,
122 const { code, message } = response;
124 this.nzMessage.error(message);
127 this.nzMessage.success('Update IntentInstance Success!');
136 createIntentInstance(): void {
137 this.myHttp.createIntentInstance({
138 ...this.cloud_leased_line_info
141 const { code, message } = response;
143 this.nzMessage.error(message);
146 this.nzMessage.success('Create IntentInstance Success!');
156 this.cloudLeasedLineShowFlag = false
157 this.isUpdateFlag = false
158 this.cloud_leased_line_info = {
168 this.cancelEmitter.emit();
172 return typeof val === 'string' || typeof val === 'number';
173 //return Object.prototype.toString.call(val) === '[object String]';
177 return typeof val === 'boolean';