This commit is contained in:
you 2024-08-15 13:08:50 +03:00
parent 5b5dc15f5c
commit 0159fa07e9
4 changed files with 90 additions and 24 deletions

Binary file not shown.

View File

@ -32,17 +32,19 @@
let invalidURL = true; let invalidURL = true;
async function getTokenFromURL() { async function getTokenFromURL() {
const queryString = window.location.search; const queryString = window.location.search;
// console.log(queryString); // //console.log(queryString);
// await delay(5000); // await delay(5000);
const urlParams = new URLSearchParams(queryString); const urlParams = new URLSearchParams(queryString);
tokenURL = urlParams.get("token"); tokenURL = urlParams.get("token");
console.log(tokenURL); //console.log(tokenURL);
validateJWT(tokenURL); validateJWT(tokenURL);
// console.log(); // //console.log();
if (invalidURL == true) { if (invalidURL == true) {
sayError("Неверный ID заявки"); sayError("Неверный ID заявки");
} else { } else {
await getOrderStatus(); await getOrderStatus();
//console.log(orderStatus);
switch (orderStatus) { switch (orderStatus) {
case 1: case 1:
@ -56,17 +58,20 @@
break; break;
case 4: case 4:
getPaymentMethods(); getPaymentMethods();
break;
case 5: case 5:
getPaymentMethods(); getPaymentMethods();
break;
case 6: case 6:
showTimeout = true; showTimeout = true;
break;
default: default:
break; break;
} }
// getPaymentMethods(); // getPaymentMethods();
} }
// console.log(urlParams.get("token")); // //console.log(urlParams.get("token"));
} }
getTokenFromURL(); getTokenFromURL();
@ -74,11 +79,11 @@
try { try {
let t = jwtDecode(token); let t = jwtDecode(token);
orderID = t["order_id"]; orderID = t["order_id"];
console.log(t); // //console.log(t);
invalidURL = false; invalidURL = false;
} catch (error) { } catch (error) {
invalidURL = true; invalidURL = true;
console.log(error); // //console.log(error);
} }
} }
@ -86,6 +91,8 @@
let timeLeftInterval = -1; let timeLeftInterval = -1;
function calculateDate(src) { function calculateDate(src) {
const originalDate = parseISO(src); const originalDate = parseISO(src);
//console.log(originalDate);
const newDate = addMinutes(originalDate, 10); const newDate = addMinutes(originalDate, 10);
timeLeftInterval = setInterval(() => { timeLeftInterval = setInterval(() => {
timeLeft = formatDistanceToNow(newDate, { timeLeft = formatDistanceToNow(newDate, {
@ -175,7 +182,7 @@
"8d895e75b7a0def7699e6c4d7cd54c51d9844775bd5fd5e8e3d34748", "8d895e75b7a0def7699e6c4d7cd54c51d9844775bd5fd5e8e3d34748",
); );
const captchaInput = form.querySelector("input"); const captchaInput = form.querySelector("input");
if (captchaInput.value !== "") { if (captchaInput?.value !== "") {
captchaVerified = true; captchaVerified = true;
captchaValue = captchaInput.value; captchaValue = captchaInput.value;
} else { } else {
@ -230,8 +237,8 @@
}, },
); );
requestingReqs = false; requestingReqs = false;
requisites = result.data; requisites = result.data["requisite"];
console.log(result); // console.log(result);
showReqs = true; showReqs = true;
calculateDate(result.data["requisite_creation_time"]); calculateDate(result.data["requisite_creation_time"]);
} catch (error) { } catch (error) {
@ -252,19 +259,24 @@
}, },
}); });
orderStatus = result.data.status; orderStatus = result.data.status;
console.log(result); // //console.log(result);
if(orderStatus === 4) if(orderStatus === 4)
{ {
selectedBank = result.data["bank_id"]; selectedBank = result.data["bank_id"]+"";
} }
else if (orderStatus === 5) else if (orderStatus === 5)
{ {
selectedBank = result.data["bank_id"]; //console.log('hello!');
requisites = result.data["requisites"];
calculateDate(requisites["requisite_creation_time"]); selectedBank = result.data["bank_id"] + "";
requisites = result.data["requisite"];
calculateDate(result.data["requisite_creation_time"]);
disableGetReqBtn = true;
showReqs = true; showReqs = true;
} }
} catch (error) { } catch (error) {
//console.log(error);
orderStatus=6; orderStatus=6;
} }
@ -281,7 +293,7 @@
"Content-Type": "multipart/form-data", "Content-Type": "multipart/form-data",
}, },
}); });
console.log(result); // //console.log(result);
} }
async function createDispute() { async function createDispute() {
@ -297,7 +309,7 @@
}, },
}, },
); );
console.log(result); // //console.log(result);
} }
async function choosePaymentMethod() { async function choosePaymentMethod() {
@ -313,7 +325,7 @@
}, },
}, },
); );
console.log(result); //console.log(result);
} }
async function cancelOrder() { async function cancelOrder() {
@ -329,15 +341,15 @@
}, },
}, },
); );
console.log(result); //console.log(result);
} }
async function copyToClipboard() { async function copyToClipboard() {
try { try {
await navigator.clipboard.writeText(requisites.requisite[1]); await navigator.clipboard.writeText(requisites[1]);
sayInfo("Скопировано!"); sayInfo("Скопировано!");
} catch (err) { } catch (err) {
console.error("Failed to copy: ", err); //console.error("Failed to copy: ", err);
} }
} }
@ -406,7 +418,7 @@
</div> </div>
<div class="flex flex-col w-full gap-8"> <div class="flex flex-col w-full gap-8">
{#if showBankSelection} {#if showBankSelection}
<p class="text-3xl font-bold">Выбор банка</p> <p class="text-3xl font-bold">{selectedBank === "" ? "Выбор банка":(requisites.length < 1 ? "Запрос реквизитов":"Оплата заявки")}</p>
{#each paymentMethods as pm} {#each paymentMethods as pm}
<div class="flex"> <div class="flex">
<button <button
@ -460,7 +472,7 @@
<p class="text-lg">Номер карты для перевода</p> <p class="text-lg">Номер карты для перевода</p>
<div class="flex gap-4 items-center"> <div class="flex gap-4 items-center">
<p class="text-2xl font-bold"> <p class="text-2xl font-bold">
{requisites.requisite[1]} {requisites[1]}
</p> </p>
<button <button
on:click={() => { on:click={() => {
@ -476,7 +488,7 @@
></div> ></div>
</button> </button>
</div> </div>
<p class="text-lg">Получатель: {requisites.requisite[0]}</p> <p class="text-lg">Получатель: {requisites[0]}</p>
<p class="text-lg mt-4"> <p class="text-lg mt-4">
Время на оплату: {timeLeft} Время на оплату: {timeLeft}
</p> </p>

View File

@ -0,0 +1,26 @@
<script>
</script>
<div class="w-full flex justify-center items-center">
<svg
class={"animate-spin h-8 w-8 text-white"}
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
>
<circle
class="opacity-25"
cx="12"
cy="12"
r="10"
stroke="currentColor"
stroke-width="4"
></circle>
<path
class="opacity-75"
fill="currentColor"
d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
></path>
</svg>
</div>

28
src/lib/toaster.js Normal file
View File

@ -0,0 +1,28 @@
import { toast } from "@zerodevx/svelte-toast";
//#FFBE00
export function sayInfo(msg, duration = 3000) {
toast.push(msg, {
theme: {
"--toastBackground": "#00B5FF"
},
duration: duration
});
}
export function sayWarning(msg, duration = 3000) {
toast.push(msg, {
theme: {
"--toastBackground": "#FFBE00",
"--toastColor": "#000000"
},
duration: duration
});
}
export function sayError(msg, duration = 3000) {
toast.push(msg, {
theme: {
"--toastBackground": "#FF5861",
"--toastColor": "#000000"
},
duration: duration
});
}