stores: add default options

This commit is contained in:
Chika 2022-05-29 20:33:55 +03:00
parent 94a624b6b6
commit a1d2ba6e98
3 changed files with 396 additions and 3 deletions

View File

@ -9,7 +9,6 @@ export type BaseElementProps<ValueType> = {
};
export type BaseOption = {
name: string;
label: string;
value: any;
};

393
config/default-options.ts Normal file
View File

@ -0,0 +1,393 @@
import { orderBy } from 'lodash';
import type { CalculationOptions } from 'stores/calculation/options/types';
const defaultOptions: Partial<CalculationOptions> = {
radioLastPaymentRule: [
{
label: 'равен платежу',
value: 100000002,
},
{
label: 'в рублях',
value: 100000000,
},
{
label: 'в %',
value: 100000001,
},
],
radioBalanceHolder: [
{
label: 'Лизингополучатель',
value: 100000000,
},
{
label: 'Лизингодатель',
value: 100000001,
},
],
radioGraphType: [
{
label: 'аннуитет',
value: 100000000,
},
{
label: 'дегрессия (ступенчатая)',
value: 100000001,
},
{
label: 'равноубывающий',
value: 100000002,
},
{
label: 'сезонный',
value: 100000003,
},
{
label: 'легкий старт',
value: 100000004,
},
],
selectSeasonType: [
{
label: '6/6',
value: 100000000,
},
{
label: '8/4',
value: 100000001,
},
{
label: '4/4/4',
value: 100000002,
},
{
label: 'Гибкая дегрессия',
value: 100000007,
},
{
label: '100.50.25',
value: 100000003,
},
{
label: '100.30.10',
value: 100000004,
},
{
label: '100.70.40',
value: 100000005,
},
{
label: '100.7.3',
value: 100000006,
},
],
selectHighSeasonStart: Array.from(
{
length: 12,
},
(_, i) => ({
label: `${i + 2}`,
value: 100000000 + i,
})
),
radioDeliveryTime: [
{
label: 'В наличии',
value: 100000000,
},
{
label: 'В поставке',
value: 100000001,
},
],
selectEngineType: [
{
label: 'Бензин',
value: 100000000,
},
{
label: 'Дизель',
value: 100000001,
},
{
label: 'Газ',
value: 100000002,
},
{
label: 'Электрический',
value: 100000003,
},
{
label: 'Гибрид',
value: 100000004,
},
],
selectLeaseObjectCategory: [
{
label: 'A',
value: 100000000,
},
{
label: 'B',
value: 100000001,
},
{
label: 'C',
value: 100000002,
},
{
label: 'D',
value: 100000003,
},
{
label: 'Прицеп',
value: 100000004,
},
],
selectLeaseObjectUseFor: orderBy(
[
{
label: 'Для представительских целей',
value: 100000000,
},
{
label: 'Для использования в качестве «такси»',
value: 100000001,
},
{
label: 'Для передачи третьим лицам (прокат; аренда)',
value: 100000002,
},
{
label: 'Каршеринг',
value: 100000003,
},
{
label: 'Тест-драйв',
value: 100000004,
},
{
label: 'Для доставки продуктов конечному потребителю',
value: 100000005,
},
{
label: 'Для обучения вождению',
value: 100000006,
},
{
label: 'Маршрутные такси / Рейсовые автобусы',
value: 100000007,
},
{
label: 'Междугородние перевозки',
value: 100000008,
},
{
label: 'Для перевозки крупногабаритных грузов',
value: 100000009,
},
{
label: 'Для перевозки малогабаритных грузов',
value: 100000010,
},
{
label: 'Для перевозки сотрудников других организаций (водитель ЛП)',
value: 100000011,
},
{
label: 'Для перевозки сотрудников ЛП',
value: 100000012,
},
{
label: 'Для экскурсионных перевозок в т.ч. на торжества; трансфер в аэропорт и пр.',
value: 100000013,
},
{
label: 'Дорожно-строительная техника',
value: 100000014,
},
{
label: 'Жилищно-коммунальное хозяйство',
value: 100000015,
},
{
label: 'Лесное хозяйство',
value: 100000016,
},
{
label: 'Подъёмно-транспортная отрасль',
value: 100000017,
},
{
label: 'Сельское хозяйство',
value: 100000018,
},
{
label: 'Строительство',
value: 100000019,
},
],
(objectUseFor) => objectUseFor.label.toLowerCase(),
['asc']
),
radioInfuranceOPF: [
{
label: 'ЮЛ',
value: 100000000,
},
{
label: 'ИП',
value: 100000001,
},
],
radioInsKaskoType: [
{
label: 'Полное',
value: 100000000,
},
{
label: 'Усеченное',
value: 100000001,
},
],
radioQuoteContactGender: [
{
label: 'Мужской',
value: 100000000,
},
{
label: 'Женский',
value: 100000001,
},
],
radioRequirementTelematic: [
{
label: 'Не требуется',
value: 100000004,
},
{
label: 'START',
value: 100000000,
},
{
label: 'START+',
value: 100000001,
},
{
label: 'COMFORT',
value: 100000002,
},
{
label: 'COMFORT+',
value: 100000003,
},
{
label: 'Omnicomm_1',
value: 100000005,
},
{
label: 'Omnicomm_2',
value: 100000006,
},
{
label: 'Omnicomm_3',
value: 100000007,
},
],
radioCalcType: [
{
label: 'IRR',
value: 100000000,
},
{
label: 'Суммы',
value: 100000001,
},
],
radioObjectRegistration: [
{
label: 'Лизингополучатель',
value: 100000000,
},
{
label: 'Лизингодатель',
value: 100000001,
},
],
radioTypePTS: [
{
label: 'Бумажный',
value: 100000000,
},
{
label: 'Электронный',
value: 100000001,
},
],
selectObjectCategoryTax: [
'M1',
'M2',
'M3',
'M1G',
'M2G',
'M3G',
'N1',
'N2',
'N3',
'N1G',
'N2G',
'N3G',
'O1',
'O2',
'O3',
'O4',
'L1',
'L2',
'L3',
'L4',
'L5',
].map((label, i) => ({
label,
value: 100000000 + i,
})),
selectObjectTypeTax: [
{
label: 'Автобус',
type: 'D',
},
{
label: 'Легковой',
type: 'B',
},
{
label: 'Грузовой',
type: 'C',
},
{
label: 'Спецтехника',
type: 'T',
},
{
label: 'Мотоцикл',
type: 'A',
},
].map((v, i) => ({
...v,
value: 100000000 + i,
})),
};
export default defaultOptions;

View File

@ -4,6 +4,7 @@
/* eslint-disable object-curly-newline */
/* eslint-disable import/no-cycle */
import type { Elements } from 'Components/Calculation/config/map-values';
import defaultOptions from 'config/default-options';
import type { BaseOption } from 'Elements/types';
import { mergeWith } from 'lodash';
import { makeAutoObservable } from 'mobx';
@ -28,7 +29,7 @@ const AUTO_SET_VALUE_ELEMENTS: Elements[] = [
export default class OptionsStore {
root: RootStore;
options: Partial<CalculationOptions> = {};
options = defaultOptions;
filters: Partial<OptionsFilters> = {};
constructor(rootStore: RootStore) {
@ -36,7 +37,7 @@ export default class OptionsStore {
this.root = rootStore;
}
hydrate = (initialOptions: Partial<CalculationOptions>) => {
hydrate = (initialOptions: CalculationOptions) => {
this.options = initialOptions;
};