diff --git a/src/client/Containers/Calculation/Sections/index.jsx b/src/client/Containers/Calculation/Sections/index.jsx index 1649eed..45cce3f 100644 --- a/src/client/Containers/Calculation/Sections/index.jsx +++ b/src/client/Containers/Calculation/Sections/index.jsx @@ -1,23 +1,12 @@ -import { Tabs } from 'antd'; +import { Divider as AntDivider, Tabs } from 'antd'; import Background from 'client/Elements/Background'; -import Divider from 'client/Elements/Divider'; -import { Box, Flex } from 'client/UIKit/grid'; -import mq from 'client/UIKit/mq'; +import { SecondaryText } from 'client/Elements/Text'; +import { Flex } from 'client/UIKit/grid'; import React from 'react'; import styled from 'styled-components'; -import SectionsList from './list'; +import sectionsList from './list'; -const { TabPane } = Tabs; - -const InputWrapper = styled(Box)` - width: 100%; - ${mq.desktop` - flex: ${props => (props.size === 'min' ? '1 0' : '2 0 23%')}; - width:${props => props.size === 'max' && '100%'}; - `} - margin: 8px 8px; -`; -const Title = styled.h5` +const ElementTitle = styled.h5` color: rgba(0, 0, 0, 0.75); font-weight: 600; font-size: 14px; @@ -25,43 +14,72 @@ const Title = styled.h5` margin: 0 8px 3px 0; `; +const BreakLine = styled.div` + width: 100%; +`; + +const renderElements = ({ elements }) => { + return elements.map((element, ie) => { + const { title: elementTitle, Component, props: elementProps } = element; + return ( + + {elementTitle} + + + ); + }); +}; + +const renderBlocks = ({ blocks }) => { + return blocks.map((block, ib) => { + const { elements, title: blockTitle, layout } = block; + const breakLine = layout ? layout.breakLine : true; + + return ( + <> + {elements.length <= 1 && breakLine && } + + {blockTitle && {blockTitle}} + {renderElements({ elements })} + + + ); + }); +}; + +const renderGroups = ({ groups }) => { + return groups.map((group, ig) => { + const { title: blocksTitle, blocks } = group; + return ( + + {blocksTitle && ( + {blocksTitle} + )} + + {renderBlocks({ blocks })} + + + ); + }); +}; + const Sections = props => ( - {SectionsList.map(({ title, elements }, i) => ( - - - {elements.map( - ({ title, Component, props, layout, divider }, ie) => { - if (divider) { - return ; - } - return ( - - - {title} - - - - ); - }, - )} - - - ))} + {sectionsList.map((section, is) => { + const { title: tabTitle, groups } = section; + return ( + + {renderGroups({ groups })} + + ); + })} ); diff --git a/src/client/Containers/Calculation/Sections/list.js b/src/client/Containers/Calculation/Sections/list.js index 746a4a6..8c39426 100644 --- a/src/client/Containers/Calculation/Sections/list.js +++ b/src/client/Containers/Calculation/Sections/list.js @@ -11,1643 +11,1594 @@ import TextArea from 'client/Elements/TextArea'; export default [ { title: 'Интерес/ЛС', - elements: [ + groups: [ { - divider: { title: 'Поиск интереса в CRM' }, + title: 'Поиск интереса в CRM', + blocks: [ + { + // blockTitle: '', + elements: [ + //TODO Custom search + { + title: 'Выбор Интереса', + Component: Select, + props: { + name: 'selectLead', + valueName: 'lead', + showSearch: true, + }, + }, + //TODO Custom search + { + title: 'ЛС', + Component: Select, + props: { + name: 'selectOpportunity', + valueName: 'opportunity', + showSearch: true, + }, + }, + //TODO Custom search + { + title: 'Выбор Предложения', + Component: Select, + props: { + name: 'selectQuote', + valueName: 'quote', + showSearch: true, + }, + }, + { + title: 'Пересчет без пересмотра', + Component: Switch, + props: { + name: 'cbxRecalcWithRevision', + valueName: 'recalcWithRevision', + }, + layout: { + size: 'min', + flexDirection: 'row', + }, + }, + ], + }, + ], }, - //TODO Custom search { - title: 'Выбор Интереса', - Component: Select, - props: { - name: 'selectLead', - valueName: 'lead', - showSearch: true, - }, - }, + title: 'Создание нового интереса в CRM', + blocks: [ + { + elements: [ + { + title: 'Канал привлечения', + Component: Select, + props: { + name: 'selectChannel', + valueName: 'channel', + showSearch: true, + }, + }, + { + title: 'Новый контрагент', + Component: Input, + props: { + name: 'tbxNewClient', + valueName: 'newClient', + }, + }, + { + title: 'Существующий контрагент', + Component: Select, + props: { + name: 'selectAccount', + valueName: 'account', + showSearch: true, + }, + }, + { + title: 'ИНН', + Component: Input, + props: { + // TODO regular min: 10, max: 12 + name: 'tbxINN', + valueName: 'INN', + }, + }, + { + title: 'КПП', + Component: Input, + props: { + // TODO regular min: 9, max: 9 + name: 'tbxKPP', + valueName: 'KPP', + }, + }, + ], + }, + { + elements: [ + { + title: 'Контактное лицо контрагента', + Component: Select, + props: { + name: 'selectContactClient', + valueName: 'contactClient', + showSearch: true, + }, + }, + { + title: 'Контактное лицо', + Component: Input, + props: { + name: 'tbxContact', + valueName: 'contact', + }, + }, + { + title: 'Пол контактного лица', + Component: Radio, + props: { + name: 'radioContactGender', + valueName: 'contactGender', + style: 'button', + }, + }, - //TODO Custom search - { - title: 'ЛС', - Component: Select, - props: { - name: 'selectOpportunity', - valueName: 'opportunity', - showSearch: true, - }, - }, + { + title: 'Телефон', + Component: Input, + props: { + type: 'tel', + name: 'tbxPhoneNumber', + valueName: 'phoneNumber', + pattern: undefined, + //TODO: mask + 7(999) 999 99 99 + }, + }, + { + title: 'E-mail', + Component: Input, + props: { + type: 'email', + name: 'tbxEmailAddress', + valueName: 'emailAddress', + pattern: undefined, + //TODO check email valid + }, + }, + ], + }, - /** */ - { - divider: { empty: true }, - }, - /** */ + { + elements: [ + { + title: 'Поставщик', + Component: Select, + props: { + name: 'selectSupplier', + valueName: 'supplier', + showSearch: true, + }, + }, + { + title: 'Финотдел', + Component: Select, + props: { + name: 'selectFinDepartment', + valueName: 'finDepartment', + showSearch: false, + }, + }, + { + title: 'Брокер', + Component: Select, + props: { + name: 'selectBroker', + valueName: 'broker', + showSearch: false, + }, + }, - //TODO Custom search - { - title: 'Выбор Предложения', - Component: Select, - props: { - name: 'selectQuote', - valueName: 'quote', - showSearch: true, - }, - }, + { + title: 'Агент', + Component: Select, + props: { + name: 'selectAgent', + valueName: 'agent', + showSearch: true, + }, + }, + { + title: 'Двойной агент', + Component: Select, + props: { + name: 'selectDoubleAgent', + valueName: 'doubleAgent', + showSearch: true, + }, + }, + ], + }, - /** */ - { - divider: { empty: true }, - }, - /** */ + { + elements: [ + { + title: 'Комментарий к интересу', + Component: TextArea, + props: { + name: 'tbxCommentLead', + valueName: 'commentLead', + }, + }, + ], + layout: { + breakLine: false, + }, + }, - { - title: 'Пересчет без пересмотра', - Component: Switch, - props: { - name: 'cbxRecalcWthtRevision', - valueName: 'recalcWthtRevision', - }, - layout: { - size: 'min', - flexDirection: 'row', - }, - }, - // { - // title: 'Выбор шаблона', - // Component: Select, - // props: { - // name: 'selectTemplate', - // valueName: 'template', - // }, - // }, - - /** */ - { - divider: { title: 'Создание нового интереса в CRM' }, - }, - /** */ - - { - title: 'Канал привлечения', - Component: Select, - props: { - name: 'selectChannel', - valueName: 'channel', - showSearch: true, - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - title: 'Новый контрагент', - Component: Input, - props: { - name: 'tbxNewClient', - valueName: 'newClient', - }, - }, - { - title: 'Существующий контрагент', - Component: Select, - props: { - name: 'selectAccount', - valueName: 'account', - showSearch: true, - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - title: 'ИНН', - Component: Input, - props: { - // TODO regular min: 10, max: 12 - name: 'tbxINN', - valueName: 'INN', - }, - }, - { - title: 'КПП', - Component: Input, - props: { - // TODO regular min: 9, max: 9 - name: 'tbxKPP', - valueName: 'KPP', - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - title: 'Контактное лицо контрагента', - Component: Select, - props: { - name: 'selectContactClient', - valueName: 'contactClient', - showSearch: true, - }, - }, - { - title: 'Контактное лицо', - Component: Input, - props: { - name: 'tbxContact', - valueName: 'contact', - }, - }, - { - title: 'Пол контактного лица', - Component: Radio, - props: { - name: 'radioContactGender', - valueName: 'contactGender', - style: 'button', - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - title: 'Телефон', - Component: Input, - props: { - type: 'tel', - name: 'tbxPhoneNumber', - valueName: 'phoneNumber', - pattern: undefined, - //TODO: mask + 7(999) 999 99 99 - }, - }, - { - title: 'E-mail', - Component: Input, - props: { - type: 'email', - name: 'tbxEmailAddress', - valueName: 'emailAddress', - pattern: undefined, - //TODO check email valid - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - title: 'Поставщик', - Component: Select, - props: { - name: 'selectSupplier', - valueName: 'supplier', - showSearch: true, - }, - }, - { - title: 'Финотдел', - Component: Select, - props: { - name: 'selectFinDepartment', - valueName: 'finDepartment', - showSearch: false, - }, - }, - { - title: 'Брокер', - Component: Select, - props: { - name: 'selectBroker', - valueName: 'broker', - showSearch: false, - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - title: 'Агент', - Component: Select, - props: { - name: 'selectAgent', - valueName: 'agent', - showSearch: true, - }, - }, - { - title: 'Двойной агент', - Component: Select, - props: { - name: 'selectDoubleAgent', - valueName: 'doubleAgent', - showSearch: true, - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - title: 'Комментарий к интересу', - Component: TextArea, - props: { - name: 'tbxCommentLead', - valueName: 'commentLead', - }, - layout: { - size: 'max', - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - Component: Button, - props: { - type: 'primary', - size: 'large', - name: 'btnCreateLead', - text: 'Создать интерес', - onClick: undefined, - }, - }, - ], - }, - { - title: 'Лизинг', - elements: [ - { - title: 'Продукт', - Component: Select, - props: { - name: 'selectProduct', - valueName: 'product', - }, - }, - { - title: 'Риск клиента', - Component: Select, - props: { - name: 'selectClientRisk', - valueName: 'clientRisk', - }, - }, - { - title: 'Тип клиента', - Component: Select, - props: { - name: 'selectClientType', - valueName: 'clientType', - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - // TODO Input x Addon - { - title: 'Валюта поставщика', - Component: Select, - props: { - name: 'selectSupplierCurrency', - valueName: 'supplierCurrency', - }, - }, - { - title: 'Стоимость предмета лизинга', - Component: InputNumber, - props: { - min: '10000', - max: '1000000000', - step: '10000.00', - name: 'tbxLeaseObjectPrice', - valueName: 'leaseObjectPrice', - }, - }, - // TODO formatter + rub, parser - { - title: 'Скидка от поставщика, рубли', - Component: InputNumber, - props: { - min: '0', - max: '1000000000', - step: '10000.00', - name: 'tbxSupplierDiscountRub', - valueName: 'supplierDiscountRub', - }, - }, - - // TODO formatter + %, parser - { - title: 'Скидка от поставщика, %', - Component: InputNumber, - props: { - min: '0', - max: '100', - name: 'tbxSupplierDiscountPerc', - valueName: 'supplierDiscountPerc', - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - // TODO Input x Addon - { - title: 'Валюта доп.оборудования', - Component: Select, - props: { - name: 'selectAddEquipmentCurrency', - valueName: 'addEquipmentCurrency', - }, - }, - { - title: 'Стоимость доп.оборудования', - Component: InputNumber, - props: { - min: '0', - max: '1000000000', - step: '10000.00', - name: 'tbxAddEquipmentPrice', - valueName: 'addEquipmentPrice', - }, - }, - { - title: 'Плательщик доп.оборудования', - Component: Radio, - props: { - name: 'radioAddEquipmentPayer', - valueName: 'addEquipmentPayer', - withSearch: false, - style: 'button', - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - title: 'Первый платеж, %', - Component: InputNumber, - props: { - min: '0', - max: '100', - name: 'tbxFirstPaymentPerc', - valueName: 'firstPaymentPerc', - }, - }, - { - title: 'Первый платеж, руб.', - Component: InputNumber, - props: { - min: '0', - max: '1000000000', - step: '10000.00', - name: 'tbxFirstPaymentRub', - valueName: 'firstPaymentRub', - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - title: 'Последний платеж считается от', - Component: Radio, - props: { - name: 'radioLastPaymentRule', - valueName: 'lastPaymentRule', - style: 'button', - }, - }, - { - title: 'Последний платеж, %', - Component: InputNumber, - props: { - min: '0', - max: '100', - name: 'tbxLastPaymentPerc', - valueName: 'lastPaymentPerc', - }, - }, - { - title: 'Последний платеж, руб.', - Component: InputNumber, - props: { - min: '0', - max: '1000000000', - step: '10000.00', - name: 'tbxLastPaymentRub', - valueName: 'lastPaymentRub', - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - title: 'Срок лизинга, мес', - Component: InputNumber, - props: { - min: '7', - max: '60', - name: 'tbxLeasingPeriod', - valueName: 'leasingPeriod', - }, - }, - { - title: 'Балансодержатель', - Component: Radio, - props: { - name: 'radioBalanceHolder', - valueName: 'balanceHolder', - withSearch: false, - style: 'button', - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - title: 'Вид графика', - Component: Radio, - props: { - name: 'radioGraphType', - valueName: 'graphType', - withSearch: false, - }, - }, - - // TODO: formatter, parser: % - { - title: 'Процент убывания платежей', - Component: InputNumber, - props: { - min: '50', - max: '99', - name: 'tbxParmentsDecreasePercent', - valueName: 'parmentsDecreasePercent', - }, - }, - { - title: 'Тип сезонности', - Component: Radio, - props: { - name: 'radioSeasonType', - valueName: 'seasonType', - withSearch: false, - style: 'button', - }, - }, - { - title: 'С какого платежа начинается высокий сезон', - Component: Select, - props: { - name: 'selectHighSeasonStart', - valueName: 'highSeasonStart', - withSearch: false, - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - title: 'Комиссия, %', - Component: InputNumber, - props: { - min: '0', - max: '100', - name: 'tbxComissionPerc', - valueName: 'comissionPerc', - }, - }, - { - title: 'Комиссия, руб.', - Component: InputNumber, - props: { - min: '0', - max: '1000000000', - step: '10000.00', - name: 'tbxComissionRub', - valueName: 'comissionRub', - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - title: 'IRR, %', - Component: InputNumber, - props: { - min: '0.0000', - max: '100.0000', - step: '0.0001', - name: 'tbxIRR_Perc', - valueName: 'IRR_Perc', - }, - }, - { - title: 'Размер бонуса МПЛ', - Component: InputNumber, - props: { - min: '0.00', - max: '100.00', - step: '1.00', - name: 'tbxSaleBonus', - valueName: 'saleBonus', - }, - }, - // { - // title: 'Таблица графика платежей', - // Component: Table, - // props: { - // name: 'tablePaymentGraph', - // valueName: 'paymentGraph', - // }, - // }, - ], - }, - { - title: 'ПЛ', - elements: [ - { - title: 'Тип предмета лизинга', - Component: Select, - props: { - name: 'selectLeaseObjectType', - valueName: 'leaseObjectType', - showSearch: true, - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - title: 'Марка', - Component: Select, - props: { - name: 'selectBrand', - valueName: 'brand', - showSearch: true, - }, - }, - { - title: 'Модель', - Component: Select, - props: { - name: 'selectModel', - valueName: 'model', - showSearch: true, - }, - }, - { - title: 'Комплектация', - Component: Select, - props: { - name: 'selectConfiguration', - valueName: 'configuration', - showSearch: true, - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - // TODO: Convert to Text - { - title: 'Риск ПЛ', - Component: Label, - props: { - name: 'labelLeaseObjectRisk', - valueName: 'leaseObjectRisk', - }, - }, - - // TODO: Convert to Text - { - title: 'Группа обесценения', - Component: Label, - props: { - name: 'labelDepreciationGroup', - valueName: 'depreciationGroup', - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - title: 'ПЛ БУ', - Component: Checkbox, - props: { - name: 'cbxLeaseObjectUsed', - valueName: 'leaseObjectUsed', - }, - layout: { - size: 'min', - flexDirection: 'row', - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - title: 'Кол-во ПЛ в расчете', - Component: InputNumber, - props: { - min: '1', - max: '1000', - name: 'tbxLeaseObjectCount', - valueName: 'leaseObjectCount', - }, - }, - - { - title: 'Год выпуска', - Component: InputNumber, - props: { - min: '1994', - max: new Date().getUTCFullYear() + 1, - name: 'tbxLeaseObjectYear', - valueName: 'leaseObjectYear', - }, - }, - { - title: 'Категория ТС', - Component: Select, - props: { - name: 'selectLeaseObjectCategory', - valueName: 'leaseObjectCategory', - showSearch: false, - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - title: 'Срок поставки', - Component: Radio, - props: { - name: 'radioDeliveryTime', - valueName: 'deliveryTime', - showSearch: false, - style: 'button', - }, - }, - { - title: 'ПЛ используется для', - Component: Select, - props: { - name: 'selectLeaseObjectUseFor', - valueName: 'leaseObjectUseFor', - showSearch: true, - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - title: 'Тип двигателя', - Component: Select, - props: { - name: 'selectEngineType', - valueName: 'engineType', - showSearch: true, - }, - }, - { - title: 'Мощность, л.с.', - Component: InputNumber, - props: { - min: '0.00', - max: '20000.00', - step: '10.00', - name: 'tbxLeaseObjectMotorPower', - valueName: 'leaseObjectMotorPower', - }, - }, - { - title: 'Объем двигателя, л', - Component: InputNumber, - props: { - min: '0.00', - max: '20000.00', - step: '10.00', - name: 'tbxEngineVolume', - valueName: 'engineVolume', - }, - }, - { - title: 'Разрешенная макс.масса(кг)', - Component: InputNumber, - props: { - min: '0', - max: '999999', - step: '100', - name: 'tbxMaxMass', - valueName: 'maxMass', - }, - }, - { - title: 'Количество мест', - Component: InputNumber, - props: { - min: '0', - max: '2000', - name: 'tbxCountSeats', - valueName: 'countSeats', - }, - }, - { - title: 'Максимальная конструктивная скорость (при ПСМ)', - Component: InputNumber, - props: { - min: '0', - max: '2000', - name: 'tbxMaxSpeed', - valueName: 'maxSpeed', - }, - }, - { - title: 'Грузоподъемность, т', - Component: InputNumber, - props: { - min: '0', - max: '999999999', - step: '100', - name: 'tbxTonnage', - valueName: 'tonnage', - }, - }, - { - title: 'ТС с прицепом', - Component: Select, - props: { - name: 'selectWithTrailer', - valueName: 'withTrailer', - showSearch: false, - }, - }, - ], - }, - { - title: 'Поставщик/агент', - elements: [ - /** */ - { - divider: { title: 'Поставщик предмета лизинга' }, - }, - /** */ - - { - title: 'Салон приобретения', - Component: Select, - props: { - name: 'selectDealer', - valueName: 'dealer', - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - title: 'ЮЛ поставщика', - Component: Select, - props: { - name: 'selectDealerPerson', - valueName: 'dealerPerson', - }, - }, - { - title: 'Условие АВ ЮЛ поставщика', - Component: Select, - props: { - name: 'selectDealerRewardСondition', - valueName: 'dealerRewardСondition', - }, - }, - { - title: 'Размер АВ ЮЛ поставщика', - Component: InputNumber, - props: { - min: '0.0', - max: '20.0', - step: '0.1', - name: 'tbxDealerRewardSumm', - valueName: 'dealerRewardSumm', - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - title: 'Брокер поставщика', - Component: Select, - props: { - name: 'selectDealerBroker', - valueName: 'dealerBroker', - }, - }, - { - title: 'Условие АВ брокера поставщика', - Component: Select, - props: { - name: 'selectDealerBrokerRewardСondition', - valueName: 'dealerBrokerRewardСondition', - }, - }, - { - title: 'Размер АВ брокера поставщика', - Component: InputNumber, - props: { - min: '0.0', - max: '20.0', - step: '0.1', - name: 'tbxDealerBrokerRewardSumm', - valueName: 'dealerBrokerRewardSumm', - }, - }, - - /** */ - { - divider: { title: 'Агент, передавший контакт' }, - }, - /** */ - - { - title: 'Агент ФЛ', - Component: Select, - props: { - name: 'selectIndAgent', - valueName: 'indAgent', - }, - }, - { - title: 'Условие АВ агента ФЛ', - Component: Select, - props: { - name: 'SelectIndAgentRewardCondition', - valueName: 'indAgentRewardCondition', - }, - }, - { - title: 'Размер АВ агента ФЛ', - Component: InputNumber, - props: { - min: '0.0', - max: '20.0', - step: '0.1', - name: 'tbxIndAgentRewardSumm', - valueName: 'indAgentRewardSumm', - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - title: 'Двойной агент', - Component: Select, - props: { - name: 'selectCalcDoubleAgent', - valueName: 'calcDoubleAgent', - }, - }, - { - title: 'Условия АВ двойного агента', - Component: Select, - props: { - name: 'selectCalcDoubleAgentRewardCondition', - valueName: 'calcDoubleAgentRewardCondition', - }, - }, - { - title: 'Размер АВ двойного агента', - Component: InputNumber, - props: { - min: '0.0', - max: '20.0', - step: '0.1', - name: 'tbxCalcDoubleAgentRewardSumm', - valueName: 'calcDoubleAgentRewardSumm', - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - title: 'Брокер', - Component: Select, - props: { - name: 'selectCalcBroker', - valueName: 'calcBroker', - }, - }, - { - title: 'Условие АВ брокера', - Component: Select, - props: { - name: 'selectCalcBrokerRewardCondition', - valueName: 'calcBrokerRewardCondition', - }, - }, - { - title: 'Размер АВ брокера', - Component: InputNumber, - props: { - min: '0.0', - max: '20.0', - step: '0.1', - name: 'tbxCalcBrokerRewardSum', - valueName: 'calcBrokerRewardSum', - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - title: 'Финотдел', - Component: Select, - props: { - name: 'selectCalcFinDepartment', - valueName: 'calcFinDepartment', - }, - }, - { - title: 'Условие АВ финотдела', - Component: Select, - props: { - name: 'selectFinDepartmentRewardCondtion', - valueName: 'finDepartmentRewardCondtion', - }, - }, - { - title: 'Размер АВ финотдела', - Component: InputNumber, - props: { - min: '0.0', - max: '20.0', - step: '0.1', - name: 'tbxFinDepartmentRewardSumm', - valueName: 'finDepartmentRewardSumm', - }, - }, - ], - }, - { - title: 'Страхование', - elements: [ - { - divider: { title: 'Параметры предмета лизинга' }, - }, - - { - title: 'Марка', - Component: Select, - props: { - name: 'selectBrand', - valueName: 'brand', - showSearch: true, - }, - }, - { - title: 'Модель', - Component: Select, - props: { - name: 'selectModel', - valueName: 'model', - showSearch: true, - }, - }, - { - title: 'Комплектация', - Component: Select, - props: { - name: 'selectConfiguration', - valueName: 'configuration', - showSearch: true, - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - title: 'Год выпуска', - Component: InputNumber, - props: { - min: '1994', - max: new Date().getUTCFullYear() + 1, - name: 'tbxLeaseObjectYear', - valueName: 'leaseObjectYear', - }, - }, - { - title: 'Тип двигателя', - Component: Select, - props: { - name: 'selectEngineType', - valueName: 'engineType', - showSearch: true, - }, - }, - { - title: 'Категория ТС', - Component: Select, - props: { - name: 'selectLeaseObjectCategory', - valueName: 'leaseObjectCategory', - showSearch: false, - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - title: 'Мощность, л.с.', - Component: InputNumber, - props: { - min: '0.00', - max: '20000.00', - step: '10.00', - name: 'tbxLeaseObjectMotorPower', - valueName: 'leaseObjectMotorPower', - }, - }, - { - title: 'Объем двигателя, л', - Component: InputNumber, - props: { - min: '0.00', - max: '20000.00', - step: '10.00', - name: 'tbxEngineVolume', - valueName: 'engineVolume', - }, - }, - { - title: 'ПЛ используется для', - Component: Select, - props: { - name: 'selectLeaseObjectUseFor', - valueName: 'leaseObjectUseFor', - showSearch: true, - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - // { - // title: 'Марка GPS', - // Component: Select, - // props: { - // name: 'selectGPSBrand', - // valueName: 'GPSBrand', - // }, - // }, - // { - // title: 'Модель GPS', - // Component: Select, - // props: { - // name: 'selectGPSModel', - // valueName: 'GPSModel', - // }, - // }, - - { - divider: { title: 'Условия страхования' }, - }, - - { - title: 'Регион регистрации', - Component: Select, - props: { - name: 'selectRegionRegistration', - valueName: 'regionRegistration', - }, - }, - { - title: 'Город регистрации', - Component: Select, - props: { - name: 'selectTownRegistration', - valueName: 'townRegistration', - }, - }, - // { - // title: 'ОПФ для расчета страховки', - // Component: Select, - // props: { - // name: 'selectInfuranceOPF', - // valueName: 'infuranceOPF', - // }, - // }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - title: 'Тип страхования КАСКО', - Component: Radio, - props: { - name: 'radioInsKaskoType', - valueName: 'insKaskoType', - style: 'button', - }, - }, - { - title: 'Франшиза', - Component: InputNumber, - props: { - min: '10000', - max: '300000', - step: '10000.00', - name: 'tbxInsFranchise', - valueName: 'insFranchise', - }, - }, - { - title: 'Децентрализованное страхование', - Component: Switch, - props: { - name: 'cbxInsDecentral', - valueName: 'insDecentral', - }, - }, - // { - // Component: Button, - // props: { - // type: 'primary', - // name: 'btnInsCalculation', - // text: 'Запрос расчета страховки', - // onClick: undefined, - // }, - // }, - // { - // title: 'Срок страхования', - // Component: Select, - // props: { - // name: 'selectInsPeriod', - // valueName: 'insPeriod', - // }, - // }, - { - Component: Button, - props: { - type: 'ghost', - name: 'btnFranschise', - text: 'Заявление на франшизу', - onClick: undefined, - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - title: 'Стоимость страхования доп.оборудования', - Component: InputNumber, - props: { - min: '10000', - max: '1000000000', - step: '10000.00', - name: 'tbxInsAddEquipmentPrice', - valueName: 'insAddEquipmentPrice', - }, - }, - { - title: 'Неограниченное число водителей', - Component: Switch, - props: { - name: 'cbxInsUnlimitDrivers', - valueName: 'insUnlimitDrivers', - }, - }, - { - title: 'Наименьший возраст водителей', - Component: InputNumber, - props: { - min: '18', - max: '99', - name: 'tbxInsAgeDrivers', - valueName: 'insAgeDrivers', - }, - }, - { - title: 'Наименьший стаж водителей', - Component: InputNumber, - props: { - min: '0', - max: '99', - name: 'tbxInsExpDrivers', - valueName: 'insExpDrivers', - }, - }, - // { - // title: 'ИНН контрагента для расчета страховки', - // Component: InputNumber, - // props: { - // name: 'tbxINNForCalc', - // valueName: 'INNForCalc', - // }, - // }, - { - Component: Button, - props: { - type: 'primary', - name: 'btnDriversApplication', - text: 'Заявление на ограничения по водителям', - onClick: undefined, - }, - }, - { - title: 'Стоимость страховки КАСКО на весь срок', - Component: InputNumber, - props: { - min: '10000', - max: '1000000000', - step: '10000.00', - name: 'tbxInsKaskoPriceLeasePeriod', - valueName: 'insKaskoPriceLeasePeriod', - }, - }, - ], - }, - { - title: 'Доп. продукты', - elements: [ - // TODO elements - { - title: 'Here will be content', - Component: Label, - }, - ], - }, - { - title: 'Создание КП', - elements: [ - { - title: 'Последний платеж считать выкупным', - Component: Switch, - props: { - name: 'cbxLastPaymentRedemption', - valueName: 'lastPaymentRedemption', - }, - }, - { - title: 'Отображать стоимость ПЛ со скидкой', - Component: Switch, - props: { - name: 'cbxPriceWithDiscount', - valueName: 'priceWithDiscount', - }, - }, - { - title: 'Отображать удорожание', - Component: Switch, - props: { - name: 'cbxCostIncrease', - valueName: 'costIncrease', - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - title: 'Отображать страхование', - Component: Switch, - props: { - name: 'cbxInsurance', - valueName: 'insurance', - }, - }, - { - title: 'Отображать доп. оборудование', - Component: Switch, - props: { - name: 'cbxAddEquipment', - valueName: 'addEquipment', - }, - }, - { - title: 'Отображать регистрацию', - Component: Switch, - props: { - name: 'cbxRegistrationQuote', - valueName: 'registrationQuote', - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - title: 'Отображать карту техпомощи', - Component: Switch, - props: { - name: 'cbxTechnicalCardQuote', - valueName: 'technicalCardQuote', - }, - }, - { - title: 'Отображать НСИБ', - Component: Switch, - props: { - name: 'cbxNSIB', - valueName: 'NSIB', - }, - }, - { - title: 'Отображать график досрочного выкупа', - Component: Switch, - props: { - name: 'cbxQuoteRedemptionGraph', - valueName: 'quoteRedemptionGraph', - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - title: 'Имя', - Component: Input, - props: { - name: 'tbxQuoteName', - valueName: 'quoteName', - }, - }, - { - title: 'Пол', - Component: Radio, - props: { - name: 'radioQuoteContactGender', - valueName: 'quoteContactGender', - style: 'button', - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - Component: Button, - props: { - type: 'primary', - size: 'large', - name: 'btnCreateKP', - text: 'Создать КП', - onClick: undefined, - }, - }, - ], - }, - { - title: 'Без ограничений', - elements: [ - { - title: 'Загрузить сессию пользователя', - Component: Select, - props: { - name: 'selectUserSession', - valueName: 'userSession', - }, - }, - { - title: 'Отключить все проверки', - Component: Switch, - props: { - name: 'cbxDisableChecks', - valueName: 'disableChecks', - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - title: 'Тариф', - Component: Select, - props: { - name: 'selectTarif', - valueName: 'Tarif', - }, - }, - { - title: 'Ставка привлечения, %', - Component: InputNumber, - props: { - min: '0.00', - max: '99.99', - step: '0.1', - name: 'tbxCreditRate', - valueName: 'creditRate', - }, - }, - { - title: 'Ставка привлечения', - Component: Select, - props: { - name: 'selectRate', - valueName: 'rate', - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - title: 'Требование телематики', - Component: Radio, - props: { - name: 'radioRequirementTelematic', - valueName: 'requirementTelematic', - style: 'button', - }, - }, - { - title: 'Децентрализованное страхование', - Component: Switch, - props: { - name: 'cbxInsuranceDecentral', - valueName: 'insuranceDecentral', - }, - }, - { - title: 'Макс.возможное изменение стоимости ПЛ', - Component: InputNumber, - props: { - min: '0', - max: '1000000000', - step: '10000.00', - name: 'tbxMaxPriceChange', - valueName: 'maxPriceChange', - }, - }, - - /** */ - { - divider: { empty: true }, - }, - /** */ - - { - title: 'АВ импортера,%', - Component: InputNumber, - props: { - min: '0.00', - max: '99.99', - step: '0.1', - name: 'tbxImporterRewardPerc', - valueName: 'importerRewardPerc', - }, - }, - { - title: 'АВ импортера,руб.', - Component: InputNumber, - props: { - min: '0', - max: '1000000000', - step: '10000.00', - name: 'tbxImporterRewardRub', - valueName: 'importerRewardRub', - }, + { + elements: [ + { + Component: Button, + props: { + type: 'primary', + size: 'large', + name: 'btnCreateLead', + text: 'Создать интерес', + onClick: undefined, + }, + }, + ], + }, + ], }, ], }, + // { + // title: 'Лизинг', + // groups: [ + // { + // title: 'Продукт', + // Component: Select, + // props: { + // name: 'selectProduct', + // valueName: 'product', + // }, + // }, + // { + // title: 'Риск клиента', + // Component: Select, + // props: { + // name: 'selectClientRisk', + // valueName: 'clientRisk', + // }, + // }, + // { + // title: 'Тип клиента', + // Component: Select, + // props: { + // name: 'selectClientType', + // valueName: 'clientType', + // }, + // }, + + // /** */ + // { + // divider: { empty: true }, + // }, + // /** */ + + // // TODO Input x Addon + // { + // title: 'Валюта поставщика', + // Component: Select, + // props: { + // name: 'selectSupplierCurrency', + // valueName: 'supplierCurrency', + // }, + // }, + // { + // title: 'Стоимость предмета лизинга', + // Component: InputNumber, + // props: { + // min: '10000', + // max: '1000000000', + // step: '10000.00', + // name: 'tbxLeaseObjectPrice', + // valueName: 'leaseObjectPrice', + // }, + // }, + // // TODO formatter + rub, parser + // { + // title: 'Скидка от поставщика, рубли', + // Component: InputNumber, + // props: { + // min: '0', + // max: '1000000000', + // step: '10000.00', + // name: 'tbxSupplierDiscountRub', + // valueName: 'supplierDiscountRub', + // }, + // }, + + // // TODO formatter + %, parser + // { + // title: 'Скидка от поставщика, %', + // Component: InputNumber, + // props: { + // min: '0', + // max: '100', + // name: 'tbxSupplierDiscountPerc', + // valueName: 'supplierDiscountPerc', + // }, + // }, + + // /** */ + // { + // divider: { empty: true }, + // }, + // /** */ + + // // TODO Input x Addon + // { + // title: 'Валюта доп.оборудования', + // Component: Select, + // props: { + // name: 'selectAddEquipmentCurrency', + // valueName: 'addEquipmentCurrency', + // }, + // }, + // { + // title: 'Стоимость доп.оборудования', + // Component: InputNumber, + // props: { + // min: '0', + // max: '1000000000', + // step: '10000.00', + // name: 'tbxAddEquipmentPrice', + // valueName: 'addEquipmentPrice', + // }, + // }, + // { + // title: 'Плательщик доп.оборудования', + // Component: Radio, + // props: { + // name: 'radioAddEquipmentPayer', + // valueName: 'addEquipmentPayer', + // withSearch: false, + // style: 'button', + // }, + // }, + + // /** */ + // { + // divider: { empty: true }, + // }, + // /** */ + + // { + // title: 'Первый платеж, %', + // Component: InputNumber, + // props: { + // min: '0', + // max: '100', + // name: 'tbxFirstPaymentPerc', + // valueName: 'firstPaymentPerc', + // }, + // }, + // { + // title: 'Первый платеж, руб.', + // Component: InputNumber, + // props: { + // min: '0', + // max: '1000000000', + // step: '10000.00', + // name: 'tbxFirstPaymentRub', + // valueName: 'firstPaymentRub', + // }, + // }, + + // /** */ + // { + // divider: { empty: true }, + // }, + // /** */ + + // { + // title: 'Последний платеж считается от', + // Component: Radio, + // props: { + // name: 'radioLastPaymentRule', + // valueName: 'lastPaymentRule', + // style: 'button', + // }, + // }, + // { + // title: 'Последний платеж, %', + // Component: InputNumber, + // props: { + // min: '0', + // max: '100', + // name: 'tbxLastPaymentPerc', + // valueName: 'lastPaymentPerc', + // }, + // }, + // { + // title: 'Последний платеж, руб.', + // Component: InputNumber, + // props: { + // min: '0', + // max: '1000000000', + // step: '10000.00', + // name: 'tbxLastPaymentRub', + // valueName: 'lastPaymentRub', + // }, + // }, + + // /** */ + // { + // divider: { empty: true }, + // }, + // /** */ + + // { + // title: 'Срок лизинга, мес', + // Component: InputNumber, + // props: { + // min: '7', + // max: '60', + // name: 'tbxLeasingPeriod', + // valueName: 'leasingPeriod', + // }, + // }, + // { + // title: 'Балансодержатель', + // Component: Radio, + // props: { + // name: 'radioBalanceHolder', + // valueName: 'balanceHolder', + // withSearch: false, + // style: 'button', + // }, + // }, + + // /** */ + // { + // divider: { empty: true }, + // }, + // /** */ + + // { + // title: 'Вид графика', + // Component: Radio, + // props: { + // name: 'radioGraphType', + // valueName: 'graphType', + // withSearch: false, + // }, + // }, + + // // TODO: formatter, parser: % + // { + // title: 'Процент убывания платежей', + // Component: InputNumber, + // props: { + // min: '50', + // max: '99', + // name: 'tbxParmentsDecreasePercent', + // valueName: 'parmentsDecreasePercent', + // }, + // }, + // { + // title: 'Тип сезонности', + // Component: Radio, + // props: { + // name: 'radioSeasonType', + // valueName: 'seasonType', + // withSearch: false, + // style: 'button', + // }, + // }, + // { + // title: 'С какого платежа начинается высокий сезон', + // Component: Select, + // props: { + // name: 'selectHighSeasonStart', + // valueName: 'highSeasonStart', + // withSearch: false, + // }, + // }, + + // /** */ + // { + // divider: { empty: true }, + // }, + // /** */ + + // { + // title: 'Комиссия, %', + // Component: InputNumber, + // props: { + // min: '0', + // max: '100', + // name: 'tbxComissionPerc', + // valueName: 'comissionPerc', + // }, + // }, + // { + // title: 'Комиссия, руб.', + // Component: InputNumber, + // props: { + // min: '0', + // max: '1000000000', + // step: '10000.00', + // name: 'tbxComissionRub', + // valueName: 'comissionRub', + // }, + // }, + + // /** */ + // { + // divider: { empty: true }, + // }, + // /** */ + + // { + // title: 'IRR, %', + // Component: InputNumber, + // props: { + // min: '0.0000', + // max: '100.0000', + // step: '0.0001', + // name: 'tbxIRR_Perc', + // valueName: 'IRR_Perc', + // }, + // }, + // { + // title: 'Размер бонуса МПЛ', + // Component: InputNumber, + // props: { + // min: '0.00', + // max: '100.00', + // step: '1.00', + // name: 'tbxSaleBonus', + // valueName: 'saleBonus', + // }, + // }, + // // { + // // title: 'Таблица графика платежей', + // // Component: Table, + // // props: { + // // name: 'tablePaymentGraph', + // // valueName: 'paymentGraph', + // // }, + // // }, + // ], + // }, + // { + // title: 'ПЛ', + // groups: [ + // { + // title: 'Тип предмета лизинга', + // Component: Select, + // props: { + // name: 'selectLeaseObjectType', + // valueName: 'leaseObjectType', + // showSearch: true, + // }, + // }, + + // /** */ + // { + // divider: { empty: true }, + // }, + // /** */ + + // { + // title: 'Марка', + // Component: Select, + // props: { + // name: 'selectBrand', + // valueName: 'brand', + // showSearch: true, + // }, + // }, + // { + // title: 'Модель', + // Component: Select, + // props: { + // name: 'selectModel', + // valueName: 'model', + // showSearch: true, + // }, + // }, + // { + // title: 'Комплектация', + // Component: Select, + // props: { + // name: 'selectConfiguration', + // valueName: 'configuration', + // showSearch: true, + // }, + // }, + + // /** */ + // { + // divider: { empty: true }, + // }, + // /** */ + + // // TODO: Convert to Text + // { + // title: 'Риск ПЛ', + // Component: Label, + // props: { + // name: 'labelLeaseObjectRisk', + // valueName: 'leaseObjectRisk', + // }, + // }, + + // // TODO: Convert to Text + // { + // title: 'Группа обесценения', + // Component: Label, + // props: { + // name: 'labelDepreciationGroup', + // valueName: 'depreciationGroup', + // }, + // }, + + // /** */ + // { + // divider: { empty: true }, + // }, + // /** */ + + // { + // title: 'ПЛ БУ', + // Component: Checkbox, + // props: { + // name: 'cbxLeaseObjectUsed', + // valueName: 'leaseObjectUsed', + // }, + // layout: { + // size: 'min', + // flexDirection: 'row', + // }, + // }, + + // /** */ + // { + // divider: { empty: true }, + // }, + // /** */ + + // { + // title: 'Кол-во ПЛ в расчете', + // Component: InputNumber, + // props: { + // min: '1', + // max: '1000', + // name: 'tbxLeaseObjectCount', + // valueName: 'leaseObjectCount', + // }, + // }, + + // { + // title: 'Год выпуска', + // Component: InputNumber, + // props: { + // min: '1994', + // max: new Date().getUTCFullYear() + 1, + // name: 'tbxLeaseObjectYear', + // valueName: 'leaseObjectYear', + // }, + // }, + // { + // title: 'Категория ТС', + // Component: Select, + // props: { + // name: 'selectLeaseObjectCategory', + // valueName: 'leaseObjectCategory', + // showSearch: false, + // }, + // }, + + // /** */ + // { + // divider: { empty: true }, + // }, + // /** */ + + // { + // title: 'Срок поставки', + // Component: Radio, + // props: { + // name: 'radioDeliveryTime', + // valueName: 'deliveryTime', + // showSearch: false, + // style: 'button', + // }, + // }, + // { + // title: 'ПЛ используется для', + // Component: Select, + // props: { + // name: 'selectLeaseObjectUseFor', + // valueName: 'leaseObjectUseFor', + // showSearch: true, + // }, + // }, + + // /** */ + // { + // divider: { empty: true }, + // }, + // /** */ + + // { + // title: 'Тип двигателя', + // Component: Select, + // props: { + // name: 'selectEngineType', + // valueName: 'engineType', + // showSearch: true, + // }, + // }, + // { + // title: 'Мощность, л.с.', + // Component: InputNumber, + // props: { + // min: '0.00', + // max: '20000.00', + // step: '10.00', + // name: 'tbxLeaseObjectMotorPower', + // valueName: 'leaseObjectMotorPower', + // }, + // }, + // { + // title: 'Объем двигателя, л', + // Component: InputNumber, + // props: { + // min: '0.00', + // max: '20000.00', + // step: '10.00', + // name: 'tbxEngineVolume', + // valueName: 'engineVolume', + // }, + // }, + // { + // title: 'Разрешенная макс.масса(кг)', + // Component: InputNumber, + // props: { + // min: '0', + // max: '999999', + // step: '100', + // name: 'tbxMaxMass', + // valueName: 'maxMass', + // }, + // }, + // { + // title: 'Количество мест', + // Component: InputNumber, + // props: { + // min: '0', + // max: '2000', + // name: 'tbxCountSeats', + // valueName: 'countSeats', + // }, + // }, + // { + // title: 'Максимальная конструктивная скорость (при ПСМ)', + // Component: InputNumber, + // props: { + // min: '0', + // max: '2000', + // name: 'tbxMaxSpeed', + // valueName: 'maxSpeed', + // }, + // }, + // { + // title: 'Грузоподъемность, т', + // Component: InputNumber, + // props: { + // min: '0', + // max: '999999999', + // step: '100', + // name: 'tbxTonnage', + // valueName: 'tonnage', + // }, + // }, + // { + // title: 'ТС с прицепом', + // Component: Select, + // props: { + // name: 'selectWithTrailer', + // valueName: 'withTrailer', + // showSearch: false, + // }, + // }, + // ], + // }, + // { + // title: 'Поставщик/агент', + // groups: [ + // /** */ + // { + // divider: { title: 'Поставщик предмета лизинга' }, + // }, + // /** */ + + // { + // title: 'Салон приобретения', + // Component: Select, + // props: { + // name: 'selectDealer', + // valueName: 'dealer', + // }, + // }, + + // /** */ + // { + // divider: { empty: true }, + // }, + // /** */ + + // { + // title: 'ЮЛ поставщика', + // Component: Select, + // props: { + // name: 'selectDealerPerson', + // valueName: 'dealerPerson', + // }, + // }, + // { + // title: 'Условие АВ ЮЛ поставщика', + // Component: Select, + // props: { + // name: 'selectDealerRewardСondition', + // valueName: 'dealerRewardСondition', + // }, + // }, + // { + // title: 'Размер АВ ЮЛ поставщика', + // Component: InputNumber, + // props: { + // min: '0.0', + // max: '20.0', + // step: '0.1', + // name: 'tbxDealerRewardSumm', + // valueName: 'dealerRewardSumm', + // }, + // }, + + // /** */ + // { + // divider: { empty: true }, + // }, + // /** */ + + // { + // title: 'Брокер поставщика', + // Component: Select, + // props: { + // name: 'selectDealerBroker', + // valueName: 'dealerBroker', + // }, + // }, + // { + // title: 'Условие АВ брокера поставщика', + // Component: Select, + // props: { + // name: 'selectDealerBrokerRewardСondition', + // valueName: 'dealerBrokerRewardСondition', + // }, + // }, + // { + // title: 'Размер АВ брокера поставщика', + // Component: InputNumber, + // props: { + // min: '0.0', + // max: '20.0', + // step: '0.1', + // name: 'tbxDealerBrokerRewardSumm', + // valueName: 'dealerBrokerRewardSumm', + // }, + // }, + + // /** */ + // { + // divider: { title: 'Агент, передавший контакт' }, + // }, + // /** */ + + // { + // title: 'Агент ФЛ', + // Component: Select, + // props: { + // name: 'selectIndAgent', + // valueName: 'indAgent', + // }, + // }, + // { + // title: 'Условие АВ агента ФЛ', + // Component: Select, + // props: { + // name: 'SelectIndAgentRewardCondition', + // valueName: 'indAgentRewardCondition', + // }, + // }, + // { + // title: 'Размер АВ агента ФЛ', + // Component: InputNumber, + // props: { + // min: '0.0', + // max: '20.0', + // step: '0.1', + // name: 'tbxIndAgentRewardSumm', + // valueName: 'indAgentRewardSumm', + // }, + // }, + + // /** */ + // { + // divider: { empty: true }, + // }, + // /** */ + + // { + // title: 'Двойной агент', + // Component: Select, + // props: { + // name: 'selectCalcDoubleAgent', + // valueName: 'calcDoubleAgent', + // }, + // }, + // { + // title: 'Условия АВ двойного агента', + // Component: Select, + // props: { + // name: 'selectCalcDoubleAgentRewardCondition', + // valueName: 'calcDoubleAgentRewardCondition', + // }, + // }, + // { + // title: 'Размер АВ двойного агента', + // Component: InputNumber, + // props: { + // min: '0.0', + // max: '20.0', + // step: '0.1', + // name: 'tbxCalcDoubleAgentRewardSumm', + // valueName: 'calcDoubleAgentRewardSumm', + // }, + // }, + + // /** */ + // { + // divider: { empty: true }, + // }, + // /** */ + + // { + // title: 'Брокер', + // Component: Select, + // props: { + // name: 'selectCalcBroker', + // valueName: 'calcBroker', + // }, + // }, + // { + // title: 'Условие АВ брокера', + // Component: Select, + // props: { + // name: 'selectCalcBrokerRewardCondition', + // valueName: 'calcBrokerRewardCondition', + // }, + // }, + // { + // title: 'Размер АВ брокера', + // Component: InputNumber, + // props: { + // min: '0.0', + // max: '20.0', + // step: '0.1', + // name: 'tbxCalcBrokerRewardSum', + // valueName: 'calcBrokerRewardSum', + // }, + // }, + + // /** */ + // { + // divider: { empty: true }, + // }, + // /** */ + + // { + // title: 'Финотдел', + // Component: Select, + // props: { + // name: 'selectCalcFinDepartment', + // valueName: 'calcFinDepartment', + // }, + // }, + // { + // title: 'Условие АВ финотдела', + // Component: Select, + // props: { + // name: 'selectFinDepartmentRewardCondtion', + // valueName: 'finDepartmentRewardCondtion', + // }, + // }, + // { + // title: 'Размер АВ финотдела', + // Component: InputNumber, + // props: { + // min: '0.0', + // max: '20.0', + // step: '0.1', + // name: 'tbxFinDepartmentRewardSumm', + // valueName: 'finDepartmentRewardSumm', + // }, + // }, + // ], + // }, + // { + // title: 'Страхование', + // groups: [ + // { + // divider: { title: 'Параметры предмета лизинга' }, + // }, + + // { + // title: 'Марка', + // Component: Select, + // props: { + // name: 'selectBrand', + // valueName: 'brand', + // showSearch: true, + // }, + // }, + // { + // title: 'Модель', + // Component: Select, + // props: { + // name: 'selectModel', + // valueName: 'model', + // showSearch: true, + // }, + // }, + // { + // title: 'Комплектация', + // Component: Select, + // props: { + // name: 'selectConfiguration', + // valueName: 'configuration', + // showSearch: true, + // }, + // }, + + // /** */ + // { + // divider: { empty: true }, + // }, + // /** */ + + // { + // title: 'Год выпуска', + // Component: InputNumber, + // props: { + // min: '1994', + // max: new Date().getUTCFullYear() + 1, + // name: 'tbxLeaseObjectYear', + // valueName: 'leaseObjectYear', + // }, + // }, + // { + // title: 'Тип двигателя', + // Component: Select, + // props: { + // name: 'selectEngineType', + // valueName: 'engineType', + // showSearch: true, + // }, + // }, + // { + // title: 'Категория ТС', + // Component: Select, + // props: { + // name: 'selectLeaseObjectCategory', + // valueName: 'leaseObjectCategory', + // showSearch: false, + // }, + // }, + + // /** */ + // { + // divider: { empty: true }, + // }, + // /** */ + + // { + // title: 'Мощность, л.с.', + // Component: InputNumber, + // props: { + // min: '0.00', + // max: '20000.00', + // step: '10.00', + // name: 'tbxLeaseObjectMotorPower', + // valueName: 'leaseObjectMotorPower', + // }, + // }, + // { + // title: 'Объем двигателя, л', + // Component: InputNumber, + // props: { + // min: '0.00', + // max: '20000.00', + // step: '10.00', + // name: 'tbxEngineVolume', + // valueName: 'engineVolume', + // }, + // }, + // { + // title: 'ПЛ используется для', + // Component: Select, + // props: { + // name: 'selectLeaseObjectUseFor', + // valueName: 'leaseObjectUseFor', + // showSearch: true, + // }, + // }, + + // /** */ + // { + // divider: { empty: true }, + // }, + // /** */ + + // // { + // // title: 'Марка GPS', + // // Component: Select, + // // props: { + // // name: 'selectGPSBrand', + // // valueName: 'GPSBrand', + // // }, + // // }, + // // { + // // title: 'Модель GPS', + // // Component: Select, + // // props: { + // // name: 'selectGPSModel', + // // valueName: 'GPSModel', + // // }, + // // }, + + // { + // divider: { title: 'Условия страхования' }, + // }, + + // { + // title: 'Регион регистрации', + // Component: Select, + // props: { + // name: 'selectRegionRegistration', + // valueName: 'regionRegistration', + // }, + // }, + // { + // title: 'Город регистрации', + // Component: Select, + // props: { + // name: 'selectTownRegistration', + // valueName: 'townRegistration', + // }, + // }, + // // { + // // title: 'ОПФ для расчета страховки', + // // Component: Select, + // // props: { + // // name: 'selectInfuranceOPF', + // // valueName: 'infuranceOPF', + // // }, + // // }, + + // /** */ + // { + // divider: { empty: true }, + // }, + // /** */ + + // { + // title: 'Тип страхования КАСКО', + // Component: Radio, + // props: { + // name: 'radioInsKaskoType', + // valueName: 'insKaskoType', + // style: 'button', + // }, + // }, + // { + // title: 'Франшиза', + // Component: InputNumber, + // props: { + // min: '10000', + // max: '300000', + // step: '10000.00', + // name: 'tbxInsFranchise', + // valueName: 'insFranchise', + // }, + // }, + // { + // title: 'Децентрализованное страхование', + // Component: Switch, + // props: { + // name: 'cbxInsDecentral', + // valueName: 'insDecentral', + // }, + // }, + // // { + // // Component: Button, + // // props: { + // // type: 'primary', + // // name: 'btnInsCalculation', + // // text: 'Запрос расчета страховки', + // // onClick: undefined, + // // }, + // // }, + // // { + // // title: 'Срок страхования', + // // Component: Select, + // // props: { + // // name: 'selectInsPeriod', + // // valueName: 'insPeriod', + // // }, + // // }, + // { + // Component: Button, + // props: { + // type: 'ghost', + // name: 'btnFranschise', + // text: 'Заявление на франшизу', + // onClick: undefined, + // }, + // }, + + // /** */ + // { + // divider: { empty: true }, + // }, + // /** */ + + // { + // title: 'Стоимость страхования доп.оборудования', + // Component: InputNumber, + // props: { + // min: '10000', + // max: '1000000000', + // step: '10000.00', + // name: 'tbxInsAddEquipmentPrice', + // valueName: 'insAddEquipmentPrice', + // }, + // }, + // { + // title: 'Неограниченное число водителей', + // Component: Switch, + // props: { + // name: 'cbxInsUnlimitDrivers', + // valueName: 'insUnlimitDrivers', + // }, + // }, + // { + // title: 'Наименьший возраст водителей', + // Component: InputNumber, + // props: { + // min: '18', + // max: '99', + // name: 'tbxInsAgeDrivers', + // valueName: 'insAgeDrivers', + // }, + // }, + // { + // title: 'Наименьший стаж водителей', + // Component: InputNumber, + // props: { + // min: '0', + // max: '99', + // name: 'tbxInsExpDrivers', + // valueName: 'insExpDrivers', + // }, + // }, + // // { + // // title: 'ИНН контрагента для расчета страховки', + // // Component: InputNumber, + // // props: { + // // name: 'tbxINNForCalc', + // // valueName: 'INNForCalc', + // // }, + // // }, + // { + // Component: Button, + // props: { + // type: 'primary', + // name: 'btnDriversApplication', + // text: 'Заявление на ограничения по водителям', + // onClick: undefined, + // }, + // }, + // { + // title: 'Стоимость страховки КАСКО на весь срок', + // Component: InputNumber, + // props: { + // min: '10000', + // max: '1000000000', + // step: '10000.00', + // name: 'tbxInsKaskoPriceLeasePeriod', + // valueName: 'insKaskoPriceLeasePeriod', + // }, + // }, + // ], + // }, + // { + // title: 'Доп. продукты', + // groups: [ + // // TODO groups + // { + // title: 'Here will be content', + // Component: Label, + // }, + // ], + // }, + // { + // title: 'Создание КП', + // groups: [ + // { + // title: 'Последний платеж считать выкупным', + // Component: Switch, + // props: { + // name: 'cbxLastPaymentRedemption', + // valueName: 'lastPaymentRedemption', + // }, + // }, + // { + // title: 'Отображать стоимость ПЛ со скидкой', + // Component: Switch, + // props: { + // name: 'cbxPriceWithDiscount', + // valueName: 'priceWithDiscount', + // }, + // }, + // { + // title: 'Отображать удорожание', + // Component: Switch, + // props: { + // name: 'cbxCostIncrease', + // valueName: 'costIncrease', + // }, + // }, + + // /** */ + // { + // divider: { empty: true }, + // }, + // /** */ + + // { + // title: 'Отображать страхование', + // Component: Switch, + // props: { + // name: 'cbxInsurance', + // valueName: 'insurance', + // }, + // }, + // { + // title: 'Отображать доп. оборудование', + // Component: Switch, + // props: { + // name: 'cbxAddEquipment', + // valueName: 'addEquipment', + // }, + // }, + // { + // title: 'Отображать регистрацию', + // Component: Switch, + // props: { + // name: 'cbxRegistrationQuote', + // valueName: 'registrationQuote', + // }, + // }, + + // /** */ + // { + // divider: { empty: true }, + // }, + // /** */ + + // { + // title: 'Отображать карту техпомощи', + // Component: Switch, + // props: { + // name: 'cbxTechnicalCardQuote', + // valueName: 'technicalCardQuote', + // }, + // }, + // { + // title: 'Отображать НСИБ', + // Component: Switch, + // props: { + // name: 'cbxNSIB', + // valueName: 'NSIB', + // }, + // }, + // { + // title: 'Отображать график досрочного выкупа', + // Component: Switch, + // props: { + // name: 'cbxQuoteRedemptionGraph', + // valueName: 'quoteRedemptionGraph', + // }, + // }, + + // /** */ + // { + // divider: { empty: true }, + // }, + // /** */ + + // { + // title: 'Имя', + // Component: Input, + // props: { + // name: 'tbxQuoteName', + // valueName: 'quoteName', + // }, + // }, + // { + // title: 'Пол', + // Component: Radio, + // props: { + // name: 'radioQuoteContactGender', + // valueName: 'quoteContactGender', + // style: 'button', + // }, + // }, + + // /** */ + // { + // divider: { empty: true }, + // }, + // /** */ + + // { + // Component: Button, + // props: { + // type: 'primary', + // size: 'large', + // name: 'btnCreateKP', + // text: 'Создать КП', + // onClick: undefined, + // }, + // }, + // ], + // }, + // { + // title: 'Без ограничений', + // groups: [ + // { + // title: 'Загрузить сессию пользователя', + // Component: Select, + // props: { + // name: 'selectUserSession', + // valueName: 'userSession', + // }, + // }, + // { + // title: 'Отключить все проверки', + // Component: Switch, + // props: { + // name: 'cbxDisableChecks', + // valueName: 'disableChecks', + // }, + // }, + + // /** */ + // { + // divider: { empty: true }, + // }, + // /** */ + + // { + // title: 'Тариф', + // Component: Select, + // props: { + // name: 'selectTarif', + // valueName: 'Tarif', + // }, + // }, + // { + // title: 'Ставка привлечения, %', + // Component: InputNumber, + // props: { + // min: '0.00', + // max: '99.99', + // step: '0.1', + // name: 'tbxCreditRate', + // valueName: 'creditRate', + // }, + // }, + // { + // title: 'Ставка привлечения', + // Component: Select, + // props: { + // name: 'selectRate', + // valueName: 'rate', + // }, + // }, + + // /** */ + // { + // divider: { empty: true }, + // }, + // /** */ + + // { + // title: 'Требование телематики', + // Component: Radio, + // props: { + // name: 'radioRequirementTelematic', + // valueName: 'requirementTelematic', + // style: 'button', + // }, + // }, + // { + // title: 'Децентрализованное страхование', + // Component: Switch, + // props: { + // name: 'cbxInsuranceDecentral', + // valueName: 'insuranceDecentral', + // }, + // }, + // { + // title: 'Макс.возможное изменение стоимости ПЛ', + // Component: InputNumber, + // props: { + // min: '0', + // max: '1000000000', + // step: '10000.00', + // name: 'tbxMaxPriceChange', + // valueName: 'maxPriceChange', + // }, + // }, + + // /** */ + // { + // divider: { empty: true }, + // }, + // /** */ + + // { + // title: 'АВ импортера,%', + // Component: InputNumber, + // props: { + // min: '0.00', + // max: '99.99', + // step: '0.1', + // name: 'tbxImporterRewardPerc', + // valueName: 'importerRewardPerc', + // }, + // }, + // { + // title: 'АВ импортера,руб.', + // Component: InputNumber, + // props: { + // min: '0', + // max: '1000000000', + // step: '10000.00', + // name: 'tbxImporterRewardRub', + // valueName: 'importerRewardRub', + // }, + // }, + // ], + // }, ]; diff --git a/src/client/Containers/Calculation/index.jsx b/src/client/Containers/Calculation/index.jsx index 92c1947..a02f9ec 100644 --- a/src/client/Containers/Calculation/index.jsx +++ b/src/client/Containers/Calculation/index.jsx @@ -5,11 +5,11 @@ import Sections from './Sections'; const Calculation = () => { return ( - + - + props.flex}; + flex: ${props => props.flex}; max-width: 100%; `; diff --git a/src/client/Elements/Divider.jsx b/src/client/Elements/Divider.jsx deleted file mode 100644 index fec169d..0000000 --- a/src/client/Elements/Divider.jsx +++ /dev/null @@ -1,17 +0,0 @@ -import React from 'react'; -import styled from 'styled-components'; -import { Tabs, Divider as AntDivider } from 'antd'; - -const EmptyDivider = styled.div` - width: 100%; - margin: 3px 0; -`; - -const Divider = ({ title, empty }) => { - if (empty) { - return ; - } - return {title}; -}; - -export default Divider; diff --git a/src/client/Layout/index.jsx b/src/client/Layout/index.jsx index 595af26..dd95847 100644 --- a/src/client/Layout/index.jsx +++ b/src/client/Layout/index.jsx @@ -6,17 +6,19 @@ import React from 'react'; import { Route, Switch } from 'react-router-dom'; const Header = () => ( - - {/* {paths.map( +
+ + {/* {paths.map( (path, i) => - path.route && ( - - {path.name} - + path.route && ( + + {path.name} + ) - )} */} - EVO Calculator - + )} */} + EVO Calculator + +
); const Content = () => ( @@ -35,7 +37,7 @@ const Content = () => ( ); const Layout = () => ( - +
@@ -43,12 +45,14 @@ const Layout = () => ( const styles = { root: { - height: '100%' + height: '100%', }, - flex: { width: '100%' }, header: { position: 'sticky', top: 0, + zIndex: 999999, + }, + headerContent: { background: `linear-gradient(90deg, ${colors.blueTemp[0]} 0%, ${colors.blueTemp[300]} 50%, @@ -57,8 +61,7 @@ const styles = { padding: '10px 12px', paddingLeft: '20px', // borderRadius: "0 0 10px 10px", - zIndex: 999999 - } + }, }; export default Layout; diff --git a/src/client/UIKit/theme.js b/src/client/UIKit/theme.js index 5673f41..0e55b42 100644 --- a/src/client/UIKit/theme.js +++ b/src/client/UIKit/theme.js @@ -4,11 +4,14 @@ const ALLOWED_BREAKPOINTS = [ //'less' 'tablet', 'desktop', + 'desktop1280', 'desktop1440', 'desktop1920', - 'desktop2560' + 'desktop2560', ]; export default { - breakpoints: ALLOWED_BREAKPOINTS.map(breakpoint => screens[breakpoint] + 'px') + breakpoints: ALLOWED_BREAKPOINTS.map( + breakpoint => screens[breakpoint] + 'px', + ), };