fix login spaces

This commit is contained in:
xds
2025-03-06 18:54:45 +03:00
parent ba12fb649a
commit 9cf471009d
6 changed files with 28 additions and 11 deletions

View File

@@ -10,7 +10,7 @@ const props = defineProps({
<template>
<div class="relative w-full " :class="!props.halfscreen ? 'h-screen' : 'h-80'">
<!-- Полупрозрачный белый фон -->
<div class="absolute top-0 left-0 w-full h-full bg-gray-100 z-0"></div>
<div class="absolute top-0 left-0 w-full h-full z-0" :class="props.halfscreen ? 'bg-white': 'bg-gray-100'"></div>
<!-- Спиннер поверх -->
<div class="absolute top-0 left-0 w-full h-full flex items-center justify-center z-50">

View File

@@ -121,6 +121,7 @@ import {TransactionType} from "@/models/Transaction";
import {CategoryType} from "@/models/Category";
import {useDrawerStore} from "@/stores/drawerStore";
import {useRoute, useRouter} from "vue-router";
const router = useRouter()
const route = useRoute()

View File

@@ -18,7 +18,7 @@ const cancel = () => {
</script>
<template>
<Dialog :visible="opened" modal header="Создать новое пространство" :style="{ width: '25rem' }" @hide="cancel"
<Dialog :visible="opened" modal header="Создать новое пространство" :style="{ width: '25rem' }" @hide="cancel"
@update:visible="cancel">
<SpaceCreationFormView @close-modal="cancel" @space-created="emits('space-created')" />

View File

@@ -10,13 +10,17 @@ import InputText from "primevue/inputtext";
import Textarea from "primevue/textarea";
import Button from "primevue/button";
import DatePicker from "primevue/datepicker";
import {useToast} from "primevue/usetoast";
import LoadingView from "@/components/LoadingView.vue";
const emits = defineEmits(['space-created', 'close-modal', 'error-space-creation'])
const toast = useToast()
const spaceName = ref('')
const spaceDescription = ref('')
const createCategories = ref(true)
const loading = ref(false)
const cancel = () => {
resetForm()
@@ -28,11 +32,22 @@ const createSpace = async () => {
space.name = spaceName.value
space.description = spaceDescription.value
space.createCategories = createCategories.value
try {
await createSpaceRequest(space).then((res) => {
resetForm()
emits("space-created", res)
})
loading.value = true
await createSpaceRequest(space)
.then((res) => {
resetForm()
loading.value = false
emits("space-created", res)
}).catch((err) => {
toast.add({
severity: 'error',
summary: 'Ошибка!',
detail: err.response?.data?.message || 'Ошибка при создании пространства',
life: 3000
});
})
} catch (e) {
console.error(e)
@@ -46,8 +61,8 @@ const resetForm = () => {
</script>
<template>
<div class="flex flex-col gap-4 mt-1">
<LoadingView v-if="loading" halfscreen/>
<div v-else class="flex flex-col gap-4 mt-1">
<FloatLabel variant="on" class="w-full">
<label for="name">Название</label>
<InputText v-model="spaceName" id="name" class="w-full"/>

View File

@@ -154,9 +154,8 @@ const kickMember = async (space: Space, user: User) => {
}
const deleteSpace = async (space: Space) => {
confirm.require({
message: `Вы действительно хотите удалить пространство ${space.name}? Будут удалены все бюджеты!`,
message: `Вы действительно хотите удалить пространство ${space.name}? Будут удалены все данные!`,
header: 'Удаление пространства',
icon: 'pi pi-info-circle',
rejectLabel: 'Отмена',
@@ -171,8 +170,10 @@ const deleteSpace = async (space: Space) => {
},
accept: async () => {
try {
loading.value = true;
await deleteSpaceRequest(space.id).then((res) => {
spaceStore.fetchSpaces();
loading.value = false;
})
} catch (error: Error) {
toast.add({

View File

@@ -55,7 +55,7 @@ export const useUserStore = defineStore('user', () => {
await router.push(route.query['back'] ? route.query['back'].toString() : '/');
} catch (error) {
console.error(error);
toast.add({ severity: 'error', summary: 'Ошибка входа', detail: 'Ошибка Telegram авторизации', life: 3000 })
toast.add({ severity: 'error', summary: 'Ошибка авторизации', detail: error.response.data.message, life: 3000 })
}
};