This repository has been archived on 2025-05-09. You can view files and clone it, but cannot push or open issues or pull requests.
2020-10-12 20:55:43 +03:00

1700 lines
50 KiB
TypeScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import Button from 'client/Elements/Button';
import Checkbox from 'client/Elements/Checkbox';
import Input from 'client/Elements/Input';
import InputNumber from 'client/Elements/InputNumber';
import Label from 'client/Elements/Label';
import Radio from 'client/Elements/Radio';
import Select from 'client/Elements/Select';
import Switch from 'client/Elements/Switch';
import Table from 'client/Elements/Table';
import TextArea from 'client/Elements/TextArea';
import {
validateEmail,
validateInn,
validateKpp,
validatePhone,
} from 'client/tools/validate';
import { ISections } from 'core/types/Calculation/components';
import { ElementType } from 'core/types/Calculation/Store/elements';
const sections: ISections[] = [
{
title: 'Интерес/ЛС',
groups: [
{
title: 'Поиск интереса в CRM',
blocks: [
{
// blockTitle: '',
elements: [
//TODO Custom search
{
title: 'Выбор Интереса',
Component: Select,
props: {
name: 'selectLead',
valueName: 'lead',
showSearch: true,
},
},
],
layout: {
width: '30%',
},
},
{
elements: [
//TODO Custom search
{
title: 'Лизинговая сделка',
Component: Select,
props: {
name: 'selectOpportunity',
valueName: 'opportunity',
showSearch: true,
},
},
],
layout: {
width: '30%',
},
},
{
elements: [
//TODO Custom search
{
title: 'Выбор Предложения',
Component: Select,
props: {
name: 'selectQuote',
valueName: 'quote',
showSearch: true,
},
},
],
layout: {
width: '30%',
},
},
{
elements: [
{
title: 'Пересчет без пересмотра',
Component: Switch,
props: {
name: 'cbxRecalcWithRevision',
valueName: 'recalcWithRevision',
},
},
],
},
],
},
{
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: {
validation: {
errorMessage: 'Некорректный ИНН',
validator: validateInn,
},
name: 'tbxINN',
valueName: 'INN',
},
},
{
title: 'КПП',
Component: Input,
props: {
validation: {
errorMessage: 'Некорректный КПП',
validator: validateKpp,
},
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',
},
},
{
title: 'Телефон',
Component: Input,
props: {
type: 'tel',
name: 'tbxPhoneNumber',
valueName: 'phoneNumber',
validation: {
errorMessage: 'Некорректный номер телефона',
validator: validatePhone,
},
//TODO: mask + 7(999) 999 99 99
},
},
{
title: 'E-mail',
Component: Input,
props: {
type: 'email',
name: 'tbxEmailAddress',
valueName: 'emailAddress',
//TODO email mask
validation: {
errorMessage: 'Некорректный E-mail',
validator: validateEmail,
},
},
},
],
},
{
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,
},
},
{
title: 'Агент',
Component: Select,
props: {
name: 'selectAgent',
valueName: 'agent',
showSearch: true,
},
},
{
title: 'Двойной агент',
Component: Select,
props: {
name: 'selectDoubleAgent',
valueName: 'doubleAgent',
showSearch: true,
},
},
],
},
{
elements: [
{
title: 'Комментарий к интересу',
Component: TextArea,
props: {
name: 'tbxCommentLead',
valueName: 'commentLead',
},
},
],
},
{
elements: [
{
type: ElementType.Button,
Component: Button,
props: {
type: 'primary',
size: 'large',
name: 'btnCreateLead',
text: 'Создать интерес',
actionName: 'createLead',
},
},
],
layout: {
newLine: true,
},
},
],
},
],
},
{
title: 'Лизинг',
groups: [
{
blocks: [
{
elements: [
{
title: 'Продукт',
Component: Select,
props: {
name: 'selectProduct',
valueName: 'product',
},
},
],
layout: {
width: '30%',
},
},
{
elements: [
{
title: 'Риск клиента',
Component: Select,
props: {
name: 'selectClientRisk',
valueName: 'clientRisk',
},
},
],
layout: {
width: '30%',
},
},
{
elements: [
{
title: 'Тип клиента',
Component: Select,
props: {
name: 'selectClientType',
valueName: 'clientType',
},
},
],
layout: {
width: '30%',
},
},
],
},
{
blocks: [
{
title: 'Стоимость предмета лизинга и доп.оборудование',
elements: [
{
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',
},
}, // 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',
},
},
],
},
{
title: 'Параметры договора лизинга',
elements: [
// TODO Input x Addon
{
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',
},
},
{
title: 'Последний платеж считается от',
Component: Radio,
props: {
name: 'radioLastPaymentRule',
valueName: 'lastPaymentRule',
style: 'button',
},
},
{
title: 'Последний платеж, %',
Component: InputNumber,
props: {
min: '0',
max: '100',
step: '1.000000',
name: 'tbxLastPaymentPerc',
valueName: 'lastPaymentPerc',
},
},
{
title: 'Последний платеж, руб.',
Component: InputNumber,
props: {
min: '0',
max: '1000000000',
step: '10000.00',
name: 'tbxLastPaymentRub',
valueName: 'lastPaymentRub',
},
},
{
title: 'Срок лизинга, мес',
Component: InputNumber,
props: {
min: '7',
max: '60',
name: 'tbxLeasingPeriod',
valueName: 'leasingPeriod',
},
},
{
title: 'Балансодержатель',
Component: Radio,
props: {
name: 'radioBalanceHolder',
valueName: 'balanceHolder',
withSearch: false,
style: 'button',
},
},
],
},
{
title: 'Параметры графика платежей',
elements: [
{
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,
},
},
],
layout: {
newLine: true,
},
},
{
title: 'Параметры расчета',
elements: [
{
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',
},
},
{
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',
},
},
],
},
{
elements: [
{
type: ElementType.Table,
Component: Table,
props: {
name: 'tablePayments',
features: {
canDeleteRow: false,
numerize: {
columnTitle: 'Номер платежа',
},
},
columns: [
{
name: 'paymentRelation',
title: 'Соотношение платежа',
Component: InputNumber,
props: {
min: '0.01',
max: '100.00',
step: '1.00',
// TODO: toFixed
//numeral.js
},
},
],
},
},
],
layout: {
newLine: true,
},
},
],
},
{
blocks: [
{
elements: [
// {
// title: 'Таблица графика платежей',
// Component: Table,
// props: {
// name: 'tablePaymentGraph',
// valueName: 'paymentGraph',
// },
// },
],
},
],
},
],
},
{
title: 'ПЛ',
groups: [
{
blocks: [
{
elements: [
{
title: 'Тип предмета лизинга',
Component: Select,
props: {
name: 'selectLeaseObjectType',
valueName: 'leaseObjectType',
showSearch: 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,
},
},
],
},
{
title: ' ',
elements: [
// TODO: Convert to Text
{
title: 'Риск ПЛ',
Component: Label,
props: {
name: 'labelLeaseObjectRisk',
computedValueName: 'leaseObjectRiskName',
},
},
// TODO: Convert to Text
{
title: 'Группа обесценения',
Component: Label,
props: {
name: 'labelDepreciationGroup',
valueName: 'depreciationGroup',
},
},
{
title: 'ПЛ БУ',
Component: Checkbox,
props: {
name: 'cbxLeaseObjectUsed',
valueName: 'leaseObjectUsed',
},
},
{
title: 'Срок поставки',
Component: Radio,
props: {
name: 'radioDeliveryTime',
valueName: 'deliveryTime',
showSearch: false,
style: 'button',
},
},
],
},
],
},
{
blocks: [
{
elements: [
{
title: 'Кол-во ПЛ в расчете',
Component: InputNumber,
props: {
min: '1',
max: '1000',
name: 'tbxLeaseObjectCount',
valueName: 'leaseObjectCount',
},
},
{
title: 'ПЛ используется для',
Component: Select,
props: {
name: 'selectLeaseObjectUseFor',
valueName: 'leaseObjectUseFor',
showSearch: true,
},
},
{
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,
},
},
],
},
{
elements: [
{
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',
},
},
],
},
{
elements: [
{
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: [
{
title: 'Поставщик предмета лизинга',
blocks: [
{
elements: [
{
title: 'Салон приобретения',
Component: Select,
props: {
name: 'selectDealer',
valueName: 'dealer',
},
},
],
},
{
elements: [
{
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',
},
},
],
layout: {
newLine: true,
},
},
{
elements: [
{
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',
},
},
],
},
],
},
{
title: 'Агент, передавший контакт',
blocks: [
{
elements: [
{
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',
},
},
],
},
{
elements: [
{
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',
},
},
],
},
{
elements: [
{
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',
},
},
],
layout: {
newLine: true,
},
},
{
elements: [
{
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: [
{
blocks: [
{
elements: [
{
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,
},
},
],
},
{
elements: [
{
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,
},
},
],
},
{
elements: [
{
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,
},
},
],
},
],
},
{
blocks: [
{
elements: [
{
title: 'Децентрализованное страхование',
Component: Switch,
props: {
name: 'cbxInsDecentral',
valueName: 'insDecentral',
},
},
{
title: 'Тип страхования КАСКО',
Component: Radio,
props: {
name: 'radioInsKaskoType',
valueName: 'insKaskoType',
style: 'button',
},
},
{
title: 'Франшиза',
Component: InputNumber,
props: {
min: '0',
max: '300000',
step: '10000.00',
name: 'tbxInsFranchise',
valueName: 'insFranchise',
},
},
// {
// 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,
},
},
// {
// title: 'Стоимость страхования доп.оборудования',
// Component: InputNumber,
// props: {
// min: '10000',
// max: '1000000000',
// step: '10000.00',
// name: 'tbxInsAddEquipmentPrice',
// valueName: 'insAddEquipmentPrice',
// },
// },
],
},
{
elements: [
{
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: 'ghost',
name: 'btnDriversApplication',
text: 'Заявление на ограничения по водителям',
onClick: undefined,
},
},
],
},
{
elements: [
{
title: 'Марка GPS',
Component: Select,
props: {
name: 'selectGPSBrand',
valueName: 'GPSBrand',
},
},
{
title: 'Модель GPS',
Component: Select,
props: {
name: 'selectGPSModel',
valueName: 'GPSModel',
},
},
{
title: 'Регион регистрации',
Component: Select,
props: {
name: 'selectRegionRegistration',
valueName: 'regionRegistration',
},
},
{
title: 'Город регистрации',
Component: Select,
props: {
name: 'selectTownRegistration',
valueName: 'townRegistration',
},
},
// {
// title: 'ОПФ для расчета страховки',
// Component: Select,
// props: {
// name: 'selectInfuranceOPF',
// valueName: 'infuranceOPF',
// },
// },
{
title: 'Стоимость страховки КАСКО на весь срок',
Component: InputNumber,
props: {
name: 'tbxInsKaskoPriceLeasePeriod',
computedValueName: 'insKaskoPriceLeasePeriod',
},
},
],
},
{
elements: [
{
type: ElementType.Table,
Component: Table,
props: {
name: 'tableInsurance',
columns: [
{
name: 'policyType',
title: 'Тип полиса',
Component: Label,
},
{
name: 'insuranceCompany',
title: 'Страховая компания',
Component: Select,
},
{
name: 'insured',
title: 'Плательщик',
Component: Select,
},
{
name: 'insCost',
title: 'Стоимость полиса',
Component: InputNumber,
props: {
min: '0.00',
max: '1500000.00',
step: '1000.00',
},
},
{
name: 'insTerm',
title: 'Срок страхования',
Component: Select,
},
],
},
},
],
},
],
},
],
},
{
title: 'Доп. продукты',
groups: [
{
blocks: [
{
elements: [],
},
],
},
],
},
{
title: 'Создание КП',
groups: [
{
blocks: [
{
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',
},
},
],
},
{
elements: [
{
title: 'Отображать страхование',
Component: Switch,
props: {
name: 'cbxInsurance',
valueName: 'insurance',
},
},
{
title: 'Отображать доп. оборудование',
Component: Switch,
props: {
name: 'cbxAddEquipment',
valueName: 'addEquipment',
},
},
{
title: 'Отображать регистрацию',
Component: Switch,
props: {
name: 'cbxRegistrationQuote',
valueName: 'registrationQuote',
},
},
],
},
{
elements: [
{
title: 'Отображать карту техпомощи',
Component: Switch,
props: {
name: 'cbxTechnicalCardQuote',
valueName: 'technicalCardQuote',
},
},
{
title: 'Отображать НСИБ',
Component: Switch,
props: {
name: 'cbxNSIB',
valueName: 'NSIB',
},
},
{
title: 'Отображать график досрочного выкупа',
Component: Switch,
props: {
name: 'cbxQuoteRedemptionGraph',
valueName: 'quoteRedemptionGraph',
},
},
],
},
{
elements: [
{
title: 'Имя',
Component: Input,
props: {
name: 'tbxQuoteName',
valueName: 'quoteName',
},
},
],
layout: {
newLine: true,
},
},
{
elements: [
{
title: 'Пол',
Component: Radio,
props: {
name: 'radioQuoteContactGender',
valueName: 'quoteContactGender',
style: 'button',
},
},
],
},
],
},
{
blocks: [
{
elements: [
{
Component: Button,
props: {
type: 'primary',
size: 'large',
name: 'btnCreateKP',
text: 'Создать КП',
onClick: undefined,
},
},
],
},
],
},
],
},
{
title: 'Без ограничений',
groups: [
{
blocks: [
{
elements: [
{
title: 'Загрузить сессию пользователя',
Component: Select,
props: {
name: 'selectUserSession',
valueName: 'userSession',
},
},
],
},
],
},
{
blocks: [
{
elements: [
{
title: 'Отключить все проверки',
Component: Switch,
props: {
name: 'cbxDisableChecks',
valueName: 'disableChecks',
},
},
{
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',
},
},
{
title: 'Требование телематики',
Component: Radio,
props: {
name: 'radioRequirementTelematic',
valueName: 'requirementTelematic',
style: 'button',
},
},
],
},
{
elements: [
{
title: 'Децентрализованное страхование',
Component: Switch,
props: {
name: 'cbxInsuranceDecentral',
valueName: 'insuranceDecentral',
},
},
{
title: 'Макс.возможное изменение стоимости ПЛ',
Component: InputNumber,
props: {
min: '0',
max: '1000000000',
step: '10000.00',
name: 'tbxMaxPriceChange',
valueName: 'maxPriceChange',
},
},
{
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',
},
},
],
},
],
},
],
},
];
export default sections;