Compare commits

...

2 Commits

Author SHA1 Message Date
you
604157ea26 -1 2024-07-14 17:01:09 +03:00
you
155d683199 12 2024-07-12 19:29:13 +03:00
8 changed files with 70 additions and 27 deletions

View File

@ -2,8 +2,8 @@
import { SvelteToast } from "@zerodevx/svelte-toast";
import { onMount } from "svelte";
import "../../app.css";
import Navbar from "../../lib/ui-components/navbar.svelte";
import { checkAuth, checkAuthSync } from "../../lib/auth/Auth";
import Navbar from "$lib/ui-components/navbar.svelte";
import { checkAuth, checkAuthSync } from "$lib/auth/Auth";
import { redirect } from "$lib/tools/url/URLTools";
import { AuthStorage } from "$lib/tools/storages/auth-storage";

View File

@ -1,8 +1,12 @@
<script>
import { checkAuth, checkAuthSync } from "$lib/auth/Auth";
import { redirect } from "$lib/tools/url/URLTools";
import { onMount } from "svelte";
onMount(()=>{
if(checkAuthSync())
redirect("/admin/userslist");
else
redirect("/admin/login");
});
</script>

View File

@ -2,7 +2,7 @@
import { makePost } from "$lib/tools/requests/Requests";
import { sayError, sayInfo, sayWarning } from "$lib/tools/toaster/Toaster";
import { onMount } from "svelte";
import { checkAuth, saveAuthInfo } from "../../../lib/auth/Auth";
import { checkAuth, saveAuthInfo } from "$lib/auth/Auth";
import { redirect } from "$lib/tools/url/URLTools";
import { AuthStorage } from "$lib/tools/storages/auth-storage";

View File

