commit #2
This commit is contained in:
parent
60ea55d989
commit
9ecbaab6c5
@ -4,6 +4,7 @@
|
|||||||
import { makePost } from "$lib/tools/requests/requests.js";
|
import { makePost } from "$lib/tools/requests/requests.js";
|
||||||
import { sayError } from "$lib/tools/toaster/Toaster.js";
|
import { sayError } from "$lib/tools/toaster/Toaster.js";
|
||||||
import { redirect } from "$lib/tools/url/URLTools.js";
|
import { redirect } from "$lib/tools/url/URLTools.js";
|
||||||
|
import Pagination from "$lib/ui-components/pagination.svelte";
|
||||||
|
|
||||||
export let data;
|
export let data;
|
||||||
let { userData } = data;
|
let { userData } = data;
|
||||||
@ -56,32 +57,102 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
let userOrders = [];
|
let userOrders = [];
|
||||||
|
let numPagesUserOrders = 1;
|
||||||
|
let currentPageUserOrders = 1;
|
||||||
|
let disablePagesUserOrders = false;
|
||||||
async function getUserOrders() {
|
async function getUserOrders() {
|
||||||
|
disablePagesUserOrders = true;
|
||||||
const result = await makePost(
|
const result = await makePost(
|
||||||
"getUserOrders",
|
"getUserOrders",
|
||||||
{
|
{
|
||||||
token: token,
|
token: token,
|
||||||
page: 0,
|
page: currentPageUserOrders - 1,
|
||||||
orderBy: "id",
|
orderBy: "id",
|
||||||
statuses_to_send: 2,
|
statuses_to_send: 2,
|
||||||
},
|
},
|
||||||
makeAuthHeaderForAxios(getAuthInfo()?.a)
|
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) {
|
if (result.status === 401) {
|
||||||
sayError("Данные авторизации устарели");
|
sayError("Данные авторизации устарели");
|
||||||
window.location.href = "/";
|
window.location.href = "/";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (result.error) {
|
if (result.error) {
|
||||||
sayError("Не удалось получить ордеры пользователя");
|
sayError("Не удалось получить реквизиты пользователя");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
userOrders = result.data.data;
|
userRequisites = result.data;
|
||||||
console.log(userOrders);
|
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) {
|
if (browser) {
|
||||||
getUserOrders();
|
getUserOrders();
|
||||||
|
getUserRequisites();
|
||||||
|
getUserDeposits();
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@ -131,30 +202,90 @@
|
|||||||
href={window.location.pathname.replace("profile", "change")}
|
href={window.location.pathname.replace("profile", "change")}
|
||||||
class="btn btn-info">Изменить</a
|
class="btn btn-info">Изменить</a
|
||||||
>
|
>
|
||||||
<button on:click={()=>{
|
<button
|
||||||
deleteUser();
|
on:click={() => {
|
||||||
}} class="btn btn-error ml-auto">Удалить</button>
|
deleteUser();
|
||||||
|
}}
|
||||||
|
class="btn btn-error ml-auto">Удалить</button
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
</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>
|
<div class="bg-accent rounded-[4px] w-[10px] h-full"></div>
|
||||||
<h1 class="text-2xl font-semibold">Реквизиты пользователя</h1>
|
<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>
|
||||||
<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>
|
<div class="bg-accent rounded-[4px] w-[10px] h-full"></div>
|
||||||
<h1 class="text-2xl font-semibold">Девайсы пользователя</h1>
|
<h1 class="text-2xl font-semibold">Девайсы пользователя</h1>
|
||||||
</div>
|
</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>
|
<div class="bg-accent rounded-[4px] w-[10px] h-full"></div>
|
||||||
<h1 class="text-2xl font-semibold">Текущие заявки</h1>
|
<h1 class="text-2xl font-semibold">Текущие заявки</h1>
|
||||||
|
<!-- <button href={"/user/neworder/"+token} disabled class="btn btn-accent">Добавить заявку</button> -->
|
||||||
</div>
|
</div>
|
||||||
<div class="w-full flex flex-col p-4 rounded-box bg-base-300">
|
<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">
|
<table class="table">
|
||||||
<!-- head -->
|
<!-- head -->
|
||||||
<thead>
|
<thead>
|
||||||
@ -167,20 +298,25 @@
|
|||||||
<th>Мерчант</th>
|
<th>Мерчант</th>
|
||||||
<th>Время создания</th>
|
<th>Время создания</th>
|
||||||
<th>Время закрытия</th>
|
<th>Время закрытия</th>
|
||||||
|
<th>Опции</th>
|
||||||
<!-- <th></th> -->
|
<!-- <th></th> -->
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{#each userOrders as order}
|
{#each userOrders as order}
|
||||||
<tr class="hover:bg-neutral group">
|
<tr class="hover:bg-neutral group">
|
||||||
<td class="font-normal">{order["id"]}</td>
|
<td class="font-semibold">{order["id"]}</td>
|
||||||
<td class="font-semibold">{order["status"]}</td>
|
<td class="">{order["status"]}</td>
|
||||||
<td>{order["summa"]} USDT</td>
|
<td>{order["summa"]} USDT</td>
|
||||||
<td>{order["rate"]} RUB</td>
|
<td>{order["rate"]} RUB</td>
|
||||||
<td>{order["is_sbp"] === "t" ? "да":"нет"}</td>
|
<td>{order["is_sbp"] === "t" ? "да" : "нет"}</td>
|
||||||
<td>{order["merchant_id"]}</td>
|
<td>{order["merchant_id"]}</td>
|
||||||
<td>{order["creationtime"]}</td>
|
<td>{order["creationtime"]}</td>
|
||||||
<td>{order["closetime"]}</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>
|
</tr>
|
||||||
{/each}
|
{/each}
|
||||||
</tbody>
|
</tbody>
|
||||||
@ -192,5 +328,47 @@
|
|||||||
<div class="bg-accent rounded-[4px] w-[10px] h-full"></div>
|
<div class="bg-accent rounded-[4px] w-[10px] h-full"></div>
|
||||||
<h1 class="text-2xl font-semibold">Заявки на пополнение</h1>
|
<h1 class="text-2xl font-semibold">Заявки на пополнение</h1>
|
||||||
</div>
|
</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>
|
</div>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user