feat: 수주등록 모달 및 범용 컴포넌트 개발
- 범용 컴포넌트 3종 개발 및 레지스트리 등록: * AutocompleteSearchInput: 자동완성 검색 입력 컴포넌트 * EntitySearchInput: 엔티티 검색 모달 컴포넌트 * ModalRepeaterTable: 모달 기반 반복 테이블 컴포넌트 - 수주등록 전용 컴포넌트: * OrderCustomerSearch: 거래처 검색 (AutocompleteSearchInput 래퍼) * OrderItemRepeaterTable: 품목 관리 (ModalRepeaterTable 래퍼) * OrderRegistrationModal: 수주등록 메인 모달 - 백엔드 API: * Entity 검색 API (멀티테넌시 지원) * 수주 등록 API (자동 채번) - 화면 편집기 통합: * 컴포넌트 레지스트리에 등록 * ConfigPanel을 통한 설정 기능 * 드래그앤드롭으로 배치 가능 - 개발 문서: * 수주등록_화면_개발_계획서.md (상세 설계 문서)
This commit is contained in:
@@ -63,7 +63,9 @@ export function createComponentDefinition(options: CreateComponentDefinitionOpti
|
||||
category, // 카테고리를 태그로 추가
|
||||
webType, // 웹타입을 태그로 추가
|
||||
...name.split(" "), // 이름을 단어별로 분리하여 태그로 추가
|
||||
].filter((tag, index, array) => array.indexOf(tag) === index); // 중복 제거
|
||||
]
|
||||
.filter((tag) => tag && typeof tag === 'string' && tag.trim().length > 0) // undefined, null, 빈 문자열 제거
|
||||
.filter((tag, index, array) => array.indexOf(tag) === index); // 중복 제거
|
||||
|
||||
// 컴포넌트 정의 생성
|
||||
const definition: ComponentDefinition = {
|
||||
@@ -163,7 +165,7 @@ export function validateComponentDefinition(definition: ComponentDefinition): {
|
||||
warnings.push("태그가 너무 많습니다 (20개 초과)");
|
||||
}
|
||||
definition.tags.forEach((tag) => {
|
||||
if (tag.length > 30) {
|
||||
if (tag && typeof tag === 'string' && tag.length > 30) {
|
||||
warnings.push(`태그가 너무 깁니다: ${tag}`);
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user