move elements

This commit is contained in:
Владислав Чикалкин 2020-09-03 17:34:05 +03:00
parent bc9be896fb
commit 876838e685
4 changed files with 451 additions and 302 deletions

View File

@ -19,26 +19,28 @@ export default [
title: 'Выбор Интереса/ЛС',
Component: Select,
props: {
name: 'searchSource',
name: 'selectSource',
valueName: 'source',
showSearch: true,
},
},
{
title: 'Выбор Предложения',
Component: Select,
props: {
name: 'searchQuote',
name: 'selectQuote',
valueName: 'quote',
showSearch: true,
},
},
{
title: 'Выбор шаблона',
Component: Select,
props: {
name: 'searchTemplate',
valueName: 'template',
},
},
// {
// title: 'Выбор шаблона',
// Component: Select,
// props: {
// name: 'selectTemplate',
// valueName: 'template',
// },
// },
/** */
{
@ -52,8 +54,16 @@ export default [
props: {
name: 'selectChannel',
valueName: 'channel',
showSearch: true,
},
},
/** */
{
divider: { empty: true },
},
/** */
{
title: 'Новый контрагент',
Component: Input,
@ -66,8 +76,9 @@ export default [
title: 'Существующий контрагент',
Component: Select,
props: {
name: 'searchAccount',
name: 'selectAccount',
valueName: 'account',
showSearch: true,
},
},
@ -81,6 +92,7 @@ export default [
title: 'ИНН',
Component: Input,
props: {
// TODO regular min: 10, max: 12
name: 'tbxINN',
valueName: 'INN',
},
@ -89,18 +101,11 @@ export default [
title: 'КПП',
Component: Input,
props: {
// TODO regular min: 9, max: 9
name: 'tbxKPP',
valueName: 'KPP',
},
},
{
title: 'Контактное лицо контрагента',
Component: Select,
props: {
name: 'searchContact',
valueName: 'contact',
},
},
/** */
{
@ -109,13 +114,38 @@ export default [
/** */
{
title: 'Контактное лицо',
title: 'Контактное лицо контрагента',
Component: Select,
props: {
name: 'selectContactClient',
valueName: 'contactClient',
showSearch: true,
},
},
{
title: 'Контактное лицо',
Component: Input,
props: {
name: 'tbxContact',
valueName: 'contact',
},
},
{
title: 'Пол контактного лица',
Component: Select,
props: {
name: 'selectContactGender',
valueName: 'contactGender',
showSearch: false,
},
},
/** */
{
divider: { empty: true },
},
/** */
{
title: 'Телефон',
Component: Input,
@ -124,6 +154,7 @@ export default [
name: 'tbxPhoneNumber',
valueName: 'phoneNumber',
pattern: undefined,
//TODO: mask + 7(999) 999 99 99
},
},
{
@ -134,14 +165,7 @@ export default [
name: 'tbxEmailAddress',
valueName: 'emailAddress',
pattern: undefined,
},
},
{
title: 'Пол контактного лица',
Component: Select,
props: {
name: 'selectContactGender',
valueName: 'contactGender',
//TODO check email valid
},
},
@ -155,24 +179,27 @@ export default [
title: 'Поставщик',
Component: Select,
props: {
name: 'searchSupplier',
name: 'selectSupplier',
valueName: 'supplier',
showSearch: true,
},
},
{
title: 'Финотдел',
Component: Select,
props: {
name: 'searchFinDepartment',
name: 'selectFinDepartment',
valueName: 'finDepartment',
showSearch: false,
},
},
{
title: 'Брокер',
Component: Select,
props: {
name: 'SearchBroker',
name: 'selectBroker',
valueName: 'broker',
showSearch: false,
},
},
@ -186,16 +213,18 @@ export default [
title: 'Агент',
Component: Select,
props: {
name: 'SearchAgent',
name: 'selectAgent',
valueName: 'agent',
showSearch: true,
},
},
{
title: 'Двойной агент',
Component: Select,
props: {
name: 'SearchDoubleAgent',
name: 'selectDoubleAgent',
valueName: 'doubleAgentgent',
showSearch: true,
},
},
@ -232,8 +261,16 @@ export default [
},
layout: {
size: 'min',
flexDirection: 'row',
},
},
/** */
{
divider: { empty: true },
},
/** */
{
Component: Button,
props: {
@ -296,7 +333,7 @@ export default [
valueName: 'supplierCurrency',
},
},
/** */
{
divider: { empty: true },
@ -319,7 +356,7 @@ export default [
valueName: 'supplierDiscountPerc',
},
},
/** */
{
divider: { empty: true },
@ -350,7 +387,7 @@ export default [
valueName: 'addEquipmentPayer',
},
},
/** */
{
divider: { empty: true },
@ -381,7 +418,7 @@ export default [
valueName: 'firstPaymentRub',
},
},
/** */
{
divider: { empty: true },
@ -412,7 +449,7 @@ export default [
valueName: 'lastPaymentRub',
},
},
/** */
{
divider: { empty: true },
@ -435,7 +472,7 @@ export default [
valueName: 'graphType',
},
},
/** */
{
divider: { empty: true },
@ -458,7 +495,7 @@ export default [
valueName: 'comissionRub',
},
},
/** */
{
divider: { empty: true },
@ -502,86 +539,13 @@ export default [
valueName: 'leaseObjectType',
},
},
/** */
{
title: 'Срок поставки',
Component: Select,
props: {
name: 'selectDeliveryTime',
valueName: 'deliveryTime',
},
},
{
title: 'Риск ПЛ',
Component: Select,
props: {
name: 'selectLeaseObjectRisk',
valueName: 'leaseObjectRisk',
},
},
{
title: 'Группа обесценения',
Component: Select,
props: {
name: 'selectDepreciationGroup',
valueName: 'depreciationGroup',
},
},
{
title: 'Кол-во ПЛ в расчете',
Component: InputNumber,
props: {
name: 'tbxLeaseObjectCount',
valueName: 'leaseObjectCount',
},
},
{
title: 'ТС с прицепом',
Component: Select,
props: {
name: 'cbxWithTrailer',
valueName: 'withTrailer',
},
},
{
title: 'ПЛ БУ',
Component: Switch,
props: {
name: 'cbxLeaseObjectUsed',
valueName: 'leaseObjectUsed',
},
},
{
title: 'Разрешенная макс.масса(кг)',
Component: InputNumber,
props: {
name: 'tbxMaxMass',
valueName: 'maxMass',
},
},
{
title: 'Количество мест',
Component: InputNumber,
props: {
name: 'tbxCountSeats',
valueName: 'countSeats',
},
},
{
title: 'Максимальная конструктивная скорость (при ПСМ)',
Component: InputNumber,
props: {
name: 'tbxMaxSpeed',
valueName: 'maxSpeed',
},
},
{
title: 'Грузоподъемность, т',
Component: InputNumber,
props: {
name: 'tbxTonnage',
valueName: 'tonnage',
},
divider: { empty: true },
},
/** */
{
title: 'Марка',
Component: Select,
@ -606,6 +570,71 @@ export default [
valueName: 'configuration',
},
},
/** */
{
divider: { empty: true },
},
/** */
{
title: 'Риск ПЛ',
Component: Select,
props: {
name: 'selectLeaseObjectRisk',
valueName: 'leaseObjectRisk',
},
},
{
title: 'Группа обесценения',
Component: Select,
props: {
name: 'selectDepreciationGroup',
valueName: 'depreciationGroup',
},
},
/** */
{
divider: { empty: true },
},
/** */
{
title: 'Кол-во ПЛ в расчете',
Component: InputNumber,
props: {
name: 'tbxLeaseObjectCount',
valueName: 'leaseObjectCount',
},
},
{
title: 'ПЛ БУ',
Component: Switch,
props: {
name: 'cbxLeaseObjectUsed',
valueName: 'leaseObjectUsed',
},
layout: {
size: 'min',
// flexDirection: 'row',
},
},
{
title: 'ТС с прицепом',
Component: Select,
props: {
name: 'cbxWithTrailer',
valueName: 'withTrailer',
},
},
/** */
{
divider: { empty: true },
},
/** */
{
title: 'Год выпуска',
Component: InputNumber,
@ -614,14 +643,6 @@ export default [
valueName: 'leaseObjectYear',
},
},
{
title: 'Тип двигателя',
Component: Select,
props: {
name: 'selectEngineType',
valueName: 'engineType',
},
},
{
title: 'Категория ТС',
Component: Select,
@ -630,6 +651,29 @@ export default [
valueName: 'leaseObjectCategory',
},
},
{
title: 'Срок поставки',
Component: Select,
props: {
name: 'selectDeliveryTime',
valueName: 'deliveryTime',
},
},
/** */
{
divider: { empty: true },
},
/** */
{
title: 'Тип двигателя',
Component: Select,
props: {
name: 'selectEngineType',
valueName: 'engineType',
},
},
{
title: 'Мощность, л.с.',
Component: InputNumber,
@ -646,6 +690,59 @@ export default [
valueName: 'engineVolume',
},
},
/** */
{
divider: { empty: true },
},
/** */
{
title: 'Разрешенная макс.масса(кг)',
Component: InputNumber,
props: {
name: 'tbxMaxMass',
valueName: 'maxMass',
},
},
{
title: 'Количество мест',
Component: InputNumber,
props: {
name: 'tbxCountSeats',
valueName: 'countSeats',
},
},
/** */
{
divider: { empty: true },
},
/** */
{
title: 'Максимальная конструктивная скорость (при ПСМ)',
Component: InputNumber,
props: {
name: 'tbxMaxSpeed',
valueName: 'maxSpeed',
},
},
{
title: 'Грузоподъемность, т',
Component: InputNumber,
props: {
name: 'tbxTonnage',
valueName: 'tonnage',
},
},
/** */
{
divider: { empty: true },
},
/** */
{
title: 'ПЛ используется для',
Component: Select,
@ -656,6 +753,219 @@ export default [
},
],
},
{
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: {
name: 'tbxDealerRewardSumm',
valueName: 'dealerRewardSumm',
},
},
/** */
{
divider: { empty: true },
},
/** */
{
title: 'Брокер поставщика',
Component: Select,
props: {
name: 'selectDealerBroker',
valueName: 'dealerBroker',
},
},
{
title: 'Брокер поставщика',
Component: Select,
props: {
name: 'selectDealerBroker',
valueName: 'dealerBroker',
},
},
{
title: 'Условие АВ брокера поставщика',
Component: Select,
props: {
name: 'selectDealerBrokerRewardСondition',
valueName: 'dealerBrokerRewardСondition',
},
},
{
title: 'Размер АВ брокера поставщика',
Component: InputNumber,
props: {
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: {
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: {
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: {
name: 'tbxCalcBrokerRewardSum',
valueName: 'calcBrokerRewardSum',
},
},
/** */
{
divider: { empty: true },
},
/** */
{
title: 'Финотдел',
Component: Select,
props: {
name: 'selectFinDepartment',
valueName: 'finDepartment',
},
},
{
title: 'Условие АВ финотдела',
Component: Select,
props: {
name: 'selectFinDepartmentRewardCondtion',
valueName: 'finDepartmentRewardCondtion',
},
},
{
title: 'Размер АВ финотдела',
Component: InputNumber,
props: {
name: 'tbxFinDepartmentRewardSumm',
valueName: 'finDepartmentRewardSumm',
},
},
],
},
{
title: 'Страхование',
elements: [
@ -871,171 +1181,6 @@ export default [
},
],
},
{
title: 'Поставщик/агент',
elements: [
{
title: 'Салон приобретения',
Component: Select,
props: {
name: 'SearchDealer',
valueName: 'dealer',
},
},
{
title: 'ЮЛ поставщика',
Component: Select,
props: {
name: 'SearchDealerPerson',
valueName: 'dealerPerson',
},
},
{
title: 'Условие АВ ЮЛ поставщика',
Component: Select,
props: {
name: 'searchDealerRewardСondition',
valueName: 'dealerRewardСondition',
},
},
{
title: 'Размер АВ ЮЛ поставщика',
Component: InputNumber,
props: {
name: 'tbxDealerRewardSumm',
valueName: 'dealerRewardSumm',
},
},
{
title: 'Брокер поставщика',
Component: Select,
props: {
name: 'SearchDealerBroker',
valueName: 'dealerBroker',
},
},
{
title: 'Брокер поставщика',
Component: Select,
props: {
name: 'SearchDealerBroker',
valueName: 'dealerBroker',
},
},
{
title: 'Условие АВ брокера поставщика',
Component: Select,
props: {
name: 'searchDealerBrokerRewardСondition',
valueName: 'dealerBrokerRewardСondition',
},
},
{
title: 'Размер АВ брокера поставщика',
Component: InputNumber,
props: {
name: 'tbxDealerBrokerRewardSumm',
valueName: 'dealerBrokerRewardSumm',
},
},
{
title: 'Агент ФЛ',
Component: Select,
props: {
name: 'searchIndAgent',
valueName: 'indAgent',
},
},
{
title: 'Условие АВ агента ФЛ',
Component: Select,
props: {
name: 'SelectIndAgentRewardCondition',
valueName: 'indAgentRewardCondition',
},
},
{
title: 'Размер АВ агента ФЛ',
Component: InputNumber,
props: {
name: 'tbxIndAgentRewardSumm',
valueName: 'indAgentRewardSumm',
},
},
{
title: 'Двойной агент',
Component: Select,
props: {
name: 'searchCalcDoubleAgent',
valueName: 'calcDoubleAgent',
},
},
{
title: 'Условия АВ двойного агента',
Component: Select,
props: {
name: 'searchCalcDoubleAgentRewardCondition',
valueName: 'calcDoubleAgentRewardCondition',
},
},
{
title: 'Размер АВ двойного агента',
Component: InputNumber,
props: {
name: 'tbxCalcDoubleAgentRewardSumm',
valueName: 'calcDoubleAgentRewardSumm',
},
},
{
title: 'Брокер',
Component: Select,
props: {
name: 'searchCalcBroker',
valueName: 'calcBroker',
},
},
{
title: 'Условие АВ брокера',
Component: Select,
props: {
name: 'searchCalcBrokerRewardCondition',
valueName: 'calcBrokerRewardCondition',
},
},
{
title: 'Размер АВ брокера',
Component: InputNumber,
props: {
name: 'tbxCalcBrokerRewardSum',
valueName: 'calcBrokerRewardSum',
},
},
{
title: 'Финотдел',
Component: Select,
props: {
name: 'searchFinDepartment',
valueName: 'finDepartment',
},
},
{
title: 'Условие АВ финотдела',
Component: Select,
props: {
name: 'searchFinDepartmentRewardCondtion',
valueName: 'finDepartmentRewardCondtion',
},
},
{
title: 'Размер АВ финотдела',
Component: InputNumber,
props: {
name: 'tbxFinDepartmentRewardSumm',
valueName: 'finDepartmentRewardSumm',
},
},
],
},
{
title: 'Без ограничений',
elements: [
@ -1043,7 +1188,7 @@ export default [
title: 'Тариф',
Component: Select,
props: {
name: 'searchTarif',
name: 'selectTarif',
valueName: 'Tarif',
},
},
@ -1067,7 +1212,7 @@ export default [
title: 'Ставка привлечения',
Component: Select,
props: {
name: 'searchRate',
name: 'selectRate',
valueName: 'rate',
},
},
@ -1075,7 +1220,7 @@ export default [
title: 'Загрузить сессию пользователя',
Component: Select,
props: {
name: 'searchUserSession',
name: 'selectUserSession',
valueName: 'userSession',
},
},

View File

@ -10,20 +10,24 @@ const Input = ({
readonly,
type,
pattern,
prefix,
suffix,
placeholder,
addonBefore,
addonAfter,
valueName,
computedValue
computedValue,
}) => {
const { value, setCurrentValue } = useStoreValue({
computedValue,
valueName
valueName,
});
const { status } = useStatus(name);
return (
<AntInput
prefix={prefix}
suffix={suffix}
disabled={status === Status.Disabled}
readOnly={readonly}
type={type}
@ -32,7 +36,7 @@ const Input = ({
addonBefore={addonBefore}
addonAfter={addonAfter}
value={value}
onChange={e => setCurrentValue(e.target.value)}
onChange={(e) => setCurrentValue(e.target.value)}
/>
);
};

View File

@ -9,19 +9,20 @@ import { useOptions } from 'client/hooks/useOptions';
const Select = ({ name, showSearch, computedValue, valueName }) => {
const { value, setCurrentValue } = useStoreValue({
computedValue,
valueName
valueName,
});
const { status } = useStatus(name);
const { options, filter } = useOptions(name);
console.log('Select -> showSearch', showSearch);
return (
<AntSelect
disabled={status === Status.Disabled}
showSearch={showSearch || true}
showSearch={showSearch}
optionFilterProp="children"
filterOption={filter}
value={value}
onChange={value => setCurrentValue(value)}
onChange={(value) => setCurrentValue(value)}
>
{options.map((option, i) => (
<AntSelect.Option key={i} value={option.value}>

View File

@ -1,9 +1,8 @@
const initialOptions: any = {
cars: [
selectChannel: [
{
name: 'Audi',
value: '11111',
otherData: 'jldfksjodfj'
},
{
name: 'BMW',