1
0

Правка фронта

1. Улучшения мобильной версии
2. Улучшения комментариев фронта
3. Единый лоадер UI
This commit is contained in:
2026-01-16 05:41:30 +07:00
parent 36e844d4ea
commit cb075e56be
11 changed files with 246 additions and 162 deletions

View File

@@ -67,7 +67,9 @@
<!-- Доска с колонками и карточками -->
<main class="main">
<Loader v-if="loading" />
<Board
v-else
ref="boardRef"
:active-department="activeDepartment"
:departments="store.departments"
@@ -109,6 +111,7 @@ import Board from '../components/Board.vue'
import TaskPanel from '../components/TaskPanel'
import ProjectSelector from '../components/ProjectSelector.vue'
import MobileSelect from '../components/ui/MobileSelect.vue'
import Loader from '../components/ui/Loader.vue'
import { useProjectsStore } from '../stores/projects'
import { cardsApi } from '../api'
import { useMobile } from '../composables/useMobile'
@@ -126,18 +129,32 @@ const departmentOptions = computed(() => [
// ==================== КАРТОЧКИ ====================
const cards = ref([])
const loading = ref(true)
// Загрузка карточек текущего проекта
const fetchCards = async () => {
if (!store.currentProjectId) return
// Загрузка карточек текущего проекта (silent = тихое обновление без Loader)
const fetchCards = async (silent = false) => {
if (!store.currentProjectId) {
loading.value = false
return
}
const result = await cardsApi.getAll(store.currentProjectId)
if (result.success) cards.value = result.data
if (!silent) {
loading.value = true
}
try {
const result = await cardsApi.getAll(store.currentProjectId)
if (result.success) cards.value = result.data
} finally {
if (!silent) {
loading.value = false
}
}
}
// При смене проекта — перезагружаем карточки
const onProjectChange = async () => {
activeDepartment.value = null
loading.value = true
await fetchCards()
}
@@ -206,7 +223,7 @@ const startPolling = () => {
if (pollTimer) clearInterval(pollTimer)
pollTimer = setInterval(async () => {
console.log('[AutoRefresh] Обновление данных...')
await fetchCards()
await fetchCards(true) // silent = true, без Loader
}, REFRESH_INTERVAL)
}
@@ -228,6 +245,7 @@ onMounted(async () => {
try {
cards.value = JSON.parse(prefetchedCards)
sessionStorage.removeItem('prefetchedCards')
loading.value = false
} catch (e) {
await fetchCards()
}