Commit Graph

1147 Commits

Author SHA1 Message Date
kjs 9e956999c5 모달 크기 고정 2025-12-05 10:46:10 +09:00
SeongHyun Kim 5c12b9fa83 Merge origin/main into ksh - resolve split-panel-layout2 conflicts 2025-12-04 19:19:58 +09:00
SeongHyun Kim c1400081c6 fix(modal-repeater-table): 품목 추가 시 UI 즉시 반영되지 않는 버그 수정
- value 상수를 localValue useState로 변경하여 내부 상태 관리
- useEffect로 외부 값(formData, propValue) 변경 시 동기화
- handleChange에서 setLocalValue 호출하여 즉각적인 UI 업데이트
- RepeaterTable, ItemSelectionModal 등 모든 참조를 localValue로 변경
2025-12-04 19:17:32 +09:00
SeongHyun Kim 40c43bab16 feat(numbering-rule): 채번규칙 구분자 설정 기능 추가
- SeparatorType 타입 및 SEPARATOR_OPTIONS 상수 추가
- 구분자 선택 UI 추가 (없음, -, _, ., /, 직접입력)
- 직접 입력 시 최대 2자 제한
- 새 규칙 생성 시 기본값 하이픈(-)
- Select 빈 문자열 에러 해결 (value: "" -> "none")
2025-12-04 13:28:13 +09:00
leeheejin 532c56f997 차량 아이콘 안뒤집히게 2025-12-04 10:46:37 +09:00
leeheejin dbf6cfc995 지도 수정 및 경로확인 가능하게 2025-12-04 10:30:15 +09:00
kjs 4569defecf 헤더생성 2025-12-03 19:05:10 +09:00
SeongHyun Kim 52ad67d44a feat: SplitPanelLayout2 마스터-디테일 컴포넌트 구현
좌측 패널(마스터)-우측 패널(디테일) 분할 레이아웃 컴포넌트 추가
EditModal에 isCreateMode 플래그 추가하여 INSERT/UPDATE 분기 처리
dataFilter 기반 정확한 조인 필터링 구현
좌측 패널 선택 데이터를 모달로 자동 전달하는 dataTransferFields 설정 지원
ConfigPanel에서 테이블, 컬럼, 조인 설정 가능
2025-12-03 18:53:03 +09:00
kjs e8be871d69 Merge branch 'main' into feature/screen-management 2025-12-03 18:48:41 +09:00
SeongHyun Kim de8b643277 Merge remote-tracking branch 'origin/main' into ksh 2025-12-03 18:48:37 +09:00
kjs 676ec16879 화면 분할패널 오류 수정 2025-12-03 18:28:43 +09:00
dohyeons 6a0ff5582f Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into common/feat/dashboard-map 2025-12-03 17:46:01 +09:00
SeongHyun Kim 700623aa78 feat: SplitPanelLayout2 마스터-디테일 컴포넌트 구현
좌측 패널(마스터)-우측 패널(디테일) 분할 레이아웃 컴포넌트 추가
EditModal에 isCreateMode 플래그 추가하여 INSERT/UPDATE 분기 처리
dataFilter 기반 정확한 조인 필터링 구현
좌측 패널 선택 데이터를 모달로 자동 전달하는 dataTransferFields 설정 지원
ConfigPanel에서 테이블, 컬럼, 조인 설정 가능
2025-12-03 17:45:22 +09:00
kjs 4e29f92268 테이블 타입관리 ui개선 2025-12-03 16:39:47 +09:00
kjs eb5ea411c9 화면 일괄삭제기능 2025-12-03 16:02:09 +09:00
kjs e33664015a 상단 헤더 제거 2025-12-03 10:03:24 +09:00
kjs 7713d4073c Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feature/screen-management 2025-12-02 18:07:24 +09:00
kjs 3b875f20b1 화면간 데이터 전달기능 구현 2025-12-02 18:03:52 +09:00
SeongHyun Kim 3a3ecde358 Merge branch 'ksh' 2025-12-02 17:56:58 +09:00
dohyeons faacd5402c 외부 연결 목록에 회사명 표시 기능 추가 2025-12-02 17:36:28 +09:00
leeheejin a4f0681f76 지도 작동되게 했음 2025-12-02 15:33:45 +09:00
SeongHyun Kim 8e257f36b2 fix: ScreenModal selectedData 로직 복원 (RepeatScreenModal 지원) 2025-12-02 14:30:29 +09:00
leeheejin a75b615c3a Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into lhj 2025-12-02 14:26:03 +09:00
leeheejin 9078873240 워크플로우 restapi도 연결가능하고여러개 가능하게 구현시켜놓음 2025-12-02 14:24:43 +09:00
SeongHyun Kim bc34cded95 merge: origin/main을 ksh로 머지 (UnifiedPropertiesPanel 충돌 해결) 2025-12-02 14:10:33 +09:00
leeheejin 2c447fd325 restapi도 가능하게 구현 2025-12-02 13:20:49 +09:00
dohyeons 436d604bb3 REST API 연결 생성 시 회사별 연결명 중복 허용 2025-12-02 11:12:09 +09:00
leeheejin 8c83db596d 공차관련수정사항들 2025-12-02 09:53:08 +09:00
dohyeons cd47f569e2 feat: 공차중계 운전자 차량/프로필 관리 기능 구현 2025-12-01 19:03:43 +09:00
SeongHyun Kim 2f78c83ef6 feat(repeat-screen-modal): 외부 테이블 조인, 필터링, CRUD 및 실시간 집계 기능 추가
- 외부 테이블 데이터 소스 설정 (TableDataSourceConfig) 추가
- 다중 테이블 조인 지원 (AdditionalJoinConfig)
- 테이블 필터링 (equals/notEquals) 지원
- 테이블 CRUD (행 추가/수정/삭제) 기능 추가
- 데이터 변경 시 집계 실시간 재계산 (recalculateAggregationsWithExternalData)
- 시각적 수식 빌더 (FormulaBuilder) 컴포넌트 추가
- 테이블 컬럼 순서 변경 기능 추가
- 백엔드: 배열 파라미터 IN 절 변환 로직 추가
2025-12-01 18:50:26 +09:00
dohyeons 9c3f1d26ad 차량관리(기초데이터) 구현 2025-12-01 18:41:02 +09:00
kjs 44c76d80b7 Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feature/screen-management 2025-12-01 18:39:20 +09:00
kjs fb16e224f0 카드 컴포넌트 중간커밋 2025-12-01 18:39:01 +09:00
dohyeons cea2421899 Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into common/feat/dashboard-map 2025-12-01 17:21:02 +09:00
leeheejin 7242f08224 공차 등록, 연속추적 기능 2025-12-01 17:04:59 +09:00
leeheejin fbeb3ec2c9 버튼 과정이 조금 복잡하지만 위도경도 연속추적기능도 넣음 2025-12-01 16:49:02 +09:00
dohyeons 02273b2d79 Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into common/feat/dashboard-map 2025-12-01 15:52:28 +09:00
leeheejin 7263c9c3ff Merge origin/main into lhj - resolve buttonActions.ts conflict 2025-12-01 15:44:19 +09:00
leeheejin 8d2ec8e737 공차등록성공 2025-12-01 15:23:07 +09:00
kjs 1823415a5b Merge branch 'main' into feature/screen-management 2025-12-01 15:22:07 +09:00
kjs da6ac92391 데이터 수정이 안되는 문제 해결 2025-12-01 15:21:03 +09:00
dohyeons 4b06c6f83a 대시보드 뷰어 다운로드 버튼 비활성화(주석처리) 2025-12-01 15:04:52 +09:00
kjs 142fb15dc0 Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feature/screen-management 2025-12-01 10:21:34 +09:00
dohyeons 1462700c83 Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into common/feat/dashboard-map 2025-12-01 10:15:10 +09:00
kjs 1503dd87bb 화면 분할패널 수정모드 수정 2025-12-01 10:09:19 +09:00
leeheejin 9f97a16d6a Merge origin/main and resolve conflicts - add geolocation/update_field actions 2025-11-28 18:45:41 +09:00
kjs bd4e3e507d Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feature/screen-management 2025-11-28 18:38:18 +09:00
kjs 627c5a5173 화면 분할 패널 수정모드 기능 2025-11-28 18:35:34 +09:00
leeheejin 67e6a8008d 버튼 액션중 위치정보 가져오기, 필드값 변경 추가 2025-11-28 18:35:07 +09:00
dohyeons b43bf57ea9 불필요한 기능 주석처리 2025-11-28 17:47:09 +09:00
SeongHyun Kim 07e0b22309 Merge remote-tracking branch 'origin/main' into ksh 2025-11-28 16:03:10 +09:00
SeongHyun Kim 36ab484029 feat(repeat-screen-modal): 자유 레이아웃 구현 및 데이터 전달 버그 수정
- contentRows 기반 자유 레이아웃 지원 (header/aggregation/table/fields 타입)
- aggregationFields, tableColumns 직접 참조하도록 렌더링 로직 수정
- groupByField 없어도 grouping.enabled면 그룹핑 모드로 처리
- buttonActions에서 selectedRowsData를 모달 이벤트로 전달
- ScreenModal에서 selectedData를 groupedData props로 컴포넌트에 전달
- types.ts에 CardContentRowConfig, AggregationDisplayConfig 인터페이스 추가
2025-11-28 16:02:29 +09:00
kjs f15846fd10 화면 분할 패널 기능 2025-11-28 14:56:11 +09:00
leeheejin 552beabdc0 null로 저장되게 성공시킴 2025-11-28 14:45:04 +09:00
leeheejin 652617fe37 주석처리완 2025-11-28 11:52:23 +09:00
SeongHyun Kim c94b9da813 feat: 신규 컴포넌트 2종 추가 (SimpleRepeaterTable, RepeatScreenModal) 및 속성 패널 스크롤 개선
- SimpleRepeaterTable: 검색/추가 없이 데이터 표시 및 편집, 자동 계산 지원
- RepeatScreenModal: 그룹핑 기반 카드 레이아웃, 집계 기능, 테이블 모드 지원
- UnifiedPropertiesPanel: overflow-x-auto 추가로 가로 스크롤 활성화
2025-11-28 11:48:46 +09:00
dohyeons 39d327fb45 외부 REST API 연결 확장 2025-11-28 11:35:36 +09:00
leeheejin 8dcffa8927 메일관련된거 커밋 2025-11-28 11:34:48 +09:00
dohyeons b70ed8aaff Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into common/feat/dashboard-map 2025-11-28 10:47:55 +09:00
dohyeons 586dde96fb 외부 REST API 목록에 DB 토큰 인증 라벨 추가 2025-11-27 17:14:24 +09:00
dohyeons 7c42e88593 외부 REST API 커넥션에 DB 토큰 및 테스트 UX 개선 2025-11-27 17:11:30 +09:00
dohyeons f3c5c90d7b 외부 REST API 커넥션 POST/Body + DB 토큰 테스트 지원 2025-11-27 16:42:48 +09:00
kjs 30dac204c0 메뉴복사 기능수정(카테고리,코드값 제거) 2025-11-27 14:53:51 +09:00
kjs 51c49f7a3d 화면 분할패널 커밋 2025-11-27 12:54:57 +09:00
kjs 454f79caec Merge branch 'feature/screen-management' of http://39.117.244.52:3000/kjs/ERP-node into feature/screen-management 2025-11-27 12:08:33 +09:00
kjs fb9de05b00 화면 분할패널 중간커밋 2025-11-27 12:08:32 +09:00
dohyeons 707328e765 REST API→DB 토큰 배치 및 auth_tokens 저장 구현 2025-11-27 11:32:19 +09:00
SeongHyun Kim a1117092aa feat: 수주일(order_date) 일괄 적용 기능 구현
- OrderItemRepeaterTable에 order_date 컬럼 추가
- ModalRepeaterTableComponent에 수주일 일괄 적용 로직 구현
- 원본 newData 참조로 납기일 로직과 독립적으로 작동
- 모든 행이 비어있는 초기 상태에서 첫 선택 시 자동 적용
- isOrderDateApplied 플래그로 1회만 실행 보장
2025-11-27 10:33:54 +09:00
kjs 6ef4ff8e9b Merge branch 'main' into feature/screen-management 2025-11-26 16:10:06 +09:00
dohyeons 5787550cc9 에디터 속성 편집 성능 최적화 (디바운스 적용) 2025-11-26 16:05:33 +09:00
kjs e8c02fef5e 미리보기 기능 수정 2025-11-26 14:58:18 +09:00
kjs 13fe9c97fe 오류 수정 2025-11-26 14:44:49 +09:00
SeongHyun Kim 98a58368a6 Merge branch 'ksh' 2025-11-26 14:07:56 +09:00
SeongHyun Kim acc2a6169d style: EditModal 코드 포맷팅 및 불필요한 공백 제거
- trailing whitespace 정리
- 들여쓰기 일관성 유지
- 그룹 편집 안내 메시지 UI 제거
2025-11-26 14:05:22 +09:00
SeongHyun Kim 17659a0e59 Merge branch 'ksh' 2025-11-26 11:04:04 +09:00
SeongHyun Kim c387221043 feat: 품목 납기일 일괄 적용 기능 추가
- ModalRepeaterTableComponent에 납기일 자동 일괄 적용 로직 구현
- 첫 납기일 선택 시 빈 행에 자동으로 동일 날짜 적용
- isDeliveryDateApplied 플래그로 중복 실행 방지
- ScreenModal 환경에서 onFormDataChange 경로 지원
2025-11-26 10:07:38 +09:00
kjs ea88cfd043 feat: 날짜 기간 검색 기능 구현
- ModernDatePicker: 로컬 상태 관리로 즉시 검색 방지
  - tempValue 상태 추가하여 확인 버튼 클릭 시에만 검색 실행
  - 빠른 선택 버튼 추가 (오늘, 이번주, 이번달, 최근 7일, 최근 30일)

