- 범용 컴포넌트 3종 개발 및 레지스트리 등록: * AutocompleteSearchInput: 자동완성 검색 입력 컴포넌트 * EntitySearchInput: 엔티티 검색 모달 컴포넌트 * ModalRepeaterTable: 모달 기반 반복 테이블 컴포넌트 - 수주등록 전용 컴포넌트: * OrderCustomerSearch: 거래처 검색 (AutocompleteSearchInput 래퍼) * OrderItemRepeaterTable: 품목 관리 (ModalRepeaterTable 래퍼) * OrderRegistrationModal: 수주등록 메인 모달 - 백엔드 API: * Entity 검색 API (멀티테넌시 지원) * 수주 등록 API (자동 채번) - 화면 편집기 통합: * 컴포넌트 레지스트리에 등록 * ConfigPanel을 통한 설정 기능 * 드래그앤드롭으로 배치 가능 - 개발 문서: * 수주등록_화면_개발_계획서.md (상세 설계 문서)
50 lines
1.4 KiB
TypeScript
50 lines
1.4 KiB
TypeScript
"use client";
|
|
|
|
import React from "react";
|
|
import { AutocompleteSearchInputComponent } from "@/lib/registry/components/autocomplete-search-input";
|
|
|
|
/**
|
|
* 수주 등록 전용 거래처 검색 컴포넌트
|
|
*
|
|
* 이 컴포넌트는 수주 등록 화면 전용이며, 설정이 고정되어 있습니다.
|
|
* 범용 AutocompleteSearchInput과 달리 customer_mng 테이블만 조회합니다.
|
|
*/
|
|
|
|
interface OrderCustomerSearchProps {
|
|
/** 현재 선택된 거래처 코드 */
|
|
value: string;
|
|
/** 거래처 선택 시 콜백 (거래처 코드, 전체 데이터) */
|
|
onChange: (customerCode: string | null, fullData?: any) => void;
|
|
/** 비활성화 여부 */
|
|
disabled?: boolean;
|
|
}
|
|
|
|
export function OrderCustomerSearch({
|
|
value,
|
|
onChange,
|
|
disabled = false,
|
|
}: OrderCustomerSearchProps) {
|
|
return (
|
|
<AutocompleteSearchInputComponent
|
|
// 고정 설정 (수주 등록 전용)
|
|
tableName="customer_mng"
|
|
displayField="customer_name"
|
|
valueField="customer_code"
|
|
searchFields={[
|
|
"customer_name",
|
|
"customer_code",
|
|
"business_number",
|
|
]}
|
|
placeholder="거래처명 입력하여 검색"
|
|
showAdditionalInfo
|
|
additionalFields={["customer_code", "address", "contact_phone"]}
|
|
|
|
// 외부에서 제어 가능한 prop
|
|
value={value}
|
|
onChange={onChange}
|
|
disabled={disabled}
|
|
/>
|
|
);
|
|
}
|
|
|