Compare commits
2 Commits
3edbd93224
...
604157ea26
Author | SHA1 | Date | |
---|---|---|---|
|
604157ea26 | ||
|
155d683199 |
@ -2,8 +2,8 @@
|
|||||||
import { SvelteToast } from "@zerodevx/svelte-toast";
|
import { SvelteToast } from "@zerodevx/svelte-toast";
|
||||||
import { onMount } from "svelte";
|
import { onMount } from "svelte";
|
||||||
import "../../app.css";
|
import "../../app.css";
|
||||||
import Navbar from "../../lib/ui-components/navbar.svelte";
|
import Navbar from "$lib/ui-components/navbar.svelte";
|
||||||
import { checkAuth, checkAuthSync } from "../../lib/auth/Auth";
|
import { checkAuth, checkAuthSync } from "$lib/auth/Auth";
|
||||||
import { redirect } from "$lib/tools/url/URLTools";
|
import { redirect } from "$lib/tools/url/URLTools";
|
||||||
import { AuthStorage } from "$lib/tools/storages/auth-storage";
|
import { AuthStorage } from "$lib/tools/storages/auth-storage";
|
||||||
|
|
||||||
|
@ -1,8 +1,12 @@
|
|||||||
<script>
|
<script>
|
||||||
|
import { checkAuth, checkAuthSync } from "$lib/auth/Auth";
|
||||||
import { redirect } from "$lib/tools/url/URLTools";
|
import { redirect } from "$lib/tools/url/URLTools";
|
||||||
import { onMount } from "svelte";
|
import { onMount } from "svelte";
|
||||||
|
|
||||||
onMount(()=>{
|
onMount(()=>{
|
||||||
|
if(checkAuthSync())
|
||||||
redirect("/admin/userslist");
|
redirect("/admin/userslist");
|
||||||
|
else
|
||||||
|
redirect("/admin/login");
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
@ -2,7 +2,7 @@
|
|||||||
import { makePost } from "$lib/tools/requests/Requests";
|
import { makePost } from "$lib/tools/requests/Requests";
|
||||||
import { sayError, sayInfo, sayWarning } from "$lib/tools/toaster/Toaster";
|
import { sayError, sayInfo, sayWarning } from "$lib/tools/toaster/Toaster";
|
||||||
import { onMount } from "svelte";
|
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 { redirect } from "$lib/tools/url/URLTools";
|
||||||
import { AuthStorage } from "$lib/tools/storages/auth-storage";
|
import { AuthStorage } from "$lib/tools/storages/auth-storage";
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<script>
|
<script>
|
||||||
import { isStringEmptyOrSpaces } from "../../../lib/tools/strings/Strings";
|
import { isStringEmptyOrSpaces } from "$lib/tools/strings/Strings";
|
||||||
import { makePost, makeGet } from "$lib/tools/requests/Requests";
|
import { makePost, makeGet } from "$lib/tools/requests/Requests";
|
||||||
import {
|
import {
|
||||||
checkAuthSync,
|
checkAuthSync,
|
||||||
|
@ -7,8 +7,10 @@ export async function load({ params }) {
|
|||||||
if(!browser) return;
|
if(!browser) return;
|
||||||
const { userToken } = params;
|
const { userToken } = params;
|
||||||
const { reqID } = params;
|
const { reqID } = params;
|
||||||
|
let spt = reqID.split("_");
|
||||||
return {
|
return {
|
||||||
token: userToken,
|
token: userToken,
|
||||||
reqID: reqID
|
reqID: spt[0],
|
||||||
|
currency: spt[1]
|
||||||
};
|
};
|
||||||
}
|
}
|
@ -3,12 +3,13 @@
|
|||||||
|
|
||||||
import { browser } from "$app/environment";
|
import { browser } from "$app/environment";
|
||||||
import { getAuthInfo, makeAuthHeaderForAxios } from "$lib/auth/Auth.js";
|
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 { sayError } from "$lib/tools/toaster/Toaster.js";
|
||||||
import { redirect } from "$lib/tools/url/URLTools.js";
|
import { redirect } from "$lib/tools/url/URLTools.js";
|
||||||
|
|
||||||
export let data;
|
export let data;
|
||||||
let { reqID } = data;
|
let { reqID } = data;
|
||||||
|
let {currency} = data;
|
||||||
let { token } = data;
|
let { token } = data;
|
||||||
|
|
||||||
let reqInfo = [];
|
let reqInfo = [];
|
||||||
@ -16,6 +17,7 @@
|
|||||||
let value_cardNumber;
|
let value_cardNumber;
|
||||||
let value_phone;
|
let value_phone;
|
||||||
let value_status;
|
let value_status;
|
||||||
|
let value_limit;
|
||||||
|
|
||||||
let canChange = false;
|
let canChange = false;
|
||||||
|
|
||||||
@ -23,27 +25,29 @@
|
|||||||
$: value_cardNumber, value_phone, value_status, checkFields();
|
$: value_cardNumber, value_phone, value_status, checkFields();
|
||||||
|
|
||||||
function bindValues() {
|
function bindValues() {
|
||||||
value_bankName = reqInfo[0]?.bankname;
|
value_bankName = reqInfo[0]?.bank_name;
|
||||||
value_cardNumber = reqInfo[0]?.cardnumber;
|
value_cardNumber = reqInfo[0]?.cardnumber;
|
||||||
value_phone = reqInfo[0]?.phone;
|
value_phone = reqInfo[0]?.phone;
|
||||||
value_status = reqInfo[0]?.status === "t";
|
value_status = reqInfo[0]?.status === "t";
|
||||||
|
value_limit = Number(reqInfo[0]?.daily_volume_limit);
|
||||||
|
value_bankName = reqInfo[0]?.bank_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
function checkFields() {
|
function checkFields() {
|
||||||
|
if (value_cardNumber?.length !== 16) {
|
||||||
if(value_cardNumber?.length !== 16)
|
canChange = false;
|
||||||
{
|
return;
|
||||||
canChange = false;
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
if(value_phone?.length !== 11)
|
if (value_phone?.length !== 11) {
|
||||||
{
|
canChange = false;
|
||||||
canChange = false;
|
return;
|
||||||
return;
|
}
|
||||||
|
if (value_limit < 0) {
|
||||||
|
canChange = false;
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
canChange = true;
|
canChange = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getReqInfo() {
|
async function getReqInfo() {
|
||||||
@ -78,7 +82,8 @@
|
|||||||
bankname: value_bankName,
|
bankname: value_bankName,
|
||||||
cardnumber: value_cardNumber,
|
cardnumber: value_cardNumber,
|
||||||
phone: value_phone,
|
phone: value_phone,
|
||||||
status: value_status ? "true":"false"
|
status: value_status ? "true" : "false",
|
||||||
|
limit: value_limit.toString(),
|
||||||
},
|
},
|
||||||
makeAuthHeaderForAxios(getAuthInfo()?.a)
|
makeAuthHeaderForAxios(getAuthInfo()?.a)
|
||||||
);
|
);
|
||||||
@ -86,7 +91,7 @@
|
|||||||
sayError("Данные авторизации устарели");
|
sayError("Данные авторизации устарели");
|
||||||
// window.location.href = "/";
|
// window.location.href = "/";
|
||||||
redirect("/admin/");
|
redirect("/admin/");
|
||||||
// canChange = true;
|
// canChange = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (result.error) {
|
if (result.error) {
|
||||||
@ -98,8 +103,23 @@
|
|||||||
// canChange = true;
|
// 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) {
|
if (browser) {
|
||||||
getReqInfo();
|
getReqInfo();
|
||||||
|
getActiveBanks();
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@ -115,7 +135,10 @@
|
|||||||
class="select select-bordered w-full text-base"
|
class="select select-bordered w-full text-base"
|
||||||
>
|
>
|
||||||
<option disabled selected value="-1">Банк</option>
|
<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="2">Модератор</option>
|
||||||
<option value="4">Администратор</option> -->
|
<option value="4">Администратор</option> -->
|
||||||
</select>
|
</select>
|
||||||
@ -131,6 +154,10 @@
|
|||||||
Телефон
|
Телефон
|
||||||
<input type="text" class="grow text-info" bind:value={value_phone} />
|
<input type="text" class="grow text-info" bind:value={value_phone} />
|
||||||
</label>
|
</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">
|
<div class="flex p-4 items-center gap-2">
|
||||||
<p>Активный:</p>
|
<p>Активный:</p>
|
||||||
<input
|
<input
|
||||||
@ -139,8 +166,14 @@
|
|||||||
class="toggle toggle-primary"
|
class="toggle toggle-primary"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<button on:click={()=>{changeRequisite()}} class="btn btn-primary" disabled={!canChange}>Сохранить</button>
|
<button
|
||||||
<a href={"/admin/user/profile/"+token} class="hidden" id="ref"></a>
|
on:click={() => {
|
||||||
|
changeRequisite();
|
||||||
|
}}
|
||||||
|
class="btn btn-primary"
|
||||||
|
disabled={!canChange}>Сохранить</button
|
||||||
|
>
|
||||||
|
<a href={"/admin/user/profile/" + token} class="hidden" id="ref"></a>
|
||||||
{/each}
|
{/each}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -185,7 +185,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="flex gap-2 p-2 items-center text-lg">
|
<div class="flex gap-2 p-2 items-center text-lg">
|
||||||
<p class="font-bold">Заморожено:</p>
|
<p class="font-bold">Заморожено:</p>
|
||||||
<p class="text-info">{userData?.insurance}</p>
|
<p class="text-info">{userData?.insurance} USDT</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex gap-2 p-2 items-center text-lg">
|
<div class="flex gap-2 p-2 items-center text-lg">
|
||||||
<p class="font-bold">Ставка:</p>
|
<p class="font-bold">Ставка:</p>
|
||||||
@ -227,7 +227,7 @@
|
|||||||
<div class="flex items-center 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>
|
<button 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 mt-4">
|
<div class="overflow-x-auto mt-4">
|
||||||
@ -243,6 +243,8 @@
|
|||||||
<th>Телефон</th>
|
<th>Телефон</th>
|
||||||
<th>Имя</th>
|
<th>Имя</th>
|
||||||
<th>Девайс</th>
|
<th>Девайс</th>
|
||||||
|
<th>Объем {userData.code}</th>
|
||||||
|
<th>Лимит {userData.code}</th>
|
||||||
<th>Опции</th>
|
<th>Опции</th>
|
||||||
<!-- <th></th> -->
|
<!-- <th></th> -->
|
||||||
</tr>
|
</tr>
|
||||||
@ -254,15 +256,17 @@
|
|||||||
<td class=""
|
<td class=""
|
||||||
>{requisite["status"] === "t" ? "активен" : "отключен"}</td
|
>{requisite["status"] === "t" ? "активен" : "отключен"}</td
|
||||||
>
|
>
|
||||||
<td>{requisite["bankname"]}</td>
|
<td>{requisite["bank_name"]}</td>
|
||||||
<td>{requisite["is_sbp"] === "t" ? "да" : "нет"}</td>
|
<td>{requisite["is_sbp"] === "t" ? "да" : "нет"}</td>
|
||||||
<td>{requisite["cardnumber"]}</td>
|
<td>{requisite["cardnumber"]}</td>
|
||||||
<td>{requisite["phone"]}</td>
|
<td>{requisite["phone"]}</td>
|
||||||
<td>{requisite["name"]}</td>
|
<td>{requisite["name"]}</td>
|
||||||
<td>{requisite["device_id"]}</td>
|
<td>{requisite["device_id"]}</td>
|
||||||
|
<td>{requisite["daily_volume"]}</td>
|
||||||
|
<td>{requisite["daily_volume_limit"]}</td>
|
||||||
<td class="flex gap-2">
|
<td class="flex gap-2">
|
||||||
<a
|
<a
|
||||||
href={"/admin/user/edit/req/" + token + "/" + requisite["id"]}
|
href={"/admin/user/edit/req/" + token + "/" + requisite["id"] + "_" + userData.code}
|
||||||
class="btn btn-info">Изменить</a
|
class="btn btn-info">Изменить</a
|
||||||
>
|
>
|
||||||
<button class="btn btn-error">Удалить</button>
|
<button class="btn btn-error">Удалить</button>
|
||||||
|
@ -24,7 +24,7 @@ const config = {
|
|||||||
"/admin/user/edit/req/sampleToken/sampleReqID",
|
"/admin/user/edit/req/sampleToken/sampleReqID",
|
||||||
"/admin/user/neworder/sampleToken",
|
"/admin/user/neworder/sampleToken",
|
||||||
"/admin/user/profile/sampleToken",
|
"/admin/user/profile/sampleToken",
|
||||||
"/admin",
|
"/admin/",
|
||||||
"/admin/login",
|
"/admin/login",
|
||||||
"/admin/newuser",
|
"/admin/newuser",
|
||||||
"/admin/userslist",
|
"/admin/userslist",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user