Авто Обновление данных
сделал автоматическое обновление данных по таскам у других клиентов.
This commit is contained in:
@@ -1,5 +1,8 @@
|
|||||||
// Конфигурация приложения
|
// Конфигурация приложения
|
||||||
window.APP_CONFIG = {
|
window.APP_CONFIG = {
|
||||||
API_BASE: 'http://192.168.1.6'
|
API_BASE: 'http://192.168.1.6',
|
||||||
|
|
||||||
|
// Интервал автообновления данных (в секундах)
|
||||||
|
IDLE_REFRESH_SECONDS: 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -88,7 +88,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref, watch, onMounted } from 'vue'
|
import { ref, watch, onMounted, onUnmounted } from 'vue'
|
||||||
import Sidebar from '../components/Sidebar.vue'
|
import Sidebar from '../components/Sidebar.vue'
|
||||||
import Header from '../components/Header.vue'
|
import Header from '../components/Header.vue'
|
||||||
import Board from '../components/Board.vue'
|
import Board from '../components/Board.vue'
|
||||||
@@ -174,13 +174,37 @@ const handleArchiveTask = async (cardId) => {
|
|||||||
closePanel()
|
closePanel()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ==================== АВТООБНОВЛЕНИЕ (POLLING) ====================
|
||||||
|
const REFRESH_INTERVAL = (window.APP_CONFIG?.IDLE_REFRESH_SECONDS ?? 30) * 1000
|
||||||
|
let pollTimer = null
|
||||||
|
|
||||||
|
const startPolling = () => {
|
||||||
|
if (pollTimer) clearInterval(pollTimer)
|
||||||
|
pollTimer = setInterval(async () => {
|
||||||
|
console.log('[AutoRefresh] Обновление данных...')
|
||||||
|
await fetchCards()
|
||||||
|
}, REFRESH_INTERVAL)
|
||||||
|
}
|
||||||
|
|
||||||
|
const stopPolling = () => {
|
||||||
|
if (pollTimer) {
|
||||||
|
clearInterval(pollTimer)
|
||||||
|
pollTimer = null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// ==================== ИНИЦИАЛИЗАЦИЯ ====================
|
// ==================== ИНИЦИАЛИЗАЦИЯ ====================
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
await store.init()
|
await store.init()
|
||||||
await fetchCards()
|
await fetchCards()
|
||||||
|
startPolling()
|
||||||
|
|
||||||
if (window.lucide) window.lucide.createIcons()
|
if (window.lucide) window.lucide.createIcons()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
onUnmounted(() => {
|
||||||
|
stopPolling()
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|||||||
Reference in New Issue
Block a user