fix login spaces
This commit is contained in:
@@ -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">
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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')" />
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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({
|
||||
|
||||
@@ -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 })
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user