{ "version": "2.0", "components": [ { "id": "comp_order_no", "url": "@/lib/registry/components/v2-input", "size": { "width": 300, "height": 60 }, "position": { "x": 20, "y": 20, "z": 1 }, "overrides": { "type": "v2-input", "label": "수주번호", "fieldName": "order_no", "placeholder": "수주번호를 입력하세요", "required": true }, "displayOrder": 0 }, { "id": "comp_order_date", "url": "@/lib/registry/components/v2-date", "size": { "width": 300, "height": 60 }, "position": { "x": 340, "y": 20, "z": 1 }, "overrides": { "type": "v2-date", "label": "수주일", "fieldName": "order_date", "required": true }, "displayOrder": 1 }, { "id": "comp_partner_id", "url": "@/lib/registry/components/v2-select", "size": { "width": 300, "height": 60 }, "position": { "x": 20, "y": 100, "z": 1 }, "overrides": { "type": "v2-select", "label": "거래처", "fieldName": "partner_id", "required": true, "config": { "mode": "dropdown", "source": "table", "sourceTable": "customer_mng", "valueField": "id", "labelField": "name" } }, "displayOrder": 2 }, { "id": "comp_part_code", "url": "@/lib/registry/components/v2-input", "size": { "width": 300, "height": 60 }, "position": { "x": 340, "y": 100, "z": 1 }, "overrides": { "type": "v2-input", "label": "품목코드", "fieldName": "part_code", "placeholder": "품목코드를 입력하세요", "required": true }, "displayOrder": 3 }, { "id": "comp_part_name", "url": "@/lib/registry/components/v2-input", "size": { "width": 300, "height": 60 }, "position": { "x": 20, "y": 180, "z": 1 }, "overrides": { "type": "v2-input", "label": "품명", "fieldName": "part_name", "placeholder": "품명을 입력하세요" }, "displayOrder": 4 }, { "id": "comp_spec", "url": "@/lib/registry/components/v2-input", "size": { "width": 300, "height": 60 }, "position": { "x": 340, "y": 180, "z": 1 }, "overrides": { "type": "v2-input", "label": "규격", "fieldName": "spec", "placeholder": "규격을 입력하세요" }, "displayOrder": 5 }, { "id": "comp_material", "url": "@/lib/registry/components/v2-input", "size": { "width": 300, "height": 60 }, "position": { "x": 20, "y": 260, "z": 1 }, "overrides": { "type": "v2-input", "label": "재질", "fieldName": "material", "placeholder": "재질을 입력하세요" }, "displayOrder": 6 }, { "id": "comp_order_qty", "url": "@/lib/registry/components/v2-input", "size": { "width": 300, "height": 60 }, "position": { "x": 340, "y": 260, "z": 1 }, "overrides": { "type": "v2-input", "inputType": "number", "label": "수주수량", "fieldName": "order_qty", "placeholder": "수주수량을 입력하세요", "required": true }, "displayOrder": 7 }, { "id": "comp_unit_price", "url": "@/lib/registry/components/v2-input", "size": { "width": 300, "height": 60 }, "position": { "x": 20, "y": 340, "z": 1 }, "overrides": { "type": "v2-input", "inputType": "number", "label": "단가", "fieldName": "unit_price", "placeholder": "단가를 입력하세요", "required": true }, "displayOrder": 8 }, { "id": "comp_due_date", "url": "@/lib/registry/components/v2-date", "size": { "width": 300, "height": 60 }, "position": { "x": 340, "y": 340, "z": 1 }, "overrides": { "type": "v2-date", "label": "납기일", "fieldName": "due_date" }, "displayOrder": 9 }, { "id": "comp_status", "url": "@/lib/registry/components/v2-select", "size": { "width": 300, "height": 60 }, "position": { "x": 20, "y": 420, "z": 1 }, "overrides": { "type": "v2-select", "label": "상태", "fieldName": "status", "required": true, "config": { "mode": "dropdown", "source": "static", "options": [ { "value": "수주", "label": "수주" }, { "value": "진행중", "label": "진행중" }, { "value": "완료", "label": "완료" }, { "value": "취소", "label": "취소" } ] } }, "displayOrder": 10 }, { "id": "comp_shipping_method", "url": "@/lib/registry/components/v2-select", "size": { "width": 300, "height": 60 }, "position": { "x": 340, "y": 420, "z": 1 }, "overrides": { "type": "v2-select", "label": "배송방법", "fieldName": "shipping_method", "config": { "mode": "dropdown", "source": "static", "options": [ { "value": "택배", "label": "택배" }, { "value": "화물", "label": "화물" }, { "value": "직송", "label": "직송" }, { "value": "퀵서비스", "label": "퀵서비스" }, { "value": "해상운송", "label": "해상운송" } ] } }, "displayOrder": 11 }, { "id": "comp_delivery_address", "url": "@/lib/registry/components/v2-input", "size": { "width": 620, "height": 60 }, "position": { "x": 20, "y": 500, "z": 1 }, "overrides": { "type": "v2-input", "label": "납품장소", "fieldName": "delivery_address", "placeholder": "납품장소를 입력하세요" }, "displayOrder": 12 }, { "id": "comp_manager_name", "url": "@/lib/registry/components/v2-input", "size": { "width": 300, "height": 60 }, "position": { "x": 20, "y": 580, "z": 1 }, "overrides": { "type": "v2-input", "label": "담당자", "fieldName": "manager_name", "placeholder": "담당자를 입력하세요" }, "displayOrder": 13 }, { "id": "comp_memo", "url": "@/lib/registry/components/v2-input", "size": { "width": 620, "height": 80 }, "position": { "x": 20, "y": 660, "z": 1 }, "overrides": { "type": "v2-input", "inputType": "textarea", "label": "메모", "fieldName": "memo", "placeholder": "메모를 입력하세요" }, "displayOrder": 14 }, { "id": "comp_btn_save", "url": "@/lib/registry/components/v2-button-primary", "size": { "width": 100, "height": 40 }, "position": { "x": 540, "y": 760, "z": 1 }, "overrides": { "text": "저장", "type": "v2-button-primary", "label": "저장 버튼", "action": { "type": "save", "closeModalAfterSave": true, "refreshParentTable": true, "successMessage": "저장되었습니다.", "errorMessage": "저장 중 오류가 발생했습니다." }, "variant": "primary", "actionType": "button" }, "displayOrder": 15 } ] }