diff --git a/src/client/Elements/Button.jsx b/src/client/Elements/Button.jsx index a840864..17fe9c9 100644 --- a/src/client/Elements/Button.jsx +++ b/src/client/Elements/Button.jsx @@ -1,6 +1,6 @@ import { Button as AntButton } from 'antd'; import { useStatus } from 'client/hooks/useStatus'; -import { Status } from 'core/types/elements'; +import { Status } from 'core/types/statuses'; import React from 'react'; const Button = ({ type, size, name, text, onClick }) => { diff --git a/src/client/Elements/Checkbox.jsx b/src/client/Elements/Checkbox.jsx index a47ae44..e7a13f7 100644 --- a/src/client/Elements/Checkbox.jsx +++ b/src/client/Elements/Checkbox.jsx @@ -2,7 +2,7 @@ import { Checkbox as AntCheckbox } from 'antd'; import { useStatus } from 'client/hooks/useStatus'; import { useStoreValue } from 'client/hooks/useStoreValue'; import { Box } from 'client/UIKit/grid'; -import { Status } from 'core/types/elements'; +import { Status } from 'core/types/statuses'; import { observer } from 'mobx-react'; import React from 'react'; diff --git a/src/client/Elements/Input.jsx b/src/client/Elements/Input.jsx index 29dec06..414674c 100644 --- a/src/client/Elements/Input.jsx +++ b/src/client/Elements/Input.jsx @@ -1,7 +1,7 @@ import { Input as AntInput } from 'antd'; import { useStatus } from 'client/hooks/useStatus'; import { useStoreValue } from 'client/hooks/useStoreValue'; -import { Status } from 'core/types/elements'; +import { Status } from 'core/types/statuses'; import { observer } from 'mobx-react'; import React from 'react'; diff --git a/src/client/Elements/InputNumber.jsx b/src/client/Elements/InputNumber.jsx index 94b27b8..e168344 100644 --- a/src/client/Elements/InputNumber.jsx +++ b/src/client/Elements/InputNumber.jsx @@ -1,7 +1,7 @@ import { InputNumber as AntInputNumber } from 'antd'; import { useStatus } from 'client/hooks/useStatus'; import { useStoreValue } from 'client/hooks/useStoreValue'; -import { Status } from 'core/types/elements'; +import { Status } from 'core/types/statuses'; import { observer } from 'mobx-react'; import React from 'react'; diff --git a/src/client/Elements/Radio.jsx b/src/client/Elements/Radio.jsx index 8859571..56f2257 100644 --- a/src/client/Elements/Radio.jsx +++ b/src/client/Elements/Radio.jsx @@ -2,7 +2,7 @@ import { Radio as AntRadio } from 'antd'; import { useOptions } from 'client/hooks/useOptions'; import { useStatus } from 'client/hooks/useStatus'; import { useStoreValue } from 'client/hooks/useStoreValue'; -import { Status } from 'core/types/elements'; +import { Status } from "core/types/statuses"; import { observer } from 'mobx-react'; import React from 'react'; diff --git a/src/client/Elements/Select.jsx b/src/client/Elements/Select.jsx index c1a506a..49c110d 100644 --- a/src/client/Elements/Select.jsx +++ b/src/client/Elements/Select.jsx @@ -1,7 +1,7 @@ import { Select as AntSelect } from 'antd'; import { useStatus } from 'client/hooks/useStatus'; import { useStoreValue } from 'client/hooks/useStoreValue'; -import { Status } from 'core/types/elements'; +import { Status } from "core/types/statuses"; import { observer } from 'mobx-react'; import React from 'react'; import { useOptions } from 'client/hooks/useOptions'; diff --git a/src/client/Elements/Switch.jsx b/src/client/Elements/Switch.jsx index b2fdd95..7ce91dc 100644 --- a/src/client/Elements/Switch.jsx +++ b/src/client/Elements/Switch.jsx @@ -2,7 +2,7 @@ import { Switch as AntSwitch } from 'antd'; import { useStatus } from 'client/hooks/useStatus'; import { useStoreValue } from 'client/hooks/useStoreValue'; import { Box } from 'client/UIKit/grid'; -import { Status } from 'core/types/elements'; +import { Status } from "core/types/statuses"; import { observer } from 'mobx-react'; import React from 'react'; diff --git a/src/client/Elements/TextArea.jsx b/src/client/Elements/TextArea.jsx index c0ae26d..5fe5cf5 100644 --- a/src/client/Elements/TextArea.jsx +++ b/src/client/Elements/TextArea.jsx @@ -1,7 +1,7 @@ import { Input as AntInput } from 'antd'; import { useStatus } from 'client/hooks/useStatus'; import { useStoreValue } from 'client/hooks/useStoreValue'; -import { Status } from 'core/types/elements'; +import { Status } from "core/types/statuses"; import { observer } from 'mobx-react'; import React from 'react'; diff --git a/src/client/stores/CalculationStore/index.ts b/src/client/stores/CalculationStore/index.ts index bcd79a8..8d23156 100644 --- a/src/client/stores/CalculationStore/index.ts +++ b/src/client/stores/CalculationStore/index.ts @@ -2,7 +2,8 @@ import assignProperties from 'client/tools/assignProps'; import initialOptions from 'core/config/initialOptions'; import initialStatuses from 'core/config/initialStatuses'; import initialValues from 'core/config/initialValues'; -import { Status } from 'core/types/elements'; +import { ElementsNames } from 'core/types/elements'; +import { Status } from 'core/types/statuses'; import { ValuesNames } from 'core/types/values'; import { autorun, observable, reaction, when } from 'mobx'; import CommonStore from '../CommonStore'; @@ -22,14 +23,14 @@ const CalculationStore = observable( getValue(sourceValueName: ValuesNames) { return this.values[sourceValueName]; }, - getStatus(elementName: string) { + getStatus(elementName: ElementsNames) { return this.statuses[elementName]; }, setValue(sourceValueName: ValuesNames, newValue: any) { this.values[sourceValueName] = newValue; }, - setStatus(elementName: string, status: Status) { + setStatus(elementName: ElementsNames, status: Status) { this.statuses[elementName] = status; } }, diff --git a/src/core/config/initialOptions.ts b/src/core/config/initialOptions.ts index 46d92a3..bd04f17 100644 --- a/src/core/config/initialOptions.ts +++ b/src/core/config/initialOptions.ts @@ -1,4 +1,6 @@ -const initialOptions: any = { +import { TElements } from 'core/types/elements'; + +const initialOptions: TElements = { selectChannel: [ { name: 'От агента-ФЛ-сотрудника поставщика', @@ -207,6 +209,7 @@ const initialOptions: any = { value: 100000004, }, ], + selectLeaseObjectUseFor: [ { name: 'Для представительских целей', diff --git a/src/core/config/initialStatuses.ts b/src/core/config/initialStatuses.ts index 0d5f06e..d5e5270 100644 --- a/src/core/config/initialStatuses.ts +++ b/src/core/config/initialStatuses.ts @@ -1,10 +1,6 @@ -import { Status } from '../types/elements'; +import { Status, TStatuses } from '../types/statuses'; -interface IInitialStatuses { - [elementName: string]: Status; -} - -const initialStatuses: IInitialStatuses = { +const initialStatuses: TStatuses = { selectIndAgent: Status.Disabled, selectCalcBroker: Status.Disabled, selectCalcFinDepartment: Status.Disabled, diff --git a/src/core/config/initialValues.ts b/src/core/config/initialValues.ts index be827f3..537aebf 100644 --- a/src/core/config/initialValues.ts +++ b/src/core/config/initialValues.ts @@ -1,5 +1,5 @@ -import { ValuesMap } from 'core/types/values'; -const initialValues: any = { +import { TValues } from 'core/types/values'; +const initialValues: TValues = { recalcWithRevision: false, contactGender: 100000000, leaseObjectPrice: 1000000, diff --git a/src/core/types/elements.ts b/src/core/types/elements.ts index 3aac50d..a8e3b69 100644 --- a/src/core/types/elements.ts +++ b/src/core/types/elements.ts @@ -1,6 +1,138 @@ -export enum Status { - Default, - Disabled, - Hidden, - Readonly, -} +export type ElementsNames = + | 'SelectLead' + | 'SelectOpportunity' + | 'selectQuote' + | 'cbxRecalcWthtRevision' + | 'selectTemplate' + | 'selectChannel' + | 'tbxNewClient' + | 'selectAccount' + | 'tbxINN' + | 'tbxKPP' + | 'selectContactClient' + | 'tbxContact' + | 'radioContactGender' + | 'tbxPhoneNumber' + | 'tbxEmailAddress' + | 'selectSupplier' + | 'selectFinDepartment' + | 'selectAgent' + | 'selectDoubleAgent' + | 'selectBroker' + | 'tbxCommentLead' + | 'btnCreateLead' + | 'selectProduct' + | 'selectClientRisk' + | 'selectClientType' + | 'tbxLeaseObjectPrice' + | 'selectSupplierCurrency' + | 'tbxSupplierDiscountRub' + | 'tbxSupplierDiscountPerc' + | 'selectAddEquipmentCurrency' + | 'tbxAddEquipmentPrice' + | 'radioAddEquipmentPayer' + | 'tbxLeasingPeriod' + | 'tbxFirstPaymentPerc' + | 'tbxFirstPaymentRub' + | 'tbxLastPaymentPerc' + | 'tbxLastPaymentRub' + | 'radioLastPaymentRule' + | 'radioBalanceHolder' + | 'radioGraphType' + | 'tbxParmentsDecreasePercent' + | 'radioSeasonType' + | 'selectHighSeasonStart' + | 'tbxComissionPerc' + | 'tbxComissionRub' + | 'tbxSaleBonus' + | 'tbxIRR_Perc' + | 'tablePaymentGraph' + | 'selectLeaseObjectType' + | 'radioDeliveryTime' + | 'labelLeaseObjectRisk' + | 'labelDepreciationGroup' + | 'tbxLeaseObjectCount' + | 'selectWithTrailer' + | 'cbxLeaseObjectUsed' + | 'tbxMaxMass' + | 'tbxCountSeats' + | 'tbxMaxSpeed' + | 'tbxTonnage' + | 'selectBrand' + | 'selectModel' + | 'selectConfiguration' + | 'tbxLeaseObjectYear' + | 'selectEngineType' + | 'selectLeaseObjectCategory' + | 'tbxLeaseObjectMotorPower' + | 'tbxEngineVolume' + | 'selectLeaseObjectUseFor' + | 'selectDealer' + | 'selectDealerPerson' + | 'selectDealerRewardСondition' + | 'tbxDealerRewardSumm' + | 'selectDealerBroker' + | 'selectDealerBrokerRewardСondition' + | 'tbxDealerBrokerRewardSumm' + | 'selectIndAgent' + | 'SelectIndAgentRewardCondition' + | 'tbxIndAgentRewardSumm' + | 'selectCalcDoubleAgent' + | 'selectCalcDoubleAgentRewardCondition' + | 'tbxCalcDoubleAgentRewardSumm' + | 'selectCalcBroker' + | 'selectCalcBrokerRewardCondition' + | 'tbxCalcBrokerRewardSum' + | 'selectCalcFinDepartment' + | 'selectFinDepartmentRewardCondtion' + | 'tbxFinDepartmentRewardSumm' + | 'selectGPSBrand' + | 'selectGPSModel' + | 'selectRegionRegistration' + | 'selectTownRegistration' + | 'selectInfuranceOPF' + | 'radioInsKaskoType' + | 'tbxInsKaskoPriceLeasePeriod' + | 'cbxInsDecentral' + | 'btnInsCalculation' + | 'selectInsPeriod' + | 'tbxInsFranchise' + | 'tbxInsAddEquipmentPrice' + | 'cbxInsUnlimitDrivers' + | 'tbxInsAgeDrivers' + | 'tbxInsExpDrivers' + | 'tbxINNForCalc' + | 'TableAddProduct' + | 'cbxLastPaymentRedemption' + | 'cbxPriceWithDiscount' + | 'cbxCostIncrease' + | 'cbxInsurance' + | 'cbxAddEquipment' + | 'cbxRegistrationQuote' + | 'cbxTechnicalCardQuote' + | 'cbxNSiB' + | 'tbxQuoteName' + | 'radioQuoteContactGender' + | 'btnCreateKP' + | 'cbxQuoteRedemptionGraph' + | 'selectTarif' + | 'tbxCreditRate' + | 'selectRate' + | 'SelectUserSession' + | 'radioRequirementTelematic' + | 'cbxInsuranceDecentral' + | 'tbxMaxPriceChange' + | 'tbxImporterRewardPerc' + | 'tbxImrovterRewardRub' + | 'cbxDisableChecks' + | 'btnFranschise' + | 'btnDriversApplication' + | 'tbxSystemUser' + | 'tbxBusinessUnit' + | 'tbxLeadNumber' + | 'tbxOpportunityNumber' + | 'radioInsuranceOPF'; + +export type TElements = { + [elementName in ElementsNames]?: any; +}; diff --git a/src/core/types/statuses.ts b/src/core/types/statuses.ts new file mode 100644 index 0000000..8ffeeb9 --- /dev/null +++ b/src/core/types/statuses.ts @@ -0,0 +1,12 @@ +import { ElementsNames } from './elements'; + +export enum Status { + Default, + Disabled, + Hidden, + Readonly, +} + +export type TStatuses = { + [elementName in ElementsNames]?: any; +}; diff --git a/src/core/types/values.ts b/src/core/types/values.ts index e2f2976..b8e9643 100644 --- a/src/core/types/values.ts +++ b/src/core/types/values.ts @@ -1,5 +1,152 @@ -export type ValuesNames = 'one' | 'two' | 'three' | 'price' | 'cbx'; +export type ValuesNames = + | 'lead' + | 'opportunity' + | 'quote' + | 'recalcWithRevision' + | 'template' + | 'channel' + | 'newClient' + | 'account' + | 'INN' + | 'KPP' + | 'contactClient' + | 'contact' + | 'contactGender' + | 'phoneNumber' + | 'emailAddress' + | 'supplier' + | 'finDepartment' + | 'agent' + | 'doubleAgent' + | 'broker' + | 'commentLead' + | 'product' + | 'clientRisk' + | 'clientType' + | 'leaseObjectPrice' + | 'supplierCurrency' + | 'supplierDiscountRub' + | 'supplierDiscountPerc' + | 'addEquipmentCurrency' + | 'addEquipmentPrice' + | 'addEquipmentPayer' + | 'leasingPeriod' + | 'firstPaymentPerc' + | 'firstPaymentRub' + | 'lastPaymentPerc' + | 'lastPaymentRub' + | 'lastPaymentRule' + | 'balanceHolder' + | 'graphType' + | 'parmentsDecreasePercent' + | 'seasonType' + | 'highSeasonStart' + | 'comissionPerc' + | 'comissionRub' + | 'saleBonus' + | 'IRR_Perc' + | 'paymentGraph' + | 'leaseObjectType' + | 'deliveryTime' + | 'leaseObjectRisk' + | 'depreciationGroup' + | 'leaseObjectCount' + | 'withTrailer' + | 'leaseObjectUsed' + | 'maxMass' + | 'countSeats' + | 'maxSpeed' + | 'tonnage' + | 'brand' + | 'model' + | 'configuration' + | 'leaseObjectYear' + | 'engineType' + | 'leaseObjectCategory' + | 'leaseObjectMotorPower' + | 'engineVolume' + | 'leaseObjectUseFor' + | 'dealer' + | 'dealerPerson' + | 'dealerRewardСondition' + | 'dealerRewardSumm' + | 'dealerBroker' + | 'dealerBrokerRewardСondition' + | 'dealerBrokerRewardSumm' + | 'indAgent' + | 'indAgentRewardCondition' + | 'indAgentRewardSumm' + | 'calcDoubleAgent' + | 'calcDoubleAgentRewardCondition' + | 'calcDoubleAgentRewardSumm' + | 'calcBroker' + | 'calcBrokerRewardCondition' + | 'calcBrokerRewardSum' + | 'calcFinDepartment' + | 'finDepartmentRewardCondtion' + | 'finDepartmentRewardSumm' + | 'GPSBrand' + | 'GPSModel' + | 'regionRegistration' + | 'townRegistration' + | 'infuranceOPF' + | 'insKaskoType' + | 'insKaskoPriceLeasePeriod' + | 'insDecentral' + | 'insPeriod' + | 'insFranchise' + | 'insAddEquipmentPrice' + | 'insUnlimitDrivers' + | 'insAgeDrivers' + | 'insExpDrivers' + | 'INNForCalc' + | 'lastPaymentRedemption' + | 'priceWithDiscount' + | 'costIncrease' + | 'insurance' + | 'addEquipment' + | 'registrationQuote' + | 'technicalCardQuote' + | 'NSIB' + | 'quoteName' + | 'quoteContactGender' + | 'quoteRedemptionGraph' + | 'Tarif' + | 'creditRate' + | 'rate' + | 'userSession' + | 'requirementTelematic' + | 'insuranceDecentral' + | 'maxPriceChange' + | 'importerRewardPerc' + | 'importerRewardRub' + | 'disableChecks' + | 'OSAGO' + | 'KASKO' + | 'DGO' + | 'NS' + | 'InsAddEquipment' + | 'insuranceCompanyOSAGO' + | 'insuranceCompanyKASKO' + | 'insuranceCompanyDGO' + | 'insuranceCompanyNS' + | 'insuranceCompanyAddEquipment' + | 'insuredOSAGO' + | 'insuredKASKO' + | 'insuredDGO' + | 'insuredNS' + | 'insuredAddEquipment' + | 'costOSAGO' + | 'costKASKO' + | 'costDGO' + | 'costNS' + | 'costAddEquipment' + | 'insuranceTermOSAGO' + | 'insuranceTermKASKO' + | 'insuranceTermDGO' + | 'insuranceTermNS' + | 'insuranceTermAddEquipment'; -export type ValuesMap = { +export type TValues = { [valueName in ValuesNames]?: any; };