fix: 前端构建修复+后端静态托管+Docker部署
This commit is contained in:
+26
-27
@@ -22,7 +22,6 @@ import type {
|
|||||||
Artifact,
|
Artifact,
|
||||||
DashboardStats,
|
DashboardStats,
|
||||||
TaskStatus,
|
TaskStatus,
|
||||||
ProjectStatus,
|
|
||||||
} from '@/types';
|
} from '@/types';
|
||||||
|
|
||||||
// ============ Auth ============
|
// ============ Auth ============
|
||||||
@@ -44,13 +43,13 @@ export const tenantApi = {
|
|||||||
list: () =>
|
list: () =>
|
||||||
apiClient.get<Tenant[]>('/tenants').then((r) => r.data),
|
apiClient.get<Tenant[]>('/tenants').then((r) => r.data),
|
||||||
|
|
||||||
get: (id: string) =>
|
get: (id: number) =>
|
||||||
apiClient.get<Tenant>(`/tenants/${id}`).then((r) => r.data),
|
apiClient.get<Tenant>(`/tenants/${id}`).then((r) => r.data),
|
||||||
|
|
||||||
create: (data: TenantCreate) =>
|
create: (data: TenantCreate) =>
|
||||||
apiClient.post<Tenant>('/tenants', data).then((r) => r.data),
|
apiClient.post<Tenant>('/tenants', data).then((r) => r.data),
|
||||||
|
|
||||||
update: (id: string, data: Partial<TenantCreate>) =>
|
update: (id: number, data: Partial<TenantCreate>) =>
|
||||||
apiClient.put<Tenant>(`/tenants/${id}`, data).then((r) => r.data),
|
apiClient.put<Tenant>(`/tenants/${id}`, data).then((r) => r.data),
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -60,63 +59,63 @@ export const userApi = {
|
|||||||
list: () =>
|
list: () =>
|
||||||
apiClient.get<User[]>('/users').then((r) => r.data),
|
apiClient.get<User[]>('/users').then((r) => r.data),
|
||||||
|
|
||||||
get: (id: string) =>
|
get: (id: number) =>
|
||||||
apiClient.get<User>(`/users/${id}`).then((r) => r.data),
|
apiClient.get<User>(`/users/${id}`).then((r) => r.data),
|
||||||
|
|
||||||
create: (data: Partial<User> & { password: string }) =>
|
create: (data: Partial<User> & { password: string }) =>
|
||||||
apiClient.post<User>('/users', data).then((r) => r.data),
|
apiClient.post<User>('/users', data).then((r) => r.data),
|
||||||
|
|
||||||
update: (id: string, data: Partial<User>) =>
|
update: (id: number, data: Partial<User>) =>
|
||||||
apiClient.put<User>(`/users/${id}`, data).then((r) => r.data),
|
apiClient.put<User>(`/users/${id}`, data).then((r) => r.data),
|
||||||
|
|
||||||
delete: (id: string) =>
|
delete: (id: number) =>
|
||||||
apiClient.delete(`/users/${id}`).then((r) => r.data),
|
apiClient.delete(`/users/${id}`).then((r) => r.data),
|
||||||
};
|
};
|
||||||
|
|
||||||
// ============ Projects ============
|
// ============ Projects ============
|
||||||
|
|
||||||
export const projectApi = {
|
export const projectApi = {
|
||||||
list: (status?: ProjectStatus) =>
|
list: (status?: string) =>
|
||||||
apiClient.get<Project[]>('/projects', { params: { status } }).then((r) => r.data),
|
apiClient.get<Project[]>('/projects', { params: { status } }).then((r) => r.data),
|
||||||
|
|
||||||
get: (id: string) =>
|
get: (id: number) =>
|
||||||
apiClient.get<Project>(`/projects/${id}`).then((r) => r.data),
|
apiClient.get<Project>(`/projects/${id}`).then((r) => r.data),
|
||||||
|
|
||||||
create: (data: ProjectCreate) =>
|
create: (data: ProjectCreate) =>
|
||||||
apiClient.post<Project>('/projects', data).then((r) => r.data),
|
apiClient.post<Project>('/projects', data).then((r) => r.data),
|
||||||
|
|
||||||
update: (id: string, data: Partial<ProjectCreate>) =>
|
update: (id: number, data: Partial<ProjectCreate>) =>
|
||||||
apiClient.put<Project>(`/projects/${id}`, data).then((r) => r.data),
|
apiClient.put<Project>(`/projects/${id}`, data).then((r) => r.data),
|
||||||
|
|
||||||
delete: (id: string) =>
|
delete: (id: number) =>
|
||||||
apiClient.delete(`/projects/${id}`).then((r) => r.data),
|
apiClient.delete(`/projects/${id}`).then((r) => r.data),
|
||||||
|
|
||||||
stats: (id: string) =>
|
stats: (id: number) =>
|
||||||
apiClient.get<ProjectStats>(`/projects/${id}/stats`).then((r) => r.data),
|
apiClient.get<ProjectStats>(`/projects/${id}/stats`).then((r) => r.data),
|
||||||
};
|
};
|
||||||
|
|
||||||
// ============ Tasks ============
|
// ============ Tasks ============
|
||||||
|
|
||||||
export const taskApi = {
|
export const taskApi = {
|
||||||
list: (params?: { project_id?: string; status?: TaskStatus; assignee_id?: string }) =>
|
list: (params?: { project_id?: number; status?: TaskStatus; assignee_id?: number }) =>
|
||||||
apiClient.get<Task[]>('/tasks', { params }).then((r) => r.data),
|
apiClient.get<Task[]>('/tasks', { params }).then((r) => r.data),
|
||||||
|
|
||||||
get: (id: string) =>
|
get: (id: number) =>
|
||||||
apiClient.get<Task>(`/tasks/${id}`).then((r) => r.data),
|
apiClient.get<Task>(`/tasks/${id}`).then((r) => r.data),
|
||||||
|
|
||||||
create: (projectId: string, data: TaskCreate) =>
|
create: (projectId: number, data: TaskCreate) =>
|
||||||
apiClient.post<Task>('/tasks', data, { params: { project_id: projectId } }).then((r) => r.data),
|
apiClient.post<Task>('/tasks', data, { params: { project_id: projectId } }).then((r) => r.data),
|
||||||
|
|
||||||
update: (id: string, data: Partial<TaskCreate>) =>
|
update: (id: number, data: Partial<TaskCreate>) =>
|
||||||
apiClient.put<Task>(`/tasks/${id}`, data).then((r) => r.data),
|
apiClient.put<Task>(`/tasks/${id}`, data).then((r) => r.data),
|
||||||
|
|
||||||
delete: (id: string) =>
|
delete: (id: number) =>
|
||||||
apiClient.delete(`/tasks/${id}`).then((r) => r.data),
|
apiClient.delete(`/tasks/${id}`).then((r) => r.data),
|
||||||
|
|
||||||
assign: (id: string, data: TaskAssignPayload) =>
|
assign: (id: number, data: TaskAssignPayload) =>
|
||||||
apiClient.post<Task>(`/tasks/${id}/assign`, data).then((r) => r.data),
|
apiClient.post<Task>(`/tasks/${id}/assign`, data).then((r) => r.data),
|
||||||
|
|
||||||
execute: (id: string, data?: TaskExecutePayload) =>
|
execute: (id: number, data?: TaskExecutePayload) =>
|
||||||
apiClient.post<ExecutionResult>(`/tasks/${id}/execute`, data || {}).then((r) => r.data),
|
apiClient.post<ExecutionResult>(`/tasks/${id}/execute`, data || {}).then((r) => r.data),
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -126,42 +125,42 @@ export const workerApi = {
|
|||||||
list: () =>
|
list: () =>
|
||||||
apiClient.get<Worker[]>('/workers').then((r) => r.data),
|
apiClient.get<Worker[]>('/workers').then((r) => r.data),
|
||||||
|
|
||||||
get: (id: string) =>
|
get: (id: number) =>
|
||||||
apiClient.get<Worker>(`/workers/${id}`).then((r) => r.data),
|
apiClient.get<Worker>(`/workers/${id}`).then((r) => r.data),
|
||||||
|
|
||||||
create: (data: WorkerCreate) =>
|
create: (data: WorkerCreate) =>
|
||||||
apiClient.post<Worker>('/workers', data).then((r) => r.data),
|
apiClient.post<Worker>('/workers', data).then((r) => r.data),
|
||||||
|
|
||||||
update: (id: string, data: Partial<WorkerCreate>) =>
|
update: (id: number, data: Partial<WorkerCreate>) =>
|
||||||
apiClient.put<Worker>(`/workers/${id}`, data).then((r) => r.data),
|
apiClient.put<Worker>(`/workers/${id}`, data).then((r) => r.data),
|
||||||
|
|
||||||
delete: (id: string) =>
|
delete: (id: number) =>
|
||||||
apiClient.delete(`/workers/${id}`).then((r) => r.data),
|
apiClient.delete(`/workers/${id}`).then((r) => r.data),
|
||||||
|
|
||||||
test: (id: string, testPrompt?: string) =>
|
test: (id: number, testPrompt?: string) =>
|
||||||
apiClient.post<WorkerTestResult>(`/workers/${id}/test`, { test_prompt: testPrompt || "Hello, respond with 'OK' if you can hear me." }).then((r) => r.data),
|
apiClient.post<WorkerTestResult>(`/workers/${id}/test`, { test_prompt: testPrompt || "Hello, respond with 'OK' if you can hear me." }).then((r) => r.data),
|
||||||
};
|
};
|
||||||
|
|
||||||
// ============ Reviews ============
|
// ============ Reviews ============
|
||||||
|
|
||||||
export const reviewApi = {
|
export const reviewApi = {
|
||||||
list: (params?: { status?: string; project_id?: string }) =>
|
list: (params?: { status?: string; project_id?: number }) =>
|
||||||
apiClient.get<Review[]>('/reviews', { params }).then((r) => r.data),
|
apiClient.get<Review[]>('/reviews', { params }).then((r) => r.data),
|
||||||
|
|
||||||
get: (id: string) =>
|
get: (id: number) =>
|
||||||
apiClient.get<Review>(`/reviews/${id}`).then((r) => r.data),
|
apiClient.get<Review>(`/reviews/${id}`).then((r) => r.data),
|
||||||
|
|
||||||
decision: (id: string, data: ReviewDecisionPayload) =>
|
decision: (id: number, data: ReviewDecisionPayload) =>
|
||||||
apiClient.post<Review>(`/reviews/${id}/decision`, data).then((r) => r.data),
|
apiClient.post<Review>(`/reviews/${id}/decision`, data).then((r) => r.data),
|
||||||
};
|
};
|
||||||
|
|
||||||
// ============ Artifacts ============
|
// ============ Artifacts ============
|
||||||
|
|
||||||
export const artifactApi = {
|
export const artifactApi = {
|
||||||
list: (params?: { task_id?: string; project_id?: string }) =>
|
list: (params?: { task_id?: number; project_id?: number }) =>
|
||||||
apiClient.get<Artifact[]>('/artifacts', { params }).then((r) => r.data),
|
apiClient.get<Artifact[]>('/artifacts', { params }).then((r) => r.data),
|
||||||
|
|
||||||
get: (id: string) =>
|
get: (id: number) =>
|
||||||
apiClient.get<Artifact>(`/artifacts/${id}`).then((r) => r.data),
|
apiClient.get<Artifact>(`/artifacts/${id}`).then((r) => r.data),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user