Исправление сортировки: явное включение 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:
@@ -430,9 +430,19 @@ async function selectTable(schema, tableName) {
|
|||||||
// ✅ Убран cellClick - Tabulator сам обрабатывает клики на rowSelection
|
// ✅ Убран cellClick - Tabulator сам обрабатывает клики на rowSelection
|
||||||
},
|
},
|
||||||
...currentMeta.columns.map(col => {
|
...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 = {
|
const colDef = {
|
||||||
title: col.COLUMN_NAME,
|
title: col.COLUMN_NAME,
|
||||||
field: col.COLUMN_NAME,
|
field: col.COLUMN_NAME,
|
||||||
|
headerSort: true, // ✅ Явно включаем сортировку
|
||||||
|
sorter: sorterType, // ✅ Тип сортировщика для отображения стрелок
|
||||||
// ✅ Добавляем тултип для заголовка
|
// ✅ Добавляем тултип для заголовка
|
||||||
headerTooltip: function(e, column) {
|
headerTooltip: function(e, column) {
|
||||||
const comment = col.COLUMN_COMMENT;
|
const comment = col.COLUMN_COMMENT;
|
||||||
@@ -709,6 +719,15 @@ async function selectTable(schema, tableName) {
|
|||||||
|
|
||||||
console.log('✅ Tabulator создан, подключаем события...');
|
console.log('✅ Tabulator создан, подключаем события...');
|
||||||
|
|
||||||
|
// ✅ Обработчик сортировки - принудительная перезагрузка данных
|
||||||
|
table.on("dataSorting", function(sorters) {
|
||||||
|
console.log('🔄 Сортировка начата:', sorters);
|
||||||
|
});
|
||||||
|
|
||||||
|
table.on("dataSorted", function(sorters, rows) {
|
||||||
|
console.log('✅ Сортировка завершена:', sorters);
|
||||||
|
});
|
||||||
|
|
||||||
// ✅ Применяем сохранённую видимость столбцов
|
// ✅ Применяем сохранённую видимость столбцов
|
||||||
const savedVisibility = loadColumnVisibility();
|
const savedVisibility = loadColumnVisibility();
|
||||||
if (savedVisibility) {
|
if (savedVisibility) {
|
||||||
|
|||||||
Reference in New Issue
Block a user