feat: [esign] 계약 수정 화면에 서명 필드 값 편집 기능 추가

- 수정 화면에서 text/date/checkbox 필드 값 인라인 편집
- 필드별 서명자 구분(작성자/상대방), 페이지 번호 표시
- update API에서 필드 값 일괄 업데이트 처리
This commit is contained in:
김보곤
2026-03-11 13:05:36 +09:00
parent edc69040ab
commit ea4e16bbd0
2 changed files with 98 additions and 1 deletions

View File

@@ -595,6 +595,9 @@ public function update(Request $request, int $id): JsonResponse
'signers.*.phone' => 'nullable|string|max:20',
'signers.*.role' => 'required|in:creator,counterpart',
'file' => 'nullable|file|mimes:pdf,doc,docx|max:20480',
'fields' => 'nullable|array',
'fields.*.id' => 'required|integer',
'fields.*.field_value' => 'nullable|string|max:500',
]);
$userId = auth()->id();
@@ -645,6 +648,16 @@ public function update(Request $request, int $id): JsonResponse
}
}
// 필드 값 업데이트
if ($request->has('fields')) {
foreach ($request->input('fields') as $fieldData) {
EsignSignField::withoutGlobalScopes()
->where('id', $fieldData['id'])
->where('contract_id', $contract->id)
->update(['field_value' => $fieldData['field_value'] ?? null]);
}
}
// 감사 로그
EsignAuditLog::create([
'tenant_id' => $tenantId,
@@ -659,7 +672,7 @@ public function update(Request $request, int $id): JsonResponse
return response()->json([
'success' => true,
'message' => '계약이 수정되었습니다.',
'data' => $contract->load('signers'),
'data' => $contract->load(['signers', 'signFields']),
]);
}