hospital-management.component.ts 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. import { Component, OnInit } from "@angular/core";
  2. import { FormBuilder, Validators, FormGroup } from "@angular/forms";
  3. import { ActivatedRoute } from "@angular/router";
  4. import { MainService } from "../../services/main.service";
  5. import { ToolService } from "src/app/services/tool.service";
  6. @Component({
  7. selector: "app-hospital-management",
  8. templateUrl: "./hospital-management.component.html",
  9. styleUrls: ["./hospital-management.component.less"],
  10. })
  11. export class HospitalManagementComponent implements OnInit {
  12. constructor(
  13. private fb: FormBuilder,
  14. private mainService: MainService,
  15. private route: ActivatedRoute,
  16. private tool: ToolService
  17. ) {}
  18. ngOnInit() {
  19. this.coopBtns = this.tool.initCoopBtns(this.route);
  20. this.getList();
  21. this.initForm();
  22. }
  23. currentUserAccount: any = JSON.parse(localStorage.getItem("user")).user
  24. .account; //当前登录人账号
  25. listOfData: any[] = []; //表格数据
  26. pageIndex: number = 1; //表格当前页码
  27. pageSize: number = 10; //表格每页展示条数
  28. listLength: number = 10; //表格总数据量
  29. modal: boolean = false; //新增/编辑模态框
  30. add: boolean; //true:新增;false:编辑
  31. validateForm: FormGroup; //新增/编辑表单
  32. coopId: number; //当前操作列id
  33. promptContent: string; //操作提示框提示信息
  34. ifSuccess: boolean; //操作成功/失败
  35. promptInfo: string; //操作结果提示信息
  36. promptModalShow: boolean; //操作提示框是否展示
  37. btnLoading: boolean = false; //确认按钮loading状态
  38. // 初始化增删改按钮
  39. coopBtns: any = {};
  40. // 表格数据
  41. loading1 = false;
  42. getList() {
  43. let data = {
  44. idx: this.pageIndex - 1,
  45. sum: this.pageSize,
  46. };
  47. this.loading1 = true;
  48. this.mainService
  49. .getFetchDataList("data", "hospital", data)
  50. .subscribe((data) => {
  51. this.loading1 = false;
  52. this.listOfData = data.list;
  53. this.listLength = data.totalNum;
  54. });
  55. }
  56. addModal() {
  57. this.add = true;
  58. this.modal = true;
  59. this.validateForm.controls.hospitalName.setValue("");
  60. this.validateForm.controls.hospitalNum.setValue("");
  61. }
  62. hideAddModal() {
  63. this.modal = false;
  64. this.initForm();
  65. }
  66. // 初始化新增form表单
  67. initForm() {
  68. this.validateForm = this.fb.group({
  69. hospitalName: [null, [Validators.required]],
  70. hospitalNum: [null, [Validators.required]],
  71. });
  72. }
  73. // 新增表单提交
  74. submitForm(): void {
  75. var that = this;
  76. for (const i in that.validateForm.controls) {
  77. that.validateForm.controls[i].markAsDirty();
  78. that.validateForm.controls[i].updateValueAndValidity();
  79. }
  80. if (that.validateForm.invalid) return;
  81. that.btnLoading = true;
  82. let data = {
  83. hospital: {
  84. hosName: that.validateForm.value.hospitalName,
  85. hosNo: that.validateForm.value.hospitalNum,
  86. },
  87. };
  88. if (!that.add) {
  89. data.hospital["id"] = that.coopId;
  90. }
  91. that.mainService
  92. .coopData(that.add ? "addData" : "updData", "hospital", data)
  93. .subscribe((data) => {
  94. that.btnLoading = false;
  95. that.hideAddModal();
  96. if (data.status == 200) {
  97. that.showPromptModal(that.add ? "新增" : "编辑", true, "");
  98. that.initForm();
  99. } else {
  100. that.showPromptModal(that.add ? "新增" : "编辑", false, data.msg);
  101. }
  102. });
  103. }
  104. // 编辑
  105. edit(data) {
  106. this.add = false;
  107. this.modal = true;
  108. this.coopId = data.id;
  109. this.validateForm.controls.hospitalName.setValue(data.hosName);
  110. this.validateForm.controls.hospitalNum.setValue(data.hosNo);
  111. }
  112. delModal: boolean = false; //删除模态框
  113. showDelModal(id) {
  114. this.delModal = true;
  115. this.coopId = id;
  116. }
  117. hideDelModal() {
  118. this.delModal = false;
  119. }
  120. confirmDel() {
  121. this.delModal = false;
  122. var that = this;
  123. that.btnLoading = true;
  124. that.mainService
  125. .coopData("rmvData", "hospital", [that.coopId])
  126. .subscribe((data) => {
  127. that.btnLoading = false;
  128. if (data.status == 200) {
  129. if (
  130. that.listOfData.length == 1 &&
  131. that.pageIndex == Math.ceil(that.listLength / that.pageSize)
  132. ) {
  133. that.listLength--;
  134. that.pageIndex = Math.ceil(that.listLength / that.pageSize);
  135. }
  136. this.showPromptModal("删除", true, "");
  137. } else {
  138. this.showPromptModal("删除", false, data.msg);
  139. }
  140. });
  141. }
  142. // 展示信息提示框(con:提示信息,success:操作是否成功,promptInfo:操作结果提示信息)
  143. showPromptModal(con, success, promptInfo?) {
  144. this.promptModalShow = false;
  145. this.promptContent = con;
  146. this.ifSuccess = success;
  147. this.promptInfo = promptInfo;
  148. setTimeout(() => {
  149. this.promptModalShow = true;
  150. }, 100);
  151. this.getList();
  152. }
  153. }