1
0

Добавление в Архив + Фронт

1. Переписал модуль выпадающего слева меню
2. Добавил механику Архивации задач
3. Запоминания выбранного отдела
This commit is contained in:
2026-01-13 07:04:10 +07:00
parent 6688b8e37c
commit 44b6e636d4
17 changed files with 2434 additions and 1594 deletions

View File

@@ -73,12 +73,13 @@
@close="closePanel"
@save="handleSaveTask"
@delete="handleDeleteTask"
@archive="handleArchiveTask"
/>
</div>
</template>
<script setup>
import { ref, onMounted } from 'vue'
import { ref, watch, onMounted } from 'vue'
import Sidebar from '../components/Sidebar.vue'
import Header from '../components/Header.vue'
import Board from '../components/Board.vue'
@@ -86,7 +87,18 @@ import TaskPanel from '../components/TaskPanel.vue'
import { departmentsApi, labelsApi, columnsApi, cardsApi } from '../api'
// Активный фильтр по отделу (null = все)
const activeDepartment = ref(null)
// Восстанавливаем из localStorage
const savedDepartment = localStorage.getItem('activeDepartment')
const activeDepartment = ref(savedDepartment ? parseInt(savedDepartment) : null)
// Сохраняем в localStorage при изменении
watch(activeDepartment, (newVal) => {
if (newVal === null) {
localStorage.removeItem('activeDepartment')
} else {
localStorage.setItem('activeDepartment', newVal.toString())
}
})
// Статистика для шапки
const stats = ref({ total: 0, inProgress: 0, done: 0 })
// Данные из API
@@ -157,6 +169,12 @@ const handleDeleteTask = async (cardId) => {
closePanel()
}
// Архивировать задачу через Board компонент
const handleArchiveTask = async (cardId) => {
await boardRef.value?.archiveTask(cardId)
closePanel()
}
// Инициализация при монтировании
onMounted(() => {
fetchData()