123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394 |
- 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++;
- //回款计划新增
- this.paymentCollectionAdd();
- //付款计划新增
- this.paymentPlanAdd();
- //付款计划新增
- this.paymentStatusAdd();
- }
- /**
- * 收款删除按钮
- */
- 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);
- //同步其他三个表格数据
- this.getData();
- //如果是回款情况表格中下拉触发
- // 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;
- }
- /**
- * 里程碑选择事件
- */
- mileIdChange(data){
- //获取里程碑名称
- this.getMileName(data)
- //同步其他表格数据
- this.getData();
- }
- /**
- * 获取里程碑名称
- */
- getMileName(element){
- //判断是否选择里程碑
- if(element.mileId1){
- //循环商务页签中计划表中里程碑下拉数据获取名称
- this.milestoneList.forEach(mile => {
- if(mile.id===element.mileId1){
- element.milestone1=mile.name;
- }
- });
- }else{
- element.milestone1="";
- }
- //判断是否选择里程碑
- if(element.mileId2){
- //循环商务页签中计划表中里程碑下拉数据获取名称
- this.milestoneList.forEach(mile => {
- if(mile.id===element.mileId2){
- element.milestone2=mile.name;
- }
- });
- }else{
- element.milestone2="";
- }
- //判断是否选择里程碑
- if(element.mileId3){
- //循环商务页签中计划表中里程碑下拉数据获取名称
- this.milestoneList.forEach(mile => {
- if(mile.id===element.mileId3){
- element.milestone3=mile.name;
- }
- });
- }else{
- element.milestone3="";
- }
- //判断是否选择里程碑
- if(element.mileId4){
- //循环商务页签中计划表中里程碑下拉数据获取名称
- this.milestoneList.forEach(mile => {
- if(mile.id===element.mileId4){
- element.milestone4=mile.name;
- }
- });
- }else{
- element.milestone4="";
- }
- //判断是否选择里程碑
- if(element.mileId5){
- //循环商务页签中计划表中里程碑下拉数据获取名称
- this.milestoneList.forEach(mile => {
- if(mile.id===element.mileId5){
- element.milestone5=mile.name;
- }
- });
- }else{
- element.milestone5="";
- }
- }
- /**
- * 金额鼠标离开事件
- */
- priceBlur(){
- this.getData();
- }
- /**
- * 描述输入改变事件
- */
- descChange(){
- this.getData();
- }
- //根据计划收款信息表格数据复制到其他三个表格数据
- getData() {
- if (this.collectionPlanList) {
- this.getAddData(this.collectionPlanList);
- }
- }
- /**
- * 根据计划收款信息表格数据复制到其他三个表格数据
- *
- */
- getAddData(dataList) {
- this.paymentCollectionList = [];
- this.paymentCollectionList=[];
- this.paymentPlanList=[];
- this.paymentStatusList=[];
- //循环收款情况
- dataList.forEach(element => {
- //回款表格数据
- let data =
- {
- planId: element.planId, //计划条线id
- planName: element.planName, //计划条线名称
- price1: element.price1, //金额
- mileId1: element.mileId1, //里程碑id
- milestone1: element.milestone1, //里程碑名称
- price2: element.price2, //金额
- mileId2: element.mileId2, //里程碑id
- milestone2: element.milestone2, //里程碑名称
- price3: element.price3, //金额
- mileId3: element.mileId3, //里程碑id
- milestone3: element.milestone3, //里程碑名称
- price4: element.price4, //金额
- mileId4: element.mileId4, //里程碑id
- milestone4: element.milestone4, //里程碑名称
- price5: element.price5, //金额
- mileId5: element.mileId5, //里程碑id
- milestone5: element.milestone5, //里程碑名称
- sort: element.sort,
- planType: '2',
- }
- //回款情况
- let data2=JSON.parse(JSON.stringify(data));
- data2.planType='2';
- //回写数据到实施、开发、服务页签的回款信息
- this.getRemittanceInformationChange(data2);
- this.paymentCollectionList.push(data2);
- //付款计划
- let data3=JSON.parse(JSON.stringify(data))
- data3.planType='3'
- data3.desc1=element.desc1;
- data3.desc2=element.desc2;
- data3.desc3=element.desc3;
- data3.desc4=element.desc4;
- data3.desc5=element.desc5;
- this.paymentPlanList.push(data3);
- //付款情况
- let data4=JSON.parse(JSON.stringify(data))
- data4.planType='4'
- this.paymentStatusList.push(data4);
- });
- console.log(this.paymentCollectionList)
- }
- /**
- * 回写数据到实施、开发、服务页签的回款信息
- * @param 对象
- */
- @Output() remittanceInformationChange = new EventEmitter<{}>();
- getRemittanceInformationChange(data) {
- this.remittanceInformationChange.emit(data);
- }
- }
|