- composables/useMarkdown 抽(AiChat 复用)+ai/* 流式核心+useAiSend catch 回滚 user msg(B-21)+useAiStream 超时文案(B-03)+useAiConversations 切换 token(FR-R1) - views/TaskDetail 新建(F-02)+描述 md+mdReady 响应式+字段同行布局(B-24/31) - views/ProjectDetail 多选审批 UI(F-01)+描述 md+mdReady+字段同行(B-25/31) - views/Ideas+Knowledge 描述 md+mdReady(B-25) - views/Tasks 项目切换联动(B-29)+task 详情跳转 - components/AiChat toast 失败提示(B-20)+流式块级 memo(ARC-08)+clean UI(AR-7)+stop 兜底(AR-5) - components/ToolCard 审批卡片可读化(AR-3) - stores useAiStore barrel(ARC-04)+del settings mock(ARC-01)+approve options(R-PD-5) - i18n aiTool/nav 中英对称(AR-3/9)+删 nav.decisions 死链(ARC-02) - router /tasks/:id(F-02)+global.css selection 可见(R-260615-01)+api task detail+App 删 decisions nav
25 lines
673 B
TypeScript
25 lines
673 B
TypeScript
import { invoke } from '@tauri-apps/api/core'
|
|
import type { TaskRecord, CreateTaskInput } from './types'
|
|
|
|
export const taskApi = {
|
|
list(projectId?: string): Promise<TaskRecord[]> {
|
|
return invoke('list_tasks', { projectId: projectId ?? null })
|
|
},
|
|
|
|
get(id: string): Promise<TaskRecord> {
|
|
return invoke('get_task_by_id', { id })
|
|
},
|
|
|
|
create(input: CreateTaskInput): Promise<TaskRecord> {
|
|
return invoke('create_task', { input })
|
|
},
|
|
|
|
update(id: string, field: string, value: string): Promise<boolean> {
|
|
return invoke('update_task', { id, field, value })
|
|
},
|
|
|
|
delete(id: string): Promise<boolean> {
|
|
return invoke('delete_task', { id })
|
|
},
|
|
}
|