## 问题分析 从截图中可以看到,日志表格显示了"Invalid Date"、"undefined"等错误值,这表明前端代码在解析API返回的JSON数据时出现了问题。 ## 根本原因 1. 后端`QueryLog`结构体的JSON标签使用了小写字段名(如`json:"timestamp"`、`json:"clientIP"`等) 2. 前端代码使用了大写的字段名(如`log.Timestamp`、`log.ClientIP`等)来访问数据 3. 字段名大小写不匹配导致前端无法正确解析API返回的数据 ## 修复方案 修改前端代码,使用正确的小写字段名来访问API返回的数据,与后端返回的JSON格式匹配。 ## 具体修改点 1. **`updateLogsTable`函数**(约435-621行): * 将`log.Timestamp`改为`log.timestamp` * 将`log.ClientIP`改为`log.clientIP` * 将`log.Domain`改为`log.domain` * 将`log.QueryType`改为`log.queryType` * 将`log.ResponseTime`改为`log.responseTime` * 将`log.Result`改为`log.result` * 将`log.BlockRule`改为`log.blockRule` * 将`log.FromCache`改为`log.fromCache` * 将`log.DNSSEC`改为`log.dnssec` * 将`log.EDNS`改为`log.edns` * 将`log.DNSServer`改为`log.dnsServer` * 将`log.DNSSECServer`改为`log.dnssecServer` * 将`log.ResponseCode`改为`log.responseCode` 2. **`showLogDetailModal`函数**(约1450-1597行): * 同样修改所有字段名的大小写 3. **其他可能的访问点**: * 检查并修改任何其他访问日志数据的地方 ## 修复原则 * 保持前端代码与后端API返回的JSON格式一致 * 遵循REST API的最佳实践,使用小写字段名 * 确保所有日志数据访问点都得到修复 ## 验证方法 1. 修复代码后,重新编译并运行服务器 2. 访问日志页面,检查日志数据是否正确显示 3. 测试不同类型的日志(允许、屏蔽、错误),确保都能正确显示 4. 测试日志详情模态框,确保所有字段都能正确显示