business-affairs.component.ts 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. import { Component, OnInit, Output, EventEmitter } from '@angular/core';
  2. import { NzModalRef, NzMessageService } from 'ng-zorro-antd';
  3. import { _HttpClient } from '@delon/theme';
  4. import { BaseArchivesMilestoneService } from 'app/services/basedata/base-archives-milestone.service';
  5. import { ProjectManageArchives } from 'app/entity/project-manage-archives/project-manage-archives';
  6. @Component({
  7. selector: 'app-project-manage-archives-update-business-affairs',
  8. templateUrl: './business-affairs.component.html',
  9. })
  10. export class ProjectManageArchivesUpdateBusinessAffairsComponent implements OnInit {
  11. constructor(
  12. private baseArchivesMilestoneService:BaseArchivesMilestoneService
  13. ) {}
  14. ngOnInit(): void {
  15. }
  16. projectManageArchives: ProjectManageArchives = {}; //项目档案实体对象
  17. collectionPlanList = []; //收款计划数据
  18. paymentCollectionList = []; //回款情况数据
  19. paymentPlanList = []; //付款计划
  20. paymentStatusList = []; //付款情况
  21. planList = []; //计划下来集合数据
  22. formatterDollar = (value: number) => `$ ${value}`;
  23. parserDollar = (value: string) => value.replace('$ ', '');
  24. milestoneList :any= []; //里程碑集合数据
  25. /**
  26. *
  27. 收款计划新增
  28. */
  29. collectionPlanSort = 0; //收款计划排序
  30. collectionPlanAdd() {
  31. this.collectionPlanList = [
  32. ...this.collectionPlanList,
  33. {
  34. price1: 0,
  35. price2: 0,
  36. price3: 0,
  37. price4: 0,
  38. price5: 0,
  39. sort: this.collectionPlanSort,
  40. planType: '1',
  41. },
  42. ];
  43. this.collectionPlanSort++;
  44. }
  45. /**
  46. * 收款删除按钮
  47. */
  48. collectionPlanDelete(sort) {
  49. this.collectionPlanList = this.collectionPlanList.filter(d => d.sort !== sort);
  50. }
  51. /**
  52. * 回款计划新增
  53. */
  54. paymentCollectionSort = 0; //回款情况排序
  55. paymentCollectionAdd() {
  56. this.paymentCollectionList = [
  57. ...this.paymentCollectionList,
  58. {
  59. price1: 0,
  60. price2: 0,
  61. price3: 0,
  62. price4: 0,
  63. price5: 0,
  64. sort: this.paymentCollectionSort,
  65. planType: '2',
  66. },
  67. ];
  68. this.paymentCollectionSort++;
  69. }
  70. /**
  71. * 回款删除按钮
  72. */
  73. paymentCollectionDelete(sort) {
  74. this.paymentCollectionList = this.paymentCollectionList.filter(d => d.sort !== sort);
  75. }
  76. /**
  77. * 付款计划新增
  78. */
  79. paymentPlanSort = 0;
  80. paymentPlanAdd() {
  81. this.paymentPlanList = [
  82. ...this.paymentPlanList,
  83. {
  84. price1: 0,
  85. price2: 0,
  86. price3: 0,
  87. price4: 0,
  88. price5: 0,
  89. sort: this.paymentPlanSort,
  90. planType: '3',
  91. },
  92. ];
  93. this.paymentPlanSort++;
  94. }
  95. /**
  96. * 付款计划删除按钮
  97. */
  98. paymentPlanDelete(sort) {
  99. this.paymentPlanList = this.paymentPlanList.filter(d => d.sort !== sort);
  100. }
  101. /**
  102. * 付款情况
  103. */
  104. paymentStatusSort = 0;
  105. paymentStatusAdd() {
  106. this.paymentStatusList = [
  107. ...this.paymentStatusList,
  108. {
  109. price1: 0,
  110. price2: 0,
  111. price3: 0,
  112. price4: 0,
  113. price5: 0,
  114. sort: this.paymentPlanSort,
  115. planType: '3',
  116. },
  117. ];
  118. this.paymentPlanSort++;
  119. }
  120. /**
  121. * 付款情况删除按钮
  122. */
  123. paymentStatusDelete(sort) {
  124. this.paymentStatusList = this.paymentStatusList.filter(d => d.sort !== sort);
  125. }
  126. /**
  127. * 类型触发事件
  128. */
  129. planIdChange(data, type) {
  130. //获取类型名称
  131. this.getPlanName(data);
  132. //如果是回款情况表格中下拉触发
  133. if (type === '2') {
  134. //获取收款计划的金额
  135. this.getCollectionPlanPrice(this.collectionPlanList,data);
  136. }
  137. //如果是付款情况表格中下来触发
  138. if (type === '4') {
  139. //获取付款计划中的金额
  140. this.getCollectionPlanPrice(this.paymentPlanList,data);
  141. }
  142. //回写数据到实施、开发、服务页签的回款信息
  143. this.getRemittanceInformationChange(data);
  144. }
  145. /**
  146. * 获取类型名称
  147. * @param data 计划对象
  148. */
  149. getPlanName(data) {
  150. this.planList.forEach(element => {
  151. if (element.value === data.planId) {
  152. data.planName = element.text;
  153. }
  154. });
  155. }
  156. /**
  157. * 根据回款情况类型获取对应的收款计划金额
  158. * @param list 表格数据
  159. * @param data 表格中的对象
  160. */
  161. getCollectionPlanPrice(list,data) {
  162. list.forEach(element => {
  163. if (data.planId === element.planId) {
  164. data.price1 = element.price1;
  165. data.price2 = element.price2;
  166. data.price3 = element.price3;
  167. data.price4 = element.price4;
  168. data.price5 = element.price5;
  169. }
  170. });
  171. }
  172. /**
  173. * 里程碑选择事件
  174. * @param data
  175. */
  176. mileChange(data) {
  177. //已汇款金额
  178. this.getReceived();
  179. //回写数据到实施、开发、服务页签的回款信息
  180. this.getRemittanceInformationChange(data);
  181. }
  182. /**
  183. * 获取回款情况中的回款金额累加(已汇款金额)
  184. */
  185. getReceived() {
  186. let received = 0;
  187. this.paymentCollectionList.forEach(element => {
  188. if (element.desc1 && !isNaN(Number(element.desc1))) {
  189. received += Number(element.desc1);
  190. }
  191. if (element.desc2 && !isNaN(Number(element.desc2))) {
  192. received += Number(element.desc2);
  193. }
  194. if (element.desc3 && !isNaN(Number(element.desc3))) {
  195. received += Number(element.desc3);
  196. }
  197. if (element.desc4 && !isNaN(Number(element.desc4))) {
  198. received += Number(element.desc4);
  199. }
  200. if (element.desc5 && !isNaN(Number(element.desc5))) {
  201. received += Number(element.desc5);
  202. }
  203. });
  204. this.projectManageArchives.received = received;
  205. }
  206. /**
  207. * 回写数据到实施、开发、服务页签的回款信息
  208. * @param 对象
  209. */
  210. @Output() remittanceInformationChange = new EventEmitter<{}>();
  211. getRemittanceInformationChange(data) {
  212. this.remittanceInformationChange.emit(data);
  213. }
  214. }