fix: handle apiEndpoints/columnDefs objects in preview, add string type checks

This commit is contained in:
木炎
2026-04-17 10:55:58 +08:00
parent bb15d14749
commit 74c42af717
2 changed files with 16 additions and 9 deletions

View File

@@ -493,9 +493,12 @@
const apiCount = document.getElementById("previewApiCount");
if (data.apiEndpoints && data.apiEndpoints.length > 0) {
apiCount.textContent = data.apiEndpoints.length;
apiList.innerHTML = data.apiEndpoints.map(ep =>
`<div class="preview-list-item">${escapeHtml(ep)}</div>`
).join("");
apiList.innerHTML = data.apiEndpoints.map(ep => {
const name = escapeHtml(ep.name || "unknown");
const url = escapeHtml(ep.url || "");
const method = escapeHtml(ep.method || "GET");
return `<div class="preview-list-item"><strong>${name}</strong>: ${url} <span style="color: var(--muted);">[${method}]</span></div>`;
}).join("");
} else {
apiCount.textContent = "0";
apiList.innerHTML = '<div class="preview-list-item" style="color: var(--muted);">无</div>';
@@ -506,9 +509,11 @@
const colCount = document.getElementById("previewColumnCount");
if (data.columnDefs && data.columnDefs.length > 0) {
colCount.textContent = data.columnDefs.length;
colList.innerHTML = data.columnDefs.map(col =>
`<div class="preview-list-item">${escapeHtml(col)}</div>`
).join("");
colList.innerHTML = data.columnDefs.map(col => {
const field = escapeHtml(Array.isArray(col) ? col[0] : (col.field || ""));
const label = escapeHtml(Array.isArray(col) ? col[1] : (col.label || ""));
return `<div class="preview-list-item"><code>${field}</code> → ${label}</div>`;
}).join("");
} else {
colCount.textContent = "0";
colList.innerHTML = '<div class="preview-list-item" style="color: var(--muted);">无</div>';