import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { NzMessageService } from 'ng-zorro-antd/message'; import { firstValueFrom } from 'rxjs'; import { FormUtils } from 'src/app/lib/utils/form-utils'; import { EpgService } from './epg.service'; @Component({ selector: 'app-epg-copy', template: `
克隆源: {{srcEpg.epgId}}, 请输入新的EPG信息:
`, styles: [ ] }) export class EpgCloneComponent implements OnInit { @Input() srcEpg: any; @Output() onSuccess = new EventEmitter(); @Output() onError = new EventEmitter(); form: FormGroup; isLoading = false; constructor( private epgService: EpgService, private fb: FormBuilder, private message: NzMessageService, ) { } ngOnInit(): void { this.form = this.fb.group({ epgId: [null, [Validators.required]], desc: [null], }) } onSubmit() { if (this.form.invalid) { FormUtils.markAsDirty(this.form); return; } this.isLoading = true; let data = Object.assign({}, this.form.value, { columns: this.srcEpg.columns, status: this.srcEpg.status }); firstValueFrom(this.epgService.epgAdd(data)) .then(res => { this.onSuccess.emit(data); this.message.success($localize`添加成功, 请继续完善栏目信息`); }) .catch(err => { this.message.error(err.error?.message || err.message); this.onError.emit(err); }).then(() => { this.isLoading = false; }) } }