From 9808bd00af30f4e53f91f331c9ec62f2b5ce232a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Tue, 7 Jul 2026 19:35:58 +0300 Subject: [PATCH] =?UTF-8?q?feat(=D0=BF=D0=BE=D1=80=D1=82=D0=B0=D0=BB-?= =?UTF-8?q?=D0=BC=D0=BE=D0=B1=D0=B8=D0=BB=D0=BA=D0=B0):=20=C2=AB=D0=9A?= =?UTF-8?q?=D0=B0=D0=BD=D0=B1=D0=B0=D0=BD=C2=BB=20=D0=BD=D0=B0=20=D1=82?= =?UTF-8?q?=D0=B5=D0=BB=D0=B5=D1=84=D0=BE=D0=BD=D0=B5=20=E2=80=94=20=D0=BE?= =?UTF-8?q?=D0=B4=D0=BD=D0=B0=20=D0=BA=D0=BE=D0=BB=D0=BE=D0=BD=D0=BA=D0=B0?= =?UTF-8?q?=20+=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BA=D0=BB=D1=8E=D1=87=D0=B0?= =?UTF-8?q?=D1=82=D0=B5=D0=BB=D1=8C=20=D1=8D=D1=82=D0=B0=D0=BF=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit На телефоне 5 колонок больше не листаются вбок: сверху горизонтальный переключатель этапов (чипсы со счётчиками), ниже — выбранная колонка на всю ширину. Смена этапа сделки на телефоне — тапом по карточке через drawer (drag вбок на узком экране неудобен). Планшет/десктоп — прежняя доска со всеми колонками и перетаскиванием, без изменений. Тесты Канбана 23/23 зелёные. Проверено на 390 и 1440px (+ переключение этапов). Co-Authored-By: Claude Opus 4.8 (1M context) --- app/resources/js/views/KanbanView.vue | 108 +++++++++++++++++++++++++- 1 file changed, 106 insertions(+), 2 deletions(-) diff --git a/app/resources/js/views/KanbanView.vue b/app/resources/js/views/KanbanView.vue index 42f98ef0..66f535fd 100644 --- a/app/resources/js/views/KanbanView.vue +++ b/app/resources/js/views/KanbanView.vue @@ -32,11 +32,18 @@ import DealDetailDrawer from '../components/deals/DealDetailDrawer.vue'; import NewDealDialog from '../components/deals/NewDealDialog.vue'; import { useAuthStore } from '../stores/auth'; import { useLeadStatusesStore } from '../stores/leadStatuses'; +import { useLayoutTier } from '../composables/useLayoutTier'; const auth = useAuthStore(); const leadStatusesStore = useLeadStatusesStore(); const leadStatuses = computed(() => leadStatusesStore.statuses); +// Телефон: одна колонка + переключатель этапов (drag вбок неудобен на узком экране; +// смена этапа сделки — тапом по карточке через drawer). +const { isPhone } = useLayoutTier(); +const activeSlug = ref(LEAD_STATUSES[0]?.slug ?? ''); +const activeStatus = computed(() => leadStatuses.value.find((s) => s.slug === activeSlug.value) ?? leadStatuses.value[0] ?? null); + interface DraggableChangeEvent { added?: { element: MockDeal; newIndex: number }; removed?: { element: MockDeal; oldIndex: number }; @@ -222,7 +229,9 @@ defineExpose({ >{{ totalDeals }} сделок · - Перетаскивание между колонками + {{ + isPhone ? 'Выберите этап' : 'Перетаскивание между колонками' + }}
@@ -244,7 +253,37 @@ defineExpose({ Не удалось загрузить сделки. Попробуйте обновить. -
+ +
+
+ +
+ +
+ + +