From eb64af9d507816e3d415563466d7ac309e33a104 Mon Sep 17 00:00:00 2001 From: bruce Date: Mon, 1 Jun 2026 05:33:16 +0800 Subject: [PATCH] =?UTF-8?q?fix(frontend):=20=E4=BF=AE=E5=A4=8D=E5=B7=A5?= =?UTF-8?q?=E4=BD=9C=E5=8F=B0=E9=A1=B5=E9=9D=A2=E6=9E=84=E5=BB=BA=E4=B8=8E?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E6=94=B6=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/api/__tests__/attachments.spec.ts | 4 +++- frontend/src/api/modelProvider.ts | 2 ++ frontend/src/pages/studio/McpImportPage.vue | 7 ++++--- frontend/src/pages/studio/ModelWorkspacePage.vue | 2 +- frontend/src/pages/studio/ObservabilityPage.vue | 5 +++-- 5 files changed, 13 insertions(+), 7 deletions(-) diff --git a/frontend/src/api/__tests__/attachments.spec.ts b/frontend/src/api/__tests__/attachments.spec.ts index 1dd182e..3221383 100644 --- a/frontend/src/api/__tests__/attachments.spec.ts +++ b/frontend/src/api/__tests__/attachments.spec.ts @@ -16,7 +16,9 @@ describe('attachments api', () => { sourceId: '1001', }); - const [url, body] = vi.mocked(post).mock.calls[0]; + const firstCall = vi.mocked(post).mock.calls[0]; + expect(firstCall).toBeDefined(); + const [url, body] = firstCall as [string, FormData]; expect(url).toBe('/attachments/upload'); expect(body).toBeInstanceOf(FormData); diff --git a/frontend/src/api/modelProvider.ts b/frontend/src/api/modelProvider.ts index 128f89a..1f158e5 100644 --- a/frontend/src/api/modelProvider.ts +++ b/frontend/src/api/modelProvider.ts @@ -40,7 +40,9 @@ export interface ModelRouteRule { matchScope: string; scopeId?: string; primaryModelId: string; + primaryModelCode?: string; fallbackModelIdsJson?: string; + fallbackModelCode?: string; routeStrategy: string; maxLatencyMs?: number; enabled: boolean; diff --git a/frontend/src/pages/studio/McpImportPage.vue b/frontend/src/pages/studio/McpImportPage.vue index 83b01ec..a7e70f0 100644 --- a/frontend/src/pages/studio/McpImportPage.vue +++ b/frontend/src/pages/studio/McpImportPage.vue @@ -66,8 +66,9 @@ async function loadServers() { try { const response = await listMcpServers(); servers.value = response.data ?? []; - if (!selectedServerCode.value && servers.value.length > 0) { - selectedServerCode.value = servers.value[0].serverCode; + const firstServer = servers.value[0]; + if (!selectedServerCode.value && firstServer?.serverCode) { + selectedServerCode.value = firstServer.serverCode; } } finally { loading.value = false; @@ -193,7 +194,7 @@ onMounted(async () => {

- 当前服务:{{ selectedServer.serverName }} / {{ selectedServer.importType }} / {{ selectedServer.healthStatus }} + 当前服务:{{ selectedServer?.serverName }} / {{ selectedServer?.importType }} / {{ selectedServer?.healthStatus }}

diff --git a/frontend/src/pages/studio/ModelWorkspacePage.vue b/frontend/src/pages/studio/ModelWorkspacePage.vue index e201654..1f8b8a3 100644 --- a/frontend/src/pages/studio/ModelWorkspacePage.vue +++ b/frontend/src/pages/studio/ModelWorkspacePage.vue @@ -52,7 +52,7 @@ onMounted(loadWorkspace);
{{ route.taskType }} {{ route.primaryModelCode || route.primaryModelId }} - {{ route.fallbackModelCode || route.fallbackModelId || '无' }} + {{ route.fallbackModelCode || route.fallbackModelIdsJson || '无' }} {{ routeStatus(route.enabled) }} diff --git a/frontend/src/pages/studio/ObservabilityPage.vue b/frontend/src/pages/studio/ObservabilityPage.vue index b9b139a..dde8af5 100644 --- a/frontend/src/pages/studio/ObservabilityPage.vue +++ b/frontend/src/pages/studio/ObservabilityPage.vue @@ -47,8 +47,9 @@ async function loadRuns() { try { const response = await listObservabilityRuns(); runs.value = response.data ?? []; - if (runs.value.length > 0) { - await loadTrace(runs.value[0].requestId); + const firstRun = runs.value[0]; + if (firstRun?.requestId) { + await loadTrace(firstRun.requestId); } } finally { loading.value = false;