Исправлены проблемы с сохранением и убраны console.logs
This commit is contained in:
@@ -153,22 +153,22 @@ const DualSpreadsheet: FC<DualSpreadsheetProps> = ({
|
||||
initialTemplateValues.current[cellAddress] = String(value || '')
|
||||
})
|
||||
})
|
||||
console.log(
|
||||
'✅ Загружено значений baseFileData для сравнения (приоритет):',
|
||||
Object.keys(initialTemplateValues.current).length
|
||||
)
|
||||
// console.log(
|
||||
// '✅ Загружено значений baseFileData для сравнения (приоритет):',
|
||||
// Object.keys(initialTemplateValues.current).length
|
||||
//)
|
||||
} else if (hasTemplateData) {
|
||||
Object.entries(templateData).forEach(([sheetName, sheetData]) => {
|
||||
Object.entries(sheetData).forEach(([cellAddress, value]) => {
|
||||
initialTemplateValues.current[cellAddress] = String(value || '')
|
||||
})
|
||||
})
|
||||
console.log(
|
||||
'✅ Загружено значений templateData для сравнения (fallback):',
|
||||
Object.keys(initialTemplateValues.current).length
|
||||
)
|
||||
// console.log(
|
||||
// '✅ Загружено значений templateData для сравнения (fallback):',
|
||||
// Object.keys(initialTemplateValues.current).length
|
||||
// )
|
||||
} else {
|
||||
console.log('⚠️ DualSpreadsheet: Нет базовых данных для сравнения')
|
||||
// console.log('⚠️ DualSpreadsheet: Нет базовых данных для сравнения')
|
||||
}
|
||||
}, [baseFileData, templateData])
|
||||
|
||||
@@ -250,11 +250,11 @@ const DualSpreadsheet: FC<DualSpreadsheetProps> = ({
|
||||
baseFileValue &&
|
||||
rawValue !== baseFileValue
|
||||
) {
|
||||
console.log(`🔧 Измененная ячейка ${cellName}:`, {
|
||||
baseFileValue,
|
||||
rawValue,
|
||||
isModified: true,
|
||||
})
|
||||
// console.log(`🔧 Измененная ячейка ${cellName}:`, {
|
||||
// baseFileValue,
|
||||
// rawValue,
|
||||
// isModified: true,
|
||||
// })
|
||||
}
|
||||
|
||||
// Нормализуем значения для сравнения
|
||||
@@ -274,11 +274,11 @@ const DualSpreadsheet: FC<DualSpreadsheetProps> = ({
|
||||
|
||||
// Отладка только для измененных ячеек
|
||||
if (sheetType === 'report' && isModified) {
|
||||
console.log(`🔍 Измененная ячейка ${cellName}:`, {
|
||||
baseFileValue,
|
||||
rawValue,
|
||||
isModified,
|
||||
})
|
||||
// console.log(`🔍 Измененная ячейка ${cellName}:`, {
|
||||
// baseFileValue,
|
||||
// rawValue,
|
||||
// isModified,
|
||||
// })
|
||||
}
|
||||
|
||||
cachedData[cellKey] = {
|
||||
@@ -326,10 +326,10 @@ const DualSpreadsheet: FC<DualSpreadsheetProps> = ({
|
||||
|
||||
setHighlightedCells(highlights)
|
||||
|
||||
console.log('🎨 Подсветка ячеек для формулы:', formula, {
|
||||
references,
|
||||
highlights,
|
||||
})
|
||||
// console.log('🎨 Подсветка ячеек для формулы:', formula, {
|
||||
// references,
|
||||
// highlights,
|
||||
// })
|
||||
} catch (error) {
|
||||
console.error('Ошибка при обновлении подсветки ячеек:', error)
|
||||
setHighlightedCells([])
|
||||
@@ -411,14 +411,14 @@ const DualSpreadsheet: FC<DualSpreadsheetProps> = ({
|
||||
)
|
||||
const baseFileValue = initialTemplateValues.current[cellName] ?? '' // Базовое значение из файла
|
||||
|
||||
console.log('💾 Сохранение ячейки:', {
|
||||
cellName,
|
||||
oldValue,
|
||||
newValue: editingValue,
|
||||
baseFileValue,
|
||||
isChanged: oldValue !== editingValue,
|
||||
isModifiedFromBaseFile: baseFileValue !== editingValue,
|
||||
})
|
||||
// console.log('💾 Сохранение ячейки:', {
|
||||
//cellName,
|
||||
//oldValue,
|
||||
//newValue: editingValue,
|
||||
//baseFileValue,
|
||||
//isChanged: oldValue !== editingValue,
|
||||
//isModifiedFromBaseFile: baseFileValue !== editingValue,
|
||||
//})
|
||||
|
||||
multiSheetEngine.setCellValueWithoutRecalc(
|
||||
sheetName,
|
||||
@@ -529,12 +529,12 @@ const DualSpreadsheet: FC<DualSpreadsheetProps> = ({
|
||||
|
||||
const handleCellClick = useCallback(
|
||||
(row: number, col: number) => {
|
||||
console.log('🖱️ Обычный клик по ячейке:', {
|
||||
row,
|
||||
col,
|
||||
isEditing,
|
||||
activeSheet,
|
||||
})
|
||||
// console.log('🖱️ Обычный клик по ячейке:', {
|
||||
// row,
|
||||
//col,
|
||||
//isEditing,
|
||||
//activeSheet,
|
||||
//})
|
||||
|
||||
if (isEditing) {
|
||||
stopEditing(true)
|
||||
@@ -548,20 +548,20 @@ const DualSpreadsheet: FC<DualSpreadsheetProps> = ({
|
||||
// Новый обработчик для кликов в режиме редактирования - вставляет ссылку
|
||||
const handleCellReferenceClick = useCallback(
|
||||
(targetSheetType: SheetType, row: number, col: number) => {
|
||||
console.log('🔗 Клик для вставки ссылки:', {
|
||||
targetSheetType,
|
||||
row,
|
||||
col,
|
||||
isEditing,
|
||||
selectedCell,
|
||||
editingValue,
|
||||
})
|
||||
// console.log('🔗 Клик для вставки ссылки:', {
|
||||
//targetSheetType,
|
||||
//row,
|
||||
//col,
|
||||
//isEditing,
|
||||
//selectedCell,
|
||||
//editingValue,
|
||||
//})
|
||||
|
||||
// Проверяем, что мы в режиме редактирования
|
||||
if (!isEditing || !selectedCell) {
|
||||
console.log(
|
||||
'⚠️ Игнорируем клик ссылки: не в режиме редактирования или нет выбранной ячейки'
|
||||
)
|
||||
// console.log(
|
||||
// '⚠️ Игнорируем клик ссылки: не в режиме редактирования или нет выбранной ячейки'
|
||||
//)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -571,19 +571,19 @@ const DualSpreadsheet: FC<DualSpreadsheetProps> = ({
|
||||
// Если это другой лист, делаем квалифицированную ссылку
|
||||
if (targetSheetType !== activeSheet) {
|
||||
cellReference = createQualifiedCellReference(targetSheetType, row, col)
|
||||
console.log('📋 Создана межлистовая ссылка:', cellReference)
|
||||
// console.log('📋 Создана межлистовая ссылка:', cellReference)
|
||||
} else {
|
||||
// Если это тот же лист, делаем локальную ссылку
|
||||
cellReference = createCellAddress(row, col)
|
||||
console.log('📋 Создана локальная ссылка:', cellReference)
|
||||
// console.log('📋 Создана локальная ссылка:', cellReference)
|
||||
}
|
||||
|
||||
// Добавляем ссылку к текущему значению редактирования
|
||||
const newValue = editingValue + cellReference
|
||||
console.log('✏️ Новое значение формулы:', {
|
||||
oldValue: editingValue,
|
||||
newValue,
|
||||
})
|
||||
// console.log('✏️ Новое значение формулы:', {
|
||||
//oldValue: editingValue,
|
||||
//newValue,
|
||||
//})
|
||||
|
||||
setEditingValue(newValue)
|
||||
|
||||
@@ -739,15 +739,15 @@ const DualSpreadsheet: FC<DualSpreadsheetProps> = ({
|
||||
|
||||
// Отладка templateId
|
||||
useEffect(() => {
|
||||
console.log('🆔 Текущий templateId в DualSpreadsheet:', {
|
||||
templateId,
|
||||
type: typeof templateId,
|
||||
isValid: templateId
|
||||
? /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(
|
||||
templateId
|
||||
)
|
||||
: false,
|
||||
})
|
||||
// console.log('🆔 Текущий templateId в DualSpreadsheet:', {
|
||||
//templateId,
|
||||
//type: typeof templateId,
|
||||
//isValid: templateId
|
||||
// ? /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(
|
||||
// templateId
|
||||
// )
|
||||
// : false,
|
||||
//})
|
||||
}, [templateId])
|
||||
|
||||
// Используем хук для перетаскивания разделителя
|
||||
@@ -774,7 +774,7 @@ const DualSpreadsheet: FC<DualSpreadsheetProps> = ({
|
||||
try {
|
||||
const latestFile = await getLatestFileForTemplate(templateId)
|
||||
if (latestFile) {
|
||||
console.log('📁 Найден последний файл для шаблона:', latestFile.name)
|
||||
// console.log('📁 Найден последний файл для шаблона:', latestFile.name)
|
||||
const fileData = await getFileData(latestFile.id)
|
||||
|
||||
// TODO: Пока getFileData возвращает пустые данные, используем templateData
|
||||
@@ -784,14 +784,14 @@ const DualSpreadsheet: FC<DualSpreadsheetProps> = ({
|
||||
setBaseFileData(finalBaseData)
|
||||
// Сохраняем baseline, чтобы в L попадали только пользовательские изменения
|
||||
setTemplateData(finalBaseData)
|
||||
console.log('📄 Загружены базовые данные файла:', finalBaseData)
|
||||
// console.log('📄 Загружены базовые данные файла:', finalBaseData)
|
||||
} else {
|
||||
console.log(
|
||||
'⚠️ getFileData вернул пустые данные, используем templateData'
|
||||
)
|
||||
// console.log(
|
||||
// '⚠️ getFileData вернул пустые данные, используем templateData'
|
||||
//)
|
||||
}
|
||||
} else {
|
||||
console.log('⚠️ Файл не найден для templateId:', templateId)
|
||||
// console.log('⚠️ Файл не найден для templateId:', templateId)
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('❌ Ошибка при загрузке данных файла:', error)
|
||||
@@ -806,16 +806,16 @@ const DualSpreadsheet: FC<DualSpreadsheetProps> = ({
|
||||
if (hasTemplateData && Object.keys(finalBaseData).length === 0) {
|
||||
finalBaseData = templateData
|
||||
setBaseFileData(finalBaseData)
|
||||
console.log(
|
||||
'📄 Используем templateData как базовые данные:',
|
||||
finalBaseData
|
||||
)
|
||||
// console.log(
|
||||
// '📄 Используем templateData как базовые данные:',
|
||||
// finalBaseData
|
||||
//)
|
||||
setTemplateData(templateData)
|
||||
}
|
||||
|
||||
// 3. ЗАГРУЖАЕМ ПОЛЬЗОВАТЕЛЬСКИЕ ИЗМЕНЕНИЯ ИЗ API
|
||||
try {
|
||||
console.log('🔍 Загружаем пользовательские изменения из API...')
|
||||
// console.log('🔍 Загружаем пользовательские изменения из API...')
|
||||
const apiSheets = await loadSheets()
|
||||
|
||||
// Преобразуем листы API в формат данных
|
||||
@@ -840,16 +840,16 @@ const DualSpreadsheet: FC<DualSpreadsheetProps> = ({
|
||||
}
|
||||
})
|
||||
|
||||
console.log(
|
||||
'📂 Загружены пользовательские изменения:',
|
||||
Object.keys(userChanges)
|
||||
)
|
||||
// console.log(
|
||||
// '📂 Загружены пользовательские изменения:',
|
||||
// Object.keys(userChanges)
|
||||
//)
|
||||
|
||||
// 4. ОБЪЕДИНЯЕМ БАЗОВЫЕ ДАННЫЕ С ПОЛЬЗОВАТЕЛЬСКИМИ ИЗМЕНЕНИЯМИ
|
||||
if (Object.keys(userChanges).length > 0) {
|
||||
console.log(
|
||||
'🔄 Объединяем базовые данные с пользовательскими изменениями'
|
||||
)
|
||||
// console.log(
|
||||
// '🔄 Объединяем базовые данные с пользовательскими изменениями'
|
||||
//)
|
||||
|
||||
// Создаем объединенные данные: базовые данные файла + пользовательские изменения
|
||||
const mergedData: Record<string, Record<string, any>> = {}
|
||||
@@ -869,24 +869,24 @@ const DualSpreadsheet: FC<DualSpreadsheetProps> = ({
|
||||
})
|
||||
})
|
||||
|
||||
console.log(
|
||||
'📊 Загружаем объединенные данные (базовые + пользовательские)'
|
||||
)
|
||||
// console.log(
|
||||
// '📊 Загружаем объединенные данные (базовые + пользовательские)'
|
||||
//)
|
||||
multiSheetEngine.loadData(mergedData)
|
||||
} else if (Object.keys(finalBaseData).length > 0) {
|
||||
console.log(
|
||||
'📋 Используем только базовые данные (нет пользовательских изменений)'
|
||||
)
|
||||
// console.log(
|
||||
// '📋 Используем только базовые данные (нет пользовательских изменений)'
|
||||
//)
|
||||
multiSheetEngine.loadData(finalBaseData)
|
||||
} else {
|
||||
console.log('⚠️ Нет данных для загрузки')
|
||||
// console.log('⚠️ Нет данных для загрузки')
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('❌ Ошибка при загрузке пользовательских изменений:', error)
|
||||
|
||||
// В случае ошибки используем только базовые данные
|
||||
if (Object.keys(finalBaseData).length > 0) {
|
||||
console.log('📋 Ошибка API, используем только базовые данные')
|
||||
// console.log('📋 Ошибка API, используем только базовые данные')
|
||||
multiSheetEngine.loadData(finalBaseData)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user