@ -1,5 +1,5 @@
<script>
import { isStringEmptyOrSpaces } from "../../../lib/tools/strings/Strings";
import { isStringEmptyOrSpaces } from "$lib/tools/strings/Strings";
import { makePost, makeGet } from "$lib/tools/requests/Requests";
import {
checkAuthSync,

View File

@ -7,8 +7,10 @@ export async function load({ params }) {
if(!browser) return;
const { userToken } = params;
const { reqID } = params;
let spt = reqID.split("_");
return {
token: userToken,
reqID: reqID
reqID: spt[0],
currency: spt[1]
};
}

View File

@ -3,12 +3,13 @@
import { browser } from "$app/environment";
import { getAuthInfo, makeAuthHeaderForAxios } from "$lib/auth/Auth.js";
import { makePost } from "$lib/tools/requests/requests.js";
import { makeGet, makePost } from "$lib/tools/requests/requests.js";
import { sayError } from "$lib/tools/toaster/Toaster.js";
import { redirect } from "$lib/tools/url/URLTools.js";
export let data;
let { reqID } = data;
let {currency} = data;
let { token } = data;
let reqInfo = [];
@ -16,6 +17,7 @@
let value_cardNumber;
let value_phone;
let value_status;
let value_limit;
let canChange = false;
@ -23,27 +25,29 @@
$: value_cardNumber, value_phone, value_status, checkFields();
function bindValues() {
value_bankName = reqInfo[0]?.bankname;
value_bankName = reqInfo[0]?.bank_name;
value_cardNumber = reqInfo[0]?.cardnumber;
value_phone = reqInfo[0]?.phone;
value_status = reqInfo[0]?.status === "t";
value_limit = Number(reqInfo[0]?.daily_volume_limit);
value_bankName = reqInfo[0]?.bank_id;
}
function checkFields() {
if(value_cardNumber?.length !== 16)
{
canChange = false;
return;
if (value_cardNumber?.length !== 16) {
canChange = false;
return;
}
if(value_phone?.length !== 11)
{
canChange = false;
return;
if (value_phone?.length !== 11) {
canChange = false;
return;
}
if (value_limit < 0) {
canChange = false;
return;
}
canChange = true;
}
async function getReqInfo() {
@ -78,7 +82,8 @@
bankname: value_bankName,
cardnumber: value_cardNumber,
phone: value_phone,
status: value_status ? "true":"false"
status: value_status ? "true" : "false",
limit: value_limit.toString(),
},
makeAuthHeaderForAxios(getAuthInfo()?.a)
);
@ -86,7 +91,7 @@
sayError("Данные авторизации устарели");
// window.location.href = "/";
redirect("/admin/");
// canChange = true;
// canChange = true;
return;
}
if (result.error) {
@ -98,8 +103,23 @@
// canChange = true;
}
let activeBanks = [];
async function getActiveBanks() {
let res = await makeGet(
"client/banksList",
makeAuthHeaderForAxios(getAuthInfo()?.a)
);
if (res.error) {
sayError("Не удалось получить банки. Ошибка #4143");
} else {
console.log(res.data);
activeBanks = res.data;
}
}
if (browser) {
getReqInfo();
getActiveBanks();
}
</script>
@ -115,7 +135,10 @@
class="select select-bordered w-full text-base"
>
<option disabled selected value="-1">Банк</option>
<option value="sber">Сбер</option>
{#each activeBanks as bank}
<option value={bank.id}>{bank.name}</option>
{/each}
<!-- <option value="sber">Сбер</option> -->
<!-- <option value="2">Модератор</option>
<option value="4">Администратор</option> -->
</select>
@ -131,6 +154,10 @@
Телефон
<input type="text" class="grow text-info" bind:value={value_phone} />
</label>
<label class="input input-bordered flex items-center gap-2">
Лимит ({currency})
<input type="number" class="grow text-info" bind:value={value_limit} />
</label>
<div class="flex p-4 items-center gap-2">
<p>Активный:</p>
<input
@ -139,8 +166,14 @@
class="toggle toggle-primary"
/>
</div>
<button on:click={()=>{changeRequisite()}} class="btn btn-primary" disabled={!canChange}>Сохранить</button>
<a href={"/admin/user/profile/"+token} class="hidden" id="ref"></a>
<button
on:click={() => {
changeRequisite();
}}
class="btn btn-primary"
disabled={!canChange}>Сохранить</button
>
<a href={"/admin/user/profile/" + token} class="hidden" id="ref"></a>
{/each}
</div>
</div>

View File

@ -185,7 +185,7 @@
</div>
<div class="flex gap-2 p-2 items-center text-lg">
<p class="font-bold">Заморожено:</p>
<p class="text-info">{userData?.insurance}</p>
<p class="text-info">{userData?.insurance} USDT</p>
</div>
<div class="flex gap-2 p-2 items-center text-lg">
<p class="font-bold">Ставка:</p>
@ -227,7 +227,7 @@
<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>
<button 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 mt-4">
@ -243,6 +243,8 @@
<th>Телефон</th>
<th>Имя</th>
<th>Девайс</th>
<th>Объем {userData.code}</th>
<th>Лимит {userData.code}</th>
<th>Опции</th>
<!-- <th></th> -->
</tr>
@ -254,15 +256,17 @@
<td class=""
>{requisite["status"] === "t" ? "активен" : "отключен"}</td
>
<td>{requisite["bankname"]}</td>
<td>{requisite["bank_name"]}</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>{requisite["daily_volume"]}</td>
<td>{requisite["daily_volume_limit"]}</td>
<td class="flex gap-2">
<a
href={"/admin/user/edit/req/" + token + "/" + requisite["id"]}
href={"/admin/user/edit/req/" + token + "/" + requisite["id"] + "_" + userData.code}
class="btn btn-info">Изменить</a
>
<button class="btn btn-error">Удалить</button>

View File

@ -24,7 +24,7 @@ const config = {
"/admin/user/edit/req/sampleToken/sampleReqID",
"/admin/user/neworder/sampleToken",
"/admin/user/profile/sampleToken",
"/admin",
"/admin/",
"/admin/login",
"/admin/newuser",
"/admin/userslist",