- TableSearchWidget: ModernDatePicker 통합
  - 기본 HTML input[type=date]를 ModernDatePicker로 교체
  - 날짜 범위 객체 {from, to}를 파이프 구분 문자열로 변환
  - 백엔드 재시작 없이 작동하도록 임시 포맷팅 적용

- tableManagementService: 날짜 범위 검색 로직 개선
  - getColumnWebTypeInfo: web_type이 null이면 input_type 폴백
  - buildDateRangeCondition: VARCHAR 타입 날짜 컬럼 지원
  - 날짜 컬럼을 ::date로 캐스팅하여 타입 호환성 확보
  - 파이프 구분 문자열 파싱 지원 (YYYY-MM-DD|YYYY-MM-DD)

- 디버깅 로깅 추가
  - 컬럼 타입 정보 조회 결과 로깅
  - 날짜 범위 검색 조건 생성 과정 추적
2025-11-25 17:48:23 +09:00
SeongHyun Kim 0a6c5fbfcc fix: 수주관리 납기일 DATE 형식 저장 구현
- 프론트엔드: EditModal에 날짜 정규화 함수 추가 (YYYY-MM-DD 형식)
- 백엔드: convertValueForPostgreSQL에서 DATE 타입 문자열 그대로 유지
- 기존 TIMESTAMP 형식 변환을 DATE 타입 문자열 유지로 변경
- 날짜 변환 로직에서 YYYY-MM-DD 형식 문자열 변환 제거

