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 TextArea from 'client/Elements/TextArea'; export default [ { title: 'Интерес/ЛС', elements: [ { divider: { title: 'Поиск интереса в CRM' }, }, { title: 'Выбор Интереса/ЛС', Component: Select, props: { name: 'selectSource', valueName: 'source', showSearch: true, }, }, /** */ { divider: { empty: true }, }, /** */ { title: 'Выбор Предложения', Component: Select, props: { name: 'selectQuote', valueName: 'quote', showSearch: true, }, }, /** */ { divider: { empty: true }, }, /** */ { 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: 'doubleAgentgent', 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: { disabled: true, 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: { disabled: true, 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: 'selectFinDepartment', valueName: 'finDepartment', disabled: true, }, }, { 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: 'btn', 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: 'tbxINN', // valueName: 'INN', // }, // }, { 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: Select, props: { name: 'selectTarif', valueName: 'Tarif', }, }, { title: 'Ставка привлечения, %', Component: InputNumber, props: { name: 'tbxCreditRate', valueName: 'creditRate', }, }, { title: 'Ставка привлечения, %', Component: InputNumber, props: { name: 'tbxCreditRate', valueName: 'creditRate', }, }, { title: 'Ставка привлечения', Component: Select, props: { name: 'selectRate', valueName: 'rate', }, }, { title: 'Загрузить сессию пользователя', Component: Select, props: { name: 'selectUserSession', valueName: 'userSession', }, }, { title: 'Требование телематики', Component: Select, props: { name: 'selectRequirementTelematic', valueName: 'requirementTelematic', }, }, { title: 'Децентрализованное страхование', Component: Switch, props: { name: 'cbxInsuranceDecentral', valueName: 'insuranceDecentral', }, }, { title: 'Макс.возможное изменение стоимости ПЛ', Component: InputNumber, props: { name: 'tbxMaxPriceChange', valueName: 'maxPriceChange', }, }, { title: 'АВ импортера,%', Component: InputNumber, props: { name: 'tbxImporterRewardPerc', valueName: 'importerRewardPerc', }, }, { title: 'АВ импортера,руб.', Component: InputNumber, props: { name: 'tbxImporterRewardRub', valueName: 'tbxImporterRewardRub', }, }, { title: 'Отключить все проверки', Component: Switch, props: { name: 'cbxDisableChecks', valueName: 'disableChecks', }, }, ], }, ];