feat(frontend): 승인 템플릿 API 통합 및 디버그 로그인 확장
- docs 폴더 문서를 최신 API 계약으로 갱신하고 가이드를 다듬었다\n- approvals data/presentation 레이어를 API v4 스펙에 맞춰 리팩터링했다\n- approver 자동완성 위젯을 신규 공유 레포지토리에 맞춰 교체하고 UX를 보강했다\n- inventory/rental 페이지 테이블 초기화 시 승인 기준 연동을 정비했다\n- 로그인 페이지 디버그 버튼을 tera/exa 계정으로 분리해 QA 로그인을 단순화했다\n- get_it 등록과 테스트 케이스를 신규 공유 리포지토리에 맞춰 업데이트했다
This commit is contained in:
@@ -67,7 +67,7 @@
|
||||
- [x] 단계 행위: 승인/반려/코멘트 버튼(가능 여부 상태에 따라 비활성/툴팁) (현황: 단계 버튼·툴팁·행위 다이얼로그를 구현했고 `ApprovalRepository.performStepAction` 연동 완료, 권한 기반 노출/후속 알림은 TODO)
|
||||
- [x] 단계 관리(`/approval-steps`): 목록/편집(신규/수정) (현황: 목록/필터 + 상세/신규/수정 모달 UI를 구현하고 컨트롤러에서 생성·수정 호출까지 연동, 삭제/권한 제어는 후속 예정)
|
||||
- [x] 이력(`/approval-histories`): 조회 전용 테이블 (현황: AppLayout 기반 필터·페이지네이션 테이블과 기간 선택/엑셀 비활성 버튼까지 구현, 다운로드 API 연동은 후속 예정)
|
||||
- [x] 템플릿(`/approval-templates`): 목록/헤더+단계 반복 폼 (현황: AppLayout + FilterBar + 페이지네이션 테이블과 생성/수정/삭제/복구 플로우를 구현했고 단계 등록 API까지 연동 완료, 승인자 자동완성·권한 제어 등 추가 UX는 후속 예정)
|
||||
- [x] 템플릿(`/approval/templates`): 목록/헤더+단계 반복 폼 (현황: AppLayout + FilterBar + 페이지네이션 테이블과 생성/수정/삭제/복구 플로우를 구현했고 단계 등록 API까지 연동 완료, 승인자 자동완성·권한 제어 등 추가 UX는 후속 예정)
|
||||
|
||||
### Approval Flow v2 (신규)
|
||||
- [ ] 입고/출고/대여 등록 폼에 결재 단계 구성 섹션 추가 (`ApprovalStepConfigurator` 모달/섹션, `ShadTable` 기반 리스트)
|
||||
|
||||
@@ -183,7 +183,7 @@
|
||||
- 테이블 전용: 번호, 결재ID, 단계ID, 승인자, 행위, 변경전상태, 변경후상태, 작업일시, 비고.
|
||||
|
||||
### 5.16 결재 템플릿 관리
|
||||
- 라우트: `/approval-templates`
|
||||
- 라우트: `/approval/templates`
|
||||
- 테이블: 번호, 템플릿코드, 템플릿명, 설명, 작성자, 사용여부, 변경일시.
|
||||
- 신규/수정:
|
||||
- 헤더: 템플릿코드[TXT], 템플릿명[TXT], 설명[TXT], 작성자[RO], 사용여부[SW], 비고[TXT].
|
||||
@@ -523,7 +523,7 @@
|
||||
- 생성: `POST /stock-transactions` 바디 내 헤더/라인/고객 배열 동시 전달
|
||||
- 결재 상세: `GET /approvals/{id}?include=steps,histories`
|
||||
- 단계 행위: `POST /approval-steps/{id}/actions` with `approval_action_id`
|
||||
- 결재 템플릿: `GET/POST/PATCH /approval-templates`, `POST/PATCH /approval-templates/{id}/steps`
|
||||
- 결재 템플릿: `GET/POST/PATCH /approval/templates`, `POST/PATCH /approval/templates/{id}/steps`
|
||||
- 룩업: `/uoms`, `/transaction-types`, `/transaction-statuses`, `/approval-statuses`, `/approval-actions`
|
||||
|
||||
## 20. 컴포넌트 매핑(shadcn_ui)
|
||||
|
||||
@@ -1758,10 +1758,10 @@
|
||||
---
|
||||
|
||||
## 6. 결재 템플릿 API
|
||||
리소스: `/approval-templates`
|
||||
리소스: `/approval/templates`
|
||||
|
||||
### 6.1 목록 조회
|
||||
`GET /approval-templates?page=1`
|
||||
`GET /approval/templates?page=1`
|
||||
```json
|
||||
{
|
||||
"items": [
|
||||
@@ -1788,7 +1788,7 @@
|
||||
- `created_by`는 작성자의 `id`, `employee_id`, `name`을 포함하며 `include=` 파라미터 없이도 기본 반환된다.
|
||||
|
||||
### 6.2 단건 조회
|
||||
`GET /approval-templates/3001?include=steps`
|
||||
`GET /approval/templates/3001?include=steps`
|
||||
```json
|
||||
{
|
||||
"data": {
|
||||
@@ -1821,7 +1821,7 @@
|
||||
```
|
||||
|
||||
### 6.3 생성·수정
|
||||
- `POST /approval-templates`
|
||||
- `POST /approval/templates`
|
||||
```json
|
||||
{
|
||||
"template_code": "AP_OUTBOUND",
|
||||
@@ -1832,7 +1832,7 @@
|
||||
}
|
||||
```
|
||||
|
||||
- `POST /approval-templates/3002/steps`
|
||||
- `POST /approval/templates/3002/steps`
|
||||
```json
|
||||
{
|
||||
"id": 3002,
|
||||
@@ -1849,7 +1849,7 @@
|
||||
}
|
||||
```
|
||||
|
||||
- `PATCH /approval-templates/3002`
|
||||
- `PATCH /approval/templates/3002`
|
||||
```json
|
||||
{
|
||||
"id": 3002,
|
||||
@@ -1858,7 +1858,7 @@
|
||||
}
|
||||
```
|
||||
|
||||
- `PATCH /approval-templates/3002/steps`
|
||||
- `PATCH /approval/templates/3002/steps`
|
||||
```json
|
||||
{
|
||||
"id": 3002,
|
||||
@@ -1872,7 +1872,7 @@
|
||||
}
|
||||
```
|
||||
|
||||
- 삭제/복구: `DELETE /approval-templates/{id}`, `POST /approval-templates/{id}/restore`
|
||||
- 삭제/복구: `DELETE /approval/templates/{id}`, `POST /approval/templates/{id}/restore`
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -132,7 +132,7 @@ zipcodes ||--o{ customers : addressed
|
||||
| created_at | 생성일시 | timestamp | - | now() | Y | | | |
|
||||
| updated_at | 변경일시 | timestamp | - | now() | Y | | | |
|
||||
|
||||
> API 기본 응답(`GET /approval-templates`, `GET /approval-templates/{id}`)은 작성자 요약(`created_by { id, employee_id, name }`)을 항상 포함하며, `include=created_by` 없이도 반환된다.
|
||||
> API 기본 응답(`GET /approval/templates`, `GET /approval/templates/{id}`)은 작성자 요약(`created_by { id, employee_id, name }`)을 항상 포함하며, `include=created_by` 없이도 반환된다.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user