You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

175 lines
6.2 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import { useState, useEffect } from 'react';
import './Form.css';
function App() {
const [payerName, setPayerName] = useState('');
const [payerINN, setPayerINN] = useState('');
const [payerPhoneEmail, setPayerPhoneEmail] = useState('');
const [payerAddress, setPayerAddress] = useState('');
const [clientId, setClientId] = useState('');
const [payerBankAccount, setPayerBankAccount] = useState('');
const [amount, setAmount] = useState('0-00');
const [payerAccounts, setPayerAccounts] = useState([]);
const handleBlur = () => {
console.log(amount);
console.log(payerBankAccount);
console.log(payerINN);
};
useEffect(() => {
const URLParams = new URLSearchParams(window.location.search);
const cnum = URLParams.get('cnum');
const ftype = URLParams.get('type');
const fetchUsingAsyncAwaitWithFetchApi = async () => {
const response = await fetch('/pmtvalidation/validate/', {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
fields: [
{ name: 'payer_account' },
{ name: 'client_id', value: cnum },
{ name: 'form_type', value: ftype },
],
action: 'getClientInfo',
}),
});
const data = await response.json();
setPayerName(data.fields[3].value);
setPayerINN(data.fields[4].value);
setPayerPhoneEmail(data.fields[6].value);
setPayerAddress(data.fields[7].value);
setClientId(data.fields[1].value);
setPayerBankAccount(data.fields[12].value);
setPayerAccounts(data.accounts);
};
fetchUsingAsyncAwaitWithFetchApi();
}, []);
return (
<>
<div className="payment">
<div className="title_wrapper">
<div className="title">
Рублевый перевод на счета других клиентов или в другие банки,
включая налоговые платежи
</div>
<div className="title">2 от 03.07.2024</div>
</div>
<div className="section_wrapper">
<div className="section_header">Плательщик</div>
<div className="section_line"></div>
</div>
<div className="payer">
<div className="child">Плательщик:</div>
<div className="child">{`${payerName} ${clientId}`}</div>
<div className="child">Номер счета:</div>
<div className="child">
<select
onChange={(e) => setPayerBankAccount(e.target.value)}
onBlur={handleBlur}
>
{payerAccounts.map((item, ind) => (
<option key={`cbAccountNumber_${ind}`}>
{item.description
? `${item.cbAccountNumber}|${item.description}`
: item.cbAccountNumber}
</option>
))}
</select>
</div>
<div className="child">ИНН:</div>
<div className="child">{payerINN}</div>
<div className="child">Сумма:</div>
<div className="child">
<span>
<input
value={amount}
onChange={(e) => setAmount(e.target.value)}
onBlur={handleBlur}
/>
RUB
</span>
</div>
<div className="child">Телефон или электронный адрес:</div>
<div className="child">{payerPhoneEmail}</div>
<div className="child"></div>
<div className="child"></div>
<div className="child">Адрес места жительства:</div>
<div className="child">{payerAddress}</div>
<div className="child">Комиссии и расходы:</div>
<div className="child">
<select>
<option>OUR</option>
</select>
</div>
</div>
<div className="section_wrapper_1">
<div className="section_header">Получатель</div>
<div className="section_line"></div>
</div>
<div className="receiver_1">
<div className="child"></div>
<div className="child"></div>
<div className="child">БИК:</div>
<div className="child">
<input onBlur={handleBlur} style={{ maxWidth: '32ch' }} />
</div>
<div className="child"> Корр. счета:</div>
<div className="child">
<select style={{ maxWidth: '34ch' }}>
<option>Выберите значение...</option>
</select>
</div>
<div className="child">Номер счета:</div>
<div className="child">
<input onBlur={handleBlur} style={{ maxWidth: '32ch' }} />
</div>
<div className="child">ИНН:</div>
<div className="child">
<input onBlur={handleBlur} style={{ maxWidth: '32ch' }} />
</div>
<div className="child">КПП (103):</div>
<div className="child">
<input onBlur={handleBlur} style={{ maxWidth: '32ch' }} />
</div>
</div>
<div className="receiver_2">
<div className="child">Наименование:</div>
<div className="child">
<input onBlur={handleBlur} style={{ width: '100ch' }} />
</div>
<div className="child">Банк получателя:</div>
<div className="child"></div>
<div className="child">Назначение платежа:</div>
<div className="child">
<textarea
style={{
height: '60px',
width: '133ch',
}}
/>
</div>
<div className="child">Код вида дохода:</div>
<div className="child">
<select style={{ width: '102ch' }}>
<option></option>
</select>
</div>
<div className="child">Код (УИП) (22):</div>
<div className="child">
<input onBlur={handleBlur} style={{ maxWidth: '32ch' }} />
</div>
</div>
</div>
</>
);
}
export default App;