closes #납기일-TIMESTAMP-형식-저장-이슈
2025-11-25 17:32:52 +09:00
dohyeons b2afe8674e 3D 뷰어 조명 설정 개선 (색상 왜곡 해결) 2025-11-25 17:23:24 +09:00
dohyeons f0513e20d8 3D 에디터 속성 입력 성능 최적화 2025-11-25 17:19:39 +09:00
dohyeons 710ca122ea STP 정차포인트를 자재 미적재 영역으로 분리하고 시각화 개선 2025-11-25 17:08:12 +09:00
SeongHyun Kim 8fdf57bedd chore: 과도한 콘솔 로그 정리
- ModalRepeaterTableComponent: 반복 렌더링 로그 제거
- TableListComponent: 렌더링 조건 체크 IIFE 단순화
- ConditionalContainerComponent: 디버깅 로그 삭제
- DynamicComponentRenderer: value 설정 로그 제거
- resizable-dialog: userStyle 상세 로그 정리
- page.tsx: 반복 데이터 탐색 로그 삭제

에러 핸들링 및 주요 분기점 로그만 보존
2025-11-25 16:56:50 +09:00
kjs 629be13816 Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feature/screen-management 2025-11-25 16:14:15 +09:00
leeheejin 6669a3fc5e 스크롤 커밋 2025-11-25 16:13:31 +09:00
kjs ef0af26147 Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feature/screen-management 2025-11-25 16:05:56 +09:00
kjs a1819e749c fix: 탭 컴포넌트 menuObjid 전달, 카테고리 필터 복원, 설정 초기화 문제 해결
주요 수정사항:

