Правка фронта
1. Улучшения мобильной версии 2. Улучшения комментариев фронта 3. Единый лоадер UI
This commit is contained in:
@@ -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()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user