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;
})
}
}