1. 탭 컴포넌트 내 자식 화면에 menuObjid와 tableName 전달
   - TabsWidget에 menuObjid prop 추가
   - InteractiveScreenViewerDynamic를 통해 자식 화면에 전달
   - 채번 규칙 생성 시 올바른 메뉴 스코프 및 테이블명 적용

2. 백엔드: 화면 레이아웃 API에 tableName 추가
   - screenManagementService.getLayout()에서 테이블명 반환
   - LayoutData 타입에 tableName 필드 추가
   - 채번 규칙 생성 시 tableName 검증 강화

3. 카테고리 필터링 기능 복원
   - DataFilterConfigPanel에 menuObjid 전달
   - getCategoryValues API 사용으로 메뉴 스코프 적용
   - 새로고침 후 카테고리 값 자동 재로드
   - SplitPanelLayoutConfigPanel에 menuObjid 전달

4. 선택항목 상세입력 설정 패널 포커스 문제 해결
   - 로컬 입력 상태 추가로 실시간 속성 편집 패턴 적용
   - 텍스트 및 라벨 입력 시 포커스 유지

5. 테이블 리스트 설정 초기화 문제 해결
   - handleChange 함수에서 기존 config와 병합하여 전달
   - 다른 속성 손실 방지 (columns, dataFilter 등)

