000
This commit is contained in:
parent
c56277adb9
commit
7cc40b763f
@ -7,11 +7,13 @@
|
|||||||
import { redirect } from "$lib/tools/url/URLTools";
|
import { redirect } from "$lib/tools/url/URLTools";
|
||||||
import { jwtDecode } from "jwt-decode";
|
import { jwtDecode } from "jwt-decode";
|
||||||
|
|
||||||
|
let showMenu = false;
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<div class="navbar bg-base-100">
|
<div class="navbar bg-base-100">
|
||||||
<div class="navbar-start">
|
<div class="navbar-start">
|
||||||
<div class="dropdown">
|
<div class="dropdown">
|
||||||
<div tabindex="0" role="button" class="btn btn-ghost lg:hidden">
|
<button on:click={()=>{showMenu = !showMenu;}} tabindex="0" class="btn btn-ghost lg:hidden">
|
||||||
<svg
|
<svg
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
class="h-5 w-5"
|
class="h-5 w-5"
|
||||||
@ -26,22 +28,7 @@
|
|||||||
d="M4 6h16M4 12h8m-8 6h16"
|
d="M4 6h16M4 12h8m-8 6h16"
|
||||||
/>
|
/>
|
||||||
</svg>
|
</svg>
|
||||||
</div>
|
</button>
|
||||||
<ul
|
|
||||||
class="menu menu-sm dropdown-content bg-base-100 rounded-box z-[1] mt-3 w-52 p-2 shadow"
|
|
||||||
>
|
|
||||||
<li>
|
|
||||||
<a href="/admin/userslist">Пользователи</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="/admin/newuser">Добавить пользователя</a>
|
|
||||||
</li>
|
|
||||||
<li><a href="/admin/disputes">Споры</a></li>
|
|
||||||
<li><a href="/admin/payouts">Выплаты</a></li>
|
|
||||||
{#if jwtDecode(getAuthInfo()?.a)?.role == "4"}
|
|
||||||
<li><a href="/admin/merchants">Мерчанты</a></li>
|
|
||||||
{/if}
|
|
||||||
</ul>
|
|
||||||
</div>
|
</div>
|
||||||
<a href="/admin/" class="btn btn-ghost text-xl">HostaPay</a>
|
<a href="/admin/" class="btn btn-ghost text-xl">HostaPay</a>
|
||||||
<p class="text-sm ml-1 mt-2">{jwtDecode(getAuthInfo()?.a)?.role == "4" ? "Admin":"Moder"}</p>
|
<p class="text-sm ml-1 mt-2">{jwtDecode(getAuthInfo()?.a)?.role == "4" ? "Admin":"Moder"}</p>
|
||||||
@ -56,6 +43,7 @@
|
|||||||
</li>
|
</li>
|
||||||
<li><a href="/admin/disputes">Споры</a></li>
|
<li><a href="/admin/disputes">Споры</a></li>
|
||||||
<li><a href="/admin/payouts">Выплаты</a></li>
|
<li><a href="/admin/payouts">Выплаты</a></li>
|
||||||
|
<li><a href="/admin/orders">Заявки</a></li>
|
||||||
{#if jwtDecode(getAuthInfo()?.a)?.role == "4"}
|
{#if jwtDecode(getAuthInfo()?.a)?.role == "4"}
|
||||||
<li><a href="/admin/merchants">Мерчанты</a></li>
|
<li><a href="/admin/merchants">Мерчанты</a></li>
|
||||||
{/if}
|
{/if}
|
||||||
@ -72,3 +60,22 @@
|
|||||||
}} class="btn btn-error btn-outline">Выход</button>
|
}} class="btn btn-error btn-outline">Выход</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class={"fixed inset-0 top-16 z-50 flex flex-col items-center justify-center bg-base-100 transition-all duration-150 lg:hidden " + (showMenu ? "":"-translate-x-full")}>
|
||||||
|
<ul
|
||||||
|
class="menu menu-sm dropdown-content bg-base-300 rounded-box w-52 p-2 shadow"
|
||||||
|
>
|
||||||
|
<li>
|
||||||
|
<a on:click={()=>{showMenu = false;}} href="/admin/userslist">Пользователи</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a on:click={()=>{showMenu = false;}} href="/admin/newuser">Добавить пользователя</a>
|
||||||
|
</li>
|
||||||
|
<li><a on:click={()=>{showMenu = false;}} href="/admin/disputes">Споры</a></li>
|
||||||
|
<li><a on:click={()=>{showMenu = false;}} href="/admin/payouts">Выплаты</a></li>
|
||||||
|
<li><a on:click={()=>{showMenu = false;}} href="/admin/orders">Заявки</a></li>
|
||||||
|
{#if jwtDecode(getAuthInfo()?.a)?.role == "4"}
|
||||||
|
<li><a on:click={()=>{showMenu = false;}} href="/admin/merchants">Мерчанты</a></li>
|
||||||
|
{/if}
|
||||||
|
</ul>
|
||||||
|
</div>
|
@ -34,7 +34,7 @@
|
|||||||
const result = await makePost(
|
const result = await makePost(
|
||||||
"admin/getDisputes",
|
"admin/getDisputes",
|
||||||
{
|
{
|
||||||
page: 1,
|
page: currentPageDisputes,
|
||||||
filter: currentDisputesFilter
|
filter: currentDisputesFilter
|
||||||
},
|
},
|
||||||
makeAuthHeaderForAxios(getAuthInfo()?.a)
|
makeAuthHeaderForAxios(getAuthInfo()?.a)
|
||||||
@ -263,13 +263,13 @@
|
|||||||
<div class="rounded-box flex flex-col bg-base-100 p-4 gap-1 mt-4">
|
<div class="rounded-box flex flex-col bg-base-100 p-4 gap-1 mt-4">
|
||||||
<p class="text-lg font-bold">Сумма в споре</p>
|
<p class="text-lg font-bold">Сумма в споре</p>
|
||||||
<p>
|
<p>
|
||||||
{(Number(selectedDispute.new_amount) / Number(selectedDispute.order_rate)).toFixed(2)} {selectedDispute.out_code} ({Number(selectedDispute.new_amount)} USDT)
|
{Number(selectedDispute.new_amount)} {selectedDispute.out_code} ({(Number(selectedDispute.new_amount) / Number(selectedDispute.order_rate)).toFixed(2)} USDT)
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="rounded-box flex flex-col bg-base-100 p-4 gap-1 mt-4">
|
<div class="rounded-box flex flex-col bg-base-100 p-4 gap-1 mt-4">
|
||||||
<p class="text-lg font-bold">Сумма в заявке</p>
|
<p class="text-lg font-bold">Сумма в заявке</p>
|
||||||
<p>
|
<p>
|
||||||
{Number(selectedDispute.order_rate) * Number(selectedDispute.amount)} {selectedDispute.out_code} ({Number(selectedDispute.amount)} USDT)
|
{Number(selectedDispute.amount)} {selectedDispute.out_code} ({(Number(selectedDispute.amount) / Number(selectedDispute.order_rate)).toFixed(2)} USDT)
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
{#if selectedDispute["order_status"] === "4" || selectedDispute["order_status"] === "8"}
|
{#if selectedDispute["order_status"] === "4" || selectedDispute["order_status"] === "8"}
|
||||||
|
241
src/routes/orders/+page.svelte
Normal file
241
src/routes/orders/+page.svelte
Normal file
@ -0,0 +1,241 @@
|
|||||||
|
<script>
|
||||||
|
// @ts-nocheck
|
||||||
|
|
||||||
|
import { getAuthInfo, makeAuthHeaderForAxios } from "$lib/auth/Auth";
|
||||||
|
import { makePost } from "$lib/tools/requests/requests";
|
||||||
|
import { sayError, sayInfo } from "$lib/tools/toaster/Toaster";
|
||||||
|
|
||||||
|
const orderStatusMap = {
|
||||||
|
"1": "Ожидает исполнения",
|
||||||
|
"2": "Время заявки истекло",
|
||||||
|
"3": "Исполнена",
|
||||||
|
"4": "Спор на проверке у администрации",
|
||||||
|
"5": "Спор на проверке у трейдера",
|
||||||
|
"6": "Спор принят трейдером",
|
||||||
|
"7": "Спор отклонён трейдером",
|
||||||
|
"8": "Сумма проверяется администрацией",
|
||||||
|
};
|
||||||
|
|
||||||
|
export let data;
|
||||||
|
let { userData } = data;
|
||||||
|
let { token } = data;
|
||||||
|
|
||||||
|
let showFoundedOrderWindow = false;
|
||||||
|
let showLoadingFind = false;
|
||||||
|
let foundedDispute;
|
||||||
|
|
||||||
|
let external_uuidValue = "";
|
||||||
|
let uuidValue = "";
|
||||||
|
let external_user_idValue = "";
|
||||||
|
|
||||||
|
async function findDispute() {
|
||||||
|
showLoadingFind = true;
|
||||||
|
let sData = {};
|
||||||
|
if (external_uuidValue !== "") {
|
||||||
|
sData["external_uuid"] = external_uuidValue;
|
||||||
|
} else if (uuidValue !== "") {
|
||||||
|
sData["uuid"] = uuidValue;
|
||||||
|
} else if (external_user_idValue !== "") {
|
||||||
|
sData["external_user_id"] = external_user_idValue;
|
||||||
|
} else {
|
||||||
|
showLoadingFind = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const res = await makePost(
|
||||||
|
"admin/findOrder",
|
||||||
|
sData,
|
||||||
|
makeAuthHeaderForAxios(getAuthInfo()?.a)
|
||||||
|
);
|
||||||
|
|
||||||
|
if (res.error) {
|
||||||
|
sayError("Заявка не найдена!");
|
||||||
|
showLoadingFind = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
foundedDispute = res.data;
|
||||||
|
showFoundedOrderWindow = true;
|
||||||
|
showLoadingFind = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
let showLoadingRollback = false;
|
||||||
|
async function rollbackOrder(id) {
|
||||||
|
showLoadingRollback = true;
|
||||||
|
const res = await makePost(
|
||||||
|
"admin/rollbackOrder",
|
||||||
|
{
|
||||||
|
id: Number(id),
|
||||||
|
summa: foundedDispute["summa"],
|
||||||
|
},
|
||||||
|
makeAuthHeaderForAxios(getAuthInfo()?.a)
|
||||||
|
);
|
||||||
|
if (res.error) {
|
||||||
|
// console.log(res);
|
||||||
|
if (res.status == 401) {
|
||||||
|
sayError("Данные авторизации устарели!");
|
||||||
|
}
|
||||||
|
sayError("Не удалось закрыть заявку!");
|
||||||
|
showLoadingRollback = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
sayInfo("Заявка закрыта!");
|
||||||
|
showLoadingRollback = false;
|
||||||
|
showFoundedOrderWindow = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
let showChangeSum = false;
|
||||||
|
let newSum = 0;
|
||||||
|
|
||||||
|
$: if (foundedDispute !== 0) newSum = Number(foundedDispute?.summa);
|
||||||
|
|
||||||
|
let showLoadingChangeSum = false;
|
||||||
|
async function changeSum(id) {
|
||||||
|
showLoadingChangeSum = true;
|
||||||
|
const res = await makePost(
|
||||||
|
"admin/rollbackOrder",
|
||||||
|
{
|
||||||
|
id: Number(id),
|
||||||
|
summa: newSum.toString(),
|
||||||
|
},
|
||||||
|
makeAuthHeaderForAxios(getAuthInfo()?.a)
|
||||||
|
);
|
||||||
|
if (res.error) {
|
||||||
|
if (res.status == 401) {
|
||||||
|
sayError("Данные авторизации устарели!");
|
||||||
|
}
|
||||||
|
sayError("Не удалось изменить сумму");
|
||||||
|
showLoadingChangeSum = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
sayInfo("Сумма успешно изменена!");
|
||||||
|
showLoadingChangeSum = false;
|
||||||
|
showChangeSum = false;
|
||||||
|
showFoundedOrderWindow = false;
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div class="w-full flex flex-col gap-8">
|
||||||
|
<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">
|
||||||
|
<p class="text-sm mt-2">external_uuid</p>
|
||||||
|
<input
|
||||||
|
bind:value={external_uuidValue}
|
||||||
|
type="text"
|
||||||
|
class="input input-bordered"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<p class="text-sm mt-2">uuid</p>
|
||||||
|
<input bind:value={uuidValue} type="text" class="input input-bordered" />
|
||||||
|
|
||||||
|
<p class="text-sm mt-2">external_user_id</p>
|
||||||
|
<input
|
||||||
|
bind:value={external_user_idValue}
|
||||||
|
type="text"
|
||||||
|
class="input input-bordered"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<button
|
||||||
|
on:click={() => {
|
||||||
|
findDispute();
|
||||||
|
}}
|
||||||
|
class="btn btn-outline mt-2"
|
||||||
|
>
|
||||||
|
{#if showLoadingFind}
|
||||||
|
<span class="loading loading-dots loading-xs"></span>
|
||||||
|
{:else}
|
||||||
|
{"Найти заявку"}
|
||||||
|
{/if}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{#if showFoundedOrderWindow}
|
||||||
|
<div
|
||||||
|
class="fixed inset-0 z-[1000] bg-black bg-opacity-50 flex justify-center items-center"
|
||||||
|
>
|
||||||
|
<div class="flex flex-col p-4 bg-base-100 rounded-md">
|
||||||
|
<p class="text-sm">UUID</p>
|
||||||
|
<p class="font-semibold">{foundedDispute["uuid"]}</p>
|
||||||
|
<p class="text-sm mt-3">ID заявки</p>
|
||||||
|
<p class="font-semibold">{foundedDispute["id"]}</p>
|
||||||
|
<p class="text-sm mt-3">ID клиента</p>
|
||||||
|
<p class="font-semibold">{foundedDispute["external_user_id"]}</p>
|
||||||
|
<p class="text-sm mt-3">Статус</p>
|
||||||
|
<p class="">{orderStatusMap[foundedDispute["status"]]}</p>
|
||||||
|
<p class="text-sm mt-3">Сумма</p>
|
||||||
|
<p>
|
||||||
|
{foundedDispute["summa"]}
|
||||||
|
{foundedDispute["currency_code"]} ({(
|
||||||
|
Number(foundedDispute["summa"]) / Number(foundedDispute["rate"])
|
||||||
|
).toFixed(2)} USDT)
|
||||||
|
</p>
|
||||||
|
<p class="text-sm mt-3">Курс</p>
|
||||||
|
<p>{foundedDispute["rate"]} {foundedDispute["currency_code"]}</p>
|
||||||
|
<p class="text-sm mt-3">Карта</p>
|
||||||
|
<p>{foundedDispute["cardnumber"]}</p>
|
||||||
|
<p class="text-sm mt-3">Время создания</p>
|
||||||
|
<p>{foundedDispute["creationtime"]}</p>
|
||||||
|
<!-- <p>{foundedDispute["closetime"]}</p> -->
|
||||||
|
<button
|
||||||
|
on:click={() => {
|
||||||
|
rollbackOrder(foundedDispute["id"]);
|
||||||
|
}}
|
||||||
|
class="btn btn-outline btn-info mt-4"
|
||||||
|
>
|
||||||
|
{#if showLoadingRollback}
|
||||||
|
<span class="loading loading-dots loading-xs"></span>
|
||||||
|
{:else}
|
||||||
|
{"Закрыть заявку ручками"}
|
||||||
|
{/if}</button
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
on:click={() => {
|
||||||
|
showChangeSum = true;
|
||||||
|
}}
|
||||||
|
class="btn btn-info btn-outline">Изменить сумму</button
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
on:click={() => {
|
||||||
|
showFoundedOrderWindow = false;
|
||||||
|
}}
|
||||||
|
class="btn btn-outline mt-1">Закрыть окно</button
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
{#if showChangeSum}
|
||||||
|
<div
|
||||||
|
class="fixed inset-0 z-[1001] bg-black bg-opacity-50 flex justify-center items-center"
|
||||||
|
>
|
||||||
|
<div class="flex flex-col p-4 bg-base-100 rounded-md">
|
||||||
|
<p>Укажите новую сумму ({foundedDispute["currency_code"]})</p>
|
||||||
|
<input
|
||||||
|
on:click={newSum}
|
||||||
|
type="number"
|
||||||
|
class="input input-bordered min-w-[320px]"
|
||||||
|
/>
|
||||||
|
<button
|
||||||
|
on:click={() => {
|
||||||
|
changeSum(foundedDispute["id"]);
|
||||||
|
}}
|
||||||
|
class="btn btn-outline btn-info"
|
||||||
|
>
|
||||||
|
{#if showLoadingChangeSum}
|
||||||
|
<span class="loading loading-dots loading-xs"></span>
|
||||||
|
{:else}
|
||||||
|
{"Изменить суму ручками"}
|
||||||
|
{/if}
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
on:click={() => {
|
||||||
|
showChangeSum = false;
|
||||||
|
}}
|
||||||
|
class="btn btn-outline">Закрыть</button
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/if}
|
@ -12,6 +12,12 @@
|
|||||||
|
|
||||||
let userInfoReloading = false;
|
let userInfoReloading = false;
|
||||||
|
|
||||||
|
const orderStatusMap = {
|
||||||
|
"1": "Ожидает исполнения",
|
||||||
|
"2": "Время заявки истекло",
|
||||||
|
"3": "Исполнена",
|
||||||
|
};
|
||||||
|
|
||||||
async function deleteUser() {
|
async function deleteUser() {
|
||||||
const result = await makePost(
|
const result = await makePost(
|
||||||
"deleteUser",
|
"deleteUser",
|
||||||
@ -61,15 +67,16 @@
|
|||||||
let numPagesUserOrders = 1;
|
let numPagesUserOrders = 1;
|
||||||
let currentPageUserOrders = 1;
|
let currentPageUserOrders = 1;
|
||||||
let disablePagesUserOrders = false;
|
let disablePagesUserOrders = false;
|
||||||
|
let ordersFilter = "1";
|
||||||
async function getUserOrders() {
|
async function getUserOrders() {
|
||||||
disablePagesUserOrders = true;
|
disablePagesUserOrders = true;
|
||||||
const result = await makePost(
|
const result = await makePost(
|
||||||
"getUserOrders",
|
"admin/getUserOrders",
|
||||||
{
|
{
|
||||||
token: token,
|
token: token,
|
||||||
page: currentPageUserOrders - 1,
|
page: currentPageUserOrders - 1,
|
||||||
orderBy: "id",
|
// orderBy: "id",
|
||||||
statuses_to_send: 2,
|
statuses_to_send: Number(ordersFilter),
|
||||||
},
|
},
|
||||||
makeAuthHeaderForAxios(getAuthInfo()?.a)
|
makeAuthHeaderForAxios(getAuthInfo()?.a)
|
||||||
);
|
);
|
||||||
@ -154,11 +161,25 @@
|
|||||||
// console.log(result.data, 'depos');
|
// console.log(result.data, 'depos');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$: if(browser || Number(ordersFilter) > -999) getUserOrders();
|
||||||
|
|
||||||
if (browser) {
|
if (browser) {
|
||||||
getUserOrders();
|
getUserOrders();
|
||||||
getUserRequisites();
|
getUserRequisites();
|
||||||
getUserDeposits();
|
getUserDeposits();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let findFieldValue = "";
|
||||||
|
let showLoadingFind = false;
|
||||||
|
let showFoundedOrderWindow = false;
|
||||||
|
async function findOrder() {
|
||||||
|
showLoadingFind = true;
|
||||||
|
const res = await makePost("admin/find", {
|
||||||
|
|
||||||
|
}, makeAuthHeaderForAxios(getAuthInfo()?.a));
|
||||||
|
}
|
||||||
|
showLoadingFind = false;
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="w-full flex flex-col gap-8">
|
<div class="w-full flex flex-col gap-8">
|
||||||
@ -299,6 +320,10 @@
|
|||||||
</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="w-full flex flex-col justify-center items-center">
|
<div class="w-full flex flex-col justify-center items-center">
|
||||||
|
<!-- <div class="flex items-center gap-2">
|
||||||
|
<input bind:value={findFieldValue} type="text" class="input input-bordered">
|
||||||
|
<button on:click={()=>{showFoundedOrderWindow = true;}} class="btn btn-outline">Найти</button>
|
||||||
|
</div> -->
|
||||||
<Pagination
|
<Pagination
|
||||||
totalPages={numPagesUserOrders}
|
totalPages={numPagesUserOrders}
|
||||||
pageChangedCallback={(n) => {
|
pageChangedCallback={(n) => {
|
||||||
@ -306,16 +331,26 @@
|
|||||||
getUserOrders();
|
getUserOrders();
|
||||||
}}
|
}}
|
||||||
disableButtons={disablePagesUserOrders}
|
disableButtons={disablePagesUserOrders}
|
||||||
css={"btn-neutral"}
|
css={"btn-neutral mt-2"}
|
||||||
/>
|
/>
|
||||||
<p class="opacity-50 text-xs mt-1">Всего страниц: {numPagesUserOrders}</p>
|
<p class="opacity-50 text-xs mt-1">Всего страниц: {numPagesUserOrders}</p>
|
||||||
|
<select
|
||||||
|
bind:value={ordersFilter}
|
||||||
|
class="select select-bordered min-w-[230px] mt-2"
|
||||||
|
>
|
||||||
|
<!-- <option value="-1"> Все выплаты </option> -->
|
||||||
|
<option value="1"> {orderStatusMap["1"]} </option>
|
||||||
|
<option value="2"> {orderStatusMap["2"]} </option>
|
||||||
|
<option value="3"> {orderStatusMap["3"]} </option>
|
||||||
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="overflow-x-auto mt-4">
|
<div class="overflow-x-auto mt-4">
|
||||||
<table class="table">
|
<table class="table">
|
||||||
<!-- head -->
|
<!-- head -->
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>ID</th>
|
<th>UUID</th>
|
||||||
|
<th>ID клиента</th>
|
||||||
<th>Статус</th>
|
<th>Статус</th>
|
||||||
<th>Сумма</th>
|
<th>Сумма</th>
|
||||||
<th>Курс</th>
|
<th>Курс</th>
|
||||||
@ -330,14 +365,18 @@
|
|||||||
<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-semibold">{order["id"]}</td>
|
<td class="font-semibold">{order["uuid"]}</td>
|
||||||
|
<td class="font-semibold">{order["external_user_id"]}</td>
|
||||||
<td class="">{order["status"]}</td>
|
<td class="">{order["status"]}</td>
|
||||||
<td>{order["summa"]} USDT</td>
|
<td>{order["summa"]} {userData?.code}</td>
|
||||||
<td>{order["rate"]} RUB</td>
|
<td>{order["rate"]} {userData?.code}</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>
|
||||||
|
<button class="btn btn-outline">Закрыть ручками</button>
|
||||||
|
</td> -->
|
||||||
<!-- <td class="flex gap-2">
|
<!-- <td class="flex gap-2">
|
||||||
<a href="" class="btn btn-info">Изменить</a>
|
<a href="" class="btn btn-info">Изменить</a>
|
||||||
<button class="btn btn-error">Удалить</button>
|
<button class="btn btn-error">Удалить</button>
|
||||||
@ -397,3 +436,13 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- {#if showFoundedOrderWindow}
|
||||||
|
<div class="fixed z-[1000] inset-0 flex justify-center items-center bg-black bg-opacity-50">
|
||||||
|
<div class="bg-base-100 rounded-md p-4 flex flex-col">
|
||||||
|
<button class="btn btn-outline" on:click={()=>{showFoundedOrderWindow = false;}}>Закрыть</button>
|
||||||
|
<button class="btn btn-outline" on:click={()=>{showFoundedOrderWindow = false;}}>Закрыть</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/if} -->
|
@ -30,7 +30,8 @@ const config = {
|
|||||||
"/userslist",
|
"/userslist",
|
||||||
"/disputes",
|
"/disputes",
|
||||||
"/payouts",
|
"/payouts",
|
||||||
"/merchants"
|
"/merchants",
|
||||||
|
"/orders"
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user