ERP-node/frontend/lib/registry/components/universal-form-modal/index.ts

77 lines
2.5 KiB
TypeScript

"use client";
import { createComponentDefinition } from "../../utils/createComponentDefinition";
import { ComponentCategory } from "@/types/component";
import { UniversalFormModalComponent } from "./UniversalFormModalComponent";
import { UniversalFormModalConfigPanel } from "./UniversalFormModalConfigPanel";
import { defaultConfig } from "./config";
/**
* 범용 폼 모달 컴포넌트 정의
*
* 섹션 기반 폼 레이아웃, 채번규칙을 지원하는
* 범용 모달 컴포넌트입니다.
*/
export const UniversalFormModalDefinition = createComponentDefinition({
id: "universal-form-modal",
name: "범용 폼 모달",
nameEng: "Universal Form Modal",
description: "섹션 기반 폼 레이아웃, 채번규칙을 지원하는 범용 모달 컴포넌트",
category: ComponentCategory.INPUT,
webType: "form",
component: UniversalFormModalComponent,
defaultConfig: defaultConfig,
defaultSize: {
width: 800,
height: 600,
gridColumnSpan: "12",
},
configPanel: UniversalFormModalConfigPanel,
icon: "FormInput",
tags: ["폼", "모달", "입력", "저장", "채번"],
version: "1.0.0",
author: "개발팀",
documentation: `
## 범용 폼 모달 컴포넌트
### 주요 기능
- **섹션 기반 레이아웃**: 기본 정보, 추가 정보 등 섹션별로 폼 구성
- **반복 섹션**: 동일한 필드 그룹을 여러 개 추가 가능
- **채번규칙 연동**: 자동 코드 생성 (모달 열릴 때 또는 저장 시점)
- **단일/다중 테이블 저장**: 단일 테이블 또는 메인+서브 테이블에 저장
- **외부 데이터 수신**: 부모 화면에서 전달받은 값 자동 채움
### 사용 예시
1. 사원 등록, 부서 등록, 거래처 등록 (단일 테이블)
2. 주문 등록 + 주문 상세 (다중 테이블)
3. 품목 등록 + 규격 옵션 추가
### 설정 방법
1. 저장 테이블 선택
2. 섹션 추가 (기본 정보 등)
3. 각 섹션에 필드 추가
4. 반복 섹션 설정 (필요 시)
5. 다중 테이블 저장 설정 (필요 시)
6. 채번규칙 연동 (필요 시)
`,
});
// 컴포넌트 내보내기
export { UniversalFormModalComponent } from "./UniversalFormModalComponent";
export { UniversalFormModalConfigPanel } from "./UniversalFormModalConfigPanel";
export { defaultConfig } from "./config";
// 타입 내보내기
export type {
UniversalFormModalConfig,
UniversalFormModalComponentProps,
UniversalFormModalConfigPanelProps,
FormSectionConfig,
FormFieldConfig,
SaveConfig,
NumberingRuleConfig,
SelectOptionConfig,
FormDataState,
RepeatSectionItem,
} from "./types";