버그 수정:
- 채번 규칙 생성 시 빈 문자열 대신 null 전달
- 필터 설정 변경 시 컬럼 설정 초기화 방지
- 카테고리 컬럼 선택 시 셀렉트박스 표시
2025-11-25 15:55:05 +09:00
SeongHyun Kim 6317ae7b0b Merge remote-tracking branch 'origin/main' into ksh 2025-11-25 15:26:29 +09:00
SeongHyun Kim 2b8a3945a1 fix: Section Paper 선택 영역과 컨텐츠 영역 정렬 문제 해결
- RealtimePreview: border → outline 전환, getHeight() 함수 추가
- SectionPaperComponent: width/height 100%, overflow-auto, min-h 제거
- 모든 높이에서 선택 영역 = 컨텐츠 영역 정확히 일치
2025-11-25 15:22:50 +09:00
dohyeons f59218aa43 3d필드로 텍스트 변경 2025-11-25 15:06:55 +09:00
dohyeons 60832e88ff 3d필드 생성으로 변경 2025-11-25 15:01:47 +09:00
dohyeons d6b9372e1f Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into common/feat/dashboard-map 2025-11-25 14:58:39 +09:00
dohyeons 080188b419 외부 DB 연결 설정 및 쿼리 처리 로직 보완 2025-11-25 14:57:48 +09:00
SeongHyun Kim e456b4bb69 Merge remote-tracking branch 'origin/main' into ksh 2025-11-25 14:26:57 +09:00
SeongHyun Kim 5609e32daf feat: 수주관리 품목 CRUD 및 공통 필드 자동 복사 구현
- 품목 추가 시 공통 필드(거래처, 담당자, 메모) 자동 복사
- ModalRepeaterTable onChange 시 groupData 반영
- 백엔드 타입 캐스팅으로 PostgreSQL 에러 해결
- 타입 정규화로 불필요한 UPDATE 방지
- 수정 모달에서 거래처/수주번호 읽기 전용 처리
2025-11-25 14:23:54 +09:00
dohyeons ace80be8e1 N-Level 계층 구조 및 공간 종속성 시스템 구현 2025-11-25 13:55:00 +09:00
SeongHyun Kim aca39f23d2 Merge branch 'ksh' 2025-11-25 13:15:13 +09:00
SeongHyun Kim d04330283a Merge remote-tracking branch 'origin/main' into ksh 2025-11-25 13:14:05 +09:00
kjs 943d00bbbd Merge branch 'main' into feature/screen-management 2025-11-25 13:05:20 +09:00
kjs a0180d66a2 편집기 인풋 오류 수정 및 탭 컴포넌트 완성 2025-11-25 13:04:58 +09:00
SeongHyun Kim a9f57add62 feat: 수주관리 품목 추가/수정/삭제 기능 구현
- EditModal의 handleSave가 button-primary까지 전달되도록 수정
- ConditionalContainer/ConditionalSectionViewer에 onSave prop 추가
- DynamicComponentRenderer와 InteractiveScreenViewerDynamic에 onSave 전달 로직 추가
- ButtonActionExecutor에서 context.onSave 콜백 우선 실행 로직 구현
- 신규 품목 추가 시 groupByColumns 값 자동 포함 처리

기능:
- 품목 추가: order_no 자동 설정
- 품목 수정: 변경 필드만 부분 업데이트
- 품목 삭제: originalGroupData 비교 후 제거
2025-11-25 12:07:14 +09:00
kjs 5e2392c417 탭 컴포넌트 구현 2025-11-25 10:06:56 +09:00
dohyeons 6fe708505a Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into common/feat/dashboard-map 2025-11-25 09:53:36 +09:00
dohyeons f10ceb5f7c Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node 2025-11-25 09:48:18 +09:00
dohyeons 119afcaf42 배치된 객체 목록 계층구조 및 아코디언 적용 2025-11-25 09:35:47 +09:00
kjs a46a2a664f Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feature/screen-management 2025-11-25 09:34:59 +09:00
kjs 9fda390c55 커밋 2025-11-25 09:34:44 +09:00
dohyeons 216e1366ef 편집 시 기존 세팅 가져오는 로직 구현 2025-11-24 18:23:00 +09:00
dohyeons 711f2670de 초기 배치 시 프리뷰 생성 2025-11-24 18:16:15 +09:00
kjs 00501f359c 탭기능 중간커밋 2025-11-24 17:24:47 +09:00
dohyeons b80d6cb85e 영역의 자재를 “해당 영역”에만 배치가 가능하게 구현 2025-11-24 17:02:22 +09:00
dohyeons 90b7c2b0f0 자재 개수에 따른 높이 조절 2025-11-24 16:52:22 +09:00
SeongHyun Kim 51872de821 Merge remote-tracking branch 'origin/main' into ksh 2025-11-24 16:03:53 +09:00
dohyeons 7994b2a72a 계층 구조 유효성 검사 및 그룹 이동 기능 구현 2025-11-24 15:57:28 +09:00
leeheejin f286b6c695 리사이징 유지와 연속작성 구현 모달 살짝 늘어나는 문제 해결 2025-11-24 15:52:45 +09:00
SeongHyun Kim 2f3d5f993a fix: 수주관리 수정 저장 시 조인 컬럼 필터링 추가
- entityJoinApi 조회 데이터의 조인 컬럼(material_label 등) 필터링
- dynamicFormService.ts: 병합 모드에서 columnInfo 기반 유효 컬럼만 저장
- sales_order_mng 테이블에 존재하지 않는 컬럼 INSERT 방지
- "column does not exist" PostgreSQL 에러 해결

