import { apiFetchJson } from "./chunk-PLQL6WIO.js"; // frontend/js/pages/logs/logList.js var LogList = class { constructor(container) { this.container = container; if (!this.container) { console.error("LogList: container element (tbody) not found."); } } renderLoading() { if (!this.container) return; this.container.innerHTML = ` \u52A0\u8F7D\u65E5\u5FD7\u4E2D...`; } render(logs) { if (!this.container) return; if (!logs || logs.length === 0) { this.container.innerHTML = `\u6CA1\u6709\u627E\u5230\u76F8\u5173\u7684\u65E5\u5FD7\u8BB0\u5F55\u3002`; return; } const logsHtml = logs.map((log) => this.createLogRowHtml(log)).join(""); this.container.innerHTML = logsHtml; } createLogRowHtml(log) { const groupName = log.GroupDisplayName || (log.GroupID ? `Group #${log.GroupID}` : "N/A"); const apiKeyName = log.APIKeyName || (log.KeyID ? `Key #${log.KeyID}` : "N/A"); const errorTag = log.IsSuccess ? `\u6210\u529F` : `${log.ErrorCode || "\u5931\u8D25"}`; const requestTime = new Date(log.RequestTime).toLocaleString(); return ` #${log.ID} ${apiKeyName} ${groupName} ${log.ErrorMessage || (log.IsSuccess ? "" : "\u672A\u77E5\u9519\u8BEF")} ${errorTag} ${log.ModelName} ${requestTime} `; } }; var logList_default = LogList; // frontend/js/pages/logs/index.js var LogsPage = class { constructor() { this.state = { logs: [], // [修正] 暂时将分页状态设为默认值,直到后端添加分页支持 pagination: { page: 1, pages: 1, total: 0 }, isLoading: true, filters: { page: 1, page_size: 20 } }; this.elements = { tableBody: document.getElementById("logs-table-body") }; this.initialized = !!this.elements.tableBody; if (this.initialized) { this.logList = new logList_default(this.elements.tableBody); } } async init() { if (!this.initialized) { console.error("LogsPage: Could not initialize. Essential container element 'logs-table-body' is missing."); return; } this.initEventListeners(); await this.loadAndRenderLogs(); } initEventListeners() { } async loadAndRenderLogs() { this.state.isLoading = true; this.logList.renderLoading(); try { const url = `/admin/logs?page=${this.state.filters.page}&page_size=${this.state.filters.page_size}`; const responseData = await apiFetchJson(url); if (responseData && responseData.success && Array.isArray(responseData.data)) { this.state.logs = responseData.data; this.logList.render(this.state.logs); } else { console.error("API response for logs is incorrect:", responseData); this.logList.render([]); } } catch (error) { console.error("Failed to load logs:", error); } finally { this.state.isLoading = false; } } }; function logs_default() { const page = new LogsPage(); page.init(); } export { logs_default as default };