fake data for components

This commit is contained in:
Владислав Чикалкин 2020-09-21 14:44:38 +03:00
parent 246be46626
commit 1e72022551
11 changed files with 434 additions and 14 deletions

View File

@ -50,6 +50,7 @@
"@types/cookie-parser": "^1.4.2",
"@types/cors": "^2.8.7",
"@types/express": "^4.17.7",
"@types/faker": "^5.1.0",
"@types/lodash": "^4.14.159",
"@types/morgan": "^1.9.1",
"@types/node": "^14.6.0",
@ -58,6 +59,7 @@
"@types/styled-system": "^5.1.10",
"agentkeepalive": "^4.1.3",
"dotenv": "^8.2.0",
"faker": "^5.1.0",
"http-proxy-middleware": "^1.0.5",
"rimraf": "^3.0.2",
"webpack-node-externals": "^2.5.1"

View File

@ -946,7 +946,7 @@ export default [
title: 'Условие АВ агента ФЛ',
Component: Select,
props: {
name: 'SelectIndAgentRewardCondition',
name: 'selectIndAgentRewardCondition',
valueName: 'indAgentRewardCondition',
},
},

View File

@ -1,15 +1,25 @@
import { useStores } from 'client/hooks/useStores';
import { getOptions } from 'client/services/CalculationService';
import { Box, Flex } from 'client/UIKit/grid';
import React from 'react';
import React, { useEffect } from 'react';
import Results from './Results';
import Sections from './Sections';
const Calculation = () => {
const { calculationStore } = useStores();
useEffect(() => {
getOptions()
.then(options => {
calculationStore.applyOptions(options);
})
.catch(err => {
throw err;
});
}, []);
return (
<Box mx={['0', '1%', '1%', '1.5%', '2%', '10%']}>
<Flex flexWrap="wrap" mb="50px">
<Sections
flex={['1', '1', '1', '3']}
/>
<Sections flex={['1', '1', '1', '3']} />
<Results
flex={['1', '1', '1', '1']}
justifyContent="center"

View File

@ -0,0 +1,16 @@
import axios from 'axios';
export const getOptions = () =>
new Promise((resolve, reject) => {
axios
.get('/api/calculation/getOptions')
//@ts-ignore
.then(res => {
console.log(res);
const { options } = res.data;
resolve(options);
})
.catch(err => {
reject(err);
});
});

View File

@ -31,6 +31,10 @@ const valuesActions = {
setValidation(elementName, validation) {
this.validations[elementName] = validation;
},
applyOptions(options) {
this.options = { ...this.options, ...options };
},
};
export { valuesData, valuesActions };

View File

@ -0,0 +1,364 @@
import { TElements } from 'core/types/elements';
import faker from 'faker';
const calculationFakeData: TElements<any> = {
selectSupplier: [
{
name: 'RENAULT (Престиж)',
value: faker.random.uuid(),
},
{
name: 'MITSUBISHI (Рольф)',
value: faker.random.uuid(),
},
{
name: 'Volkswagen (ФаворитАвто)',
value: faker.random.uuid(),
},
],
selectFinDepartment: [
{
name: 'Финотдел1',
value: faker.random.uuid(),
},
{
name: 'Финотдел2',
value: faker.random.uuid(),
},
{
name: 'Финотдел3',
value: faker.random.uuid(),
},
],
selectAddEquipmentCurrency: [
{
name: 'RUB',
value: 'rub',
},
{
name: 'USD',
value: 'usd',
},
{
name: 'EUR',
value: 'eur',
},
],
selectClientType: [
{
name: 'Новый',
value: 'new',
},
{
name: 'Повторный',
value: 'repeat',
},
],
selectClientRisk: [
{
name: 'Низкий',
value: 'low',
},
{
name: 'Средний',
value: 'mid',
},
{
name: 'Высокий',
value: 'high',
},
],
selectProduct: [
{
name: 'Такси',
value: 'Taxi',
},
{
name: 'ЕвоХард',
value: 'EuroHard',
},
],
selectLeaseObjectType: [
{
name: 'Легковой автомобиль',
value: 'lehkovoy',
},
{
name: 'Грузовой автомобиль',
value: 'gruzovoy',
},
{
name: 'Спецтехника',
value: 'special',
},
{
name: 'Прицеп',
value: 'prizep',
},
],
selectBrand: [
{
name: 'Audi',
value: 'audi',
},
{
name: 'BMW',
value: 'bmw',
},
{
name: 'Chevrolet',
value: 'chevrolet',
},
{
name: 'Toyota',
value: 'toyota',
},
],
selectModel: [
{
name: 'Q5',
value: 'q5',
brand: 'audi',
},
{
name: 'A3',
value: 'a3',
brand: 'audi',
},
],
selectConfiguration: [
{
name: 'Комплектация 1',
value: 'compl1',
},
{
name: 'Комплектация 2',
value: 'compl2',
},
],
selectDealer: [
{
name: 'RENAULT (Престиж)',
value: faker.random.uuid(),
},
{
name: 'MITSUBISHI (Рольф)',
value: faker.random.uuid(),
},
{
name: 'Volkswagen (ФаворитАвто)',
value: faker.random.uuid(),
},
],
selectDealerPerson: [
{
name: 'ООО "Престиж-Авто"',
value: faker.random.uuid(),
},
{
name: 'ООО "Рольф"',
value: faker.random.uuid(),
},
{
name: 'ООО "Авто-Рус-Моторс',
value: faker.random.uuid(),
},
],
selectDealerRewardСondition: [
{
name: 'АВ не более 3% ЮЛ Новый',
value: faker.random.uuid(),
},
{
name: ' АВ не более 1,5% ЮЛ Новый',
value: faker.random.uuid(),
},
{
name: 'АВ не более 1% ЮЛ Новый',
value: faker.random.uuid(),
},
],
selectDealerBroker: [
{
name: 'ИП Иванов',
value: 'Ivanov',
},
{
name: 'ИП Смирнов',
value: 'Smirnov',
},
],
selectDealerBrokerRewardСondition: [
{
name: 'АВ не более 3% Брокер Новый',
value: faker.random.uuid(),
},
{
name: ' АВ не более 1,5% Брокер Новый',
value: faker.random.uuid(),
},
{
name: 'АВ не более 1% Брокер Новый',
value: faker.random.uuid(),
},
],
selectIndAgentRewardCondition: [
{
name: 'АВ не более 3% ФЛ Новый',
value: faker.random.uuid(),
},
{
name: ' АВ не более 1,5% ФЛ Новый',
value: faker.random.uuid(),
},
{
name: 'АВ не более 1% ФЛ Новый',
value: faker.random.uuid(),
},
],
selectCalcBrokerRewardCondition: [
{
name: 'АВ не более 3% Брокер Новый',
value: faker.random.uuid(),
},
{
name: ' АВ не более 1,5% Брокер Новый',
value: faker.random.uuid(),
},
{
name: 'АВ не более 1% Брокер Новый',
value: faker.random.uuid(),
},
],
selectFinDepartmentRewardCondtion: [
{
name: 'АВ не более 3% ФиноФинотдел Новый',
value: faker.random.uuid(),
},
{
name: ' АВ не более 1,5% Финотдел Новый',
value: faker.random.uuid(),
},
{
name: 'АВ не более 1% Финотдел Новый',
value: faker.random.uuid(),
},
],
selectGPSBrand: [
{ name: 'Цезарь Сателлит', value: 'cezar' },
{ name: 'Аркан', value: 'arkan' },
{ name: 'КобраКоннекс', value: 'kobra' },
],
selectGPSModel: [
{
name: 'OmegaX',
value: 'omegax',
},
{
name: 'Platinum',
value: 'platinum',
},
],
selectRegionRegistration: [
{
name: 'Московская',
value: 'moscow',
},
{
name: 'Калининградская',
value: 'kaliningrad',
},
],
selectTownRegistration: [
{
name: 'Калининградская',
value: 'kaliningrad',
},
{
name: 'Рязань',
value: 'ryazan',
},
],
selectLead: [
{
name: '100_ООО "Архимаг',
value: faker.random.uuid(),
},
{
name: '150_ООО "Некромант',
value: faker.random.uuid(),
},
{
name: '200_ООО "Кардинал',
value: faker.random.uuid(),
},
],
selectOpportunity: [
{
name: '112345_ООО "Архимаг',
value: faker.random.uuid(),
},
{
name: '145678_ООО "Некромант',
value: faker.random.uuid(),
},
{
name: '243910_ООО Кардинал',
value: faker.random.uuid(),
},
],
selectQuote: [
{
name: '2345_ООО "Архимаг"',
value: faker.random.uuid(),
},
{
name: '6789_ООО "Некромант"',
value: faker.random.uuid(),
},
{
name: '8765_ООО "Кардинал',
value: faker.random.uuid(),
},
],
selectBroker: [
{
name: 'ИП Иванов',
value: 'Ivanov',
},
{
name: 'ИП Смирнов',
value: 'Smirnov',
},
],
selectAccount: [
{
name: 'Архимаг',
value: faker.random.uuid(),
},
{
name: 'Некромант',
value: faker.random.uuid(),
},
{
name: 'Кардинал',
value: faker.random.uuid(),
},
],
selectContactClient: [
{
name: 'Семенов Семен Семенович',
value: faker.random.uuid(),
},
{
name: 'Иванова Александра Сергеевна',
value: faker.random.uuid(),
},
{
name: 'Алексеев Алексей Алексеевич',
value: faker.random.uuid(),
},
],
};
export default calculationFakeData;

View File

@ -1,6 +1,6 @@
export type ElementsNames =
| 'SelectLead'
| 'SelectOpportunity'
| 'selectLead'
| 'selectOpportunity'
| 'selectQuote'
| 'cbxRecalcWthtRevision'
| 'selectTemplate'
@ -75,7 +75,7 @@ export type ElementsNames =
| 'selectDealerBrokerRewardСondition'
| 'tbxDealerBrokerRewardSumm'
| 'selectIndAgent'
| 'SelectIndAgentRewardCondition'
| 'selectIndAgentRewardCondition'
| 'tbxIndAgentRewardSumm'
| 'selectCalcDoubleAgent'
| 'selectCalcDoubleAgentRewardCondition'
@ -118,7 +118,7 @@ export type ElementsNames =
| 'selectTarif'
| 'tbxCreditRate'
| 'selectRate'
| 'SelectUserSession'
| 'selectUserSession'
| 'radioRequirementTelematic'
| 'cbxInsuranceDecentral'
| 'tbxMaxPriceChange'

View File

@ -10,6 +10,7 @@ import { TStatuses, Status } from './statuses';
export interface ICalculationStore {
options: TElements<any>;
applyOptions: (options: TElements<any>) => void;
filters: TElements<any>;
values: TValues;

View File

@ -0,0 +1,13 @@
import { Request, Response } from 'express';
import calculationFakeData from '../../core/fakeData/calculation';
class CalculationController {
static getOptions = async (req: Request, res: Response): Promise<void> => {
// request to Core
const options = calculationFakeData;
res.send({ options });
};
}
export default CalculationController;

View File

@ -0,0 +1,8 @@
import CalculationController from '../controllers/CalculationController';
import { Router } from 'express';
const router = Router();
router.get('/getOptions', CalculationController.getOptions);
export default router;

View File

@ -1,10 +1,12 @@
import { Router } from "express";
import values from "./values";
import users from "./users";
import { Router } from 'express';
import values from './values';
import users from './users';
import calculation from './calculation';
const routes = Router();
routes.use("/api/values", values);
routes.use("/api/users", users);
routes.use('/api/values', values);
routes.use('/api/users', users);
routes.use('/api/calculation', calculation);
export default routes;