123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198 |
- 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;
- }
- }
- //对<nz-form-control>标签逐一校验
- 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: []
- // }
- }
|