feat: 공정관리 페이지 및 컴포넌트 추가

- 공정관리 목록/상세/등록/수정 페이지 구현
- ProcessListClient, ProcessDetail, ProcessForm 컴포넌트 추가
- ProcessWorkLogPreviewModal, RuleModal 추가
- MobileCard 공통 컴포넌트 추가
- WorkLogModal.tsx 개선
- .gitignore 업데이트

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
byeongcheolryu
2025-12-26 15:48:08 +09:00
parent 41ef0bdd86
commit f0c0de2ecd
14 changed files with 1801 additions and 18 deletions

View File

@@ -113,24 +113,39 @@ export function WorkLogModal({ open, onOpenChange, order }: WorkLogModalProps) {
{/* 우측: 결재라인 */}
<div className="shrink-0 text-xs">
{/* 첫 번째 행: 작성/검토/승인 */}
<div className="grid grid-cols-3 border-b border-gray-300">
<div className="w-16 p-2 text-center font-medium bg-gray-100 border-r border-gray-300"></div>
<div className="w-16 p-2 text-center font-medium bg-gray-100 border-r border-gray-300"></div>
<div className="w-16 p-2 text-center font-medium bg-gray-100"></div>
</div>
{/* 두 번째 행: 이름 */}
<div className="grid grid-cols-3 border-b border-gray-300">
<div className="w-16 p-2 text-center border-r border-gray-300">{order.assignees[0] || '-'}</div>
<div className="w-16 p-2 text-center border-r border-gray-300"></div>
<div className="w-16 p-2 text-center"></div>
</div>
{/* 세 번째 행: 부서 */}
<div className="grid grid-cols-3">
<div className="w-16 p-2 text-center bg-gray-50 border-r border-gray-300"></div>
<div className="w-16 p-2 text-center bg-gray-50 border-r border-gray-300"></div>
<div className="w-16 p-2 text-center bg-gray-50"></div>
</div>
<table className="border-collapse">
<tbody>
{/* 첫 번째 행: 결재 + 작성/검토/승인 */}
<tr>
<td rowSpan={3} className="w-8 text-center font-medium bg-gray-100 border-r border-b border-gray-300 align-middle">
<div className="flex flex-col items-center">
<span></span>
<span></span>
</div>
</td>
<td className="w-16 p-2 text-center font-medium bg-gray-100 border-r border-b border-gray-300"></td>
<td className="w-16 p-2 text-center font-medium bg-gray-100 border-r border-b border-gray-300"></td>
<td className="w-16 p-2 text-center font-medium bg-gray-100 border-b border-gray-300"></td>
</tr>
{/* 두 번째 행: 이름 + 날짜 */}
<tr>
<td className="w-16 p-2 text-center border-r border-b border-gray-300">
<div>{order.assignees[0] || '-'}</div>
<div className="text-[10px] text-gray-500">
{new Date().toLocaleDateString('ko-KR', { month: '2-digit', day: '2-digit' }).replace('. ', '/').replace('.', '')}
</div>
</td>
<td className="w-16 p-2 text-center border-r border-b border-gray-300"></td>
<td className="w-16 p-2 text-center border-b border-gray-300"></td>
</tr>
{/* 세 번째 행: 부서 */}
<tr>
<td className="w-16 p-2 text-center bg-gray-50 border-r border-gray-300">/</td>
<td className="w-16 p-2 text-center bg-gray-50 border-r border-gray-300"></td>
<td className="w-16 p-2 text-center bg-gray-50"></td>
</tr>
</tbody>
</table>
</div>
</div>