files list component
This commit is contained in:
parent
01f1177896
commit
c29fbf2603
@ -20,6 +20,7 @@
|
||||
"ioredis": "^4.28.2",
|
||||
"js-file-download": "^0.4.12",
|
||||
"jsonwebtoken": "^8.5.1",
|
||||
"lodash": "^4.17.21",
|
||||
"md5": "^2.3.0",
|
||||
"moment": "^2.29.1",
|
||||
"multer": "^1.4.5-lts.1",
|
||||
|
||||
@ -50,7 +50,7 @@ export default class DateInput extends React.Component
|
||||
if(disabled)
|
||||
{
|
||||
return (
|
||||
<div className="date_input_wrapper" style={{ position: "relative" }}>
|
||||
<div className="date_input_wrapper" style={[ { position: "relative", }, this.props.style ]}>
|
||||
{ plain ? (
|
||||
moment(value).format("DD.MM.YYYY")
|
||||
) : (
|
||||
@ -78,7 +78,7 @@ export default class DateInput extends React.Component
|
||||
else
|
||||
{
|
||||
return (
|
||||
<div className="date_input_wrapper">
|
||||
<div className="date_input_wrapper" style={ this.props.style }>
|
||||
<DatePicker
|
||||
messages={ messages }
|
||||
onFocus={ this._handle_onFocus }
|
||||
|
||||
31
pages/components/Modal/modal.js
Normal file
31
pages/components/Modal/modal.js
Normal file
@ -0,0 +1,31 @@
|
||||
import React, { Component } from "react";
|
||||
|
||||
class Modal extends Component
|
||||
{
|
||||
constructor(props)
|
||||
{
|
||||
super(props);
|
||||
this.state = {
|
||||
menuOpened: false,
|
||||
activeLink: ""
|
||||
};
|
||||
}
|
||||
|
||||
render()
|
||||
{
|
||||
const { children } = this.props;
|
||||
|
||||
return (
|
||||
<div className={ this.props.open ? "fade opened" : "fade" }>
|
||||
<div className="modal" style={{ maxWidth: "90vw" }}>
|
||||
{ children }
|
||||
<div className="modal_footer">
|
||||
<button className="button button-blue" onClick={() => this.props.close()}>Закрыть</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default Modal;
|
||||
28
pages/questionnaire/components/FileUploadInput.js
Normal file
28
pages/questionnaire/components/FileUploadInput.js
Normal file
@ -0,0 +1,28 @@
|
||||
import React from "react";
|
||||
import Link from "next/link";
|
||||
import { connect } from "react-redux";
|
||||
|
||||
class FileUploadInput extends React.Component
|
||||
{
|
||||
constructor(props)
|
||||
{
|
||||
super(props);
|
||||
|
||||
this.state = {
|
||||
};
|
||||
}
|
||||
|
||||
componentDidMount()
|
||||
{
|
||||
}
|
||||
|
||||
componentDidUpdate(prevProps, prevState)
|
||||
{
|
||||
}
|
||||
|
||||
render()
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
export default FileUploadInput;
|
||||
@ -38,21 +38,23 @@ class InnerMenu extends React.Component
|
||||
|
||||
_getActiveLink = (route) =>
|
||||
{
|
||||
if (route.indexOf("#main") > -1) return "Информация о лизингополучателе";
|
||||
if (route.indexOf("#contacts") > -1) return "Адреса лизингополучателя";
|
||||
if (route.indexOf("#signer") > -1) return "Информация о единоличном исполнительном органе, подписанте договора лизинга";
|
||||
if (route.indexOf("#shareholders") > -1) return "Сведения об участниках (акционерах) и бенефициарных владельцах";
|
||||
if (route.indexOf("#regulatory") > -1) return "Сведения об органах управления";
|
||||
if (route.indexOf("#non-profit") > -1) return "Данные о некомерческой организации";
|
||||
if (route.indexOf("#check") > -1) return "Проверка введеных данных";
|
||||
if (route.indexOf("#signing") > -1) return "Выбор метода подписания";
|
||||
if (route.indexOf("#main") > -1) return "1. Информация о лизингополучателе";
|
||||
if (route.indexOf("#contacts") > -1) return "2. Адреса лизингополучателя";
|
||||
if (route.indexOf("#signer") > -1) return "3. Информация о единоличном исполнительном органе, подписанте договора лизинга";
|
||||
if (route.indexOf("#shareholders") > -1) return "4. Сведения об участниках (акционерах) и бенефициарных владельцах";
|
||||
if (route.indexOf("#regulatory") > -1) return "5. Сведения об органах управления";
|
||||
if (route.indexOf("#non-profit") > -1) return "6. Данные о некомерческой организации";
|
||||
if (route.indexOf("#check") > -1) return "7. Проверка введеных данных";
|
||||
if (route.indexOf("#signing") > -1) return "8. Выбор метода подписания";
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
render()
|
||||
{
|
||||
console.log("questionnaire", this.props.questionnaire);
|
||||
const { menuOpened, } = this.state;
|
||||
const { questionnaire } = this.props;
|
||||
|
||||
return (
|
||||
<aside>
|
||||
@ -62,42 +64,42 @@ class InnerMenu extends React.Component
|
||||
<ul className={ menuOpened ? "aside_nav open" : "aside_nav" } ref={ this.menuRef }>
|
||||
<li>
|
||||
<Link href={`/questionnaire/#main`} shallow>
|
||||
<a style={{fontWeight: 400}} className={ this.props.router && this.props.router.asPath.indexOf("#main") > -1 || this.props.router.asPath.indexOf("#") < 0 ? "active" : "" }>Информация о лизингополучателе</a>
|
||||
<a style={{ fontWeight: 400, }} disabled={ questionnaire.step > 1 ? false : true } className={ this.props.router && this.props.router.asPath.indexOf("#main") > -1 || this.props.router.asPath.indexOf("#") < 0 ? "active" : "" }>1. Информация о лизингополучателе</a>
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href={`/questionnaire/#contacts`} shallow>
|
||||
<a style={{fontWeight: 400}} className={ this.props.router && this.props.router.asPath.indexOf("#contacts") > -1 ? "active" : "" }>Адреса лизингополучателя</a>
|
||||
<a style={{ fontWeight: 400, }} disabled={ questionnaire.step > 2 ? false : true } className={ this.props.router && this.props.router.asPath.indexOf("#contacts") > -1 ? "active" : "" }>2. Адреса лизингополучателя</a>
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href={`/questionnaire/#signer`} shallow>
|
||||
<a style={{fontWeight: 400}} className={ this.props.router && this.props.router.asPath.indexOf("#signer") > -1 ? "active" : "" }>Информация о единоличном исполнительном органе, подписанте договора лизинга</a>
|
||||
<a style={{ fontWeight: 400, }} disabled={ questionnaire.step > 3 ? false : true } className={ this.props.router && this.props.router.asPath.indexOf("#signer") > -1 ? "active" : "" }>3. Информация о единоличном исполнительном органе, подписанте договора лизинга</a>
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href={`/questionnaire/#shareholders`} shallow>
|
||||
<a style={{fontWeight: 400}} className={ this.props.router && this.props.router.asPath.indexOf("#shareholders") > -1 ? "active" : "" }>Сведения об участниках (акционерах) и бенефициарных владельцах</a>
|
||||
<a style={{ fontWeight: 400, }} disabled={ questionnaire.step > 4 ? false : true } className={ this.props.router && this.props.router.asPath.indexOf("#shareholders") > -1 ? "active" : "" }>4. Сведения об участниках (акционерах) и бенефициарных владельцах</a>
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href={`/questionnaire/#regulatory`} shallow>
|
||||
<a style={{fontWeight: 400}} className={ this.props.router && this.props.router.asPath.indexOf("#regulatory") > -1 ? "active" : "" }>Сведения об органах управления</a>
|
||||
<a style={{ fontWeight: 400, }} disabled={ questionnaire.step > 5 ? false : true } className={ this.props.router && this.props.router.asPath.indexOf("#regulatory") > -1 ? "active" : "" }>5. Сведения об органах управления</a>
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href={`/questionnaire/#non-profit`} shallow>
|
||||
<a style={{fontWeight: 400}} className={ this.props.router && this.props.router.asPath.indexOf("#non-profit") > -1 ? "active" : "" }>Данные о некомерческой организации</a>
|
||||
<a style={{ fontWeight: 400, }} disabled={ questionnaire.step > 6 ? false : true } className={ this.props.router && this.props.router.asPath.indexOf("#non-profit") > -1 ? "active" : "" }>6. Данные о некомерческой организации</a>
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href={`/questionnaire/#check`} shallow>
|
||||
<a style={{fontWeight: 400}} className={ this.props.router && this.props.router.asPath.indexOf("#check") > -1 ? "active" : "" }>Проверка введеных данных</a>
|
||||
<a style={{fontWeight: 400}} disabled={ questionnaire.step > 7 ? false : true } className={ this.props.router && this.props.router.asPath.indexOf("#check") > -1 ? "active" : "" }>7. Проверка введеных данных</a>
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href={`/questionnaire/#signing`} shallow>
|
||||
<a style={{fontWeight: 400}} className={ this.props.router && this.props.router.asPath.indexOf("#signing") > -1 ? "active" : "" }>Выбор метода подписания</a>
|
||||
<a style={{fontWeight: 400}} disabled={ questionnaire.step > 8 ? false : true } className={ this.props.router && this.props.router.asPath.indexOf("#signing") > -1 ? "active" : "" }>8. Выбор метода подписания</a>
|
||||
</Link>
|
||||
</li>
|
||||
</ul>
|
||||
@ -109,6 +111,7 @@ class InnerMenu extends React.Component
|
||||
function mapStateToProps(state, ownProps)
|
||||
{
|
||||
return {
|
||||
questionnaire: state.questionnaire,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
93
pages/questionnaire/components/forms/FilesList.js
Normal file
93
pages/questionnaire/components/forms/FilesList.js
Normal file
@ -0,0 +1,93 @@
|
||||
import React from "react";
|
||||
import Head from 'next/head';
|
||||
import Image from 'next/image';
|
||||
import Link from "next/link";
|
||||
import cookie from 'cookie';
|
||||
import { connect } from "react-redux";
|
||||
import numeral from "numeral";
|
||||
import pluralize from 'pluralize-ru';
|
||||
import { SpinnerCircular } from 'spinners-react';
|
||||
import Dropzone from 'react-dropzone';
|
||||
|
||||
export default class FilesList extends React.Component
|
||||
{
|
||||
constructor(props)
|
||||
{
|
||||
super(props);
|
||||
this.state = {};
|
||||
}
|
||||
|
||||
_handle_onAddFile = (files) =>
|
||||
{
|
||||
const { name, onAddFile } = this.props;
|
||||
onAddFile(name, files);
|
||||
}
|
||||
|
||||
_handle_onRemoveFile = (file_name) =>
|
||||
{
|
||||
const { name, onRemoveFile } = this.props;
|
||||
onRemoveFile(name, file_name);
|
||||
}
|
||||
|
||||
_renderFileName = (name) =>
|
||||
{
|
||||
let chunks = name.split(/(.{19})/).filter(O => O);
|
||||
console.log({chunks});
|
||||
if(chunks.length > 2)
|
||||
{
|
||||
chunks = chunks.slice(0, 2);
|
||||
if(chunks[1].length > 17)
|
||||
{
|
||||
let second_line = chunks[1].split();
|
||||
second_line.slice(0, 17);
|
||||
second_line.push("...");
|
||||
chunks[1] = second_line;
|
||||
}
|
||||
}
|
||||
|
||||
//return chunks.join("\n");
|
||||
return name;
|
||||
}
|
||||
|
||||
render()
|
||||
{
|
||||
const { files, } = this.props;
|
||||
|
||||
console.log("FilesList", "files", files);
|
||||
|
||||
return (
|
||||
<div style={{ flexDirection: "row", display: "flex", alignItems: "flex-start", justifyContent: "flex-start", gap: "2%", }}>
|
||||
|
||||
{ files.map((file, index) => (
|
||||
<div key={ index } className="dosc_list medium-icon" style={{ position: "relative", border: "1px dashed rgb(28, 1, 169)", width: "32%", height: "100px", borderRadius: "4px", display: "flex", alignItems: "center", justifyContent: "center", }}>
|
||||
<div className="row" style={{ alignItems: "center", justifyContent: "center", display: "flex", flexDirection: "row", flex: 1, marginBottom: "0px" }}>
|
||||
<p className="doc_name i-pdf extension" style={{ wordBreak: "break-all", lineHeight: "15px" }}>{ this._renderFileName(file.name) }{/*}<span style={{width: "100%"}}>Постановление</span>{*/}</p>
|
||||
</div>
|
||||
<div style={{ position: "absolute", top: "5px", right: "5px", width: "20px", height: "20px", background: "#edeff5", flex: 1, justifyContent: "center", display: "flex", alignItems: "center", borderRadius: "10px", cursor: "pointer" }} onClick={ () => this._handle_onRemoveFile(file.name) }>
|
||||
<span style={{ color: "#919399", fontSize: "12px" }}>✕</span>
|
||||
</div>
|
||||
</div>
|
||||
)) }
|
||||
|
||||
<Dropzone onDrop={ (acceptedFiles) => this._handle_onAddFile(acceptedFiles) }>
|
||||
{ ({getRootProps, getInputProps}) => (
|
||||
<div className="file_upload dropzone" { ...getRootProps() } style={{ width: "32%", height: "100px", marginBottom: "25px", marginTop: "0px", }}>
|
||||
<div className="files"></div>
|
||||
<div>
|
||||
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M28.1251 31.5H7.87402C7.57565 31.5 7.28951 31.3815 7.07853 31.1705C6.86755 30.9595 6.74902 30.6734 6.74902 30.375V5.625C6.74902 5.32663 6.86755 5.04048 7.07853 4.82951C7.28951 4.61853 7.57565 4.5 7.87402 4.5H21.3751L29.2501 12.375V30.375C29.2501 30.5227 29.221 30.669 29.1645 30.8055C29.108 30.942 29.0251 31.066 28.9206 31.1705C28.8162 31.275 28.6921 31.3578 28.5556 31.4144C28.4192 31.4709 28.2729 31.5 28.1251 31.5Z" stroke="#1C01A9" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M21.375 4.5V12.375H29.2511" stroke="#1C01A9" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M14.625 21.375H21.375" stroke="#1C01A9" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M18 18V24.75" stroke="#1C01A9" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
<label htmlFor="" className="blue unselectable">Прикрепить скан документов</label>
|
||||
</div>
|
||||
<input type="file" />
|
||||
</div>
|
||||
) }
|
||||
</Dropzone>
|
||||
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
||||
@ -23,9 +23,28 @@ export default class Form_1_Main extends React.Component
|
||||
{
|
||||
super(props);
|
||||
this.state = {
|
||||
title: "",
|
||||
inn: "",
|
||||
kpp: "",
|
||||
email: "",
|
||||
telephone: "",
|
||||
websiteurl: "",
|
||||
financial_loan: "",
|
||||
is_individual_executive: false,
|
||||
individual_executive_inn: "",
|
||||
individual_executive_kpp: "",
|
||||
individual_executive_oop: "",
|
||||
individual_executive_docnum: "",
|
||||
individual_executive_docdate: "",
|
||||
high_level: "",
|
||||
board_of_directors: "",
|
||||
collective_executive: "",
|
||||
individual_executive: "",
|
||||
other_control: "",
|
||||
address: "",
|
||||
phone_check_loading: false,
|
||||
phone_number_format_error: false,
|
||||
nko: false,
|
||||
};
|
||||
}
|
||||
|
||||
@ -72,6 +91,24 @@ export default class Form_1_Main extends React.Component
|
||||
//}
|
||||
}
|
||||
|
||||
_handle_onTextFieldChange = (name, value) =>
|
||||
{
|
||||
console.log("_handle_onTextFieldChange", name, value);
|
||||
|
||||
const update = {};
|
||||
update[name] = value;
|
||||
this.setState(update);
|
||||
}
|
||||
|
||||
_handle_onCheckboxFieldChange = (name, value) =>
|
||||
{
|
||||
console.log("_handle_onCheckboxFieldChange", name, value);
|
||||
|
||||
const update = {};
|
||||
update[name] = value;
|
||||
this.setState(update);
|
||||
}
|
||||
|
||||
_handle_onAddressChange = (value) =>
|
||||
{
|
||||
this.setState({ address: value, }, () =>
|
||||
@ -113,7 +150,7 @@ export default class Form_1_Main extends React.Component
|
||||
|
||||
render()
|
||||
{
|
||||
const { address, phone_check_loading, phone_number_format_error } = this.state;
|
||||
const { title, inn, kpp, email, telephone, websiteurl, financial_loan, nko, phone_check_loading, phone_number_format_error } = this.state;
|
||||
|
||||
return (
|
||||
<React.Fragment>
|
||||
@ -122,42 +159,42 @@ export default class Form_1_Main extends React.Component
|
||||
|
||||
<div className="form_field">
|
||||
<label>Краткое наименование</label>
|
||||
<input type="text" name="address" value={ address } placeholder="Введите нименование" onChange={ (event) => this._handle_onAddressChange(event.target.value) } required={ true }/>
|
||||
<input type="text" name="title" value={ title } placeholder="Введите нименование" onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) } required={ true }/>
|
||||
</div>
|
||||
|
||||
<div className="formgroup">
|
||||
<div className="form_field">
|
||||
<label>ИНН</label>
|
||||
<input type="text" name="address" value={ address } placeholder="Введите ИНН" onChange={ (event) => this._handle_onAddressChange(event.target.value) } required={ true }/>
|
||||
<input type="text" name="inn" value={ inn } placeholder="Введите ИНН" onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) } required={ true }/>
|
||||
</div>
|
||||
|
||||
<div className="form_field">
|
||||
<label>КПП</label>
|
||||
<input type="text" name="address" value={ address } placeholder="Введите КПП" onChange={ (event) => this._handle_onAddressChange(event.target.value) } required={ true }/>
|
||||
<input type="text" name="kpp" value={ kpp } placeholder="Введите КПП" onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) } required={ true }/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="formgroup">
|
||||
<div className="form_field">
|
||||
<label>Телефон</label>
|
||||
<input type="text" name="address" value={ address } placeholder="Введите номер" onChange={ (event) => this._handle_onAddressChange(event.target.value) } required={ true }/>
|
||||
<input type="text" name="telephone" value={ telephone } placeholder="Введите номер" onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) } required={ true }/>
|
||||
</div>
|
||||
|
||||
<div className="form_field">
|
||||
<label>Сайт</label>
|
||||
<input type="text" name="address" value={ address } placeholder="Введите адрес сайта, если есть" onChange={ (event) => this._handle_onAddressChange(event.target.value) } required={ true }/>
|
||||
<input type="text" name="websiteurl" value={ websiteurl } placeholder="Введите адрес сайта, если есть" onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) } required={ true }/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="form_field">
|
||||
<label>E-mail</label>
|
||||
<input type="text" name="address" value={ address } placeholder="Укажите адрес электронной почты" onChange={ (event) => this._handle_onAddressChange(event.target.value) } required={ true }/>
|
||||
<input type="text" name="email" value={ email } placeholder="Укажите адрес электронной почты" onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) } required={ true }/>
|
||||
<p>может использоваться для отправки лизингодателем юридически значимых сообщений в соответсвии с условиями договора лизинга, а так же для операций в электронном ПТС/ПСМ</p>
|
||||
</div>
|
||||
|
||||
<div className="form_field">
|
||||
<label>Финансовая нагрузка</label>
|
||||
<input type="text" name="address" value={ address } placeholder="Укажите сумму" onChange={ (event) => this._handle_onAddressChange(event.target.value) } required={ true }/>
|
||||
<input type="text" name="financial_loan" value={ financial_loan } placeholder="Укажите сумму" onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) } required={ true }/>
|
||||
<p>сумма текущих ежемесячных платежей по действующим кредитам/договорам лизинга</p>
|
||||
</div>
|
||||
|
||||
@ -165,13 +202,12 @@ export default class Form_1_Main extends React.Component
|
||||
<label><b>Организация является НКО</b></label>
|
||||
<div>
|
||||
<div className="form_field checkbox">
|
||||
<input type="radio" hidden="" id="" name="" />
|
||||
<label htmlFor="">Нет</label>
|
||||
<input type="radio" hidden="" id="nko_0" name="nko" checked={ nko === false } onChange={ (event) => this._handle_onCheckboxFieldChange(event.target.name, false) }/>
|
||||
<label htmlFor="nko_0" className="unselectable">Нет</label>
|
||||
</div>
|
||||
|
||||
<div className="form_field checkbox">
|
||||
<input type="radio" hidden="" id="" name="" />
|
||||
<label htmlFor="">Да</label>
|
||||
<input type="radio" hidden="" id="nko_1" name="nko" checked={ nko === true } onChange={ (event) => this._handle_onCheckboxFieldChange(event.target.name, true) }/>
|
||||
<label htmlFor="nko_1" className="unselectable">Да</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -7,13 +7,17 @@ import { connect } from "react-redux";
|
||||
import numeral from "numeral";
|
||||
import pluralize from 'pluralize-ru';
|
||||
import { SpinnerCircular } from 'spinners-react';
|
||||
import QuestionnaireForm from "../QuestionnaireForm";
|
||||
|
||||
export default class Form_2_Contacts extends React.Component
|
||||
export default class Form_2_Contacts extends QuestionnaireForm
|
||||
{
|
||||
constructor(props)
|
||||
{
|
||||
super(props);
|
||||
this.state = {
|
||||
fact_address: "",
|
||||
postal_address: "",
|
||||
address_type: "legal",
|
||||
address: "",
|
||||
phone_check_loading: false,
|
||||
phone_number_format_error: false,
|
||||
@ -60,7 +64,7 @@ export default class Form_2_Contacts extends React.Component
|
||||
|
||||
render()
|
||||
{
|
||||
const { address, phone_check_loading, phone_number_format_error } = this.state;
|
||||
const { fact_address, postal_address, address_type, phone_check_loading, phone_number_format_error } = this.state;
|
||||
|
||||
return (
|
||||
<React.Fragment>
|
||||
@ -69,30 +73,29 @@ export default class Form_2_Contacts extends React.Component
|
||||
|
||||
<div className="form_field">
|
||||
<label>Фактический адрес</label>
|
||||
<input type="text" name="address" value={ address } placeholder="Введите адрес" onChange={ (event) => this._handle_onAddressChange(event.target.value) } required={ true }/>
|
||||
<input type="text" name="fact_address" value={ fact_address } placeholder="Введите адрес" onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) } required={ true }/>
|
||||
<p>для юр.диц - заполняется, если отличается от указанного в ЕГРЮЛ; для ИП - заполняется всегда</p>
|
||||
</div>
|
||||
|
||||
<p>Прошу оригиналы счетов-фактур и актов отказанных услуг по заключенному договору лизинга направлять:</p>
|
||||
|
||||
|
||||
<div className="form_field">
|
||||
<div style={{ width: "100%" }}>
|
||||
<div className="form_field checkbox">
|
||||
<input type="radio" hidden="" id="" name="" />
|
||||
<label htmlFor="">По юридическому адресу, указанному в ЕГРЮЛ (для юрлиц)</label>
|
||||
<input type="radio" hidden="" value="legal" id="address_type_legal" name="address_type" checked={ address_type === "legal" ? true : false } onChange={ (event) => this._handle_onCheckboxFieldChange(event.target.name, event.target.value) }/>
|
||||
<label htmlFor="address_type_legal" className="unselectable">По юридическому адресу, указанному в ЕГРЮЛ (для юрлиц)</label>
|
||||
</div>
|
||||
|
||||
<div className="form_field checkbox">
|
||||
<input type="radio" hidden="" id="" name="" />
|
||||
<label htmlFor="">По фактическому адресу, указанному в настоящей анкете</label>
|
||||
<input type="radio" hidden="" value="fact" id="address_type_fact" name="address_type" checked={ address_type === "fact" ? true : false } onChange={ (event) => this._handle_onCheckboxFieldChange(event.target.name, event.target.value) }/>
|
||||
<label htmlFor="address_type_fact" className="unselectable">По фактическому адресу, указанному в настоящей анкете</label>
|
||||
</div>
|
||||
|
||||
<div className="form_field checkbox">
|
||||
<input type="radio" hidden="" id="" name="" />
|
||||
<label htmlFor="" style={{ width: "100%" }}>
|
||||
<input type="radio" hidden="" value="postal" id="address_type_postal" name="address_type" checked={ address_type === "postal" ? true : false } onChange={ (event) => this._handle_onCheckboxFieldChange(event.target.name, event.target.value) }/>
|
||||
<label htmlFor="address_type_postal" className="unselectable" style={{ width: "100%" }}>
|
||||
<span>По следующему адресу</span>
|
||||
<input type="text" name="address" value={ address } placeholder="Введите адрес электронной почты" onChange={ (event) => this._handle_onAddressChange(event.target.value) } required={ true }/>
|
||||
<input type="text" name="postal_address" value={ postal_address } placeholder="Введите адрес" onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) } disabled={ address_type === "postal" ? false : true } required={ true }/>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -8,17 +8,111 @@ import numeral from "numeral";
|
||||
import pluralize from 'pluralize-ru';
|
||||
import { SpinnerCircular } from 'spinners-react';
|
||||
import DateInput from '../../../../components/DatePicker';
|
||||
import QuestionnaireForm from "../QuestionnaireForm";
|
||||
import FilesList from "../FilesList";
|
||||
import Modal from "../../../../components/Modal/modal";
|
||||
|
||||
export default class Form_3_Signer extends React.Component
|
||||
export default class Form_3_Signer extends QuestionnaireForm
|
||||
{
|
||||
constructor(props)
|
||||
{
|
||||
super(props);
|
||||
this.state = {
|
||||
main: {
|
||||
title: "",
|
||||
inn: "",
|
||||
kpp: "",
|
||||
email: "",
|
||||
telephone: "",
|
||||
websiteurl: "",
|
||||
financial_loan: "",
|
||||
is_individual_executive: false,
|
||||
individual_executive_inn: "",
|
||||
individual_executive_kpp: "",
|
||||
individual_executive_oop: "",
|
||||
individual_executive_docnum: "",
|
||||
individual_executive_docdate: "",
|
||||
high_level: "",
|
||||
board_of_directors: "",
|
||||
collective_executive: "",
|
||||
individual_executive: "",
|
||||
other_control: "",
|
||||
},
|
||||
head_person: {
|
||||
lastname: "",
|
||||
firstname: "",
|
||||
middlename: "",
|
||||
no_middle_name: false,
|
||||
jobtitle: "",
|
||||
assignment_date: "",
|
||||
indefinite: "",
|
||||
credentials_dateend: "",
|
||||
telephone: "",
|
||||
email: "",
|
||||
identity_document: {
|
||||
doctype: "",
|
||||
seria: "",
|
||||
docnumber: "",
|
||||
issuedate: "",
|
||||
code: "",
|
||||
issueby: "",
|
||||
issueby_search_dadata: "",
|
||||
placebirth: "",
|
||||
citizenship_code: "",
|
||||
registration_address: {
|
||||
title: "",
|
||||
fias_id: "",
|
||||
}
|
||||
},
|
||||
evo_assignment_date: "",
|
||||
evo_credentials_dateend: "",
|
||||
evo_indefinite: false,
|
||||
},
|
||||
head_person_files: [],
|
||||
individual_executive_files: [],
|
||||
signatory_person: {
|
||||
not_head_person: false,
|
||||
lastname: "",
|
||||
firstname: "",
|
||||
middlename: "",
|
||||
no_middle_name: false,
|
||||
jobtitle: "",
|
||||
signer_rule_basis: "",
|
||||
signer_rule_basis_add: "",
|
||||
docdate: "",
|
||||
docnumber: "",
|
||||
delegation_agreement: false,
|
||||
telephone: "",
|
||||
email: "",
|
||||
identity_document: {
|
||||
docype: "",
|
||||
seria: "",
|
||||
docnumber: "",
|
||||
issuedate: "",
|
||||
icode: "",
|
||||
issueby: "",
|
||||
issueby_search_dadata: "",
|
||||
placebirth: "",
|
||||
citizenship_code: "",
|
||||
registration_address: {
|
||||
title: "",
|
||||
fias_id: "",
|
||||
}
|
||||
}
|
||||
},
|
||||
signatory_person_files: [],
|
||||
|
||||
personal_data_consent: false,
|
||||
|
||||
address: "",
|
||||
phone_check_loading: false,
|
||||
phone_number_format_error: false,
|
||||
date_to: ""
|
||||
date_to: "",
|
||||
evo_assignment_date: "",
|
||||
evo_credentials_dateend: "",
|
||||
evo_indefinite: false,
|
||||
|
||||
modal_show_personal_data: false,
|
||||
};
|
||||
}
|
||||
|
||||
@ -62,60 +156,464 @@ export default class Form_3_Signer extends React.Component
|
||||
|
||||
render()
|
||||
{
|
||||
const {
|
||||
//not_head_person,
|
||||
//delegation_agreement,
|
||||
personal_data_consent,
|
||||
//evo_assignment_date,
|
||||
//evo_credentials_dateend,
|
||||
evo_indefinite,
|
||||
head_person_files,
|
||||
signatory_person_files,
|
||||
individual_executive_files,
|
||||
modal_show_personal_data,
|
||||
} = this.state;
|
||||
|
||||
const { address, phone_check_loading, phone_number_format_error } = this.state;
|
||||
const { main, head_person, signatory_person } = this.state;
|
||||
const {
|
||||
not_head_person,
|
||||
delegation_agreement,
|
||||
} = signatory_person;
|
||||
|
||||
return (
|
||||
<React.Fragment>
|
||||
<form onSubmit={ this._handle_onFormSubmit } className="questionnaire questionnaire_3">
|
||||
<p className="title">3. Информация о единоличном исполнительном органе, подписанте договора лизинга</p>
|
||||
<div className="form_field">
|
||||
<label>Фамилия</label>
|
||||
<input type="text"
|
||||
id="head_person.lastname"
|
||||
name="head_person.lastname"
|
||||
value={ head_person.lastname }
|
||||
placeholder="Введите фамилию"
|
||||
onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) }
|
||||
required={ true }
|
||||
/>
|
||||
</div>
|
||||
<div className="form_field">
|
||||
<label>Имя</label>
|
||||
<input type="text"
|
||||
id="head_person.firstname"
|
||||
name="head_person.firstname"
|
||||
value={ head_person.firstname }
|
||||
placeholder="Введите имя"
|
||||
onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) }
|
||||
required={ true }
|
||||
/>
|
||||
</div>
|
||||
<div className="form_field">
|
||||
<label>Отчество <small>если имеется</small></label>
|
||||
<input type="text"
|
||||
id="head_person.middlename"
|
||||
name="head_person.middlename"
|
||||
value={ head_person.middlename }
|
||||
placeholder="Введите отчество"
|
||||
onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) }
|
||||
required={ true }
|
||||
/>
|
||||
</div>
|
||||
<div className="formgroup">
|
||||
<div className="form_field">
|
||||
<label>Серия паспорта</label>
|
||||
<input type="text"
|
||||
id="head_person.identity_document.seria"
|
||||
name="head_person.identity_document.seria"
|
||||
value={ head_person.identity_document.seria }
|
||||
placeholder="Введите серию"
|
||||
onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) }
|
||||
required={ true }
|
||||
/>
|
||||
</div>
|
||||
<div className="form_field">
|
||||
<label>Номер паспорта</label>
|
||||
<input type="text"
|
||||
id="head_person.identity_document.docnumber"
|
||||
name="head_person.identity_document.docnumber"
|
||||
value={ head_person.identity_document.docnumber }
|
||||
placeholder="Введите номер"
|
||||
onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) }
|
||||
required={ true }
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="formgroup">
|
||||
<div className="form_field">
|
||||
<label>Дата выдачи</label>
|
||||
<DateInput
|
||||
style={{ width: "calc(100% - 198px)" }}
|
||||
placeholder="Укажите дату"
|
||||
id={ "head_person.evo_assignment_date" }
|
||||
onChange={ (date) => this._handle_onTextFieldChange("head_person.identity_document.issuedate", date) }
|
||||
required={ true }
|
||||
/>
|
||||
</div>
|
||||
<div className="form_field">
|
||||
<label>Код подразделения</label>
|
||||
<input type="text"
|
||||
id="head_person.identity_document.code"
|
||||
name="head_person.identity_document.code"
|
||||
value={ head_person.identity_document.code }
|
||||
placeholder="Введите номер"
|
||||
onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) }
|
||||
required={ true }
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="form_field">
|
||||
<label>Кем выдан</label>
|
||||
<input type="text"
|
||||
id="head_person.identity_document.issueby"
|
||||
name="head_person.identity_document.issueby"
|
||||
value={ head_person.identity_document.issueby }
|
||||
placeholder="Введите наименование подразделения выдавшего документ"
|
||||
onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) }
|
||||
required={ true }
|
||||
/>
|
||||
</div>
|
||||
<div className="form_field">
|
||||
<label>Место рождения</label>
|
||||
<input type="text"
|
||||
id="head_person.identity_document.placebirth"
|
||||
name="head_person.identity_document.placebirth"
|
||||
value={ head_person.identity_document.placebirth }
|
||||
placeholder="Введите данные"
|
||||
onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) }
|
||||
required={ true }
|
||||
/>
|
||||
</div>
|
||||
<div className="form_field">
|
||||
<label>Гражданство</label>
|
||||
<select>
|
||||
<option defaultValue={"Выберите страну"} selected disabled>Выберите страну</option>
|
||||
<option>Российская Федерация</option>
|
||||
</select>
|
||||
</div>
|
||||
<div className="form_field">
|
||||
<label>Адрес регистрации</label>
|
||||
<input type="text"
|
||||
id="head_person.identity_document.registration_address.title"
|
||||
name="head_person.identity_document.registration_address.title"
|
||||
value={ head_person.identity_document.registration_address.title }
|
||||
placeholder="Введите адрес"
|
||||
onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) }
|
||||
required={ true }
|
||||
/>
|
||||
</div>
|
||||
<div className="form_field">
|
||||
<label>Должность</label>
|
||||
<input type="text"
|
||||
id="head_person.jobtitle"
|
||||
name="head_person.jobtitle"
|
||||
value={ head_person.jobtitle }
|
||||
placeholder="Укажите должность"
|
||||
onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) }
|
||||
required={ true }
|
||||
/>
|
||||
</div>
|
||||
{/*}
|
||||
<div className="form_field">
|
||||
<label>Кем выдан</label>
|
||||
<input type="text" id="head_person." name="head_person." value={ head_person. } placeholder="Введите наименование подразделения выдавшего документ" onChange={ (event) => this._handle_onAddressChange(event.target.value) } required={ true }/>
|
||||
</div>
|
||||
*/}
|
||||
<div className="form_field picker">
|
||||
<label>Дата назначения</label>
|
||||
<div style={{ display: "flex", flexWrap: "wrap", width: "calc(100% - 198px)" }}>
|
||||
<DateInput
|
||||
placeholder="Укажите дату"
|
||||
id={ "head_person.evo_assignment_date" }
|
||||
onChange={ (date) => this._handle_onTextFieldChange("head_person.evo_assignment_date", date) }
|
||||
required={ true }
|
||||
/>
|
||||
<div className="form_field checkbox" style={{width: "auto", marginLeft: "28px"}}>
|
||||
<input type="checkbox"
|
||||
hidden=""
|
||||
id="evo_indefinite"
|
||||
name="evo_indefinite"
|
||||
onChange={ (event) => this._handle_onCheckboxFieldChange(event.target.name, !evo_indefinite ? true : false) }
|
||||
/>
|
||||
<label htmlFor="evo_indefinite" className="unselectable">Полномочия бессрочны</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{ !evo_indefinite && (
|
||||
<div className="form_field picker">
|
||||
<label>Дата окончания полномочий</label>
|
||||
<div style={{ display: "flex", flexWrap: "wrap", width: "calc(100% - 198px)" }}>
|
||||
<DateInput
|
||||
placeholder="Укажите дату"
|
||||
id={ "head_person.evo_credentials_dateend" }
|
||||
onChange={ (date) => this._handle_onTextFieldChange("head_person.evo_credentials_dateend", date) }
|
||||
required={ true }
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
) }
|
||||
|
||||
<FilesList
|
||||
name="head_person_files"
|
||||
files={ head_person_files }
|
||||
onAddFile={ this._handle_onAddFile }
|
||||
onRemoveFile={ this._handle_onRemoveFile }
|
||||
/>
|
||||
|
||||
{/*}
|
||||
|
||||
<div style={{ flexDirection: "row", display: "flex", alignItems: "flex-start", justifyContent: "flex-start", gap: "2%", }}>
|
||||
|
||||
{ head_person_files.map((file, index) => (
|
||||
<div className="dosc_list medium-icon" style={{ border: "1px dashed rgb(28, 1, 169)", width: "32%", height: "100px", borderRadius: "4px", display: "flex", alignItems: "center", justifyContent: "center", }}>
|
||||
<div className="row" style={{ alignItems: "center", justifyContent: "center", display: "flex", flexDirection: "row", flex: 1, marginBottom: "0px" }}>
|
||||
<p className="doc_name i-pdf extension">№ 01/20/2020 (.PDF)<span style={{width: "100%"}}>Постановление</span></p>
|
||||
</div>
|
||||
</div>
|
||||
)) }
|
||||
<div className="file_upload dropzone" style={{ width: "32%", height: "100px", marginBottom: "25px", marginTop: "0px", }}>
|
||||
<div className="files"></div>
|
||||
<div>
|
||||
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M28.1251 31.5H7.87402C7.57565 31.5 7.28951 31.3815 7.07853 31.1705C6.86755 30.9595 6.74902 30.6734 6.74902 30.375V5.625C6.74902 5.32663 6.86755 5.04048 7.07853 4.82951C7.28951 4.61853 7.57565 4.5 7.87402 4.5H21.3751L29.2501 12.375V30.375C29.2501 30.5227 29.221 30.669 29.1645 30.8055C29.108 30.942 29.0251 31.066 28.9206 31.1705C28.8162 31.275 28.6921 31.3578 28.5556 31.4144C28.4192 31.4709 28.2729 31.5 28.1251 31.5Z" stroke="#1C01A9" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M21.375 4.5V12.375H29.2511" stroke="#1C01A9" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M14.625 21.375H21.375" stroke="#1C01A9" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M18 18V24.75" stroke="#1C01A9" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
<label htmlFor="" className="blue">Прикрепить скан документов</label>
|
||||
</div>
|
||||
<input type="file" />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
{*/}
|
||||
|
||||
<div className="form_field">
|
||||
<div className="form_field checkbox">
|
||||
<input type="checkbox"
|
||||
hidden=""
|
||||
id="signatory_person.not_head_person"
|
||||
name="signatory_person.not_head_person"
|
||||
onChange={ (event) => this._handle_onCheckboxFieldChange(event.target.name, !not_head_person ? true : false) }
|
||||
/>
|
||||
<label htmlFor="signatory_person.not_head_person" className="unselectable">Полномочия единоличного исполнительного органа переданы управляющей организации или управляющему</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{ not_head_person && (
|
||||
<React.Fragment>
|
||||
<p className="title">Информация об управляющей организации или управляющем</p>
|
||||
<p>Организационно-правовая форма и полное наименование управляющей организации или управляющего</p>
|
||||
<div className="form_field">
|
||||
<input type="text"
|
||||
style={{ width: "100%" }}
|
||||
id="main.individual_executive_oop"
|
||||
name="main.individual_executive_oop"
|
||||
value={ main.individual_executive_oop }
|
||||
placeholder="Укажите управляющую организацию"
|
||||
onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) }
|
||||
required={ true }
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="formgroup" style={{ width: "100%" }}>
|
||||
<div className="form_field" style={{ flexDirection: "row", flexWrap: "nowrap" }}>
|
||||
<label>ИНН</label>
|
||||
<input type="text"
|
||||
style={{ width: "100%" }}
|
||||
id="main.individual_executive_inn"
|
||||
name="main.individual_executive_inn"
|
||||
value={ main.individual_executive_inn }
|
||||
placeholder="Введите ИНН"
|
||||
onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) }
|
||||
required={ true }
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="form_field" style={{ flexDirection: "row", flexWrap: "nowrap" }}>
|
||||
<label>КПП</label>
|
||||
<input type="text"
|
||||
style={{ width: "100%" }}
|
||||
id="main.individual_executive_kpp"
|
||||
name="main.individual_executive_kpp"
|
||||
value={ main.individual_executive_kpp }
|
||||
placeholder="Введите КПП"
|
||||
onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) }
|
||||
required={ true }
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="formgroup" style={{ width: "100%", }}>
|
||||
<div className="form_field">
|
||||
<label style={{ width: "100%", marginBottom: "12px" }}>Номер договора о передаче полномочий управляющей организации /управляющему</label>
|
||||
<input type="text"
|
||||
style={{ width: "100%" }}
|
||||
id="main.individual_executive_docnum"
|
||||
name="main.individual_executive_docnum"
|
||||
value={ main.individual_executive_docnum }
|
||||
placeholder="Номер договора"
|
||||
onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) }
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="form_field" style={{ alignItems: "flex-end" }}>
|
||||
<label style={{ width: "100%", alignSelf: "flex-start" }}>Дата договора</label>
|
||||
{/*}
|
||||
<input type="text"
|
||||
style={{ width: "100%", }}
|
||||
id="main.individual_executive_docdate"
|
||||
name="main.individual_executive_docdate"
|
||||
value={ main.individual_executive_docdate }
|
||||
placeholder="Дата"
|
||||
onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) }
|
||||
required={ true }
|
||||
/>
|
||||
{*/}
|
||||
<DateInput
|
||||
style={{ width: "100%", }}
|
||||
placeholder="Укажите дату договора"
|
||||
id={ "main.individual_executive_docdate" }
|
||||
onChange={ (date) => this._handle_onTextFieldChange("main.individual_executive_docdate", date) }
|
||||
required={ true }
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<FilesList
|
||||
name="individual_executive_files"
|
||||
files={ individual_executive_files }
|
||||
onAddFile={ this._handle_onAddFile }
|
||||
onRemoveFile={ this._handle_onRemoveFile }
|
||||
/>
|
||||
|
||||
</React.Fragment>
|
||||
) }
|
||||
|
||||
<div className="form_field">
|
||||
<div className="form_field checkbox">
|
||||
<input type="checkbox"
|
||||
hidden=""
|
||||
id="signatory_person.delegation_agreement"
|
||||
name="signatory_person.delegation_agreement"
|
||||
onChange={ (event) => this._handle_onCheckboxFieldChange(event.target.name, !delegation_agreement ? true : false) }
|
||||
/>
|
||||
<label htmlFor="signatory_person.delegation_agreement" className="unselectable">Подписант отличается от единоличного исполнительного органа</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{ delegation_agreement && (
|
||||
<React.Fragment>
|
||||
<p className="title">Информация о подписанте <small>(заполняется если подписант договора лизинга отличается от единоличного исполнительного органа)</small></p>
|
||||
|
||||
<div className="form_field">
|
||||
<label>Фамилия</label>
|
||||
<input type="text" name="address" value={ address } placeholder="Введите фамилию" onChange={ (event) => this._handle_onAddressChange(event.target.value) } required={ true }/>
|
||||
<input type="text"
|
||||
id="signatory_person.lastname"
|
||||
name="signatory_person.lastname"
|
||||
value={ signatory_person.lastname }
|
||||
placeholder="Введите фамилию"
|
||||
onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) }
|
||||
required={ true }
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="form_field">
|
||||
<label>Имя</label>
|
||||
<input type="text" name="address" value={ address } placeholder="Введите имя" onChange={ (event) => this._handle_onAddressChange(event.target.value) } required={ true }/>
|
||||
<input type="text"
|
||||
id="signatory_person.firstname"
|
||||
name="signatory_person.firstname"
|
||||
value={ signatory_person.firstname }
|
||||
placeholder="Введите имя"
|
||||
onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) }
|
||||
required={ true }
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="form_field">
|
||||
<label>Отчество <small>если имеется</small></label>
|
||||
<input type="text" name="address" value={ address } placeholder="Введите отчество" onChange={ (event) => this._handle_onAddressChange(event.target.value) } required={ true }/>
|
||||
<input type="text"
|
||||
id="signatory_person.middlename"
|
||||
name="signatory_person.middlename"
|
||||
value={ signatory_person.middlename }
|
||||
placeholder="Введите отчество"
|
||||
onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) }
|
||||
required={ true }
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="formgroup">
|
||||
<div className="form_field">
|
||||
<label>Серия паспорта</label>
|
||||
<input type="text" name="address" value={ address } placeholder="Введите серию" onChange={ (event) => this._handle_onAddressChange(event.target.value) } required={ true }/>
|
||||
<input type="text"
|
||||
id="signatory_person.identity_document.seria"
|
||||
name="signatory_person.identity_document.seria"
|
||||
value={ signatory_person.identity_document.seria }
|
||||
placeholder="Введите серию"
|
||||
onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) }
|
||||
required={ true }
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="form_field">
|
||||
<label>Номер паспорта</label>
|
||||
<input type="text" name="address" value={ address } placeholder="Введите номер" onChange={ (event) => this._handle_onAddressChange(event.target.value) } required={ true }/>
|
||||
<input type="text"
|
||||
id="signatory_person.identity_document.docnumber"
|
||||
name="signatory_person.identity_document.docnumber"
|
||||
value={ signatory_person.identity_document.docnumber }
|
||||
placeholder="Введите номер"
|
||||
onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) }
|
||||
required={ true }
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="formgroup">
|
||||
<div className="form_field">
|
||||
<label>Дата выдачи</label>
|
||||
<input type="text" name="address" value={ address } placeholder="Введите дату" onChange={ (event) => this._handle_onAddressChange(event.target.value) } required={ true }/>
|
||||
<input type="text"
|
||||
id="signatory_person.identity_document.issuedate"
|
||||
name="signatory_person.identity_document.issuedate"
|
||||
value={ signatory_person.identity_document.issuedate }
|
||||
placeholder="Введите дату"
|
||||
onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) }
|
||||
required={ true }
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="form_field">
|
||||
<label>Код подразделения</label>
|
||||
<input type="text" name="address" value={ address } placeholder="Введите номер" onChange={ (event) => this._handle_onAddressChange(event.target.value) } required={ true }/>
|
||||
<input type="text"
|
||||
id="signatory_person.identity_document.icode"
|
||||
name="signatory_person.identity_document.icode"
|
||||
value={ signatory_person.identity_document.icode }
|
||||
placeholder="Введите номер"
|
||||
onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) }
|
||||
required={ true }
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="form_field">
|
||||
<label>Кем выдан</label>
|
||||
<input type="text" name="address" value={ address } placeholder="Введите наименование подразделения выдавшего документ" onChange={ (event) => this._handle_onAddressChange(event.target.value) } required={ true }/>
|
||||
<input type="text"
|
||||
id="signatory_person.identity_document.issueby"
|
||||
name="signatory_person.identity_document.issueby"
|
||||
value={ signatory_person.identity_document.issueby }
|
||||
placeholder="Введите наименование подразделения выдавшего документ"
|
||||
onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) }
|
||||
required={ true }
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="form_field">
|
||||
<label>Место рождения</label>
|
||||
<input type="text" name="address" value={ address } placeholder="Введите данные" onChange={ (event) => this._handle_onAddressChange(event.target.value) } required={ true }/>
|
||||
<input type="text"
|
||||
id="signatory_person.identity_document.placebirth"
|
||||
name="signatory_person.identity_document.placebirth"
|
||||
value={ signatory_person.identity_document.placebirth }
|
||||
placeholder="Введите данные"
|
||||
onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) }
|
||||
required={ true }
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="form_field">
|
||||
@ -128,62 +626,134 @@ export default class Form_3_Signer extends React.Component
|
||||
|
||||
<div className="form_field">
|
||||
<label>Адрес регистрации</label>
|
||||
<input type="text" name="address" value={ address } placeholder="Введите адрес" onChange={ (event) => this._handle_onAddressChange(event.target.value) } required={ true }/>
|
||||
<input type="text"
|
||||
id="signatory_person.identity_document.registration_address.title"
|
||||
name="signatory_person.identity_document.registration_address.title"
|
||||
value={ signatory_person.identity_document.registration_address.title }
|
||||
placeholder="Введите адрес"
|
||||
onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) }
|
||||
required={ true }
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="form_field">
|
||||
<label>Должность</label>
|
||||
<input type="text" name="address" value={ address } placeholder="Укажите должность" onChange={ (event) => this._handle_onAddressChange(event.target.value) } required={ true }/>
|
||||
<input type="text"
|
||||
id="signatory_person.identity_document.jobtitle"
|
||||
name="signatory_person.identity_document.jobtitle"
|
||||
value={ signatory_person.jobtitle }
|
||||
placeholder="Укажите должность"
|
||||
onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) }
|
||||
required={ true }
|
||||
/>
|
||||
</div>
|
||||
|
||||
<p><b>Реквизиты документа подтверждающие полномочия на подписание договора лизинга</b></p>
|
||||
|
||||
<div className="form_field">
|
||||
<label>Наименование документа</label>
|
||||
<input type="text"
|
||||
id="signatory_person.signer_rule_basis"
|
||||
name="signatory_person.signer_rule_basis"
|
||||
value={ signatory_person.signer_rule_basis }
|
||||
placeholder="Вид документа"
|
||||
onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) }
|
||||
required={ true }
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="form_field">
|
||||
<label>Кем выдан</label>
|
||||
<input type="text" name="address" value={ address } placeholder="Введите наименование подразделения выдавшего документ" onChange={ (event) => this._handle_onAddressChange(event.target.value) } required={ true }/>
|
||||
<label>Наименование документа</label>
|
||||
<input type="text"
|
||||
id="signatory_person.signer_rule_basis_add"
|
||||
name="signatory_person.signer_rule_basis_add"
|
||||
value={ signatory_person.signer_rule_basis_add }
|
||||
placeholder="Наименование документа"
|
||||
onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) }
|
||||
required={ true }
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="form_field picker">
|
||||
<label>Дата назначения</label>
|
||||
<div style={{ display: "flex", flexWrap: "wrap", width: "calc(100% - 198px)" }}>
|
||||
<DateInput placeholder="Дата договора от" id={ "date_to" } onChange={ (date) => this.setState({ date_to: date }) }/>
|
||||
<div className="form_field checkbox" style={{width: "auto", marginLeft: "28px"}}>
|
||||
<input type="checkbox" hidden="" id="" name="" />
|
||||
<label htmlFor="">Полномочия бессрочны</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="file_upload dropzone" style={{width: "286px", height: "103px", marginBottom: "25px"}}>
|
||||
<div className="files"></div>
|
||||
<div>
|
||||
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M28.1251 31.5H7.87402C7.57565 31.5 7.28951 31.3815 7.07853 31.1705C6.86755 30.9595 6.74902 30.6734 6.74902 30.375V5.625C6.74902 5.32663 6.86755 5.04048 7.07853 4.82951C7.28951 4.61853 7.57565 4.5 7.87402 4.5H21.3751L29.2501 12.375V30.375C29.2501 30.5227 29.221 30.669 29.1645 30.8055C29.108 30.942 29.0251 31.066 28.9206 31.1705C28.8162 31.275 28.6921 31.3578 28.5556 31.4144C28.4192 31.4709 28.2729 31.5 28.1251 31.5Z" stroke="#1C01A9" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M21.375 4.5V12.375H29.2511" stroke="#1C01A9" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M14.625 21.375H21.375" stroke="#1C01A9" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M18 18V24.75" stroke="#1C01A9" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
||||
<label htmlFor="" className="blue">Прикрепить скан документов</label>
|
||||
</div>
|
||||
<input type="file" />
|
||||
<div className="formgroup">
|
||||
<div className="form_field">
|
||||
<label>Номер документы</label>
|
||||
<input type="text"
|
||||
id="signatory_person.docnumber"
|
||||
name="signatory_person.docnumber"
|
||||
value={ signatory_person.docnumber }
|
||||
placeholder="Номер документы"
|
||||
onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) }
|
||||
required={ true }
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="form_field">
|
||||
<div className="form_field checkbox">
|
||||
<input type="checkbox" hidden="" id="" name="" />
|
||||
<label htmlFor="">Полномочия единоличного исполнительного органа переданы управляющей организации или управляющему</label>
|
||||
</div>
|
||||
|
||||
<div className="form_field checkbox">
|
||||
<input type="checkbox" hidden="" id="" name="" />
|
||||
<label htmlFor="">Подписант отличается от единоличного исполнительного органа</label>
|
||||
</div>
|
||||
|
||||
<div className="form_field checkbox">
|
||||
<input type="checkbox" hidden="" id="" name="" />
|
||||
<label htmlFor="">Даю согласие на <a>обработку персональных данных</a></label>
|
||||
<label>Дата</label>
|
||||
<input type="text"
|
||||
id="signatory_person.docdate"
|
||||
name="signatory_person.docdate"
|
||||
value={ signatory_person.docdate }
|
||||
placeholder="Дата"
|
||||
onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) }
|
||||
required={ true }
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="formgroup">
|
||||
<div className="form_field">
|
||||
<label>Телефон</label>
|
||||
<input type="text"
|
||||
id="signatory_person.telephone"
|
||||
name="signatory_person.telephone"
|
||||
value={ signatory_person.telephone }
|
||||
placeholder="Телефон"
|
||||
onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) }
|
||||
required={ true }
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="form_field">
|
||||
<label>E-mail</label>
|
||||
<input type="text"
|
||||
id="signatory_person.email"
|
||||
name="signatory_person.email"
|
||||
value={ signatory_person.email }
|
||||
placeholder="E-mail"
|
||||
onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) }
|
||||
required={ true }
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<FilesList
|
||||
name="signatory_person_files"
|
||||
files={ signatory_person_files }
|
||||
onAddFile={ this._handle_onAddFile }
|
||||
onRemoveFile={ this._handle_onRemoveFile }
|
||||
/>
|
||||
|
||||
{/*}
|
||||
<div className="dosc_list medium-icon">
|
||||
<div className="row">
|
||||
<p className="doc_name i-pdf extension">№ 01/20/2020 (.PDF)<span style={{width: "100%"}}>Постановление</span></p>
|
||||
</div>
|
||||
</div>
|
||||
{*/}
|
||||
</React.Fragment>
|
||||
) }
|
||||
|
||||
<div className="form_field">
|
||||
<div className="form_field checkbox">
|
||||
<input type="checkbox"
|
||||
hidden=""
|
||||
id="personal_data_consent"
|
||||
name="personal_data_consent"
|
||||
onChange={ (event) => this._handle_onCheckboxFieldChange(event.target.name, !personal_data_consent ? true : false) }
|
||||
/>
|
||||
<label htmlFor="personal_data_consent" className="unselectable">Даю согласие на <a style={{ cursor: "pointer", }} onClick={ () => { this.setState({ modal_show_personal_data: true, }) } }>обработку персональных данных</a></label>
|
||||
</div>
|
||||
</div>
|
||||
<div className="action">
|
||||
<button type="submit" className="button button-blue" disabled={ false }>
|
||||
{ phone_check_loading ? (
|
||||
@ -192,6 +762,16 @@ export default class Form_3_Signer extends React.Component
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
<Modal
|
||||
open={ modal_show_personal_data }
|
||||
close={ () => { this.setState({ modal_show_personal_data: false, }) } }
|
||||
>
|
||||
<p>Настоящим даю ООО «ЛК Эволюция» (ОГРН 1207700245037) (115201, г. Москва, ул. Котляковская, дом 8, эт., пом. 3, 337) для целей определения возможности заключения договора финансовой аренды (лизинга)/ договора поручительства, проведения проверки кредитной истории, заключения, изменения и исполнения договора финансовой аренды (лизинга)/ договора поручительства, в том числе в случае неисполнения и/или ненадлежащего исполнения указанного договора, осуществления рассылки рекламно-информационного характера и осуществления прямых контактов с помощью любых средств связи (телефонной и подвижной связи, смс-оповещения, почтового письма, телеграммы, голосового сообщения, сообщения по электронной почте и др.), при этом право выбора организаций, осуществляющих рассылку, предоставляю ООО «ЛК Эволюция» (ОГРН 1207700245037) без дополнительного согласования со мной, а также для обеспечения соблюдения законов и иных
|
||||
нормативно-правовых актов, согласие на обработку, предполагающую сбор (непосредственно от заявителя, от третьих лиц, путем направления запросов в органы государственной власти, органы местного самоуправления, юридическим и физическим лицам, из иных общедоступных информационных ресурсов, из архивов), запись, систематизацию, накопление, хранение, уточнение (обновление, изменение), проверку, извлечение, использование, передачу (распространение, предоставление, доступ), полностью или частично третьим лицам, действующим на основании договоров, заключенных ими с ООО «ЛК Эволюция» (ОГРН 1207700245037), обезличивание, блокирование, удаление и уничтожение, следующих моих персональных данных: фамилия, имя, отчество, дата и место рождения, пол, гражданство, серия и номер основного документа (включая его копию), удостоверяющего личность, сведения о дате выдачи указанного документа и выдавшем его органе, ИНН, страховой номер индивидуального лицевого счета, указанный в страховом свидетельстве обязательного пенсионного страхования, адрес регистрации и фактического проживания, контактная информация (домашний, рабочий, мобильный телефоны, электронные адреса), место работы и должность, сведения о доходах, сведения о семейном положении, сведения о супруге, сведения об имущественном положении, сведения,
|
||||
содержащиеся в титульной и основной части кредитной истории. Обработка персональных данных осуществляется как с использованием средств автоматизации, в том числе в информационно телекоммуникационных сетях, так и без использования таких средств. ООО «ЛК Эволюция» (ОГРН 1207700245037) в соответствии с настоящим согласием и для достижения указанных выше целей, вправе поручить обработку персональных данных третьим лицам, а так же, в случае привлечения третьих лиц к оказанию услуг и/или в случае передачи ООО «ЛК Эволюция» (ОГРН 1207700245037) принадлежащих ему прав требования третьему лицу, вправе в необходимом объеме раскрывать/передавать информацию таким третьим лицам, их агентам и иным уполномоченным им лицам, а также предоставлять таким лицам соответствующие документы, содержащие такую информацию. Согласие на обработку персональных данных вступает в силу со дня подписания настоящей
|
||||
анкеты, действует в течение 10 (десяти) лет или до момента надлежащего отзыва согласия. Согласие может быть отозвано в любое время посредством направления соответствующего письменного заявления в адрес ООО «ЛК Эволюция» (ОГРН 1207700245037). В случае отзыва настоящего согласия ООО «ЛК Эволюция» (ОГРН 1207700245037) вправе продолжить обработку персональных данных в случаях и в порядке, предусмотренных законодательством РФ. В случае любых изменений персональных данных, указанных в настоящем согласии, обязуюсь сообщить о таких изменениях ООО «ЛК Эволюция» (ОГРН 1207700245037) в течение 7 (семи) дней. Настоящим даю ООО «ЛК Эволюция» (ОГРН 1207700245037) согласие на получение кредитного отчета в целях заключения договора лизинга
|
||||
и иных договоров, связанных с исполнением договора лизинга, в том числе на раскрытие информации, содержащейся в основной части кредитной истории, в отношении вышеуказанного лизингополучателя, а также в отношении меня (оригинал документа, удостоверяющего мою личность, предоставлен ООО «ЛК Эволюция» (ОГРН 1207700245037)). Данное согласие на получение кредитного отчета действует в течение 6 (шести) месяцев с даты подписания мной настоящей анкеты.</p>
|
||||
</Modal>
|
||||
</React.Fragment>
|
||||
)
|
||||
}
|
||||
|
||||
@ -7,13 +7,23 @@ import { connect } from "react-redux";
|
||||
import numeral from "numeral";
|
||||
import pluralize from 'pluralize-ru';
|
||||
import { SpinnerCircular } from 'spinners-react';
|
||||
import QuestionnaireForm from "../QuestionnaireForm";
|
||||
|
||||
export default class Form_6_NonProfit extends React.Component
|
||||
export default class Form_6_NonProfit extends QuestionnaireForm
|
||||
{
|
||||
constructor(props)
|
||||
{
|
||||
super(props);
|
||||
this.state = {
|
||||
fin_source_business: false,
|
||||
fin_source_donate: false,
|
||||
fin_source_fees: false,
|
||||
fin_source_another: false,
|
||||
fin_source_another_description: "",
|
||||
foreign_payers: false,
|
||||
fin_goals_cars: "",
|
||||
fin_goals_trucks: "",
|
||||
fin_goals_special: "",
|
||||
address: "",
|
||||
phone_check_loading: false,
|
||||
phone_number_format_error: false,
|
||||
@ -60,6 +70,8 @@ export default class Form_6_NonProfit extends React.Component
|
||||
|
||||
render()
|
||||
{
|
||||
const { fin_source_business, fin_source_donate, fin_source_fees, fin_source_another, fin_source_another_description, foreign_payers,
|
||||
fin_goals_cars, fin_goals_trucks, fin_goals_special } = this.state;
|
||||
const { address, phone_check_loading, phone_number_format_error } = this.state;
|
||||
|
||||
return (
|
||||
@ -71,24 +83,24 @@ export default class Form_6_NonProfit extends React.Component
|
||||
<div className="form_field">
|
||||
<div style={{ width: "100%" }}>
|
||||
<div className="form_field checkbox">
|
||||
<input type="checkbox" hidden="" id="" name="" />
|
||||
<label htmlFor="">От приносящей доход деятельности</label>
|
||||
<input type="checkbox" hidden="" id="fin_source_business" name="fin_source_business" checked={ fin_source_business } onChange={ (event) => this._handle_onCheckboxFieldChange(event.target.name, !fin_source_business ? true : false) }/>
|
||||
<label htmlFor="fin_source_business">От приносящей доход деятельности</label>
|
||||
</div>
|
||||
<div className="form_field checkbox">
|
||||
<input type="checkbox" hidden="" id="" name="" />
|
||||
<label htmlFor="">Добровольные пожертвования</label>
|
||||
<input type="checkbox" hidden="" id="fin_source_donate" name="fin_source_donate" checked={ fin_source_donate } onChange={ (event) => this._handle_onCheckboxFieldChange(event.target.name, !fin_source_donate ? true : false) }/>
|
||||
<label htmlFor="fin_source_donate">Добровольные пожертвования</label>
|
||||
</div>
|
||||
|
||||
<div className="form_field checkbox">
|
||||
<input type="checkbox" hidden="" id="" name="" />
|
||||
<label htmlFor="">Вступительные членские взносы</label>
|
||||
<input type="checkbox" hidden="" id="fin_source_fees" name="fin_source_fees" checked={ fin_source_fees } onChange={ (event) => this._handle_onCheckboxFieldChange(event.target.name, !fin_source_fees ? true : false ) }/>
|
||||
<label htmlFor="fin_source_fees">Вступительные членские взносы</label>
|
||||
</div>
|
||||
|
||||
<div className="form_field checkbox">
|
||||
<input type="checkbox" hidden="" id="" name="" />
|
||||
<label htmlFor="" style={{ width: "100%" }}>
|
||||
<input type="checkbox" hidden="" id="fin_source_another" name="fin_source_another" checked={ fin_source_another } onChange={ (event) => this._handle_onCheckboxFieldChange(event.target.name, !fin_source_another ? true : false ) }/>
|
||||
<label htmlFor="fin_source_another" style={{ width: "100%" }}>
|
||||
<span>Иное</span>
|
||||
<input type="text" name="address" value={ address } placeholder="Введите адрес электронной почты" onChange={ (event) => this._handle_onAddressChange(event.target.value) } required={ true }/>
|
||||
<input type="text" name="fin_source_another_description" value={ fin_source_another_description } disabled={ fin_source_another ? false : true } placeholder="Введите адрес электронной почты" onChange={ (event) => this._handle_onTextFieldChange(event.target.name, event.target.value) } required={ true }/>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
@ -98,32 +110,31 @@ export default class Form_6_NonProfit extends React.Component
|
||||
<div className="form_field">
|
||||
<div style={{ width: "100%" }}>
|
||||
<div className="form_field checkbox">
|
||||
<input type="radio" hidden="" id="" name="" checked/>
|
||||
<label htmlFor="">Нет</label>
|
||||
<input type="radio" value="0" hidden="" id="foreign_payers_0" name="foreign_payers" checked={ foreign_payers === false ? true : false } onChange={ (event) => this._handle_onCheckboxFieldChange(event.target.name, false) }/>
|
||||
<label htmlFor="foreign_payers_0">Нет</label>
|
||||
</div>
|
||||
<div className="form_field checkbox">
|
||||
<input type="radio" hidden="" id="" name="" />
|
||||
<label htmlFor="">Да</label>
|
||||
<input type="radio" value="1" hidden="" id="foreign_payers_1" name="foreign_payers" checked={ foreign_payers === false ? false : true } onChange={ (event) => this._handle_onCheckboxFieldChange(event.target.name, true) }/>
|
||||
<label htmlFor="foreign_payers_1">Да</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Укажите цели использования предмета лизинга и подтвердите их соответствие уставным целям
|
||||
для каждого предмета лизинга отдельно</p>
|
||||
<p>Укажите цели использования предмета лизинга и подтвердите их соответствие уставным целям для каждого предмета лизинга отдельно</p>
|
||||
|
||||
<div className="form_field">
|
||||
<label>Легковые автомобили</label>
|
||||
<input type="text" name="address" value={ address } placeholder="Введите данные" onChange={ (event) => this._handle_onAddressChange(event.target.value) } required={ true }/>
|
||||
<input type="text" name="fin_goals_cars" value={ fin_goals_cars } placeholder="Введите данные" onChange={ (event) => this._handle_onCheckboxFieldChange(event.target.name, event.target.value) } required={ true }/>
|
||||
</div>
|
||||
|
||||
<div className="form_field">
|
||||
<label>Легкий коммерческий транспорт</label>
|
||||
<input type="text" name="address" value={ address } placeholder="Введите данные" onChange={ (event) => this._handle_onAddressChange(event.target.value) } required={ true }/>
|
||||
<input type="text" name="fin_goals_trucks" value={ fin_goals_trucks } placeholder="Введите данные" onChange={ (event) => this._handle_onCheckboxFieldChange(event.target.name, event.target.value) } required={ true }/>
|
||||
</div>
|
||||
|
||||
<div className="form_field">
|
||||
<label>Грузовые автомобили/ спецтехника</label>
|
||||
<input type="text" name="address" value={ address } placeholder="Введите данные" onChange={ (event) => this._handle_onAddressChange(event.target.value) } required={ true }/>
|
||||
<input type="text" name="fin_goals_special" value={ fin_goals_special } placeholder="Введите данные" onChange={ (event) => this._handle_onCheckboxFieldChange(event.target.name, event.target.value) } required={ true }/>
|
||||
</div>
|
||||
|
||||
<div className="action">
|
||||
|
||||
@ -135,7 +135,6 @@ export default class Form_7_Check extends React.Component
|
||||
|
||||
<p>Прошу оригиналы счетов-фактур и актов отказанных услуг по заключенному договору лизинга направлять:</p>
|
||||
|
||||
|
||||
<div className="form_field">
|
||||
<div style={{ width: "100%" }}>
|
||||
<div className="form_field checkbox">
|
||||
@ -288,9 +287,6 @@ export default class Form_7_Check extends React.Component
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<p className="title">3.2. Информация о подписанте <small>(заполняется если подписант договора лизинга отличается от единоличного исполнительного органа)</small></p>
|
||||
|
||||
<div className="form_field">
|
||||
|
||||
@ -8,8 +8,10 @@ import numeral from "numeral";
|
||||
import pluralize from "pluralize-ru";
|
||||
import { SpinnerCircular } from "spinners-react";
|
||||
|
||||
export default class Form_8_Signing extends React.Component {
|
||||
constructor(props) {
|
||||
export default class Form_8_Signing extends React.Component
|
||||
{
|
||||
constructor(props)
|
||||
{
|
||||
super(props);
|
||||
this.state = {
|
||||
address: "",
|
||||
@ -18,7 +20,8 @@ export default class Form_8_Signing extends React.Component {
|
||||
};
|
||||
}
|
||||
|
||||
static getDerivedStateFromProps(nextProps, prevState) {
|
||||
static getDerivedStateFromProps(nextProps, prevState)
|
||||
{
|
||||
return {
|
||||
observer: nextProps.observer,
|
||||
user: nextProps.user,
|
||||
@ -27,18 +30,23 @@ export default class Form_8_Signing extends React.Component {
|
||||
|
||||
componentDidMount() {}
|
||||
|
||||
_handle_onFormSubmit = (event) => {
|
||||
_handle_onFormSubmit = (event) =>
|
||||
{
|
||||
event.preventDefault();
|
||||
console.log("FormAddress", "_handle_onFormSubmit");
|
||||
};
|
||||
|
||||
_handle_onAddressChange = (value) => {
|
||||
_handle_onAddressChange = (value) =>
|
||||
{
|
||||
this.setState({ address: value }, () => {});
|
||||
};
|
||||
|
||||
_check_fields_disabled = (values) => {
|
||||
for (let i in values) {
|
||||
if (values[i] === "") {
|
||||
_check_fields_disabled = (values) =>
|
||||
{
|
||||
for (let i in values)
|
||||
{
|
||||
if (values[i] === "")
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@ -46,9 +54,9 @@ export default class Form_8_Signing extends React.Component {
|
||||
return false;
|
||||
};
|
||||
|
||||
render() {
|
||||
const { address, phone_check_loading, phone_number_format_error } =
|
||||
this.state;
|
||||
render()
|
||||
{
|
||||
const { address, phone_check_loading, phone_number_format_error } = this.state;
|
||||
|
||||
return (
|
||||
<React.Fragment>
|
||||
@ -58,7 +66,6 @@ export default class Form_8_Signing extends React.Component {
|
||||
>
|
||||
<p className="title">8. Выбор метода подписания</p>
|
||||
|
||||
|
||||
<div className="form_field">
|
||||
<div style={{ width: "100%" }}>
|
||||
<div className="form_field checkbox">
|
||||
@ -123,7 +130,6 @@ export default class Form_8_Signing extends React.Component {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div className="form_field">
|
||||
<div style={{ width: "100%" }}>
|
||||
<div className="form_field checkbox">
|
||||
|
||||
175
pages/questionnaire/components/forms/QuestionnaireForm.js
Normal file
175
pages/questionnaire/components/forms/QuestionnaireForm.js
Normal file
@ -0,0 +1,175 @@
|
||||
import React from "react";
|
||||
import Head from 'next/head';
|
||||
import Image from 'next/image';
|
||||
import Link from "next/link";
|
||||
import cookie from 'cookie';
|
||||
import { connect } from "react-redux";
|
||||
import numeral from "numeral";
|
||||
import pluralize from 'pluralize-ru';
|
||||
import { SpinnerCircular } from 'spinners-react';
|
||||
import { getAddress } from '../../../../actions';
|
||||
import debounce from 'debounce-promise';
|
||||
import { set as _set, get as _get } from 'lodash';
|
||||
|
||||
const suggestsAddressDebounce = (text) =>
|
||||
{
|
||||
return getAddress(text);
|
||||
}
|
||||
|
||||
const suggestsAddress = debounce(suggestsAddressDebounce, 500);
|
||||
|
||||
export default class QuestionnaireForm extends React.Component
|
||||
{
|
||||
_handle_onTextFieldChange = (name, value) =>
|
||||
{
|
||||
console.log("QuestionnaireForm", "_handle_onTextFieldChange", { name, value });
|
||||
|
||||
const update = { ...this.state };
|
||||
_set(update, name, value);
|
||||
|
||||
/*
|
||||
if(name.indexOf(".") > -1)
|
||||
{
|
||||
const names = name.split(".");
|
||||
if(names.length === 4)
|
||||
{
|
||||
update[ names[0] ] = { ...this.state[ names[0] ] };
|
||||
update[ names[0] ][ names[1] ][ names[2] ][ names[3] ] = value;
|
||||
}
|
||||
else if(names.length === 3)
|
||||
{
|
||||
update[ names[0] ] = { ...this.state[ names[0] ] };
|
||||
update[ names[0] ][ names[1] ][ names[2] ] = value;
|
||||
}
|
||||
else
|
||||
{
|
||||
update[ names[0] ] = { ...this.state[ names[0] ] };
|
||||
update[ names[0] ][ names[1] ] = value;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
update[name] = value;
|
||||
}
|
||||
*/
|
||||
this.setState(update);
|
||||
}
|
||||
|
||||
_handle_onCheckboxFieldChange = (name, value) =>
|
||||
{
|
||||
console.log("QuestionnaireForm", "_handle_onCheckboxFieldChange", { name, value });
|
||||
|
||||
const update = { ...this.state };
|
||||
_set(update, name, value);
|
||||
|
||||
/*
|
||||
const update = {};
|
||||
if(name.indexOf(".") > -1)
|
||||
{
|
||||
const names = name.split(".");
|
||||
if(names.length === 4)
|
||||
{
|
||||
update[ names[0] ] = { ...this.state[ names[0] ] };
|
||||
update[ names[0] ][ names[1] ][ names[2] ][ names[3] ] = value;
|
||||
}
|
||||
else if(names.length === 3)
|
||||
{
|
||||
update[ names[0] ] = { ...this.state[ names[0] ] };
|
||||
update[ names[0] ][ names[1] ][ names[2] ] = value;
|
||||
}
|
||||
else
|
||||
{
|
||||
update[ names[0] ] = { ...this.state[ names[0] ] };
|
||||
update[ names[0] ][ names[1] ] = value;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
update[name] = value;
|
||||
}
|
||||
*/
|
||||
this.setState(update);
|
||||
}
|
||||
|
||||
_handle_onAddFile = (name, files) =>
|
||||
{
|
||||
console.log("QuestionnaireForm", "_handle_onAdd", { name, files });
|
||||
|
||||
const existed_files = [ ..._get(this.state, name) ];
|
||||
for(let nf in files)
|
||||
{
|
||||
let e = false;
|
||||
for(let ef in existed_files)
|
||||
{
|
||||
if(existed_files[ef].name === files[nf].name) { e = true; }
|
||||
}
|
||||
|
||||
if(!e)
|
||||
{
|
||||
existed_files.push(files[nf]);
|
||||
}
|
||||
}
|
||||
|
||||
const update = { ...this.state };
|
||||
_set(update, name, existed_files);
|
||||
this.setState(update);
|
||||
}
|
||||
|
||||
_handle_onRemoveFile = (name, file_name) =>
|
||||
{
|
||||
console.log("QuestionnaireForm", "_handle_onAdd", { name, files });
|
||||
|
||||
const existed_files = [ ..._get(this.state, name) ];
|
||||
|
||||
const files = [];
|
||||
for(let i in existed_files)
|
||||
{
|
||||
if(existed_files[i].name !== file_name)
|
||||
{
|
||||
files.push(existed_files[i]);
|
||||
}
|
||||
}
|
||||
|
||||
const update = { ...this.state };
|
||||
_set(update, name, files);
|
||||
this.setState(update);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
const state = {
|
||||
foo: {
|
||||
bar: {
|
||||
val: []
|
||||
},
|
||||
}
|
||||
};
|
||||
|
||||
console.log(state);
|
||||
console.log(state);
|
||||
|
||||
const name = "foo.bar.val";
|
||||
const names = name.split(".");
|
||||
|
||||
console.log(names);
|
||||
|
||||
if(names.length > 0)
|
||||
{
|
||||
|
||||
}
|
||||
if(names.length === 4)
|
||||
{
|
||||
update[ names[0] ] = { ...this.state[ names[0] ] };
|
||||
update[ names[0] ][ names[1] ][ names[2] ][ names[3] ] = value;
|
||||
}
|
||||
else if(names.length === 3)
|
||||
{
|
||||
update[ names[0] ] = { ...this.state[ names[0] ] };
|
||||
update[ names[0] ][ names[1] ][ names[2] ] = value;
|
||||
}
|
||||
else
|
||||
{
|
||||
update[ names[0] ] = { ...this.state[ names[0] ] };
|
||||
update[ names[0] ][ names[1] ] = value;
|
||||
}
|
||||
*/
|
||||
@ -99,7 +99,166 @@ export const defaultState = {
|
||||
appeals: { list: null, new: 0 },
|
||||
appeal: null,
|
||||
request: null,
|
||||
},
|
||||
questionnaire: {
|
||||
step: 9,
|
||||
main: {
|
||||
title: "",
|
||||
inn: "",
|
||||
kpp: "",
|
||||
email: "",
|
||||
telephone: "",
|
||||
websiteurl: "",
|
||||
financial_loan: "",
|
||||
is_individual_executive: false,
|
||||
individual_executive_inn: "",
|
||||
individual_executive_kpp: "",
|
||||
individual_executive_oop: "",
|
||||
individual_executive_docnum: "",
|
||||
individual_executive_docdate: "",
|
||||
high_level: "",
|
||||
board_of_directors: "",
|
||||
collective_executive: "",
|
||||
individual_executive: "",
|
||||
other_control: "",
|
||||
},
|
||||
legal_address: {
|
||||
title: "",
|
||||
fias_id: "",
|
||||
},
|
||||
fact_address: {
|
||||
name: "",
|
||||
fias_id: "",
|
||||
},
|
||||
postal_address: {
|
||||
name: "",
|
||||
fias_id: "",
|
||||
},
|
||||
head_person: {
|
||||
lastname: "",
|
||||
firstname: "",
|
||||
middlename: "",
|
||||
no_middle_name: false,
|
||||
jobtitle: "",
|
||||
assignment_date: "",
|
||||
indefinite: "",
|
||||
credentials_dateend: "",
|
||||
telephone: "",
|
||||
email: "",
|
||||
identity_document: {
|
||||
doctype: "",
|
||||
seria: "",
|
||||
docnumber: "",
|
||||
issuedate: "",
|
||||
code: "",
|
||||
issueby: "",
|
||||
issueby_search_dadata: "",
|
||||
placebirth: "",
|
||||
citizenship_code: "",
|
||||
registration_address: {
|
||||
title: "",
|
||||
fias_id: "",
|
||||
}
|
||||
},
|
||||
evo_assignment_date: "",
|
||||
evo_credentials_dateend: "",
|
||||
evo_indefinite: false,
|
||||
},
|
||||
head_person_files: [],
|
||||
signatory_person: {
|
||||
not_head_person: false,
|
||||
lastname: "",
|
||||
firstname: "",
|
||||
middlename: "",
|
||||
no_middle_name: false,
|
||||
jobtitle: "",
|
||||
signer_rule_basis: "",
|
||||
signer_rule_basis_add: "",
|
||||
docdate: "",
|
||||
docnumber: "",
|
||||
delegation_agreement: false,
|
||||
telephone: "",
|
||||
email: "",
|
||||
identity_document: {
|
||||
docype: "",
|
||||
seria: "",
|
||||
docnumber: "",
|
||||
issuedate: "",
|
||||
icode: "",
|
||||
issueby: "",
|
||||
issueby_search_dadata: "",
|
||||
placebirth: "",
|
||||
citizenship_code: "",
|
||||
registration_address: {
|
||||
title: "",
|
||||
fias_id: "",
|
||||
}
|
||||
}
|
||||
},
|
||||
signatory_person_files: [],
|
||||
founded_persons_template: {
|
||||
lastname: "",
|
||||
firstname: "",
|
||||
middlename: "",
|
||||
no_middle_name: false,
|
||||
jobtitle: "",
|
||||
telephone: "",
|
||||
email: "",
|
||||
founder_number: "",
|
||||
founder_part: "",
|
||||
is_beneficial: false,
|
||||
identity_document:
|
||||
{
|
||||
doctype: "",
|
||||
seria: "",
|
||||
docnumber: "",
|
||||
issuedate: "",
|
||||
icode: "",
|
||||
issueby: "",
|
||||
issueby_search_dadata: "",
|
||||
placebirth: "",
|
||||
citizenship_code: "",
|
||||
registration_address: {
|
||||
title: "",
|
||||
fias_id: "",
|
||||
}
|
||||
}
|
||||
},
|
||||
founded_persons: [],
|
||||
client_contacts: {
|
||||
lastname: "",
|
||||
firstname: "",
|
||||
middlename: "",
|
||||
no_middle_name: false,
|
||||
jobtitle: "",
|
||||
assignment_date: "",
|
||||
indefinite: false,
|
||||
credentials_dateend: "",
|
||||
telephone: "",
|
||||
email: "",
|
||||
signer_rule_basis: "",
|
||||
signer_rule_basis_add: "",
|
||||
docdate: "",
|
||||
docnumber: "",
|
||||
delegation_agreement: false,
|
||||
functiontype: "",
|
||||
identity_document: {
|
||||
doctype: "",
|
||||
seria: "",
|
||||
docnumber: "",
|
||||
issuedate: "",
|
||||
code: "",
|
||||
issueby: "",
|
||||
issueby_search_dadata: "",
|
||||
placebirth: "",
|
||||
citizenship_code: "",
|
||||
registration_address: {
|
||||
title: "",
|
||||
fias_id: "",
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default JSON.parse(JSON.stringify(defaultState));
|
||||
42
reducers/questionnaireReducer.js
Normal file
42
reducers/questionnaireReducer.js
Normal file
@ -0,0 +1,42 @@
|
||||
import { HYDRATE } from 'next-redux-wrapper';
|
||||
|
||||
import * as actionTypes from '../constants/actionTypes';
|
||||
import initialState from "./initialState";
|
||||
|
||||
const questionnaireReducer = (state = initialState.questionnaire, action) =>
|
||||
{
|
||||
switch (action.type)
|
||||
{
|
||||
/*
|
||||
case HYDRATE:
|
||||
{
|
||||
return {
|
||||
...state,
|
||||
...action.payload.questionnaire,
|
||||
};
|
||||
}
|
||||
*/
|
||||
|
||||
case actionTypes.QUESTIONNAIRE_UPDATE:
|
||||
{
|
||||
return {
|
||||
...state,
|
||||
questionnaire: action.data.questionnaire,
|
||||
};
|
||||
}
|
||||
|
||||
case actionTypes.QUESTIONNAIRE_RESET:
|
||||
{
|
||||
return {
|
||||
...state,
|
||||
questionnaire: action.data.questionnaire,
|
||||
};
|
||||
}
|
||||
|
||||
default: {
|
||||
return state;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
export default questionnaireReducer;
|
||||
@ -14,6 +14,7 @@ import adminReducer from '../reducers/adminReducer';
|
||||
import contractsInfoReducer from '../reducers/contractsInfoReducer';
|
||||
import contractEventsReducer from '../reducers/contractEventsReducer';
|
||||
import contractFinesReducer from '../reducers/contractFinesReducer';
|
||||
import questionnaireReducer from '../reducers/questionnaireReducer';
|
||||
|
||||
const combinedReducer = combineReducers({
|
||||
auth: authReducer,
|
||||
@ -29,6 +30,7 @@ const combinedReducer = combineReducers({
|
||||
contracts_info: contractsInfoReducer,
|
||||
contract_events: contractEventsReducer,
|
||||
contract_fines: contractFinesReducer,
|
||||
questionnaire: questionnaireReducer,
|
||||
});
|
||||
|
||||
const makeStore = (context) =>
|
||||
@ -46,7 +48,7 @@ const makeStore = (context) =>
|
||||
|
||||
const persistConfig = {
|
||||
key: 'lkevoleasing',
|
||||
whitelist: [ 'auth', 'user', 'company', 'events', 'companies', 'contracts_info', 'contract_events', 'contract_fines', ],
|
||||
whitelist: [ 'auth', 'user', 'company', 'events', 'companies', 'contracts_info', 'contract_events', 'contract_fines', 'questionnaire'],
|
||||
storage
|
||||
};
|
||||
|
||||
|
||||
@ -2544,6 +2544,11 @@ lodash.sortby@^4.7.0:
|
||||
resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
|
||||
integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==
|
||||
|
||||
lodash@^4.17.21:
|
||||
version "4.17.21"
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
|
||||
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
|
||||
|
||||
loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user