diff --git a/front_vue/index.html b/front_vue/index.html
index d597a19..7afd824 100644
--- a/front_vue/index.html
+++ b/front_vue/index.html
@@ -2,7 +2,7 @@
-
+
TaskBoard
diff --git a/front_vue/src/components/ProjectSelector.vue b/front_vue/src/components/ProjectSelector.vue
index d63a4e7..5fb5c90 100644
--- a/front_vue/src/components/ProjectSelector.vue
+++ b/front_vue/src/components/ProjectSelector.vue
@@ -1,5 +1,6 @@
-
+
+
+
+
+
diff --git a/front_vue/src/components/ui/SlidePanel.vue b/front_vue/src/components/ui/SlidePanel.vue
index 76bd00c..d1e980c 100644
--- a/front_vue/src/components/ui/SlidePanel.vue
+++ b/front_vue/src/components/ui/SlidePanel.vue
@@ -311,15 +311,15 @@ onUnmounted(() => {
border-top: 1px solid rgba(255, 255, 255, 0.06);
}
-/* Transition */
+/* Transition — плавное появление */
.panel-enter-active,
.panel-leave-active {
- transition: all 0.3s ease;
+ transition: opacity 0.2s ease;
}
.panel-enter-active .panel,
.panel-leave-active .panel {
- transition: transform 0.3s ease;
+ transition: opacity 0.2s ease, transform 0.2s ease;
}
.panel-enter-from,
@@ -329,7 +329,8 @@ onUnmounted(() => {
.panel-enter-from .panel,
.panel-leave-to .panel {
- transform: translateX(100%);
+ opacity: 0;
+ transform: scale(0.98);
}
/* ========== MOBILE: Fullscreen ========== */
diff --git a/front_vue/src/views/ArchivePage.vue b/front_vue/src/views/ArchivePage.vue
index 658b0cb..3dc184f 100644
--- a/front_vue/src/views/ArchivePage.vue
+++ b/front_vue/src/views/ArchivePage.vue
@@ -36,14 +36,7 @@
-
+
store.currentProjectId,
- set: () => {}
-})
-
-const projectOptions = computed(() => {
- return store.projects.map(p => ({
- id: p.id,
- label: p.name
+const departmentOptions = computed(() => [
+ { id: null, label: 'Все отделы' },
+ ...store.departments.map(d => ({
+ id: d.id,
+ label: d.name_departments
}))
-})
-
-const departmentOptions = computed(() => {
- return [
- { id: null, label: 'Все отделы' },
- ...store.departments.map(d => ({
- id: d.id,
- label: d.name_departments
- }))
- ]
-})
-
-const onMobileProjectChange = async (projectId) => {
- await store.setCurrentProject(projectId)
- activeDepartment.value = null
- await fetchCards()
-}
+])
// ==================== КАРТОЧКИ ====================
const cards = ref([])
diff --git a/front_vue/src/views/MainApp.vue b/front_vue/src/views/MainApp.vue
index c7e0343..b8d1765 100644
--- a/front_vue/src/views/MainApp.vue
+++ b/front_vue/src/views/MainApp.vue
@@ -31,16 +31,9 @@
-
+
-
+
- store.projects.map(p => ({ id: p.id, label: p.name }))
-)
-
const departmentOptions = computed(() => [
{ id: null, label: 'Все отделы' },
...store.departments.map(d => ({ id: d.id, label: d.name_departments }))
])
-const onMobileProjectChange = async (projectId) => {
- await store.selectProject(projectId)
- await onProjectChange()
-}
-
-// Синхронизируем с текущим проектом
-watch(() => store.currentProjectId, (id) => {
- mobileProjectId.value = id
-}, { immediate: true })
-
// ==================== КАРТОЧКИ ====================
const cards = ref([])