영향: 수주관리 그룹 편집 저장 정상 동작
2025-11-24 15:38:41 +09:00
SeongHyun Kim 3e414b8530 feat: 수주관리 그룹 편집 기능 구현
- 같은 수주번호(order_no)를 가진 품목 일괄 수정 기능 추가
- groupByColumns 개념 도입 및 EditModal 그룹 데이터 처리 로직 구현
- ConditionalSectionViewer에서 DynamicComponentRenderer 사용으로 groupedData 전달 경로 확보
- ModalRepeaterTable onChange 에러 수정 및 sourceColumns 필터링 추가
- 조인된 컬럼 제외 로직 추가로 DB 저장 오류 해결
2025-11-24 15:24:31 +09:00
kjs ddb1d4cf60 화면 좌우 맞추기 2025-11-24 12:02:23 +09:00
kjs 73cd23aee8 Merge branch 'main' into feature/screen-management 2025-11-21 16:24:21 +09:00
dohyeons 68e8e7b36b 초기에 설정 데이터 불러와지지 않는 현상 해결 2025-11-21 16:13:50 +09:00
dohyeons dd913d3ecf 3d에서 테이블 가져올 때 테이블, 컬럼 코멘트 같이 가져오기 2025-11-21 15:44:52 +09:00
kjs 8b3593c8fb feat: 메뉴 복사 시 화면명 일괄 변환 기능 추가
새로운 기능:
- 화면명에서 특정 텍스트 제거 (예: '탑씰' 제거)
- 화면명에 접두사 추가 (예: '한신' 추가)
- 변환 로직: 제거 → 접두사 추가 순서로 적용

백엔드:
- menuCopyService.copyMenu()에 screenNameConfig 파라미터 추가
- copyScreens()에서 화면명 변환 로직 적용
- 정규식으로 전역 치환 (new RegExp(text, 'g'))

프론트엔드:
- MenuCopyDialog에 화면명 일괄 변경 UI 추가
- Checkbox로 기능 활성화/비활성화
- 2개 Input: removeText, addPrefix
- API 호출 시 screenNameConfig 전달

사용 예시:
1. '탑씰 회사정보' → '회사정보' (제거만)
2. '회사정보' → '한신 회사정보' (접두사만)
3. '탑씰 회사정보' → '한신 회사정보' (제거 + 접두사)

관련 파일:
- backend-node/src/services/menuCopyService.ts
- backend-node/src/controllers/adminController.ts
- frontend/lib/api/menu.ts
- frontend/components/admin/MenuCopyDialog.tsx
2025-11-21 15:38:59 +09:00
kjs c70998fa4f feat: 메뉴 복사 기능 - 2단계 복사 방식으로 화면 참조 매핑 문제 해결
- 문제: 화면 복사 시 참조되는 화면이 아직 복사되지 않아 screenIdMap에 매핑 정보가 없었음
- 해결: 2단계 복사 방식 도입
  1단계: 모든 screen_definitions 먼저 복사하여 screenIdMap 완성
  2단계: screen_layouts 복사하면서 완성된 screenIdMap으로 참조 업데이트
- 결과: targetScreenId가 올바르게 새 회사의 화면 ID로 매핑됨 (예: 149 → 517)
- 추가: 화면 수집 시 문자열 타입 ID도 올바르게 파싱하도록 개선
- 추가: 참조 화면 발견 및 업데이트 로그 추가

관련 파일:
- backend-node/src/services/menuCopyService.ts
- db/migrations/1003_add_source_menu_objid_to_menu_info.sql
- db/scripts/cleanup_company_11_*.sql
2025-11-21 14:37:09 +09:00
dohyeons 6ccaa85413 우측패널 표시 컬럼 인풋 다 지우면 초기값이 들어오는 문제 해결 2025-11-21 14:29:17 +09:00
SeongHyun Kim da0a82a0ec Merge remote-tracking branch 'origin/main' into ksh 2025-11-21 12:23:15 +09:00
dohyeons 1e1bc0b2c6 대시보드 설정 저장 및 디지털 트윈 UX 개선 2025-11-21 12:22:27 +09:00
dohyeons 3d32929c0b 대시보드 에러 해결 2025-11-21 10:29:47 +09:00
SeongHyun Kim fa426625cc feat: modal-repeater-table 배열 데이터 저장 기능 구현
- 백엔드: 배열 객체 형식 Repeater 데이터 처리 로직 추가
- 백엔드: Repeater 저장 시 company_code 자동 주입
- 백엔드: 부모 테이블 데이터 자동 병합 (targetTable = tableName)
- 프론트엔드: beforeFormSave 이벤트로 formData 주입
- 프론트엔드: _targetTable 메타데이터 전달
- 프론트엔드: ComponentRendererProps 상속 및 Renderer 단순화

