fix: model service

This commit is contained in:
root 2025-07-11 10:33:39 +08:00
parent 17662aa137
commit 77e39ddb68
2 changed files with 26 additions and 97 deletions

View File

@ -22,12 +22,12 @@ const Sidebar: React.FC = () => {
{ path: '/', icon: Home, label: '首页' }, { path: '/', icon: Home, label: '首页' },
{ path: '/editor', icon: Video, label: '编辑器' }, { path: '/editor', icon: Video, label: '编辑器' },
{ path: '/ai-video', icon: Sparkles, label: 'AI 视频' }, { path: '/ai-video', icon: Sparkles, label: 'AI 视频' },
{ path: '/templates', icon: Layout, label: '模板管理' }, { path: '/templates', icon: Layout, label: '模板' },
{ path: '/resource-categories', icon: Tags, label: '分类管理' }, { path: '/resource-categories', icon: Tags, label: '分类管理' },
{ path: '/projects', icon: FolderOpen, label: '项目' }, { path: '/projects', icon: FolderOpen, label: '项目' },
{ path: '/models', icon: User, label: '模特管理' }, { path: '/models', icon: User, label: '模特' },
{ path: '/media', icon: Image, label: '媒体库' }, { path: '/media', icon: Image, label: '媒体库' },
{ path: '/audio', icon: Music, label: '音频' }, { path: '/audio', icon: Music, label: '音频' },
{ path: '/settings', icon: Settings, label: '设置' }, { path: '/settings', icon: Settings, label: '设置' },
] ]

View File

@ -26,30 +26,28 @@ export interface ApiResponse<T> {
} }
export class ModelService { export class ModelService {
/**
* JSON响应
*/
private static tryJsonParse(result: any): any {
if (typeof result === 'string') {
try {
const parsed = JSON.parse(result)
return parsed.result || parsed
} catch (error) {
console.error('Failed to parse JSON:', error)
return result
}
}
return result
}
/** /**
* *
*/ */
static async getAllModels(): Promise<ApiResponse<Model[]>> { static async getAllModels(): Promise<ApiResponse<Model[]>> {
try { try {
console.log('Calling get_all_models...')
const result = await invoke('get_all_models') const result = await invoke('get_all_models')
console.log('Raw result from Tauri:', result) return { status: true, msg: 'ok', data: this.tryJsonParse(result) } as ApiResponse<Model[]>
if (typeof result === 'string') {
try {
const parsed = JSON.parse(result)
console.log('Parsed result:', parsed)
return parsed as ApiResponse<Model[]>
} catch (parseError) {
console.error('Failed to parse JSON response:', parseError)
return {
status: false,
msg: `Invalid JSON response: ${result}`
}
}
}
return result as ApiResponse<Model[]>
} catch (error) { } catch (error) {
console.error('Failed to get all models:', error) console.error('Failed to get all models:', error)
return { return {
@ -65,20 +63,7 @@ export class ModelService {
static async getModelById(modelId: string): Promise<ApiResponse<Model>> { static async getModelById(modelId: string): Promise<ApiResponse<Model>> {
try { try {
const result = await invoke('get_model_by_id', { modelId }) const result = await invoke('get_model_by_id', { modelId })
return { status: true, msg: 'ok', data: this.tryJsonParse(result) } as ApiResponse<Model>
if (typeof result === 'string') {
try {
const parsed = JSON.parse(result)
return parsed as ApiResponse<Model>
} catch (parseError) {
return {
status: false,
msg: `Invalid JSON response: ${result}`
}
}
}
return result as ApiResponse<Model>
} catch (error) { } catch (error) {
console.error('Failed to get model by id:', error) console.error('Failed to get model by id:', error)
return { return {
@ -93,25 +78,8 @@ export class ModelService {
*/ */
static async createModel(request: CreateModelRequest): Promise<ApiResponse<Model>> { static async createModel(request: CreateModelRequest): Promise<ApiResponse<Model>> {
try { try {
console.log('Calling create_model with:', request)
const result = await invoke('create_model', { request }) const result = await invoke('create_model', { request })
console.log('Raw result from Tauri:', result) return { status: true, msg: 'ok', data: this.tryJsonParse(result) } as ApiResponse<Model>
if (typeof result === 'string') {
try {
const parsed = JSON.parse(result)
console.log('Parsed result:', parsed)
return parsed as ApiResponse<Model>
} catch (parseError) {
console.error('Failed to parse JSON response:', parseError)
return {
status: false,
msg: `Invalid JSON response: ${result}`
}
}
}
return result as ApiResponse<Model>
} catch (error) { } catch (error) {
console.error('Failed to create model:', error) console.error('Failed to create model:', error)
return { return {
@ -130,20 +98,7 @@ export class ModelService {
): Promise<ApiResponse<Model>> { ): Promise<ApiResponse<Model>> {
try { try {
const result = await invoke('update_model', { modelId, request }) const result = await invoke('update_model', { modelId, request })
return { status: true, msg: 'ok', data: this.tryJsonParse(result) } as ApiResponse<Model>
if (typeof result === 'string') {
try {
const parsed = JSON.parse(result)
return parsed as ApiResponse<Model>
} catch (parseError) {
return {
status: false,
msg: `Invalid JSON response: ${result}`
}
}
}
return result as ApiResponse<Model>
} catch (error) { } catch (error) {
console.error('Failed to update model:', error) console.error('Failed to update model:', error)
return { return {
@ -159,20 +114,7 @@ export class ModelService {
static async deleteModel(modelId: string): Promise<ApiResponse<boolean>> { static async deleteModel(modelId: string): Promise<ApiResponse<boolean>> {
try { try {
const result = await invoke('delete_model', { modelId }) const result = await invoke('delete_model', { modelId })
return { status: true, msg: 'ok', data: this.tryJsonParse(result) } as ApiResponse<boolean>
if (typeof result === 'string') {
try {
const parsed = JSON.parse(result)
return parsed as ApiResponse<boolean>
} catch (parseError) {
return {
status: false,
msg: `Invalid JSON response: ${result}`
}
}
}
return result as ApiResponse<boolean>
} catch (error) { } catch (error) {
console.error('Failed to delete model:', error) console.error('Failed to delete model:', error)
return { return {
@ -188,20 +130,7 @@ export class ModelService {
static async searchModels(keyword: string): Promise<ApiResponse<Model[]>> { static async searchModels(keyword: string): Promise<ApiResponse<Model[]>> {
try { try {
const result = await invoke('search_models', { keyword }) const result = await invoke('search_models', { keyword })
return { status: true, msg: 'ok', data: this.tryJsonParse(result) } as ApiResponse<Model[]>
if (typeof result === 'string') {
try {
const parsed = JSON.parse(result)
return parsed as ApiResponse<Model[]>
} catch (parseError) {
return {
status: false,
msg: `Invalid JSON response: ${result}`
}
}
}
return result as ApiResponse<Model[]>
} catch (error) { } catch (error) {
console.error('Failed to search models:', error) console.error('Failed to search models:', error)
return { return {