diff --git a/static/js/app.js b/static/js/app.js index 5d35f4b..f6a8ee5 100644 --- a/static/js/app.js +++ b/static/js/app.js @@ -2531,10 +2531,58 @@ async function loadHistoryRecord(historyId) { document.getElementById('test_keyspace').value = history.test_config.keyspace || ''; document.getElementById('test_table').value = history.test_config.table || ''; - // 填充查询配置 - document.getElementById('keys').value = (history.query_config.keys || []).join(','); - document.getElementById('fields_to_compare').value = (history.query_config.fields_to_compare || []).join(','); - document.getElementById('exclude_fields').value = (history.query_config.exclude_fields || []).join(','); + // 填充查询配置 - 使用与配置组加载相同的逻辑 + if (history.query_config) { + console.log('loadHistoryRecord - 设置keys字段:', history.query_config.keys); + const keysElement = document.getElementById('keys'); + console.log('loadHistoryRecord - keys元素:', keysElement); + + if (keysElement) { + keysElement.value = (history.query_config.keys || []).join(','); + console.log('loadHistoryRecord - keys字段设置后的值:', keysElement.value); + + // 强制触发多种事件以确保UI更新 + keysElement.dispatchEvent(new Event('input', { bubbles: true })); + keysElement.dispatchEvent(new Event('change', { bubbles: true })); + + // 添加延迟更新,确保模态框关闭后再次设置 + setTimeout(() => { + keysElement.value = (history.query_config.keys || []).join(','); + keysElement.dispatchEvent(new Event('input', { bubbles: true })); + console.log('loadHistoryRecord - 延迟设置后的值:', keysElement.value); + }, 100); + } else { + console.error('loadHistoryRecord - 未找到keys输入元素!'); + } + + const fieldsToCompareElement = document.getElementById('fields_to_compare'); + const excludeFieldsElement = document.getElementById('exclude_fields'); + + if (fieldsToCompareElement) { + fieldsToCompareElement.value = (history.query_config.fields_to_compare || []).join(','); + fieldsToCompareElement.dispatchEvent(new Event('input', { bubbles: true })); + fieldsToCompareElement.dispatchEvent(new Event('change', { bubbles: true })); + setTimeout(() => { + fieldsToCompareElement.value = (history.query_config.fields_to_compare || []).join(','); + fieldsToCompareElement.dispatchEvent(new Event('input', { bubbles: true })); + }, 100); + } + + if (excludeFieldsElement) { + excludeFieldsElement.value = (history.query_config.exclude_fields || []).join(','); + excludeFieldsElement.dispatchEvent(new Event('input', { bubbles: true })); + excludeFieldsElement.dispatchEvent(new Event('change', { bubbles: true })); + setTimeout(() => { + excludeFieldsElement.value = (history.query_config.exclude_fields || []).join(','); + excludeFieldsElement.dispatchEvent(new Event('input', { bubbles: true })); + }, 100); + } + } else { + console.warn('loadHistoryRecord - 查询配置为空或未定义'); + document.getElementById('keys').value = ''; + document.getElementById('fields_to_compare').value = ''; + document.getElementById('exclude_fields').value = ''; + } // 填充查询Key值 document.getElementById('query_values').value = (history.query_keys || []).join('\n'); @@ -3239,8 +3287,8 @@ function formatLogMessage(message) { } function filterLogsByLevel() { - // 刷新分组日志显示,应用过滤器 - refreshQueryLogs(); + // 这个函数已弃用,因为查询日志现在使用独立模态框显示 + console.warn('filterLogsByLevel() 已弃用,请使用 filterModalLogsByLevel()'); } async function clearQueryLogs() { @@ -3255,7 +3303,11 @@ async function clearQueryLogs() { const result = await response.json(); if (result.success) { - document.getElementById('query-logs').innerHTML = '