This commit is contained in:
you 2024-07-04 14:50:54 +03:00
parent 60ea55d989
commit 9ecbaab6c5

View File

@ -4,6 +4,7 @@
import { makePost } from "$lib/tools/requests/requests.js";
import { sayError } from "$lib/tools/toaster/Toaster.js";
import { redirect } from "$lib/tools/url/URLTools.js";
import Pagination from "$lib/ui-components/pagination.svelte";
export let data;
let { userData } = data;
@ -56,32 +57,102 @@
}
let userOrders = [];
let numPagesUserOrders = 1;
let currentPageUserOrders = 1;
let disablePagesUserOrders = false;
async function getUserOrders() {
disablePagesUserOrders = true;
const result = await makePost(
"getUserOrders",
{
token: token,
page: 0,
page: currentPageUserOrders - 1,
orderBy: "id",
statuses_to_send: 2,
},
makeAuthHeaderForAxios(getAuthInfo()?.a)
);
if (result.status === 401) {
sayError("Данные авторизации устарели");
window.location.href = "/";
disablePagesUserOrders = false;
return;
}
if (result.error) {
sayError("Не удалось получить ордеры пользователя");
disablePagesUserOrders = false;
return;
}
userOrders = result.data.data;
numPagesUserOrders = Number(result.data?.pages);
if (numPagesUserOrders === 0) numPagesUserOrders = 1;
console.log(result.data);
disablePagesUserOrders = false;
}
let userRequisites = [];
async function getUserRequisites() {
const result = await makePost(
"getRequisite",
{
token: token,
},
makeAuthHeaderForAxios(getAuthInfo()?.a)
);
if (result.status === 401) {
sayError("Данные авторизации устарели");
window.location.href = "/";
return;
}
if (result.error) {
sayError("Не удалось получить ордеры пользователя");
sayError("Не удалось получить реквизиты пользователя");
return;
}
userOrders = result.data.data;
console.log(userOrders);
userRequisites = result.data;
console.log(result.data);
}
let userDeposits = [];
let numOfPagesUserDeposits = 1;
let currentPageUserDeposits = 1;
let disablePagesUserDeposits = false;
const depoStatusMap = {
"0": "Активна",
"1": "Завершена",
"2": "Отклонена"
};
///api/v1/admin/getUserDeposits
async function getUserDeposits() {
disablePagesUserDeposits = true;
const result = await makePost(
"admin/getUserDeposits",
{
token: token,
page: 1,
},
makeAuthHeaderForAxios(getAuthInfo()?.a)
);
if (result.status === 401) {
sayError("Данные авторизации устарели");
window.location.href = "/";
disablePagesUserDeposits = false;
return;
}
if (result.error) {
sayError("Не удалось получить депозиты пользователя");
disablePagesUserDeposits = false;
return;
}
userDeposits = result.data.deposits;
numPagesUserOrders = result.data.pages;
disablePagesUserDeposits = false;
// console.log(result.data, 'depos');
}
if (browser) {
getUserOrders();
getUserRequisites();
getUserDeposits();
}
</script>
@ -131,30 +202,90 @@
href={window.location.pathname.replace("profile", "change")}
class="btn btn-info">Изменить</a
>
<button on:click={()=>{
<button
on:click={() => {
deleteUser();
}} class="btn btn-error ml-auto">Удалить</button>
}}
class="btn btn-error ml-auto">Удалить</button
>
</div>
</div>
<div class="flex gap-4">
<div class="flex items-center gap-4">
<div class="bg-accent rounded-[4px] w-[10px] h-full"></div>
<h1 class="text-2xl font-semibold">Реквизиты пользователя</h1>
<button class="btn btn-accent">Добавить реквизит</button>
</div>
<div class="w-full flex flex-col p-4 rounded-box bg-base-300">
<div class="overflow-x-auto mt-4">
<table class="table">
<!-- head -->
<thead>
<tr>
<th>ID</th>
<th>Статус</th>
<th>Банк</th>
<th>СБП</th>
<th>Карта</th>
<th>Телефон</th>
<th>Имя</th>
<th>Девайс</th>
<th>Опции</th>
<!-- <th></th> -->
</tr>
</thead>
<tbody>
{#each userRequisites as requisite}
<tr class="hover:bg-neutral group">
<td class="font-semibold">{requisite["id"]}</td>
<td class=""
>{requisite["status"] === "t" ? "активен" : "отключен"}</td
>
<td>{requisite["bankname"]}</td>
<td>{requisite["is_sbp"] === "t" ? "да" : "нет"}</td>
<td>{requisite["cardnumber"]}</td>
<td>{requisite["phone"]}</td>
<td>{requisite["name"]}</td>
<td>{requisite["device_id"]}</td>
<td class="flex gap-2">
<a
href={"/user/edit/req/" + token + "/" + requisite["id"]}
class="btn btn-info">Изменить</a
>
<button class="btn btn-error">Удалить</button>
</td>
</tr>
{/each}
</tbody>
</table>
</div>
</div>
<div class="w-full flex flex-col p-4 rounded-box bg-base-300"></div>
<div class="flex gap-4">
<!-- <div class="flex gap-4">
<div class="bg-accent rounded-[4px] w-[10px] h-full"></div>
<h1 class="text-2xl font-semibold">Девайсы пользователя</h1>
</div>
<div class="w-full flex flex-col p-4 rounded-box bg-base-300"></div>
<div class="w-full flex flex-col p-4 rounded-box bg-base-300"></div> -->
<div class="flex gap-4">
<div class="flex items-center gap-4">
<div class="bg-accent rounded-[4px] w-[10px] h-full"></div>
<h1 class="text-2xl font-semibold">Текущие заявки</h1>
<!-- <button href={"/user/neworder/"+token} disabled class="btn btn-accent">Добавить заявку</button> -->
</div>
<div class="w-full flex flex-col p-4 rounded-box bg-base-300">
<div class="overflow-x-auto">
<div class="w-full flex flex-col justify-center items-center">
<Pagination
totalPages={numPagesUserOrders}
pageChangedCallback={(n) => {
currentPageUserOrders = n;
getUserOrders();
}}
disableButtons={disablePagesUserOrders}
css={"btn-neutral"}
/>
<p class="opacity-50 text-xs mt-1">Всего страниц: {numPagesUserOrders}</p>
</div>
<div class="overflow-x-auto mt-4">
<table class="table">
<!-- head -->
<thead>
@ -167,20 +298,25 @@
<th>Мерчант</th>
<th>Время создания</th>
<th>Время закрытия</th>
<th>Опции</th>
<!-- <th></th> -->
</tr>
</thead>
<tbody>
{#each userOrders as order}
<tr class="hover:bg-neutral group">
<td class="font-normal">{order["id"]}</td>
<td class="font-semibold">{order["status"]}</td>
<td class="font-semibold">{order["id"]}</td>
<td class="">{order["status"]}</td>
<td>{order["summa"]} USDT</td>
<td>{order["rate"]} RUB</td>
<td>{order["is_sbp"] === "t" ? "да" : "нет"}</td>
<td>{order["merchant_id"]}</td>
<td>{order["creationtime"]}</td>
<td>{order["closetime"]}</td>
<td class="flex gap-2">
<a href="" class="btn btn-info">Изменить</a>
<button class="btn btn-error">Удалить</button>
</td>
</tr>
{/each}
</tbody>
@ -192,5 +328,47 @@
<div class="bg-accent rounded-[4px] w-[10px] h-full"></div>
<h1 class="text-2xl font-semibold">Заявки на пополнение</h1>
</div>
<div class="w-full flex flex-col p-4 rounded-box bg-base-300"></div>
<div class="w-full flex flex-col p-4 rounded-box bg-base-300">
<div class="w-full flex flex-col justify-center items-center">
<Pagination
totalPages={numOfPagesUserDeposits}
pageChangedCallback={(n) => {
currentPageUserDeposits = n;
getUserDeposits();
}}
disableButtons={disablePagesUserDeposits}
css={"btn-neutral"}
/>
<p class="opacity-50 text-xs mt-1">
Всего страниц: {numOfPagesUserDeposits}
</p>
</div>
<div class="overflow-x-auto mt-4">
<table class="table">
<!-- head -->
<thead>
<tr>
<th>Статус</th>
<th>Сумма</th>
<th>Время создания</th>
<!-- <th>Опции</th> -->
<!-- <th></th> -->
</tr>
</thead>
<tbody>
{#each userDeposits as depo}
<tr class="hover:bg-neutral group">
<td class="">{depoStatusMap[depo["pending"]]}</td>
<td>{depo["amount"]} USDT</td>
<td>{depo["creationtime"]}</td>
<!-- <td class="flex gap-2">
<a href="" class="btn btn-info">Изменить</a>
<button class="btn btn-error">Удалить</button>
</td> -->
</tr>
{/each}
</tbody>
</table>
</div>
</div>
</div>