From 37b9add53301754da30ef68c1a91ab06eaea617a Mon Sep 17 00:00:00 2001 From: Chika Date: Tue, 14 Jun 2022 14:04:15 +0300 Subject: [PATCH] Calculation/Form: add AddProduct tab --- .../Calculation/Form/AddProduct/config.ts | 32 +++++++++++++++++++ .../Calculation/Form/AddProduct/index.jsx | 12 +++++++ Components/Calculation/Form/index.jsx | 3 +- .../Calculation/config/elements-builders.ts | 2 +- .../Calculation/config/elements-components.ts | 2 +- .../Calculation/config/elements-props.ts | 5 +++ .../Calculation/config/elements-titles.ts | 2 +- Components/Calculation/config/map/values.ts | 2 +- .../Calculation/types/elements-props.ts | 2 +- config/default-options.ts | 2 +- 10 files changed, 57 insertions(+), 7 deletions(-) create mode 100644 Components/Calculation/Form/AddProduct/config.ts create mode 100644 Components/Calculation/Form/AddProduct/index.jsx diff --git a/Components/Calculation/Form/AddProduct/config.ts b/Components/Calculation/Form/AddProduct/config.ts new file mode 100644 index 0000000..78a6793 --- /dev/null +++ b/Components/Calculation/Form/AddProduct/config.ts @@ -0,0 +1,32 @@ +/* eslint-disable object-curly-newline */ +import type { FormTabRows } from '../../lib/render-rows'; + +export const id = 'add-product'; +export const title = 'Доп. продукты'; + +export const rows: FormTabRows = [ + { + title: 'Регистрация', + }, + [['radioObjectRegistration', 'radioTypePTS']], + [['selectRegionRegistration', 'selectTownRegistration', 'selectObjectRegionRegistration']], + [['tbxLeaseObjectYear', 'tbxLeaseObjectMotorPower', 'tbxVehicleTaxInYear']], + [['selectObjectCategoryTax', 'selectObjectTypeTax', 'tbxVehicleTaxInLeasingPeriod']], + [ + ['selectRegistration'], + { + gridTemplateColumns: '1fr', + }, + ], + [ + ['labelRegistrationDescription'], + { + gridTemplateColumns: '1fr', + }, + ], + { + title: 'Доп. продукты', + }, + [['selectTechnicalCard', 'selectInsNSIB'], { gridTemplateColumns: '1fr 2fr' }], + [['selectRequirementTelematic', 'selectTracker', 'selectTelematic']], +]; diff --git a/Components/Calculation/Form/AddProduct/index.jsx b/Components/Calculation/Form/AddProduct/index.jsx new file mode 100644 index 0000000..39c72b2 --- /dev/null +++ b/Components/Calculation/Form/AddProduct/index.jsx @@ -0,0 +1,12 @@ +import renderFormRows from 'Components/Calculation/lib/render-rows'; +import { id, rows, title } from './config'; + +function Insurance() { + return renderFormRows(rows); +} + +export default { + id, + title, + Component: Insurance, +}; diff --git a/Components/Calculation/Form/index.jsx b/Components/Calculation/Form/index.jsx index d8a67cf..993104e 100644 --- a/Components/Calculation/Form/index.jsx +++ b/Components/Calculation/Form/index.jsx @@ -1,12 +1,13 @@ import Background from 'Elements/layout/Background'; import { Tabs, Wrapper } from 'Elements/layout/Tabs'; +import AddProduct from './AddProduct'; import Insurance from './Insurance'; import Leasing from './Leasing'; import LeasingObject from './LeasingObject'; import Payments from './Payments'; import SupplierAgent from './SupplierAgent'; -const formTabs = [Leasing, Payments, LeasingObject, SupplierAgent, Insurance]; +const formTabs = [Leasing, Payments, LeasingObject, SupplierAgent, Insurance, AddProduct]; function Form() { return ( diff --git a/Components/Calculation/config/elements-builders.ts b/Components/Calculation/config/elements-builders.ts index 3be5d54..9e60d06 100644 --- a/Components/Calculation/config/elements-builders.ts +++ b/Components/Calculation/config/elements-builders.ts @@ -123,7 +123,7 @@ const builders: Record = { radioDeliveryTime: buildOptions, radioInsKaskoType: buildOptions, radioInfuranceOPF: buildOptions, - radioRequirementTelematic: buildOptions, + selectRequirementTelematic: buildOptions, radioQuoteContactGender: buildOptions, radioCalcType: buildOptions, radioObjectRegistration: buildOptions, diff --git a/Components/Calculation/config/elements-components.ts b/Components/Calculation/config/elements-components.ts index ad37b88..5bea2b8 100644 --- a/Components/Calculation/config/elements-components.ts +++ b/Components/Calculation/config/elements-components.ts @@ -91,7 +91,7 @@ const components: Record< radioInfuranceOPF: Radio, selectRegistration: Select, selectInsNSIB: Select, - radioRequirementTelematic: Radio, + selectRequirementTelematic: Select, selectTracker: Select, selectTelematic: Select, selectTechnicalCard: Select, diff --git a/Components/Calculation/config/elements-props.ts b/Components/Calculation/config/elements-props.ts index 7185933..273a9ac 100644 --- a/Components/Calculation/config/elements-props.ts +++ b/Components/Calculation/config/elements-props.ts @@ -355,6 +355,11 @@ const props: Partial = { direction: 'vertical', }, }, + selectRequirementTelematic: { + spaceProps: { + direction: 'vertical', + }, + }, }; const moneyResultElementsProps = Object.fromEntries( diff --git a/Components/Calculation/config/elements-titles.ts b/Components/Calculation/config/elements-titles.ts index f203578..48e8b83 100644 --- a/Components/Calculation/config/elements-titles.ts +++ b/Components/Calculation/config/elements-titles.ts @@ -100,7 +100,7 @@ const titles: Record selectRegistration: 'Регистрация', selectInsNSIB: 'НСИБ', selectTechnicalCard: 'Карта техпомощи', - radioRequirementTelematic: 'Программа средства контроля', + selectRequirementTelematic: 'Программа средства контроля', selectTelematic: 'Телематика ', selectTracker: 'Маяк', tbxMileage: 'Пробег, км', diff --git a/Components/Calculation/config/map/values.ts b/Components/Calculation/config/map/values.ts index f158493..d7c7a2d 100644 --- a/Components/Calculation/config/map/values.ts +++ b/Components/Calculation/config/map/values.ts @@ -106,7 +106,7 @@ const elementsToValues = wrapElementsMap({ selectRegistration: 'registration', selectInsNSIB: 'insNSIB', selectTechnicalCard: 'technicalCard', - radioRequirementTelematic: 'requirementTelematic', + selectRequirementTelematic: 'requirementTelematic', selectTelematic: 'telematic', selectTracker: 'tracker', tbxMileage: 'mileage', diff --git a/Components/Calculation/types/elements-props.ts b/Components/Calculation/types/elements-props.ts index 9f7b758..953e68a 100644 --- a/Components/Calculation/types/elements-props.ts +++ b/Components/Calculation/types/elements-props.ts @@ -85,7 +85,7 @@ export interface ElementsProps { radioInfuranceOPF: RadioProps; selectRegistration: SelectProps; selectInsNSIB: SelectProps; - radioRequirementTelematic: RadioProps; + selectRequirementTelematic: SelectProps; selectTracker: SelectProps; selectTelematic: SelectProps; selectTechnicalCard: SelectProps; diff --git a/config/default-options.ts b/config/default-options.ts index e1dd706..c4a5a9d 100644 --- a/config/default-options.ts +++ b/config/default-options.ts @@ -273,7 +273,7 @@ const defaultOptions: Partial = { }, ], - radioRequirementTelematic: [ + selectRequirementTelematic: [ { label: 'Не требуется', value: 100_000_004,