feat(WEB): 회계/설정/카드 관리 페이지 대규모 기능 추가 및 리팩토링

- 일반전표입력, 상품권관리, 세금계산서 발행/조회 신규 페이지 추가
- 바로빌 연동 설정 페이지 추가
- 카드관리/계좌관리 리스트 UniversalListPage 공통 구조로 전환
- 카드거래조회/은행거래조회 리팩토링 (모달 분리, 액션 확장)
- 계좌 상세 폼(AccountDetailForm) 신규 구현
- 카드 상세(CardDetail) 신규 구현 + CardNumberInput 적용
- DateRangeSelector, StatCards, IntegratedListTemplateV2 공통 컴포넌트 개선
- 레거시 파일 정리 (CardManagementUnified, cardConfig, _legacy 등)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
유병철
2026-02-15 23:18:45 +09:00
parent 7ce4efa146
commit 7f39f3066f
81 changed files with 12848 additions and 2749 deletions

View File

@@ -109,6 +109,12 @@ export interface IntegratedListTemplateV2Props<T = any> {
showPresets?: boolean;
/** 날짜 입력 숨김 (검색창만 표시하고 싶을 때) */
hideDateInputs?: boolean;
/** 표시할 프리셋 목록 */
presets?: import('@/components/molecules/DateRangeSelector').DatePreset[];
/** 프리셋 레이블 커스텀 오버라이드 */
presetLabels?: Partial<Record<import('@/components/molecules/DateRangeSelector').DatePreset, string>>;
/** 프리셋 버튼 위치 */
presetsPosition?: 'inline' | 'below';
startDate?: string;
endDate?: string;
onStartDateChange?: (date: string) => void;
@@ -603,6 +609,9 @@ export function IntegratedListTemplateV2<T = any>({
onEndDateChange={dateRangeSelector.onEndDateChange || (() => {})}
hidePresets={dateRangeSelector.showPresets === false}
hideDateInputs={dateRangeSelector.hideDateInputs}
presets={dateRangeSelector.presets}
presetLabels={dateRangeSelector.presetLabels}
presetsPosition={dateRangeSelector.presetsPosition}
extraActions={
<>
{/* hideSearch=true면 검색창 자동 추가 (extraActions 앞에) */}
@@ -944,7 +953,7 @@ export function IntegratedListTemplateV2<T = any>({
onClick={isSortable ? () => onSort(column.key) : undefined}
>
{column.key === "actions" && selectedItems.size === 0 ? "" : (
<div className={`flex items-center gap-1 ${isSortable ? 'group' : ''}`}>
<div className={`flex items-center gap-1 ${isSortable ? 'group' : ''} ${(column.className || '').includes('text-right') ? 'justify-end' : (column.className || '').includes('text-center') ? 'justify-center' : ''}`}>
<span>{column.label}</span>
{isSortable && (
<span className="text-muted-foreground">

View File

@@ -283,6 +283,10 @@ export interface UniversalListConfig<T> {
showPresets?: boolean;
/** 날짜 입력 숨김 (검색창만 표시하고 싶을 때) */
hideDateInputs?: boolean;
/** 표시할 프리셋 목록 */
presets?: import('@/components/molecules/DateRangeSelector').DatePreset[];
/** 프리셋 레이블 커스텀 오버라이드 */
presetLabels?: Partial<Record<import('@/components/molecules/DateRangeSelector').DatePreset, string>>;
/** 프리셋 버튼 위치: 'inline' (날짜 옆), 'below' (별도 줄) */
presetsPosition?: 'inline' | 'below';
startDate?: string;