멀티테넌시 및 부모-자식 관계 자동 처리로
복잡한 배열 데이터 저장 안정성 확보
2025-11-21 10:12:29 +09:00
kjs 4928c54985 Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feature/screen-management 2025-11-21 09:29:23 +09:00
dohyeons 205d062f4a 수정.. 2025-11-21 03:33:49 +09:00
dohyeons 0450390b2a 배치 대략적인 완료 2025-11-21 02:25:25 +09:00
SeongHyun Kim 95b5e3dc7a fix(autocomplete-search-input): 필드 매핑 저장 문제 해결
- types.ts에 targetTable 필드 추가하여 config에 저장되도록 수정
- ConfigPanel에서 targetTable을 localConfig로 관리하여 설정 유지
- Renderer 단순화 (TextInput 패턴 적용)
- Component에서 직접 isInteractive 체크 및 필드 매핑 처리
- ComponentRendererProps 상속으로 필수 props 타입 안정성 확보

문제:
- ConfigPanel 설정이 초기화되는 문제
- 필드 매핑 데이터가 DB에 저장되지 않는 문제

해결:
- 정상 작동하는 TextInput 컴포넌트 패턴 분석 및 적용
- Renderer는 props만 전달, Component가 저장 로직 처리
2025-11-20 17:47:56 +09:00
kjs c51cd7bc87 fix: 컴포넌트 설정 패널 config 병합 및 props 전달 개선
- TableListConfigPanel: handleNestedChange에서 전체 config 병합 로직 추가
- TableListComponent: checkbox.enabled 및 position 기본값 처리 (undefined시 기본값 사용)
- SelectedItemsDetailInputConfigPanel: handleChange에서 전체 config 병합 로직 추가
- SelectedItemsDetailInputConfigPanel: 원본 데이터 테이블 선택 disabled 조건 제거
- UnifiedPropertiesPanel: allTables 로드 및 ConfigPanel에 전달 추가

문제:
1. table-list 컴포넌트 체크박스 설정 변경 시 다른 설정 초기화
2. selected-items-detail-input 설정 변경 시 컴포넌트 이름 등 다른 속성 손실
3. 원본 데이터 테이블 선택이 비활성화되어 있음

해결:
- 모든 설정 패널에서 부분 업데이트 시 기존 config와 병합하도록 수정
- checkbox 관련 기본값 처리로 기존 컴포넌트 호환성 보장
- allTables를 별도로 로드하여 전체 테이블 목록 제공
2025-11-20 17:31:42 +09:00
kjs 6f3bcd7b46 fix: table-list 컴포넌트 컬럼 추가 시 체크박스 등 설정 유지
- UnifiedPropertiesPanel의 handleConfigChange에서 config 병합 로직 추가
- 기존 config와 새 config를 merge하여 checkbox 등 다른 설정이 사라지지 않도록 수정
- 이전에는 부분 업데이트된 config만 전달되어 다른 속성들이 손실되는 문제 해결
2025-11-20 17:18:30 +09:00
kjs d7db8cb07a fix: TableListConfigPanel에 screenTableName 전달 누락 수정
- renderComponentConfigPanel에서 ConfigPanelComponent 호출 시 screenTableName과 tableColumns 전달 추가
- 이전 커밋(e2cc09b2)에서 renderComponentConfigPanel 로직 추가로 인한 회귀 버그 수정
- table-list 컴포넌트 설정 패널에서 컬럼 추가 기능 정상 작동
2025-11-20 17:07:12 +09:00
dohyeons 818fd5ac0d same key오류 해결 2025-11-20 16:25:26 +09:00
dohyeons 2facf19429 Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into common/feat/dashboard-map 2025-11-20 16:25:17 +09:00
kjs e2cc09b2d6 feat: 검색 필터 위젯 화면별 독립 설정 및 고정 모드 추가
- 검색 필터 설정을 화면별로 독립적으로 저장하도록 개선 (screenId 포함)
- FilterPanel, TableSearchWidget, TableListComponent에 화면 ID 기반 localStorage 키 적용
- 동적 모드(사용자 설정)와 고정 모드(디자이너 설정) 2가지 필터 방식 추가
- 고정 모드에서 컬럼 드롭다운 선택 기능 구현
- 컬럼 선택 시 라벨 및 필터 타입 자동 설정
- ConfigPanel 표시 문제 해결 (type='component' 지원)
- UnifiedPropertiesPanel에서 독립 컴포넌트 ConfigPanel 조회 개선

