From fd884a53804f15937e6e7697ffe4740738f229b8 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 11 Jul 2025 10:41:12 +0800 Subject: [PATCH] fix --- src/pages/ModelManagePage.tsx | 11 ++++++++++- src/services/modelService.ts | 37 +++++++++++++++++++++++++++++++---- 2 files changed, 43 insertions(+), 5 deletions(-) diff --git a/src/pages/ModelManagePage.tsx b/src/pages/ModelManagePage.tsx index 04c2476..15526e5 100644 --- a/src/pages/ModelManagePage.tsx +++ b/src/pages/ModelManagePage.tsx @@ -79,12 +79,21 @@ const ModelManagePage: React.FC = () => { } const handleDeleteModel = async (modelId: string) => { + console.log('handleDeleteModel called with:', modelId) const isOk = confirm('确定要删除这个模特吗?') - if (!isOk) return + console.log('User confirmed deletion:', isOk) + if (!isOk) { + console.log('User cancelled deletion, returning early') + return + } try { + console.log('Calling ModelService.deleteModel...') const response = await ModelService.deleteModel(modelId) + console.log('Delete response:', response) + if (response.status) { + console.log('Delete successful, updating models list') setModels(models.filter(model => model.id !== modelId)) } else { console.error('删除失败:', response.msg || '未知错误') diff --git a/src/services/modelService.ts b/src/services/modelService.ts index d445d88..597ca82 100644 --- a/src/services/modelService.ts +++ b/src/services/modelService.ts @@ -33,7 +33,12 @@ export class ModelService { if (typeof result === 'string') { try { const parsed = JSON.parse(result) - return parsed.result || parsed + // 如果是JSON-RPC响应,提取result字段 + if (parsed.jsonrpc && 'result' in parsed) { + return parsed.result + } + // 如果是普通JSON响应,直接返回 + return parsed } catch (error) { console.error('Failed to parse JSON:', error) return result @@ -47,7 +52,15 @@ export class ModelService { static async getAllModels(): Promise> { try { const result = await invoke('get_all_models') - return { status: true, msg: 'ok', data: this.tryJsonParse(result) } as ApiResponse + const parsed = this.tryJsonParse(result) + + // 检查后端返回的实际状态 + if (parsed && typeof parsed === 'object' && 'status' in parsed) { + return parsed as ApiResponse + } + + // 如果没有状态信息,假设成功并包装数据 + return { status: true, msg: 'ok', data: parsed } as ApiResponse } catch (error) { console.error('Failed to get all models:', error) return { @@ -79,7 +92,15 @@ export class ModelService { static async createModel(request: CreateModelRequest): Promise> { try { const result = await invoke('create_model', { request }) - return { status: true, msg: 'ok', data: this.tryJsonParse(result) } as ApiResponse + const parsed = this.tryJsonParse(result) + + // 检查后端返回的实际状态 + if (parsed && typeof parsed === 'object' && 'status' in parsed) { + return parsed as ApiResponse + } + + // 如果没有状态信息,假设成功 + return { status: true, msg: 'ok', data: parsed } as ApiResponse } catch (error) { console.error('Failed to create model:', error) return { @@ -114,7 +135,15 @@ export class ModelService { static async deleteModel(modelId: string): Promise> { try { const result = await invoke('delete_model', { modelId }) - return { status: true, msg: 'ok', data: this.tryJsonParse(result) } as ApiResponse + const parsed = this.tryJsonParse(result) + + // 检查后端返回的实际状态 + if (parsed && typeof parsed === 'object' && 'status' in parsed) { + return parsed as ApiResponse + } + + // 如果没有状态信息,假设成功 + return { status: true, msg: 'ok', data: parsed } as ApiResponse } catch (error) { console.error('Failed to delete model:', error) return {