feat(approvals): Approval Flow v2 프런트엔드 전면 개편
- 환경/라우터 모듈에 approval_flow_v2 토글을 추가하고 FeatureFlags 초기화를 연결 (.env*, lib/core/**) - ApiClient 빌더·ApiRoutes 확장과 ApprovalRepositoryRemote 리팩터링으로 include·액션 시그니처를 정합화 - ApprovalFlow·ApprovalDraft 엔티티/레포/유즈케이스를 도입해 서버 초안과 단계 액션(승인·회수·재상신)을 지원 - Approval 컨트롤러·히스토리·템플릿 페이지와 공유 위젯을 재작성해 감사 로그·회수 UX·템플릿 CRUD를 반영 - Inbound/Outbound/Rental 컨트롤러·페이지에 결재 섹션을 삽입하고 대시보드 pending 카드 요약을 갱신 - SuperportDialog·FormField 등 공통 위젯을 보강하고 승인 위젯 가이드를 추가해 UI 가이드를 정리 - 결재/재고 테스트 픽스처와 단위·위젯·통합 테스트를 확장하고 flutter_test_config로 스테이징 호스트를 허용 - Approval Flow 레포트/플랜 문서를 업데이트하고 ApprovalFlow_System_Integration_and_ChangePlan.md를 추가 - 실행: flutter analyze, flutter test
This commit is contained in:
@@ -19,16 +19,22 @@ class SuperportFormField extends StatelessWidget {
|
||||
|
||||
/// 폼 필드 라벨 텍스트.
|
||||
final String label;
|
||||
|
||||
/// 입력 영역으로 렌더링할 위젯.
|
||||
final Widget child;
|
||||
|
||||
/// 필수 여부. true면 라벨 옆에 `*` 표시를 추가한다.
|
||||
final bool required;
|
||||
|
||||
/// 보조 설명 문구. 에러가 없을 때만 출력된다.
|
||||
final String? caption;
|
||||
|
||||
/// 에러 메시지. 존재하면 캡션 대신 우선적으로 노출된다.
|
||||
final String? errorText;
|
||||
|
||||
/// 라벨 우측에 배치할 추가 위젯(예: 도움말 버튼).
|
||||
final Widget? trailing;
|
||||
|
||||
/// 라벨과 본문 사이 간격.
|
||||
final double spacing;
|
||||
|
||||
@@ -88,22 +94,31 @@ class SuperportTextInput extends StatelessWidget {
|
||||
});
|
||||
|
||||
final TextEditingController? controller;
|
||||
|
||||
/// 입력 없을 때 보여줄 플레이스홀더 위젯.
|
||||
final Widget? placeholder;
|
||||
|
||||
/// 입력 변경 콜백.
|
||||
final ValueChanged<String>? onChanged;
|
||||
|
||||
/// 제출(Enter) 시 호출되는 콜백.
|
||||
final ValueChanged<String>? onSubmitted;
|
||||
|
||||
/// 키보드 타입. 숫자/이메일 등으로 지정 가능.
|
||||
final TextInputType? keyboardType;
|
||||
|
||||
/// 입력 활성 여부.
|
||||
final bool enabled;
|
||||
|
||||
/// 읽기 전용 여부. true면 수정 불가.
|
||||
final bool readOnly;
|
||||
|
||||
/// 최대 줄 수. 1보다 크면 멀티라인 입력을 지원한다.
|
||||
final int maxLines;
|
||||
|
||||
/// 앞에 붙일 위젯 (아이콘 등).
|
||||
final Widget? leading;
|
||||
|
||||
/// 뒤에 붙일 위젯 (버튼 등).
|
||||
final Widget? trailing;
|
||||
|
||||
@@ -136,10 +151,13 @@ class SuperportSwitchField extends StatelessWidget {
|
||||
|
||||
/// 스위치 현재 상태.
|
||||
final bool value;
|
||||
|
||||
/// 상태 변경 시 호출되는 콜백.
|
||||
final ValueChanged<bool> onChanged;
|
||||
|
||||
/// 스위치 상단에 표시할 제목.
|
||||
final String? label;
|
||||
|
||||
/// 보조 설명 문구.
|
||||
final String? caption;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user