This commit is contained in:
Kakabay 2024-04-02 19:11:11 +05:00
parent 07bb756e45
commit 8a006aaaff
6 changed files with 243 additions and 76 deletions

View File

@ -63,15 +63,18 @@ const CalculateStage = ({
<section className="cs-2">
<form>
<div className="cs-2-left">
<h2 className="cs-2-title">
{locale === 'TKM'
? 'Karzyň kalkulýatory'
: locale === 'РУС'
? 'Калькулятор кредита'
: locale === 'ENG'
? 'Loan calculator'
: 'Karzyň kalkulýatory'}
</h2>
<div className="calculate-header">
<h2 className="cs-2-title">
{locale === 'TKM'
? 'Karzyň kalkulýatory'
: locale === 'РУС'
? 'Калькулятор кредита'
: locale === 'ENG'
? 'Loan calculator'
: 'Karzyň kalkulýatory'}
</h2>
<p>Максимальная сумма онлайн потребительского кредита составляет 60000 манат</p>
</div>
<div className="input-block">
<label htmlFor="sum">
{locale === 'TKM'

View File

@ -15,7 +15,13 @@ const schema = z.object({
// surname: z.string().min(1),
});
const PaymentDetails = ({ setStage, paymentDetails, borrowerData, setSumbitCardDetails }) => {
const PaymentDetails = ({
setStage,
paymentDetails,
borrowerData,
setSumbitCardDetails,
paymentLink,
}) => {
const { locale } = useContext(LanguageContext);
const [invalidData, setInvalidData] = useState(false);

View File

@ -35,7 +35,7 @@ const PaymentSuccess = ({
method: 'POST',
body: JSON.stringify({
phone_number: user.mobile_phone,
phone_number: '+99361454210',
otp: codeValue,
}),
});
@ -48,7 +48,6 @@ const PaymentSuccess = ({
if (jsonedResponse === 'OTP validated successfully') {
fetchData();
setStage(16);
setIsLoading(false);
}
} catch (error) {}
@ -132,20 +131,20 @@ const PaymentSuccess = ({
{locale === 'TKM'
? 'Karzyň kalkulýatory'
: locale === 'РУС'
? 'Оплата прошла успешно. Ваша заявка принята'
? 'Оплата прошла успешно, ваша заявка на оформление кредитной карты принята'
: locale === 'ENG'
? 'Loan calculator'
: 'Karzyň kalkulýatory'}
</h2>
<h2 className="cs-2-title">
<h3 className="succes-sub-title">
{locale === 'TKM'
? 'Karzyň kalkulýatory'
: locale === 'РУС'
? 'Введите код с СМС оповещения, отправленный на номер '
? 'Завершите оформление онлайн кредита, введя СМС код, отправленный на ваш номер телефона '
: locale === 'ENG'
? 'Loan calculator'
: 'Karzyň kalkulýatory'}
</h2>
</h3>
<div className="imm-credit-form-wrapper">
<div className="input-block">
<label htmlFor="code">

View File

@ -72,8 +72,7 @@ const PhoneAccept = ({
if (jsonedResponse.status === 'ok') {
setInvalidData(false);
sendCode();
setStage(15);
checkPayment();
} else if (jsonedResponse.status === 'wrong-otp') {
setTryAgain(true);
} else {
@ -82,22 +81,14 @@ const PhoneAccept = ({
} catch (error) {}
};
const sendConfirmData = async () => {
const checkPayment = async () => {
try {
const headers = {
'Content-Type': 'application/json',
};
const response = await fetch(
'https://shahsyotag.halkbank.gov.tm/app/api/check-payment-credit-card',
{
headers: headers,
body: JSON.stringify({
paymentId: paymentLink.id,
orderId: paymentDetails['md-order'],
status: '1',
}),
},
`https://shahsyotag.halkbank.gov.tm/app/api/check-payment-credit-card?paymentId=${paymentLink.id}&orderId=${paymentDetails['md-order']}&status=1`,
);
if (!response.ok) {
@ -105,8 +96,13 @@ const PhoneAccept = ({
}
const jsonedResponse = await response.json();
console.log(jsonedResponse);
} catch (error) {}
if (jsonedResponse.ErrorCode === '0') {
sendCode();
}
} catch (error) {
console.error(error.toString());
}
};
const sendCode = async () => {
@ -115,7 +111,7 @@ const PhoneAccept = ({
method: 'POST',
headers: { 'Content-Type': 'aplication/json' },
body: JSON.stringify({
phone_number: user.mobile_phone,
phone_number: '+99361454210',
}),
});
@ -126,6 +122,8 @@ const PhoneAccept = ({
if (!response.ok) {
throw new Error(`HTTP error! Status: ${response.status}`);
}
setStage(15);
} catch (error) {
console.error(error);
}
@ -133,7 +131,6 @@ const PhoneAccept = ({
const onSubmit = (data) => {
confirmPayment();
sendConfirmData();
};
if (isLoading) {

View File

@ -35,7 +35,9 @@ const ImmediateCredit = () => {
const [paymentDetails, setPaymentDetails] = useState();
console.log(userToken);
const [paymentCardData, setPaymentCardData] = useState();
// console.log(userToken);
useEffect(() => {
if (modalOpen) {
@ -61,9 +63,11 @@ const ImmediateCredit = () => {
setLoansData(jsonedResponse);
// console.log('loan data', jsonedResponse);
if (response.ok) {
checkStatus(jsonedResponse.sign);
}
checkStatus(jsonedResponse.sign);
// console.log('loan data', jsonedResponse);
} catch (error) {
console.error(error);
}
@ -90,31 +94,37 @@ const ImmediateCredit = () => {
} catch (error) {}
};
const fetchCard = async () => {
const fetchCardData = async () => {
try {
const headers = {
Accept: 'application/json',
'Content-Type': 'application/json',
Authorization: `Bearer ${userToken}`,
};
const response = await fetch(
`https://shahsyotag.halkbank.gov.tm/app/api/check-payment-credit-card`,
`https://shahsyotag.halkbank.gov.tm/app/api/get-credit-card-data`,
{
method: 'get',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
paymentId: 1,
orderId: 1231,
status: '1',
}),
headers,
},
);
if (!response.ok) {
throw new Error('Err');
}
const jsonedResponse = await response.json();
setPaymentCardData(jsonedResponse.data);
// setCardData(jsonedResponse);
} catch (error) {}
};
console.log(user);
useEffect(() => {
fetchData();
fetchCardData();
}, []);
return (
@ -174,39 +184,39 @@ const ImmediateCredit = () => {
/>
{loader ? <ProgressLoader progress={progress} /> : null}
<div className="container">
<div className="cards-inner">
<div className="card-title">
<h2 className="cards-title">
<div className="card-title">
<h2 className="cards-title">
{locale === 'TKM'
? 'Çalt karz almak üçin onlaýn-ýüzlenme'
: locale === 'РУС'
? 'Онлайн-заявка для получения быстрого кредита'
: locale === 'ENG'
? 'Online application for immediate loan issuance'
: 'Çalt karz almak üçin onlaýn-ýüzlenme'}
</h2>
<button
type="button"
className="card-btn sign-btn"
onClick={() => {
window.scrollTo(0, 0);
setStage(1);
setModalOpen(true);
}}>
<div className="card-img">
<img src={add} alt="add" />
</div>
<h3>
{locale === 'TKM'
? 'Çalt karz almak üçin onlaýn-ýüzlenme'
? 'Ýüzlenme doldurmak'
: locale === 'РУС'
? 'Онлайн-заявка для получения быстрого кредита'
? 'Заполнить заявку'
: locale === 'ENG'
? 'Online application for immediate loan issuance'
: 'Çalt karz almak üçin onlaýn-ýüzlenme'}
</h2>
<button
type="button"
className="card-btn sign-btn"
onClick={() => {
window.scrollTo(0, 0);
setStage(1);
setModalOpen(true);
}}>
<div className="card-img">
<img src={add} alt="add" />
</div>
<h3>
{locale === 'TKM'
? 'Ýüzlenme doldurmak'
: locale === 'РУС'
? 'Заполнить заявку'
: locale === 'ENG'
? 'Fill in application'
: 'Ýüzlenme doldurmak'}
</h3>
</button>
</div>
? 'Fill in application'
: 'Ýüzlenme doldurmak'}
</h3>
</button>
</div>
<div className="loans-inner">
<div className="home-table-wrapper">
<table className="home-table">
<tbody>
@ -258,6 +268,132 @@ const ImmediateCredit = () => {
</tbody>
</table>
</div>
{paymentCardData ? (
<div className="home-table-wrapper">
<h3 className="loan-card-table-title">Зааявка для получения кредитной карты</h3>
<table className="home-table">
<tbody>
<tr className="table-head">
<th>ID</th>
<th>
{locale === 'TKM'
? 'Görnüşi'
: locale === 'РУС'
? 'Тип'
: locale === 'ENG'
? 'Type'
: 'Görnüşi'}
</th>
<th>
{locale === 'TKM'
? 'Senesi'
: locale === 'РУС'
? 'Дата'
: locale === 'ENG'
? 'Date'
: 'Senesi'}
</th>
<th>
{locale === 'TKM'
? 'Ýagdaýy'
: locale === 'РУС'
? 'Статус'
: locale === 'ENG'
? 'Status'
: 'Ýagdaýy'}
</th>
</tr>
{paymentCardData ? (
<tr>
<td>#{paymentCardData.id}</td>
<td>{paymentCardData.selected_card}</td>
<td>{paymentCardData.created_at}</td>
<td
className={
paymentCardData.status === 'kart_chykarylmady'
? 'red'
: paymentCardData.status === 'kart_chykaryldy' ||
paymentCardData.status === 'kabul_edildi'
? 'green'
: ''
}>
{paymentCardData.status === 'ugradyldy'
? locale === 'TKM'
? 'Ugradyldy'
: locale === 'РУС'
? 'Отправлено'
: locale === 'ENG'
? 'Sent'
: 'Ugradyldy'
: paymentCardData.status === 'kabul_edildi'
? locale === 'TKM'
? 'Kabul edildi'
: locale === 'РУС'
? 'Принята'
: locale === 'ENG'
? 'Accepted'
: 'Kabul edildi'
: paymentCardData.status === 'seredilyar'
? locale === 'TKM'
? 'Görülyar'
: locale === 'РУС'
? 'На стадии рассмотрения'
: locale === 'ENG'
? 'Under consideration'
: 'Görülyar'
: paymentCardData.status === 'kart_chykaryldy'
? locale === 'TKM'
? 'Tassyklandy'
: locale === 'РУС'
? 'Утверждено'
: locale === 'ENG'
? 'Approved'
: 'Tassyklandy'
: paymentCardData.status === 'kart_chykarylmady'
? locale === 'TKM'
? 'Ret edildi'
: locale === 'РУС'
? 'Отказано'
: locale === 'ENG'
? 'Denied'
: 'Ret edildi'
: ''}
</td>
<td>
{paymentCardData.status === 'kart_chykarylmady' ? (
<div className="reject">
<div className="reason">
<h4>{paymentCardData.action}</h4>
</div>
<img src={allert} alt="reject" />
</div>
) : (
''
)}
</td>
</tr>
) : (
<tr>
<td>
{locale === 'TKM'
? 'Tabşyrlan ýüzlenme ýok'
: locale === 'РУС'
? 'Заявок на карты нет'
: locale === 'ENG'
? 'There are no applications for card issuance'
: 'Tabşyrlan ýüzlenme ýok'}
</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
)}
</tbody>
</table>
</div>
) : null}
</div>
</div>
</section>

View File

@ -83,6 +83,16 @@
border-radius: 0.4rem;
}
.calculate-header {
display: flex;
flex-direction: column;
gap: 1.6rem;
p {
font-size: 1.6rem;
}
}
.notauser-title {
font-size: 3rem;
color: red;
@ -93,6 +103,11 @@
color: $base-green;
}
.succes-sub-title {
font-size: 1.8rem;
font-weight: 500;
}
.loan-accepted-title {
color: $base-green;
}
@ -106,3 +121,14 @@
font-size: 1.8rem;
}
}
.loans-inner {
display: flex;
flex-direction: column;
gap: 4rem;
}
.loan-card-table-title {
font-size: 2.4rem;
margin-bottom: 1.6rem;
}