From 0d42d8150284de5cf3ac1806f725bd7318f4996e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=BB=D0=B0=D0=B4=D0=B8=D1=81=D0=BB=D0=B0=D0=B2=20?= =?UTF-8?q?=D0=A7=D0=B8=D0=BA=D0=B0=D0=BB=D0=BA=D0=B8=D0=BD?= Date: Fri, 25 Sep 2020 11:50:39 +0300 Subject: [PATCH] compute lead & opportunity names --- .../Calculation/Results/resultsList.ts | 4 +-- .../CalculationStore/Effects/computed.js | 28 +++++++++++++++---- src/core/types/Calculation/components.ts | 3 +- src/core/types/values.ts | 2 ++ 4 files changed, 29 insertions(+), 8 deletions(-) diff --git a/src/client/Containers/Calculation/Results/resultsList.ts b/src/client/Containers/Calculation/Results/resultsList.ts index 8262ede..6063d85 100644 --- a/src/client/Containers/Calculation/Results/resultsList.ts +++ b/src/client/Containers/Calculation/Results/resultsList.ts @@ -13,7 +13,7 @@ const resultsList: IGroup[] = [ Component: Label, props: { name: 'lblLead', - valueName: 'lead', + computedValue: 'leadName', }, }, { @@ -21,7 +21,7 @@ const resultsList: IGroup[] = [ Component: Label, props: { name: 'lblOpportunity', - valueName: 'opportunity', + computedValue: 'opportunityName', }, }, ], diff --git a/src/client/stores/CalculationStore/Effects/computed.js b/src/client/stores/CalculationStore/Effects/computed.js index ec4fc4f..d7b63b1 100644 --- a/src/client/stores/CalculationStore/Effects/computed.js +++ b/src/client/stores/CalculationStore/Effects/computed.js @@ -1,9 +1,27 @@ const computedEffects = { - total() { - const one = parseFloat(this.values.one || 0); - const price = parseFloat(this.values.price || 0); - return one + price; - } + leadName() { + const leadId = this.values.lead; + if (this.options.selectLead && this.options.selectLead.length) { + const lead = this.options.selectLead?.find(x => x.leadid === leadId); + if (lead) { + return lead.name; + } + } + }, + opportunityName() { + const opportunityId = this.values.opportunity; + if ( + this.options.selectOpportunity && + this.options.selectOpportunity.length > 0 + ) { + const opportunity = this.options.selectOpportunity?.find( + x => x.opportunityid === opportunityId, + ); + if (opportunity) { + return opportunity.name; + } + } + }, }; export default computedEffects; diff --git a/src/core/types/Calculation/components.ts b/src/core/types/Calculation/components.ts index 5f96194..eda04fd 100644 --- a/src/core/types/Calculation/components.ts +++ b/src/core/types/Calculation/components.ts @@ -1,5 +1,5 @@ import { ElementsNames } from 'core/types/elements'; -import { ValuesNames } from 'core/types/values'; +import { ComputedValuesNames, ValuesNames } from 'core/types/values'; interface IElement { isTable?: boolean; @@ -8,6 +8,7 @@ interface IElement { props: { name: ElementsNames; valueName?: ValuesNames; + computedValue?: ComputedValuesNames; [key: string]: any; }; } diff --git a/src/core/types/values.ts b/src/core/types/values.ts index 9bae135..edc6261 100644 --- a/src/core/types/values.ts +++ b/src/core/types/values.ts @@ -147,6 +147,8 @@ export type ValuesNames = | 'insuranceTermNS' | 'insuranceTermAddEquipment'; +export type ComputedValuesNames = 'leadName' | 'opportunityName'; + export type TValues = { [valueName in ValuesNames]?: T; };