주요 변경:
- 같은 테이블을 사용하는 다른 화면에서 필터 설정이 독립적으로 관리됨
- 고정 모드에서는 설정 버튼이 숨겨지고 지정된 필터만 표시
- 테이블 정보가 있으면 컬럼을 드롭다운으로 선택 가능
- inputType에 따라 filterType 자동 추론 (number, date, select, text)
2025-11-20 16:21:18 +09:00
kjs 45ac397417 수주등록 저장기능 2025-11-20 15:30:00 +09:00
kjs b46559ba78 Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feature/screen-management 2025-11-20 15:12:32 +09:00
kjs 86313c5e89 fix: SelectedItemsDetailInput 수정 모드에서 null 레코드 삽입 방지
- buttonActions.ts: formData가 배열인 경우 일반 저장 건너뜀
- SelectedItemsDetailInput이 UPSERT를 완료한 후 일반 저장이 실행되어 null 레코드가 삽입되던 문제 해결
- ScreenModal에서 그룹 레코드를 배열로 전달하는 경우 감지하여 처리
- skipDefaultSave 플래그가 제대로 작동하지 않던 문제 근본 해결
2025-11-20 15:07:26 +09:00
dohyeons cdd9bdfd95 차량이 무조건 오른쪽을 보게 수정 2025-11-20 14:47:04 +09:00
dohyeons 751a5da119 Db와 rest api 같이 구현 2025-11-20 14:34:17 +09:00
dohyeons 461338618e Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into common/feat/dashboard-map 2025-11-20 14:02:34 +09:00
kjs e3b78309fa 우측 패널 일괄삭제 기능 2025-11-20 11:58:43 +09:00
kjs c3f58feef7 Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feature/screen-management 2025-11-20 10:27:38 +09:00
kjs 34cd7ba9e3 feat: 수정 모드 UPSERT 기능 구현
- SelectedItemsDetailInput 컴포넌트 수정 모드 지원
- 그룹화된 데이터 UPSERT API 추가 (/api/data/upsert-grouped)
- 부모 키 기준으로 기존 레코드 조회 후 INSERT/UPDATE/DELETE
- 각 레코드의 모든 필드 조합을 고유 키로 사용
- created_date 보존 (UPDATE 시)
- 수정 모드에서 groupByColumns 기준으로 관련 레코드 조회
- 날짜 타입 ISO 형식 자동 감지 및 포맷팅 (YYYY.MM.DD)

주요 변경사항:
- backend: dataService.upsertGroupedRecords() 메서드 구현
- backend: dataRoutes POST /api/data/upsert-grouped 엔드포인트 추가
- frontend: ScreenModal에서 groupByColumns 파라미터 전달
- frontend: SelectedItemsDetailInput 수정 모드 로직 추가
- frontend: 날짜 필드 타임존 제거 및 포맷팅 개선
2025-11-20 10:23:54 +09:00
dohyeons 33350a4d46 feat: Digital Twin Editor 테이블 매핑 UI 및 백엔드 API 구현 2025-11-20 10:15:58 +09:00
kjs f4e4ee13e2 feat: 부모 데이터 매핑 기능 구현 (선택항목 상세입력 컴포넌트)
- 여러 테이블(거래처, 품목 등)에서 데이터를 가져와 자동 매핑 가능
- 각 매핑마다 소스 테이블, 원본 필드, 저장 필드를 독립적으로 설정
- 검색 가능한 Combobox로 테이블 및 컬럼 선택 UX 개선
- 소스 테이블 선택 시 해당 테이블의 컬럼 자동 로드
- 라벨, 컬럼명, 데이터 타입으로 검색 가능
- 세로 레이아웃으로 가독성 향상

기술적 변경사항:
- ParentDataMapping 인터페이스 추가 (sourceTable, sourceField, targetField)
- buttonActions.ts의 handleBatchSave에서 소스 테이블 기반 데이터 소스 자동 판단
- tableManagementApi.getColumnList() 사용하여 테이블 컬럼 동적 로드
- Command + Popover 조합으로 검색 가능한 Select 구현
- 각 매핑별 독립적인 컬럼 상태 관리 (mappingSourceColumns)
2025-11-19 13:22:49 +09:00
dohyeons eeed671436 3d - 배치 구현 2025-11-19 12:00:55 +09:00
SeongHyun Kim 8eccdd0b4c fix: 수주등록 항목추가 시 정보출력 가능하게 수정
문제:
- 조건부 컨테이너 내부의 modal-repeater-table 컴포넌트가 데이터 업데이트 불가
- ConditionalSectionViewer가 RealtimePreview에 formData/onFormDataChange 미전달

해결:
- ConditionalSectionViewer.tsx: RealtimePreview에 formData, onFormDataChange props 추가
- DynamicComponentRenderer.tsx: 디버깅 로그 정리
- ScreenModal.tsx: 디버깅 로그 정리

영향:
- 수주 등록 화면 품목 추가 기능 정상 작동
- 조건부 컨테이너 내부 모든 폼 컴포넌트 데이터 바인딩 정상화

Refs: #수주관리 #modal-repeater-table #ConditionalContainer
2025-11-19 11:48:00 +09:00