From 91561a0effe1850dc6b742785b20490e39334325 Mon Sep 17 00:00:00 2001 From: attacker Date: Tue, 16 Jun 2026 02:04:05 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20ServerManager=E6=A0=87=E7=AD=BE=E6=98=BE?= =?UTF-8?q?=E7=A4=BAJSON=E5=AF=B9=E8=B1=A1=E8=A7=A3=E6=9E=90=E4=B8=BAkey:v?= =?UTF-8?q?alue=E6=A0=BC=E5=BC=8F(=E5=8E=9F=E6=98=BE=E7=A4=BA=E5=8E=9F?= =?UTF-8?q?=E5=A7=8BJSON=E5=AD=97=E7=AC=A6=E4=B8=B2)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/components/server/ServerManager.tsx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/frontend/src/components/server/ServerManager.tsx b/frontend/src/components/server/ServerManager.tsx index 7148ec9..d24d55f 100644 --- a/frontend/src/components/server/ServerManager.tsx +++ b/frontend/src/components/server/ServerManager.tsx @@ -95,14 +95,19 @@ export function ServerManager() { loadData(); }, []); - // 解析标签:后端 tags 可能是 JSON 字符串、逗号分隔字符串或数组 + // 解析标签:后端 tags 可能是 JSON 字符串(JSON数组/对象)、逗号分隔字符串或数组 // Logan.Li const getTags = (server: any): string[] => { const tags = server.tags; if (!tags) return []; if (Array.isArray(tags)) return tags; try { const parsed = JSON.parse(tags); - return Array.isArray(parsed) ? parsed : [String(tags)]; + if (Array.isArray(parsed)) return parsed; + // JSON 对象 → key:value 格式展示(如 project:prod) // Logan.Li + if (typeof parsed === 'object' && parsed !== null) { + return Object.entries(parsed).map(([k, v]) => `${k}:${String(v)}`); + } + return [String(parsed)]; } catch { return String(tags) .split(',')