diff --git a/frontend/src/views/OLAPConstructor.vue b/frontend/src/views/OLAPConstructor.vue index 646efd4..023b889 100644 --- a/frontend/src/views/OLAPConstructor.vue +++ b/frontend/src/views/OLAPConstructor.vue @@ -19,51 +19,36 @@ -
- -
-

Поля

-
- +
+ +
+

Поля

+
+
Найдено: {{ filteredAvailableFields.length }} / {{ availableFields.length }}
-
- - - - -

Загрузка полей...

-
-
- {{ error }} -
-
- Нет доступных полей. Возможно, требуется инициализация структуры. -
-
+
...
+
...
+
...
+

Числовые → VALUES

-
- {{ filteredNumberFields.length }} - -
+
-
+
+ class="bg-purple-600 text-white p-2 rounded-lg cursor-grab active:cursor-grabbing text-sm" + draggable="true" @dragstart="dragStart($event, field)" @dragend="dragEnd"> {{ field.name }}
@@ -73,24 +58,19 @@

Категории → ROW / COLUMN

-
- {{ filteredCategoryFields.length }} - -
+
-
+
+ class="bg-pink-500 text-white p-2 rounded-lg cursor-grab active:cursor-grabbing text-sm" + draggable="true" @dragstart="dragStart($event, field)" @dragend="dragEnd"> {{ field.name }}
@@ -100,75 +80,70 @@

Фильтры

-
- {{ filteredFilterFields.length }} - -
+
-
+
+ class="bg-cyan-600 text-white p-2 rounded-lg cursor-grab active:cursor-grabbing text-sm" + draggable="true" @dragstart="dragStart($event, field)" @dragend="dragEnd"> {{ field.name }}
-
- +
+
-
+
-
-
- Тип отчета: -
-
-
- +
+ -
Должно начинаться с буквы
+
Должно начинаться с буквы
-
+
- - + +
- - + +
@@ -176,68 +151,68 @@
-
+
-
-

Пользовательские фильтры

-
+

Пользовательские фильтры

+
+ class="inline-flex items-center gap-1.5 bg-cyan-100 text-cyan-800 px-2 py-1 rounded-full text-xs"> {{ f.name }}
-
- +
-
Перетащите поле фильтра
+
Перетащите поле фильтра
-
- +
+
- - - - - + + - - - + + +
-
ROW
+
ROW
Перетащите категорию
-
COLUMN
+
COLUMN
{{ rf.name }}{{ cf.name }}{{ rf.name }}{{ cf.name }} -
VALUES
+
VALUES
{{ f.name }} - @@ -307,9 +282,9 @@
@@ -317,11 +292,11 @@
-
-

Скрипт для ClickHouse

- +
+

Скрипт для ClickHouse

+
-
+
{{ sqlScript }}
@@ -330,7 +305,7 @@
- +
@@ -363,7 +338,7 @@ import { useNotification } from '@/composables/useNotification' const { showNotification } = useNotification() -// Типы +// Типы (без изменений) interface ApiColumn { fieldKey: string fieldKeyNormal: string @@ -461,7 +436,7 @@ const toggleSection = (section: 'number' | 'category' | 'filter') => { // Модалка сброса const resetModal = ref({ show: false }) -// Drag & drop state +// Drag & drop state (без изменений) let draggedItem: AvailableField | null = null let draggedFromSidebar = true const dragOverZone = ref(null) @@ -469,7 +444,7 @@ let dragReorderItem: CategoryField | NumberField | null = null let dragReorderType: string | null = null let dragReorderFromIdx: number | null = null -// Функции работы с полями +// Функции (без изменений, кроме удаления collapsed) const buildAvailableFields = (): AvailableField[] => { if (!columnsData.value.length) return [] const selected = reportType.value @@ -752,7 +727,7 @@ const confirmReset = () => { tableName.value = '' tableNameValid.value = true tableNameTouched.value = false - buildSummary.value = false + buildSummary.value = true searchQuery.value = '' showNotification('Все настройки сброшены', 'success') }