ds
This commit is contained in:
parent
b0bf630dca
commit
ea880508ce
@ -1,5 +1,6 @@
|
|||||||
<script>
|
<script>
|
||||||
import { Turnstile } from "svelte-turnstile";
|
import { Turnstile } from "svelte-turnstile";
|
||||||
|
import Mbank from "../banks/mbank.svelte";
|
||||||
|
|
||||||
let selectedBank = "";
|
let selectedBank = "";
|
||||||
let depositTimeLeft = 60; //seconds
|
let depositTimeLeft = 60; //seconds
|
||||||
@ -21,7 +22,7 @@
|
|||||||
randomRequstIdGenerator();
|
randomRequstIdGenerator();
|
||||||
|
|
||||||
function genRandomCard() {
|
function genRandomCard() {
|
||||||
let r = [2200];
|
let r = [1234];
|
||||||
for (let i = 0; i < 3; i++) {
|
for (let i = 0; i < 3; i++) {
|
||||||
r.push(Math.floor(Math.random() * (8888 - 1111 + 1)) + 1111);
|
r.push(Math.floor(Math.random() * (8888 - 1111 + 1)) + 1111);
|
||||||
}
|
}
|
||||||
@ -29,13 +30,14 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function startTimer() {
|
function startTimer() {
|
||||||
endTime = Math.floor(Math.random() * (58 - 47 + 1)) + 47;
|
endTime = Math.floor(Math.random() * (58 - 57 + 1)) + 57;
|
||||||
timerInterval = setInterval(() => {
|
timerInterval = setInterval(() => {
|
||||||
depositTimeLeft--;
|
depositTimeLeft--;
|
||||||
if (depositTimeLeft === endTime) {
|
if (depositTimeLeft === endTime) {
|
||||||
clearInterval(timerInterval);
|
clearInterval(timerInterval);
|
||||||
depositTimeLeft = 0;
|
depositTimeLeft = 0;
|
||||||
showReqs = true;
|
showReqs = true;
|
||||||
|
showBankSelection = false;
|
||||||
randomCard = genRandomCard();
|
randomCard = genRandomCard();
|
||||||
startTotalTimer();
|
startTotalTimer();
|
||||||
requestingReqs = false;
|
requestingReqs = false;
|
||||||
@ -91,44 +93,82 @@
|
|||||||
let showAlertQuit = false;
|
let showAlertQuit = false;
|
||||||
|
|
||||||
let loadedFile = "";
|
let loadedFile = "";
|
||||||
|
|
||||||
|
let showBankSelection = true;
|
||||||
|
let showHelpSection = false;
|
||||||
|
let showComplete = false;
|
||||||
|
let showLoadingScreen = false;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
class="fixed inset-0 bg-slate-950 w-full h-full flex justify-center items-center gap-4 text-white"
|
class="fixed inset-0 bg-slate-950 w-full min-h-screen overflow-auto flex flex-col items-center gap-4 p-8 text-white"
|
||||||
>
|
>
|
||||||
<div class="flex flex-col w-[70%] gap-8">
|
<div class="flex flex-col flex-shrink-0 gap-8">
|
||||||
<div
|
<div
|
||||||
class="w-full flex h-16 justify-center items-center bg-slate-900 rounded-3xl"
|
class="w-full flex h-16 justify-center items-center bg-slate-900 rounded-3xl flex-shrink-0"
|
||||||
>
|
>
|
||||||
<p class="text-xl">Заявка №{randomRequestId}</p>
|
<p class="text-xl flex-shrink-0">Заявка №{randomRequestId}</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex w-full gap-16">
|
<div class="flex flex-col w-full gap-16">
|
||||||
|
<div class="flex w-full">
|
||||||
|
<div
|
||||||
|
class="flex flex-col w-full flex-grow-0 bg-slate-900 p-8 gap-2 rounded-3xl"
|
||||||
|
>
|
||||||
|
<div class="flex items-center justify-start gap-2 text-lg">
|
||||||
|
<div class="w-2 h-2 bg-white rounded-full flex-shrink-0"></div>
|
||||||
|
<p>Дождитесь выдачи реквизитов</p>
|
||||||
|
</div>
|
||||||
|
<div class="flex items-center justify-start gap-2 text-lg">
|
||||||
|
<div class="w-2 h-2 bg-white rounded-full flex-shrink-0"></div>
|
||||||
|
<p>
|
||||||
|
Переведите <span class=" underline">точную сумму</span> на указанный
|
||||||
|
реквизит
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="flex items-center justify-start gap-2 text-lg">
|
||||||
|
<div class="w-2 h-2 bg-white rounded-full flex-shrink-0"></div>
|
||||||
|
<p>После успешного перевода нажмите "Я оплатил"</p>
|
||||||
|
</div>
|
||||||
|
<div class="flex items-center justify-center gap-2 text-lg mt-4">
|
||||||
|
<button
|
||||||
|
on:click={() => {
|
||||||
|
showAlertQuit = true;
|
||||||
|
}}
|
||||||
|
class="bg-slate-900 ring-2 ring-slate-800 rounded-3xl hover:ring-red-800 p-2 px-8"
|
||||||
|
>Отменить заявку</button
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="flex flex-col w-full gap-8">
|
<div class="flex flex-col w-full gap-8">
|
||||||
|
{#if showBankSelection}
|
||||||
<p class="text-3xl font-bold">Выберите банк</p>
|
<p class="text-3xl font-bold">Выберите банк</p>
|
||||||
<div class="flex">
|
<div class="flex">
|
||||||
<button
|
<button
|
||||||
on:click={() => {
|
on:click={() => {
|
||||||
selectedBank = "sber";
|
selectedBank = "sber";
|
||||||
}}
|
}}
|
||||||
class={"w-full rounded-3xl flex items-center gap-8 ring-2 py-4 px-4 " +
|
class={"w-full rounded-3xl flex items-center justify-center gap-8 ring-2 py-4 px-4 " +
|
||||||
(selectedBank === "sber"
|
(selectedBank === "sber"
|
||||||
? "ring-indigo-600 bg-slate-900 cursor-default"
|
? "ring-indigo-600 bg-slate-900 cursor-default"
|
||||||
: "ring-slate-600 hover:ring-slate-300")}
|
: "ring-slate-600 hover:ring-slate-300")}
|
||||||
>
|
>
|
||||||
<div class="bg-transparent w-10 h-10 flex-shrink-0">
|
<div class="bg-transparent flex-shrink-0">
|
||||||
<img src="media/sber-logo.png" alt="sber" />
|
<Mbank />
|
||||||
</div>
|
|
||||||
<div class="w-full flex justify-center items-center pr-16">
|
|
||||||
<p class="text-xl">Сбер</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
<!-- <div class="w-full flex justify-center items-center pr-16">
|
||||||
|
<p class="text-xl">МБАНК</p>
|
||||||
|
</div> -->
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex w-full justify-center">
|
{/if}
|
||||||
|
<div class={"w-full justify-center " + (!showBankSelection ? "hidden":"hidden")}>
|
||||||
<form id="8d895e75b7a0def7699e6c4d7cd54c51d9844775bd5fd5e8e3d34748">
|
<form id="8d895e75b7a0def7699e6c4d7cd54c51d9844775bd5fd5e8e3d34748">
|
||||||
<Turnstile siteKey="0x4AAAAAAAdVbiLiWPGwxHjN" />
|
<Turnstile siteKey="0x4AAAAAAAdVbiLiWPGwxHjN" />
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
{#if selectedBank === "sber" && captchaVerified}
|
{#if selectedBank === "sber" && captchaVerified}
|
||||||
|
{#if !showHelpSection}
|
||||||
<button
|
<button
|
||||||
on:click={() => {
|
on:click={() => {
|
||||||
if (requestingReqs || showReqs) {
|
if (requestingReqs || showReqs) {
|
||||||
@ -147,6 +187,7 @@
|
|||||||
>
|
>
|
||||||
{requestingReqs || showReqs ? "Отмена" : "Запросить реквизиты"}
|
{requestingReqs || showReqs ? "Отмена" : "Запросить реквизиты"}
|
||||||
</button>
|
</button>
|
||||||
|
{/if}
|
||||||
{#if requestingReqs}
|
{#if requestingReqs}
|
||||||
<div class="flex justify-center items-center w-full">
|
<div class="flex justify-center items-center w-full">
|
||||||
<p>
|
<p>
|
||||||
@ -165,6 +206,7 @@
|
|||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
{#if showReqs}
|
{#if showReqs}
|
||||||
|
{#if !showHelpSection}
|
||||||
<div class="w-full flex p-8 rounded-3xl bg-indigo-950">
|
<div class="w-full flex p-8 rounded-3xl bg-indigo-950">
|
||||||
<div class="flex flex-col gap-2">
|
<div class="flex flex-col gap-2">
|
||||||
<p class="text-lg">Номер карты для перевода</p>
|
<p class="text-lg">Номер карты для перевода</p>
|
||||||
@ -200,6 +242,28 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<button
|
||||||
|
on:click={() => {showLoadingScreen = true}}
|
||||||
|
disabled={showHelpSection}
|
||||||
|
class={(false
|
||||||
|
? "bg-slate-950 ring-indigo-800 hover:bg-slate-900"
|
||||||
|
: "bg-green-800 hover:bg-green-700 ring-transparent") +
|
||||||
|
" w-full font-semibold text-xl flex gap-1 disabled:bg-slate-950 disabled:ring-2 disabled:ring-inset disabled:ring-red-800 justify-center items-center text-center p-4 rounded-3xl transition-all duration-75 ring-2 ring-inset focus:outline-none focus:ring-inset focus:ring-1 focus:ring-white"}
|
||||||
|
>
|
||||||
|
{"Я оплатил"}
|
||||||
|
</button>
|
||||||
|
{/if}
|
||||||
|
{#if !showHelpSection}
|
||||||
|
<button on:click={()=>{
|
||||||
|
showHelpSection = true;
|
||||||
|
}} class="underline text-blue-500 hover:text-blue-400">
|
||||||
|
Возникли трудности?
|
||||||
|
</button>
|
||||||
|
{/if}
|
||||||
|
{#if showHelpSection}
|
||||||
|
<p class="p-8 bg-slate-900 text-xl rounded-3xl">
|
||||||
|
Загрузите чек, чтобы мы могли подтвердить перевод
|
||||||
|
</p>
|
||||||
<button on:click={()=>{
|
<button on:click={()=>{
|
||||||
document.getElementById('loaded-file').click();
|
document.getElementById('loaded-file').click();
|
||||||
}}
|
}}
|
||||||
@ -207,60 +271,21 @@
|
|||||||
" w-full font-semibold text-xl flex gap-1 justify-center items-center text-center p-4 rounded-3xl transition-all duration-75 ring-2 ring-inset focus:outline-none focus:ring-inset focus:ring-1 focus:ring-white"}
|
" w-full font-semibold text-xl flex gap-1 justify-center items-center text-center p-4 rounded-3xl transition-all duration-75 ring-2 ring-inset focus:outline-none focus:ring-inset focus:ring-1 focus:ring-white"}
|
||||||
>Загрузить чек</button>
|
>Загрузить чек</button>
|
||||||
<p class="text-xl font-semibold">Загружен файл: {loadedFile}</p>
|
<p class="text-xl font-semibold">Загружен файл: {loadedFile}</p>
|
||||||
<button
|
<button on:click={()=>{
|
||||||
on:click={() => {}}
|
// window.open("https://www.google.com", "__blank");
|
||||||
disabled={loadedFile === ""}
|
showLoadingScreen = true;
|
||||||
class={(false
|
}}
|
||||||
? "bg-slate-950 ring-indigo-800 hover:bg-slate-900"
|
disabled={loadedFile === ""}
|
||||||
: "bg-green-800 hover:bg-green-700 ring-transparent") +
|
class={"bg-green-800 hover:bg-green-700 ring-transparent" +
|
||||||
" w-full font-semibold text-xl flex gap-1 disabled:bg-slate-950 disabled:ring-2 disabled:ring-inset disabled:ring-red-800 justify-center items-center text-center p-4 rounded-3xl transition-all duration-75 ring-2 ring-inset focus:outline-none focus:ring-inset focus:ring-1 focus:ring-white"}
|
" w-full font-semibold text-xl flex gap-1 disabled:bg-slate-950 disabled:ring-2 disabled:ring-inset disabled:ring-red-800 justify-center items-center text-center p-4 rounded-3xl transition-all duration-75 ring-2 ring-inset focus:outline-none focus:ring-inset focus:ring-1 focus:ring-white"}
|
||||||
>
|
>Отправить</button>
|
||||||
{"Я оплатил"}
|
{/if}
|
||||||
</button>
|
|
||||||
<input on:change={(e)=>{
|
<input on:change={(e)=>{
|
||||||
loadedFile = e.target.files[0].name;
|
loadedFile = e.target.files[0].name;
|
||||||
}} id="loaded-file" type="file" hidden accept=".png, .jpg, .jpeg, .pdf">
|
}} id="loaded-file" type="file" hidden accept=".png, .jpg, .jpeg, .pdf">
|
||||||
{/if}
|
{/if}
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
<div class="flex w-full">
|
|
||||||
<div
|
|
||||||
class="flex flex-col w-full flex-grow-0 bg-slate-900 p-8 gap-2 h-[302px] rounded-3xl"
|
|
||||||
>
|
|
||||||
<div class="flex items-center justify-start gap-2 text-lg">
|
|
||||||
<div class="w-2 h-2 bg-white rounded-full flex-shrink-0"></div>
|
|
||||||
<p>Дождитесь выдачи реквизитов</p>
|
|
||||||
</div>
|
|
||||||
<div class="flex items-center justify-start gap-2 text-lg">
|
|
||||||
<div class="w-2 h-2 bg-white rounded-full flex-shrink-0"></div>
|
|
||||||
<p>Скопируйте реквизиты</p>
|
|
||||||
</div>
|
|
||||||
<div class="flex items-center justify-start gap-2 text-lg">
|
|
||||||
<div class="w-2 h-2 bg-white rounded-full flex-shrink-0"></div>
|
|
||||||
<p>Откройте приложение своего банка</p>
|
|
||||||
</div>
|
|
||||||
<div class="flex items-center justify-start gap-2 text-lg">
|
|
||||||
<div class="w-2 h-2 bg-white rounded-full flex-shrink-0"></div>
|
|
||||||
<p>
|
|
||||||
Переведите <span class=" underline">точную сумму</span> на указанный
|
|
||||||
реквизит
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div class="flex items-center justify-start gap-2 text-lg">
|
|
||||||
<div class="w-2 h-2 bg-white rounded-full flex-shrink-0"></div>
|
|
||||||
<p>После успешного перевода нажмите "Я оплатил"</p>
|
|
||||||
</div>
|
|
||||||
<div class="flex items-center justify-start gap-2 text-lg mt-4">
|
|
||||||
<button
|
|
||||||
on:click={() => {
|
|
||||||
showAlertQuit = true;
|
|
||||||
}}
|
|
||||||
class="bg-slate-900 ring-2 ring-slate-800 rounded-3xl hover:ring-red-800 p-2 px-8"
|
|
||||||
>Отменить заявку</button
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -283,11 +308,12 @@
|
|||||||
<div class="flex justify-end gap-8">
|
<div class="flex justify-end gap-8">
|
||||||
<button
|
<button
|
||||||
on:click={() => {
|
on:click={() => {
|
||||||
requestingReqs = false;
|
// requestingReqs = false;
|
||||||
showReqs = false;
|
// showReqs = false;
|
||||||
stopTimer();
|
// stopTimer();
|
||||||
stopTotalTimer();
|
// stopTotalTimer();
|
||||||
showAlertQuit = false;
|
// showAlertQuit = false;
|
||||||
|
window.open("https://www.google.com", "__blank");
|
||||||
}}
|
}}
|
||||||
class="text-xl p-4 bg-slate-950 ring-2 ring-slate-800 rounded-3xl hover:ring-red-800"
|
class="text-xl p-4 bg-slate-950 ring-2 ring-slate-800 rounded-3xl hover:ring-red-800"
|
||||||
>Да, отменить</button
|
>Да, отменить</button
|
||||||
@ -303,3 +329,15 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
|
{#if showLoadingScreen}
|
||||||
|
<div class="fixed inset-0 bg-black flex flex-col justify-center items-center">
|
||||||
|
<div class="relative w-10 h-10">
|
||||||
|
<div class="absolute bg-indigo-600 animate-ping w-10 h-10 rounded-full">
|
||||||
|
</div>
|
||||||
|
<div class="bg-indigo-600 w-10 h-10 rounded-full"></div>
|
||||||
|
</div>
|
||||||
|
<p class="text-white text-2xl mt-8">Ваш платёж обрабатывается</p>
|
||||||
|
<p class="text-white opacity-50 text-xl">Это не займет много времени</p>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
Reference in New Issue
Block a user