feat: 품목기준관리 Zustand 리팩토링 (테스트 페이지)
## 주요 변경사항 - Zustand 정규화 스토어 구현 (useItemMasterStore) - 테스트 페이지 구현 (/items-management-test) - 계층구조/섹션/항목/속성 탭 완성 - CRUD 다이얼로그 (페이지/섹션/필드/BOM/속성) - Import 기능 (섹션/필드 불러오기) - 드래그앤드롭 순서 변경 - 인라인 편집 기능 ## 구현 완료 (약 72%) - 페이지/섹션/필드 CRUD ✅ - BOM 관리 ✅ - 단위/재질/표면처리 CRUD ✅ - Import/복제 기능 ✅ ## 미구현 기능 - 절대경로(absolute_path) 수정 - 페이지 복제 - 필드 조건부 표시 - 칼럼 관리 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -617,12 +617,14 @@ export interface TabColumnResponse {
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* 단위 옵션 생성 요청
|
||||
* 단위 옵션 생성/수정 요청
|
||||
* POST /v1/item-master/units
|
||||
*/
|
||||
export interface UnitOptionRequest {
|
||||
label: string;
|
||||
value: string;
|
||||
unit_code: string;
|
||||
unit_name: string;
|
||||
description?: string;
|
||||
is_active?: boolean;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -631,8 +633,78 @@ export interface UnitOptionRequest {
|
||||
export interface UnitOptionResponse {
|
||||
id: number;
|
||||
tenant_id: number;
|
||||
label: string;
|
||||
value: string;
|
||||
unit_code: string;
|
||||
unit_name: string;
|
||||
description?: string;
|
||||
is_active: boolean;
|
||||
created_by: number | null;
|
||||
created_at: string;
|
||||
updated_at: string;
|
||||
}
|
||||
|
||||
// ============================================
|
||||
// 재질 옵션
|
||||
// ============================================
|
||||
|
||||
export type MaterialType = 'STEEL' | 'ALUMINUM' | 'PLASTIC' | 'OTHER';
|
||||
|
||||
/**
|
||||
* 재질 옵션 생성/수정 요청
|
||||
*/
|
||||
export interface MaterialOptionRequest {
|
||||
material_code: string;
|
||||
material_name: string;
|
||||
material_type: MaterialType;
|
||||
thickness?: string;
|
||||
description?: string;
|
||||
is_active?: boolean;
|
||||
}
|
||||
|
||||
/**
|
||||
* 재질 옵션 응답
|
||||
*/
|
||||
export interface MaterialOptionResponse {
|
||||
id: number;
|
||||
tenant_id: number;
|
||||
material_code: string;
|
||||
material_name: string;
|
||||
material_type: MaterialType;
|
||||
thickness?: string;
|
||||
description?: string;
|
||||
is_active: boolean;
|
||||
created_by: number | null;
|
||||
created_at: string;
|
||||
updated_at: string;
|
||||
}
|
||||
|
||||
// ============================================
|
||||
// 표면처리 옵션
|
||||
// ============================================
|
||||
|
||||
export type TreatmentType = 'PAINTING' | 'COATING' | 'PLATING' | 'NONE';
|
||||
|
||||
/**
|
||||
* 표면처리 옵션 생성/수정 요청
|
||||
*/
|
||||
export interface TreatmentOptionRequest {
|
||||
treatment_code: string;
|
||||
treatment_name: string;
|
||||
treatment_type: TreatmentType;
|
||||
description?: string;
|
||||
is_active?: boolean;
|
||||
}
|
||||
|
||||
/**
|
||||
* 표면처리 옵션 응답
|
||||
*/
|
||||
export interface TreatmentOptionResponse {
|
||||
id: number;
|
||||
tenant_id: number;
|
||||
treatment_code: string;
|
||||
treatment_name: string;
|
||||
treatment_type: TreatmentType;
|
||||
description?: string;
|
||||
is_active: boolean;
|
||||
created_by: number | null;
|
||||
created_at: string;
|
||||
updated_at: string;
|
||||
|
||||
Reference in New Issue
Block a user