feat: [approvals] 결재선 템플릿 CRUD 기능 추가
- POST/PUT/DELETE /api/admin/approvals/lines 라우트 추가 - ApprovalApiController storeLine/updateLine/destroyLine 메서드 - ApprovalService createLine/updateLine/deleteLine + enrichLineSteps 헬퍼 - 기안함 화면에 결재선 관리 버튼 + 모달 UI (목록/편집 2-state)
This commit is contained in:
@@ -367,6 +367,63 @@ public function lines(): JsonResponse
|
||||
return response()->json(['success' => true, 'data' => $lines]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 결재선 템플릿 생성
|
||||
*/
|
||||
public function storeLine(Request $request): JsonResponse
|
||||
{
|
||||
$request->validate([
|
||||
'name' => 'required|string|max:100',
|
||||
'steps' => 'required|array|min:1',
|
||||
'steps.*.user_id' => 'required|exists:users,id',
|
||||
'steps.*.step_type' => 'required|in:approval,agreement,reference',
|
||||
'is_default' => 'boolean',
|
||||
]);
|
||||
|
||||
$line = $this->service->createLine($request->all());
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'message' => '결재선이 저장되었습니다.',
|
||||
'data' => $line,
|
||||
], 201);
|
||||
}
|
||||
|
||||
/**
|
||||
* 결재선 템플릿 수정
|
||||
*/
|
||||
public function updateLine(Request $request, int $id): JsonResponse
|
||||
{
|
||||
$request->validate([
|
||||
'name' => 'required|string|max:100',
|
||||
'steps' => 'required|array|min:1',
|
||||
'steps.*.user_id' => 'required|exists:users,id',
|
||||
'steps.*.step_type' => 'required|in:approval,agreement,reference',
|
||||
'is_default' => 'boolean',
|
||||
]);
|
||||
|
||||
$line = $this->service->updateLine($id, $request->all());
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'message' => '결재선이 수정되었습니다.',
|
||||
'data' => $line,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 결재선 템플릿 삭제
|
||||
*/
|
||||
public function destroyLine(int $id): JsonResponse
|
||||
{
|
||||
$this->service->deleteLine($id);
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'message' => '결재선이 삭제되었습니다.',
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 양식 목록
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user