2024-07-05 17:57:45 +03:00

144 lines
3.9 KiB
Svelte
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<script>
// @ts-nocheck
import { browser } from "$app/environment";
import { getAuthInfo, makeAuthHeaderForAxios } from "$lib/auth/Auth.js";
import { makePost } from "$lib/tools/requests/requests.js";
import { sayError } from "$lib/tools/toaster/Toaster.js";
export let data;
let { reqID } = data;
let { token } = data;
let reqInfo = [];
let value_bankName;
let value_cardNumber;
let value_phone;
let value_status;
let canChange = false;
$: reqInfo, bindValues();
$: value_cardNumber, value_phone, value_status, checkFields();
function bindValues() {
value_bankName = reqInfo[0]?.bankname;
value_cardNumber = reqInfo[0]?.cardnumber;
value_phone = reqInfo[0]?.phone;
value_status = reqInfo[0]?.status === "t";
}
function checkFields() {
if(value_cardNumber?.length !== 16)
{
canChange = false;
return;
}
if(value_phone?.length !== 11)
{
canChange = false;
return;
}
canChange = true;
}
async function getReqInfo() {
const result = await makePost(
"getRequisite",
{
token: token,
},
makeAuthHeaderForAxios(getAuthInfo()?.a)
);
if (result.status === 401) {
sayError("Данные авторизации устарели");
window.location.href = "/";
return;
}
if (result.error) {
sayError("Не удалось получить реквизиты пользователя");
return;
}
console.log(result.data);
reqInfo = result.data.filter((s) => s.id === reqID);
}
async function changeRequisite() {
//changeRequisite
canChange = false;
const result = await makePost(
"changeRequisite",
{
...reqInfo[0],
bankname: value_bankName,
cardnumber: value_cardNumber,
phone: value_phone,
status: value_status ? "true":"false"
},
makeAuthHeaderForAxios(getAuthInfo()?.a)
);
if (result.status === 401) {
sayError("Данные авторизации устарели");
window.location.href = "/";
// canChange = true;
return;
}
if (result.error) {
sayError("Не удалось изменить реквизит пользователя");
canChange = true;
return;
}
document.getElementById("ref")?.click();
// canChange = true;
}
if (browser) {
getReqInfo();
}
</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">Изменение реквизита (ID: {reqID})</h1>
</div>
<div class="w-full flex flex-col p-4 gap-2 rounded-box bg-base-300">
{#each reqInfo as req}
<select
bind:value={value_bankName}
class="select select-bordered w-full text-base"
>
<option disabled selected value="-1">Банк</option>
<option value="sber">Сбер</option>
<!-- <option value="2">Модератор</option>
<option value="4">Администратор</option> -->
</select>
<label class="input input-bordered flex items-center gap-2">
Номер карты
<input
type="text"
class="grow text-info"
bind:value={value_cardNumber}
/>
</label>
<label class="input input-bordered flex items-center gap-2">
Телефон
<input type="text" class="grow text-info" bind:value={value_phone} />
</label>
<div class="flex p-4 items-center gap-2">
<p>Активный:</p>
<input
bind:checked={value_status}
type="checkbox"
class="toggle toggle-primary"
/>
</div>
<button on:click={()=>{changeRequisite()}} class="btn btn-primary" disabled={!canChange}>Сохранить</button>
<a href={"/user/profile/"+token} class="hidden" id="ref"></a>
{/each}
</div>
</div>