import { I18NService } from './../../../../core/i18n/i18n.service'; import { BasedataHospitalHospitalNewComponent } from './../hospital-new/hospital-new.component'; import { HospitalContacts } from 'app/entity/basedata/hospital-contacts'; import { Hospital } from './../../../../entity/basedata/hospital'; import { Component, OnInit, ViewChild, HostListener, Output, EventEmitter } from '@angular/core'; import { FormGroup, Validators, FormBuilder } from '@angular/forms'; import { NzNotificationService } from 'ng-zorro-antd'; import { HospitalService } from 'app/services/basedata/hospital.service'; import { messageShared } from '@shared/utils/message'; @Component({ selector: 'app-basedata-hospital-hospital-add', templateUrl: './hospital-add.component.html', styles: [ ` .base{ position: absolute; bottom: 0px; width: 100%; border-top: 1px solid rgb(232, 232, 232); padding: 10px 16px; text-align: right; left: 0px; background: #fff; z-index:99; } .buttonDistance{ margin-right:2%; } ` ] }) export class BasedataHospitalHospitalAddComponent implements OnInit { //元数据 ngOnInit(): void { this.validateForm = this.fb.group({ code: [null, [Validators.required]], name: [null, [Validators.required]], }); // this.initHospital(); this.hospitalContacts = []; } constructor( private nzNotificationService: NzNotificationService, private hospitalService: HospitalService, private fb: FormBuilder, private i18NService:I18NService ) { } // 表格加载状态 isLoading = false drawerWidth = 1000; visible = false; validateForm: FormGroup; hospital: Hospital = { id: "", code: "",// 医院编码 (非空) name: "",// 医院名称 (非空) enable: "",// 是否停用 delFlag: "",// 是否删除 createBy: "",// 创建人 createTime: null,// 创建时间 updateBy: "",// 修改人 updateTime: null,// 修改时间 memo: "",// 备注 HospitalContact: null, hospitalContacts: []// 医院联系人 }; enable = false; hospitalContacts: HospitalContacts[]; @ViewChild("basedataHospitalHospitalNew") basedataHospitalHospitalNew: BasedataHospitalHospitalNewComponent @Output() afterSave = new EventEmitter(); @HostListener('window:resize', ['$event']) onResize(event) { const width = event.target.innerWidth; if (width > 900) { this.drawerWidth = 900; } else { this.drawerWidth = width; } } //对标签逐一校验 isLoadingSave=false; save(): void { this.isLoading = true this.hospital.hospitalContacts = this.hospitalContacts; if (this.enable) { this.hospital.enable = "1"; } else { this.hospital.enable = "0"; } for (const i in this.validateForm.controls) { this.validateForm.controls[i].markAsDirty(); this.validateForm.controls[i].updateValueAndValidity(); } //alert(JSON.""ify(this.hospital)); //return; let valid = this.validateForm.valid; // 验证通过保存 if (valid) { if (this.hospital.id == null || this.hospital.id == "") { this.isLoadingSave=true; this.hospitalService.addHospital(this.hospital).then((response) => { console.log(this.i18NService.fanyi("hospital.data.is")) console.log(response) if (response.success) { this.nzNotificationService.success(this.i18NService.fanyi("newsuccess"), ""); this.afterSave.emit(); // this.initHospital(); this.isLoading = false this.isLoadingSave=false; this.close(); } else { this.isLoading = false this.isLoadingSave=false; this.nzNotificationService.error(this.i18NService.fanyi("newfailure"), messageShared(this.i18NService,response.message)); } }) } else { this.isLoadingSave=true; this.hospitalService.editHospital(this.hospital).then((response) => { if (response.success) { this.isLoading = false; this.isLoadingSave=false; this.nzNotificationService.success(this.i18NService.fanyi("successful.revision"), ""); this.afterSave.emit(); // this.initHospital(); this.close(); } else { this.isLoading = false; this.isLoadingSave=false; this.nzNotificationService.error(this.i18NService.fanyi("modification.failed"),messageShared(this.i18NService,response.message)); } }) } } } open(): void { this.visible = true;//打开drawer并清除校验提示信息 this.enable = false; this.hospitalContacts = []; for (const i in this.validateForm.controls) { this.validateForm.controls[i].reset(); } } close(): void { this.visible = false;//关闭drawer } pushHospitalContacts(hospitalContact: HospitalContacts) { console.log("5555") var i = 0; this.hospitalContacts.forEach((obj) => { if (hospitalContact.contactPsn == obj.contactPsn) { i++; } }) console.log("1") if (i > 0) { this.nzNotificationService.error(this.i18NService.fanyi("add.contact.failed"), this.i18NService.fanyi("hospital.contacts ") + hospitalContact.contactPsn + this.i18NService.fanyi("hospital.contarts.isdefault")); return; } console.log("2") this.hospitalContacts.push(hospitalContact); this.hospitalContacts = [...this.hospitalContacts]; console.log("3") this.basedataHospitalHospitalNew.handleCancel(); console.log("4") } confirmDel(contactPsn: string) { for (var i = 0; i < this.hospitalContacts.length; i++) { if (this.hospitalContacts[i].contactPsn == contactPsn) { this.hospitalContacts.splice(i, 1); this.hospitalContacts = [...this.hospitalContacts]; break; } } } cancelDel() { } // hospital:Hospital = { // id: "", // code: "",// 医院编码 // name: "",// 医院名称 // enable: "",// 是否停用 // memo: "",// 备注 // hospitalContacts: [] // } }