.html文件:
<form nz-form [formGroup]="validateForm" class="form" (ngSubmit)="submitForm()">
<nz-table #basicTable nzBordered>
<tr>
<td width="300" style="text-align: right">规则名:</td>
<td>
<nz-form-item style="width: 400px;margin: 0">
<nz-form-control>
<nz-input-group>
<input type="text" nz-input formControlName="regularName" >
</nz-input-group>
<nz-form-explain *ngIf="validateForm.get('regularName').dirty && validateForm.get('regularName').errors">必填项!</nz-form-explain>
</nz-form-control>
</nz-form-item>
</td>
</tr>
<tr>
<td style="text-align: right">匹配方式:</td>
<td style="text-align: left">
<nz-select style="width: 200px;" [(ngModel)]="singleValue" [nzSize]="size" formControlName="matchmode">
<nz-option *ngFor="let option of listOfOption" [nzLabel]="option.label" [nzValue]="option.value"></nz-option>
</nz-select>
</td>
</tr>
<tr>
<td style="text-align: right">匹配项:</td>
<td>
<nz-form-item style="width: 400px;margin: 0">
<nz-form-control>
<nz-input-group>
<input type="text" nz-input formControlName="matchitem" style="width: 400px">
</nz-input-group>
<nz-form-explain *ngIf="validateForm.get('matchitem').dirty && validateForm.get('matchitem').errors">必填项!</nz-form-explain>
</nz-form-control>
</nz-form-item>
</td>
</tr>
<tr>
<td style="text-align: right">配置:</td>
<td style="text-align: left">
<label nz-checkbox [(ngModel)]="jinyong" formControlName="forbidden" value="1">禁用</label>
<label nz-checkbox [(ngModel)]="baojing" formControlName="alert">报警</label>
</td>
</tr>
<tr style="text-align: center">
<td colspan="2">
<button nz-button nzType="primary" (click)="add()">添加</button>
<button nz-button nzType="primary" (click)="remove()">移除</button>
</td>
</tr>
<tr>
<td style="text-align: right">已添加的黑名单:</td>
<td style="text-align: left">
<div>
<nz-table #secondTable nzBordered [nzData]="datas" style="">
<tr>
<td>规则名</td>
<td>匹配方式</td>
<td>匹配项</td>
<td>配置</td>
</tr>
<tr *ngFor="let data of secondTable.data">
<td>{{data.name}}</td>
<td>{{data.mode}}</td>
<td>{{data.item}}</td>
<td>{{data.bidden}}</td>
</tr>
</nz-table>
</div>
</td>
</tr>
</nz-table>
</form>
.ts文件:
import { Component, OnInit } from '@angular/core';
import {
AbstractControl,
FormBuilder,
FormGroup,
Validators
} from '@angular/forms';
@Component({
selector: 'service',
templateUrl: './service.component.html',
styleUrls: ['./service.component.css']
})
export class ServiceComponent implements OnInit {
validateForm: FormGroup;
secondTable: FormGroup;
accountItem:any = {};
formData:any= {};
jinyong = true;
baojing = true;
listOfOption = [];
size = 'default';
singleValue = '服务名称';
multipleValue = [ '服务名称', '服务的显示名称', '服务的执行路径' ];
tagValue = [ '服务名称', '服务的显示名称', '服务的执行路径' ];
datas=[];
dataSet:any = {};
constructor(private fb: FormBuilder) { }
ngOnInit() {
this.validateForm = this.fb.group({
regularName: [ null, [ Validators.required ] ],
matchitem: [ null, [ Validators.required ] ],
matchmode: [ null, [ Validators.required ] ],
alert: [ null, [ Validators.required ] ],
forbidden: [ null, [ Validators.required ] ],
});
const children = [];
for (let i = 0; i < 4; i++) {
children.push({ label: this.multipleValue[i], value: this.tagValue[i]});
}
this.listOfOption = children;
}
//添加(主要的方法)
add(){
this.dataSet.name = this.validateForm.controls.regularName.value;
this.dataSet.item = this.validateForm.controls.matchitem.value;
this.dataSet.mode = this.validateForm.controls.matchmode.value;
this.dataSet.bidden = this.validateForm.controls.forbidden.value;
this.datas.push(this.dataSet);
this.datas = JSON.parse(JSON.stringify(this.datas));
console.log(this.datas);
}
submitForm(){
for (const i in this.validateForm.controls) {
this.validateForm.controls[ i ].markAsDirty();
this.validateForm.controls[ i ].updateValueAndValidity();
}
}
}