feat: 중간 점검(체크포인트) 프론트 — 진행상태 토글·점검일 입력·보고
작성/수정 화면: 중간 점검일 여러 개 입력(추가/삭제, 편집 모드 로드). 상세 화면: 체크리스트 항목별 작업자 진행상태(미착수/진행중/완료) 토글(담당자) + 비담당자 배지, 중간 점검 카드(점검일 목록, 점검일~마감 구간 '보고 보내기', 보고 메모, 보고 이력 스냅샷). 타입/컴포저블/스토어/뷰모델 + 알림(task.checkpoint_reported) 렌더 연동. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -6,6 +6,7 @@ import type {
|
||||
ApiProjectTaskListResult,
|
||||
ApiTaskDetail,
|
||||
ChecklistReviewItem,
|
||||
ChecklistWorkStatus,
|
||||
CreateTaskPayload,
|
||||
TaskListQuery,
|
||||
UpdateTaskPayload,
|
||||
@@ -68,6 +69,32 @@ export function useTask() {
|
||||
})) as unknown as ApiTaskDetail
|
||||
}
|
||||
|
||||
/* ===================== 중간 점검(체크포인트) ===================== */
|
||||
|
||||
// 체크리스트 진행 상태 일괄 갱신(담당자)
|
||||
async function updateWorkStatus(
|
||||
projectId: string,
|
||||
taskId: number,
|
||||
items: { id: string; workStatus: ChecklistWorkStatus }[],
|
||||
): Promise<ApiTaskDetail> {
|
||||
return (await api.patch(`/projects/${projectId}/tasks/${taskId}/work-status`, {
|
||||
items,
|
||||
})) as unknown as ApiTaskDetail
|
||||
}
|
||||
|
||||
// 중간 점검 보고(담당자) — 점검일~마감 구간
|
||||
async function submitCheckpointReport(
|
||||
projectId: string,
|
||||
taskId: number,
|
||||
checkpointId: string,
|
||||
note?: string,
|
||||
): Promise<ApiTaskDetail> {
|
||||
return (await api.post(
|
||||
`/projects/${projectId}/tasks/${taskId}/checkpoints/${checkpointId}/report`,
|
||||
{ ...(note ? { note } : {}) },
|
||||
)) as unknown as ApiTaskDetail
|
||||
}
|
||||
|
||||
/* ===================== 댓글 / 답글 (5단계) ===================== */
|
||||
|
||||
async function addComment(
|
||||
@@ -156,6 +183,8 @@ export function useTask() {
|
||||
update,
|
||||
remove,
|
||||
changeStatus,
|
||||
updateWorkStatus,
|
||||
submitCheckpointReport,
|
||||
addComment,
|
||||
addReply,
|
||||
uploadFile,
|
||||
|
||||
Reference in New Issue
Block a user