1
0

Большое обновление

1. Создание личных проектов
2. Управление командой
3. Приглашение участников
4. Уведомления

и многое другое...
This commit is contained in:
2026-01-18 20:17:02 +07:00
parent 250eac70a7
commit 190b4d0a5e
51 changed files with 6179 additions and 426 deletions

View File

@@ -162,6 +162,7 @@
<script setup>
import { ref, computed, watch, nextTick } from 'vue'
import { useRouter } from 'vue-router'
import SlidePanel from './ui/SlidePanel.vue'
import TextInput from './ui/TextInput.vue'
import ColorPicker from './ui/ColorPicker.vue'
@@ -171,10 +172,13 @@ import ConfirmDialog from './ConfirmDialog.vue'
import { useLucideIcons } from '../composables/useLucideIcons'
import { useMobile } from '../composables/useMobile'
import { useProjectsStore } from '../stores/projects'
import { useToast } from '../composables/useToast'
const { refreshIcons } = useLucideIcons()
const toast = useToast()
const { isMobile } = useMobile()
const store = useProjectsStore()
const router = useRouter()
const props = defineProps({
show: Boolean,
@@ -491,8 +495,11 @@ const handleSave = async () => {
// Обновляем колонки если есть изменения
// Дефолтные колонки уже созданы сервером
// Здесь можно добавить логику для кастомизации колонок при создании
toast.success('Проект создан')
emit('saved', result.id)
emit('close')
} else {
toast.error('Ошибка создания проекта')
}
} else {
// Редактирование проекта
@@ -529,6 +536,7 @@ const handleSave = async () => {
await store.reorderColumns(ids)
}
toast.success('Изменения сохранены')
emit('saved', props.project.id)
emit('close')
}
@@ -568,10 +576,17 @@ const confirmDeleteProject = async () => {
const result = await store.deleteProject(props.project.id)
if (!result.success) {
toast.error(result.errors?.access || 'Ошибка удаления')
throw new Error(result.errors?.access || 'Ошибка удаления')
}
toast.success('Проект удалён')
emit('close')
// Если после удаления нет проектов — переходим на страницу без проектов
if (store.projects.length === 0) {
router.push('/no-projects')
}
}
// ==================== WATCH ====================