123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282 |
- import { HospitalService } from 'app/services/basedata/hospital.service';
- import { Component, OnInit, ViewChild, Output, EventEmitter, HostListener } from '@angular/core';
- import { NzNotificationService, NzModalService } from 'ng-zorro-antd';
- import { _HttpClient } from '@delon/theme';
- import { HospitalContacts } from 'app/entity/basedata/hospital-contacts';
- import { FormBuilder, FormGroup, Validators } from '@angular/forms';
- import { Hospital } from 'app/entity/basedata/hospital';
- import { BasedataHospitalHospitalNewComponent } from '../../hospital-new/hospital-new.component';
- import { HospitalContactsService } from 'app/services/basedata/hospital-contacts.service';
- import { I18NService } from '@core';
- import { BasedataHospitalHospitalDocEditContactsAddRowComponent } from './contacts-add-row/contacts-add-row.component';
- import { messageShared } from '@shared/utils/message';
- @Component({
- selector: 'app-basedata-hospital-hospital-doc-edit',
- templateUrl: './edit.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%;
- }
- .textCenter{
- text-align:center
- }
- `
- ]
- })
- export class BasedataHospitalHospitalDocEditComponent implements OnInit {
- //元数据
- ngOnInit(): void {
- this.validateForm = this.fb.group({
- code: [null, [Validators.required]],
- name: [null, [Validators.required]],
- pig: [null]
- });
- this.initHospital();
- this.hospitalContacts = [];
- }
- constructor(
- private nzNotificationService: NzNotificationService,
- private hospitalService: HospitalService,
- private hospitalContactsService: HospitalContactsService,
- private fb: FormBuilder,
- private nzModalService:NzModalService,
- private i18NService:I18NService
- ) { }
- isLoading = false;
- drawerWidth = 1100;
- visible = false;
- validateForm: FormGroup;
- hospital: Hospital;
- enable = false;
- hospitalContact: 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>标签逐一校验
- a = 0;
- save(): void {
- // this.hospitalContacts.forEach(element => {
- // console.log(this.hospitalContacts)
- // if (element.isDefault == true) {
- // element.isDefault="1";
- // this.a++
- // console.log("默认联系人有" + this.a)
- // }else{
- // element.isDefault="0";
- // }
- // });
- // 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.stringify(this.hospital));
- //return;
- let valid = this.validateForm.valid;
- //验证通过保存
- if (valid) {
- this.hospitalService.editHospital(this.hospital).then((response) => {
- if (response.success) {
- this.nzNotificationService.success(this.i18NService.fanyi("successful.revision"), "");
- this.afterSave.emit();
- this.initHospital();
- this.close();
- } else {
- this.nzNotificationService.error(this.i18NService.fanyi("modification.failed"), messageShared(this.i18NService,response.message));
- }
- })
- }
- }
- openEdit(id: string): void {
- this.visible = true;//打开drawer并清除校验提示信息
- this.hospital.id = id;
- // this.enable = true;
- // this.hospitalContacts = [];
- for (const i in this.validateForm.controls) {
- this.validateForm.controls[i].reset();
- }
- this.hospitalService.queryById(id).then((response) => {
- this.hospital = response.result;
- //装换是否停用
- if(this.hospital.enable=="0"){
- this.enable=false;
- }else{
- this.enable=true;
- }
- })
- this.getContacts(id);
- }
- getContacts(id) {
- this.isLoading = true
- this.hospitalContact = {
- pkHospitalId: id
- }
- this.hospitalContactsService.getHospitalContacts(this.hospitalContact).then((response) => {
- console.log(this.i18NService.fanyi("the.data.queried.is"))
- console.log(response.result.records)
- this.hospitalContacts = response.result.records;
- this.hospitalContacts.forEach(element => {
- //转换是否默认
- if(element.isDefault=="1"){
- element.isDefault=true;
- }else{
- element.isDefault=false;
- }
- });
- this.isLoading = false
- })
- }
- editNewContact() {
- this.basedataHospitalHospitalNew.editNewContact(this.hospital.id);
- }
- edit(id: string) {
- this.basedataHospitalHospitalNew.editContact(id);
- }
- close(): void {
- this.visible = false;//关闭drawer
- this.enable=false;
- this.hospital={}
- }
- /**
- * 删除
- * @param id 联系人id
- */
- confirmDel(id: string) {
- this.isLoading = true
- this.hospitalContactsService.deleteHospitalContacts(id).then((response) => {
- if (response.success) {
- //删除成功
- this.nzNotificationService.success(this.i18NService.fanyi("successful.deletion"), "")
- this.getContacts(this.hospital.id)
- this.isLoading = false
- } else {
- //删除失败
- this.nzNotificationService.error(this.i18NService.fanyi("delete.failed"), response.message);
- this.getContacts(this.hospital.id)
- this.isLoading = false
- }
- })
- }
- cancelDel() {
- }
- initHospital() {
- this.hospital = {
- id: "",
- code: "",// 医院编码
- name: "",// 医院名称
- enable: "",// 是否停用
- memo: "",// 备注
- hospitalContacts: []
- }
- }
- index = 1;
- hospitalContacts: any[] = [];
- // 生物分析方法号增行
- addRow(): void {
- this.nzModalService.create({
- nzTitle:this.i18NService.fanyi("hospital.contarts.add"),
- nzWidth:900,
- nzContent:BasedataHospitalHospitalDocEditContactsAddRowComponent,
- nzFooter:[
- {
- label: this.i18NService.fanyi("button.cancel"),
- type:"default",
- onClick: BasedataHospitalHospitalDocEditContactsAddRowComponent => {
- BasedataHospitalHospitalDocEditContactsAddRowComponent.close();
- }
- },
- {
- label: this.i18NService.fanyi("button.save"),
- type:"primary",
- onClick: BasedataHospitalHospitalDocEditContactsAddRowComponent => {
- BasedataHospitalHospitalDocEditContactsAddRowComponent.save(this.hospital.id,this.hospitalContacts).then(()=>{
- this.getContacts(this.hospital.id);
- });
- }
- }
- ]
- })
- }
- /**
- * 修改
- * @param contratsId 联系人id
- */
- updateRow(contratsId){
- this.nzModalService.create({
- nzTitle:this.i18NService.fanyi("hospital.contarts.add"),
- nzWidth:900,
- nzContent:BasedataHospitalHospitalDocEditContactsAddRowComponent,
- nzComponentParams:{
- contratsId:contratsId
- },
- nzFooter:[
- {
- label: this.i18NService.fanyi("button.cancel"),
- type:"default",
- onClick: BasedataHospitalHospitalDocEditContactsAddRowComponent => {
- BasedataHospitalHospitalDocEditContactsAddRowComponent.close();
- }
- },
- {
- label: this.i18NService.fanyi("button.save"),
- type:"primary",
- onClick: BasedataHospitalHospitalDocEditContactsAddRowComponent => {
- BasedataHospitalHospitalDocEditContactsAddRowComponent.save(this.hospital.id,this.hospitalContacts).then(()=>{
- this.getContacts(this.hospital.id);
- });
- }
- }
- ]
- })
- }
- // 生物分析方法号删行
- deleteRow(index: number): void {
- this.hospitalContacts = this.hospitalContacts.filter(d => d.index !== index);
- }
- }
|