Исправление сортировки: явное включение headerSort и sorter

- Добавлен headerSort: true для каждой колонки
- Добавлен sorter на основе типа данных (string/number/datetime)
- Добавлены обработчики событий dataSorting/dataSorted для отладки

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Mikhail Chusavitin
2026-01-22 11:12:34 +03:00
parent d0605c722e
commit 198571ecf5

View File

@@ -430,9 +430,19 @@ async function selectTable(schema, tableName) {
// ✅ Убран cellClick - Tabulator сам обрабатывает клики на rowSelection
},
...currentMeta.columns.map(col => {
// Определяем тип сортировщика на основе типа данных
let sorterType = "string";
if (col.DATA_TYPE && (col.DATA_TYPE.includes('int') || col.DATA_TYPE.includes('decimal') || col.DATA_TYPE.includes('float'))) {
sorterType = "number";
} else if (col.DATA_TYPE && (col.DATA_TYPE.includes('date') || col.DATA_TYPE.includes('time'))) {
sorterType = "datetime";
}
const colDef = {
title: col.COLUMN_NAME,
field: col.COLUMN_NAME,
headerSort: true, // ✅ Явно включаем сортировку
sorter: sorterType, // ✅ Тип сортировщика для отображения стрелок
// ✅ Добавляем тултип для заголовка
headerTooltip: function(e, column) {
const comment = col.COLUMN_COMMENT;
@@ -709,6 +719,15 @@ async function selectTable(schema, tableName) {
console.log('✅ Tabulator создан, подключаем события...');
// ✅ Обработчик сортировки - принудительная перезагрузка данных
table.on("dataSorting", function(sorters) {
console.log('🔄 Сортировка начата:', sorters);
});
table.on("dataSorted", function(sorters, rows) {
console.log('✅ Сортировка завершена:', sorters);
});
// ✅ Применяем сохранённую видимость столбцов
const savedVisibility = loadColumnVisibility();
if (savedVisibility) {