import { Component, OnInit, Output, EventEmitter } from '@angular/core'; import { NzModalRef, NzMessageService } from 'ng-zorro-antd'; import { _HttpClient } from '@delon/theme'; import { ProjectManageArchives } from 'app/entity/project-manage-archives/project-manage-archives'; import { BaseArchivesMilestoneService } from 'app/services/basedata/base-archives-milestone.service'; import { BaseArchivesMilestone } from 'app/entity/basedata/base-archives-milestone'; @Component({ selector: 'app-project-manage-archives-add-business-affairs', templateUrl: './business-affairs.component.html', }) export class ProjectManageArchivesAddBusinessAffairsComponent implements OnInit { constructor( private baseArchivesMilestoneService:BaseArchivesMilestoneService ) {} ngOnInit(): void { } projectManageArchives: ProjectManageArchives = {}; //项目档案实体对象 collectionPlanList = []; //收款计划数据 paymentCollectionList = []; //回款情况数据 paymentPlanList = []; //付款计划 paymentStatusList = []; //付款情况 planList :any= []; //计划下来集合数据 formatterDollar = (value: number) => { if(value){ return `$ ${value}`; }else{ return `$ `; } }; parserDollar = (value: string) => value.replace('$ ', ''); milestoneList :any= []; //里程碑集合数据 /** * 收款计划新增 */ collectionPlanSort = 0; //收款计划排序 collectionPlanAdd() { this.collectionPlanList = [ ...this.collectionPlanList, { price1: 0, price2: 0, price3: 0, price4: 0, price5: 0, sort: this.collectionPlanSort, planType: '1', }, ]; this.collectionPlanSort++; } /** * 收款删除按钮 */ collectionPlanDelete(sort) { this.collectionPlanList = this.collectionPlanList.filter(d => d.sort !== sort); } /** * 回款计划新增 */ paymentCollectionSort = 0; //回款情况排序 paymentCollectionAdd() { this.paymentCollectionList = [ ...this.paymentCollectionList, { price1: 0, price2: 0, price3: 0, price4: 0, price5: 0, sort: this.paymentCollectionSort, planType: '2', }, ]; this.paymentCollectionSort++; } /** * 回款删除按钮 */ paymentCollectionDelete(sort) { this.paymentCollectionList = this.paymentCollectionList.filter(d => d.sort !== sort); } /** * 付款计划新增 */ paymentPlanSort = 0; paymentPlanAdd() { this.paymentPlanList = [ ...this.paymentPlanList, { price1: 0, price2: 0, price3: 0, price4: 0, price5: 0, sort: this.paymentPlanSort, planType: '3', }, ]; this.paymentPlanSort++; } /** * 付款计划删除按钮 */ paymentPlanDelete(sort) { this.paymentPlanList = this.paymentPlanList.filter(d => d.sort !== sort); } /** * 付款情况 */ paymentStatusSort = 0; paymentStatusAdd() { this.paymentStatusList = [ ...this.paymentStatusList, { price1: 0, price2: 0, price3: 0, price4: 0, price5: 0, sort: this.paymentPlanSort, planType: '4', }, ]; this.paymentPlanSort++; } /** * 付款情况删除按钮 */ paymentStatusDelete(sort) { this.paymentStatusList = this.paymentStatusList.filter(d => d.sort !== sort); } /** * 类型触发事件 */ planIdChange(data, type) { //获取类型名称 this.getPlanName(data); //如果是回款情况表格中下拉触发 if (type === '2') { //获取收款计划的金额 this.getCollectionPlanPrice(this.collectionPlanList,data); //回写数据到实施、开发、服务页签的回款信息 this.getRemittanceInformationChange(data); } //如果是付款情况表格中下来触发 if (type === '4') { //获取付款计划中的金额 this.getCollectionPlanPrice(this.paymentPlanList,data); } } /** * 获取类型名称 * @param data 计划对象 */ getPlanName(data) { this.planList.forEach(element => { if (element.id === data.planId) { data.planName = element.name; } }); } /** * 根据回款情况类型获取对应的收款计划金额 * @param list 表格数据 * @param data 表格中的对象 */ getCollectionPlanPrice(list,data) { list.forEach(element => { if (data.planId === element.planId) { data.price1 = element.price1; data.price2 = element.price2; data.price3 = element.price3; data.price4 = element.price4; data.price5 = element.price5; } }); } /** * 里程碑选择事件 * @param data */ mileChange(data) { //已汇款金额 this.getReceived(); //回写数据到实施、开发、服务页签的回款信息 this.getRemittanceInformationChange(data); } /** * 获取回款情况中的回款金额累加(已汇款金额) */ getReceived() { let received = 0; this.paymentCollectionList.forEach(element => { if (element.desc1 && !isNaN(Number(element.desc1))) { received += Number(element.desc1); } if (element.desc2 && !isNaN(Number(element.desc2))) { received += Number(element.desc2); } if (element.desc3 && !isNaN(Number(element.desc3))) { received += Number(element.desc3); } if (element.desc4 && !isNaN(Number(element.desc4))) { received += Number(element.desc4); } if (element.desc5 && !isNaN(Number(element.desc5))) { received += Number(element.desc5); } }); this.projectManageArchives.received = received; } /** * 回写数据到实施、开发、服务页签的回款信息 * @param 对象 */ @Output() remittanceInformationChange = new EventEmitter<{}>(); getRemittanceInformationChange(data) { this.remittanceInformationChange.emit(data); } }