Commit Graph

292 Commits

Author SHA1 Message Date
kjs 2722ebb218 feat: 테이블 리스트 날짜 형식을 yyyy-mm-dd로 변경
- inputType이 date/datetime인 컬럼 yyyy-mm-dd 형식으로 표시
- format이 'date'인 경우도 동일한 형식 적용
- 생성일, 수정일 등 날짜 컬럼 가독성 개선

변경된 파일:
- frontend/lib/registry/components/table-list/TableListComponent.tsx
2025-11-10 18:15:06 +09:00
kjs dad7e9edab feat: 엑셀 다운로드 기능 개선
- 화면 편집기 컬럼 설정 기반 다운로드 (visible 컬럼만)
- 필터 조건 적용 (필터링된 데이터만 다운로드)
- 한글 라벨명 표시 (column_labels 테이블 조회)
- Entity 조인 값 표시 (writer → writer_name 등)
- 카테고리 타입 라벨 변환 (코드 → 라벨)
- 멀티테넌시 보안 강화 (autoFilter: true)
- 디버깅 로그 정리

변경된 파일:
- frontend/lib/utils/buttonActions.ts
- frontend/lib/registry/components/table-list/TableListComponent.tsx

관련 이슈: #엑셀다운로드개선
2025-11-10 18:12:09 +09:00
kjs 49f779e0e4 feat: writer 컬럼 자동 user_name 변환 완료
- writer 컬럼이 있는 테이블에서 자동으로 user_name 표시
- 백엔드: entityJoinService에서 writer 컬럼 감지 및 user_info 조인
- 프론트엔드: entityJoinApi 항상 사용 및 writer_name 자동 표시
- 디버깅 로그 제거
2025-11-10 16:38:16 +09:00
kjs 605fbc4383 debug: writer 컬럼 조인 디버깅 로그 추가
- 프론트엔드: formatCellValue에서 writer 컬럼 데이터 로깅
- 백엔드: writer 조인 설정 및 검증 상세 로깅
- 목적: writer_name이 빈값으로 표시되는 문제 원인 파악
2025-11-10 16:36:54 +09:00
kjs 2e0ccaac16 fix: 모든 테이블 데이터 조회 시 entityJoinApi 사용하도록 수정
- 문제: writer 컬럼이 user_name으로 변환되지 않음
- 원인: entityJoinColumns가 없을 때 tableTypeApi 사용 (entity 조인 미지원)
- 해결: 항상 entityJoinApi.getTableDataWithJoins 사용
- 영향:
  - writer 컬럼이 있는 모든 테이블에서 자동으로 writer_name 조인
  - 기존 additionalJoinColumns도 정상 작동
  - 백엔드의 자동 writer 조인 기능 활성화
2025-11-10 16:33:15 +09:00
kjs ccbb6924c8 feat: writer 컬럼 자동 user_name 변환 기능 추가
- 문제: 테이블 리스트에서 writer 컬럼이 user_id로 표시됨
- 해결:
  1. 백엔드: entityJoinService에서 writer 컬럼 자동 감지
  2. writer 컬럼 발견 시 user_info 테이블과 자동 조인
  3. writer_name 별칭으로 user_name 반환
  4. 프론트엔드: writer 컬럼일 때 writer_name 우선 표시
- 영향:
  - writer 컬럼이 있는 모든 테이블에서 자동으로 작성자명 표시
  - 기존 entity 조인 설정과 충돌 없이 작동
  - column_labels 설정 불필요
2025-11-10 16:32:00 +09:00
kjs cdf9c0e562 fix: 화면 편집기에서 버튼 컴포넌트 선택 가능하도록 수정
- 문제: 버튼 컴포넌트 클릭 시 버튼 동작이 실행되어 선택되지 않음
- 해결:
  1. ButtonPrimaryComponent에서 디자인 모드일 때 <button> 대신 <div>로 렌더링
  2. ScreenDesigner의 ScreenPreviewProvider에서 isPreviewMode를 false로 설정
  3. 디자인 모드에서는 버튼 액션이 실행되지 않고 onClick만 전달되도록 수정
- 영향: button-primary 타입 버튼이 화면 편집기에서 정상적으로 선택 가능
2025-11-10 15:36:18 +09:00
kjs 3f32996014 fix: 날짜 입력 필드 높이 반응형 개선
- 드래그 드롭으로 배치되는 인풋 필드 기본 높이 30px로 변경
- 날짜 입력 컴포넌트의 모든 외부 div에 h-full 추가
- 모든 input 요소에 min-h-full 추가하여 부모 높이를 제대로 따르도록 수정
- daterange, year 타입도 동일하게 적용
2025-11-10 14:33:15 +09:00
kjs ce3ba22c54 Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feature/screen-management 2025-11-10 12:00:08 +09:00
dohyeons 68c3db5213 feat: 분할 패널 레이아웃 멀티테넌시 및 자동 필터링 기능 추가
- 데이터 조회 API에 회사별 자동 필터링 기능 추가
  - GET /api/data/:tableName에 company_code 필터 자동 적용
  - GET /api/data/join에 우측 테이블 회사별 필터링 추가
  - 최고 관리자(company_code = '*')는 전체 데이터 조회 가능

- 분할 패널 레이아웃 우측 추가 시 조인 컬럼 자동 입력
  - 좌측에서 선택한 항목의 조인 키 값을 우측 추가 모달에 자동 설정
  - 자동 설정된 필드는 읽기 전용으로 표시 (disabled + 안내 문구)
  - 사용자는 나머지 필드만 입력하면 됨

- 데이터 서비스 개선
  - getJoinedData 함수에 companyCode 파라미터 추가
  - checkColumnExists 함수를 public으로 변경하여 재사용성 향상
  - 조인 쿼리에 DISTINCT 추가로 중복 데이터 방지
  - 복합키 테이블의 레코드 삭제 지원

- 레코드 생성 시 멀티테넌시 자동 처리
  - company_code와 company_name 자동 추가
  - 테이블 컬럼 존재 여부 체크 후 자동 설정

- 분할 패널 설정 UI 개선
  - 좌측 패널 표시 컬럼 선택 UI 추가
  - 추가 폼에 표시할 컬럼 선택 기능 추가
  - Primary Key 정보 자동 조회 및 표시
2025-11-10 11:56:39 +09:00
kjs 94846e92ef Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feature/screen-management 2025-11-10 09:36:05 +09:00
dohyeons 68577a09f9 우측 패널 항목 삭제 기능 구현 2025-11-07 18:20:24 +09:00
dohyeons 3009d1eecc 삭제버튼 수정버튼 토글 삭제 2025-11-07 16:09:58 +09:00
dohyeons afea879920 수정/삭제 기능 구현 2025-11-07 16:02:01 +09:00
dohyeons 672aba8404 계층 구조 트리 뷰 2025-11-07 15:21:44 +09:00
kjs 4294fbf608 feat: 채번 규칙 테이블 기반 자동 필터링 구현
- 채번 규칙 scope_type을 table로 단순화
- 화면의 테이블명을 자동으로 감지하여 채번 규칙 필터링
- TextInputConfigPanel에 screenTableName prop 추가
- getAvailableNumberingRulesForScreen API로 테이블 기반 조회
- NumberingRuleDesigner에서 자동으로 테이블명 설정
- webTypeConfigConverter 유틸리티 추가 (기존 화면 호환성)
- AutoGenerationConfig 타입 개선 (enabled, options.numberingRuleId)
- 채번 규칙 선택 UI에서 ID 제거, 설명 추가
- 불필요한 console.log 제거

Backend:
- numberingRuleService: 테이블 기반 필터링 로직 구현
- numberingRuleController: available-for-screen 엔드포인트 수정

Frontend:
- TextInputConfigPanel: 테이블명 기반 채번 규칙 로드
- NumberingRuleDesigner: 적용 범위 UI 제거, 테이블명 자동 설정
- ScreenDesigner: webTypeConfig → autoGeneration 변환 로직 통합
- DetailSettingsPanel: autoGeneration 속성 매핑 개선
2025-11-07 14:27:07 +09:00
dohyeons efaa267d78 분할 패널에서 부서 추가 기능 구현 2025-11-07 14:22:23 +09:00
dohyeons 7835898a09 우측 패널 조절 가능하도록 수정 2025-11-07 12:00:46 +09:00
dohyeons 25740c499d 좌측 패널에 매핑한 컬럼 나오도록 구현 2025-11-07 11:51:44 +09:00
kjs a2637f4dbb Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feature/screen-management 2025-11-06 17:33:29 +09:00
leeheejin ead3433f3e 기능추가 2025-11-06 17:32:29 +09:00
leeheejin b3cd771b99 버튼 수정과 그룹드롭다운, 품목복사기능, 연속입력기능추가 2025-11-06 17:32:24 +09:00
kjs f2500865a6 격자 저장문제 수정 2025-11-06 17:01:13 +09:00
kjs 832e80cd7f 배지 표시 수정 2025-11-06 14:18:36 +09:00
kjs 4affe623a5 fix: 카테고리 매핑 로딩 타이밍 개선
- loading 의존성 제거 (불필요한 재로드 방지)
- columnMeta 길이 변화로 매핑 로드 트리거
- 매핑 로드 전후 상태 디버깅 로그 추가
- categoryMappings 빈 객체 문제 해결
2025-11-06 12:43:01 +09:00
kjs f53a818f2f fix: 카테고리 매핑 변경 시 강제 리렌더링 추가
- categoryMappingsKey 상태 추가로 매핑 변경 감지
- 매핑 업데이트 시 key 증가로 tbody 리렌더링 강제
- 간헐적으로 배지가 표시되지 않던 타이밍 이슈 해결
- 카테고리 배지 렌더링 디버깅 로그 추가
2025-11-06 12:39:56 +09:00
kjs 85e1b532fa fix: 캐시에서 inputType 누락 문제 해결
- 캐시된 데이터 사용 시 inputType이 설정되지 않던 문제 수정
- cached.inputTypes를 올바르게 매핑하여 meta에 포함
- webType 체크 제거, inputType만 사용하도록 변경
- 화면 전환 후 캐시 사용 시에도 카테고리 타입 정상 인식
2025-11-06 12:28:39 +09:00
kjs 4cd08c3900 fix: webType도 체크하여 카테고리 컬럼 감지
- inputType과 webType 모두 'category'인 경우 처리
- columnMeta에 inputType이 없어도 webType으로 감지 가능
- material 컬럼 등 webType만 있는 경우도 정상 동작
2025-11-06 12:27:22 +09:00
kjs 70dc24f7a1 fix: columnMeta 로딩 완료 후 카테고리 매핑 로드
- columnMeta가 비어있을 때 로딩 대기 로그 출력
- columnMeta 준비 완료 후에만 카테고리 매핑 시도
- 카테고리 컬럼 없음 로그에 디버깅 정보 추가
- 화면 전환 시 columnMeta → 카테고리 매핑 순서 보장
2025-11-06 12:26:07 +09:00
kjs cd961a2162 fix: 화면 복귀 시 카테고리 매핑 갱신 보장
- loading 상태를 의존성으로 변경
- 데이터 로드 완료 시점(loading: false)에 매핑 갱신
- 화면 전환 후 복귀 시에도 최신 카테고리 데이터 반영
- 로딩 중에는 매핑 로드하지 않도록 가드 추가
2025-11-06 12:24:12 +09:00
kjs 95b341df79 fix: 데이터 변경 시 카테고리 매핑 자동 갱신
- useEffect 의존성을 refreshTrigger에서 data.length로 변경
- 데이터가 추가/삭제/변경될 때마다 자동으로 매핑 갱신
- 화면 전환 후 데이터 로드 완료 시점에 매핑도 함께 갱신
2025-11-06 12:22:24 +09:00
kjs 49935189b6 fix: 화면 전환 후 카테고리 매핑 갱신 문제 해결
- useEffect 의존성 배열에 refreshTrigger 추가
- 데이터 새로고침 시 카테고리 매핑도 자동 갱신
- 매핑 로드 시작/종료 로그 추가하여 디버깅 용이성 향상
2025-11-06 12:20:58 +09:00
kjs 939a8696c8 feat: TableListComponent에서 카테고리 값을 배지로 표시
- categoryMappings 타입을 색상 포함하도록 수정
- 카테고리 값 로드 시 color 필드 포함
- formatValue에서 카테고리를 Badge 컴포넌트로 렌더링
- 매핑 없을 시에도 기본 slate 색상의 배지로 표시
- 디버깅 로그 추가
2025-11-06 12:18:43 +09:00
leeheejin 3f890cdbfa Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into lhj
; Conflicts:
;	frontend/components/admin/CreateTableModal.tsx
;	frontend/components/screen/CopyScreenModal.tsx
;	frontend/components/screen/MenuAssignmentModal.tsx
;	frontend/components/screen/ScreenList.tsx
;	frontend/components/screen/widgets/FlowWidget.tsx
;	frontend/lib/registry/components/table-list/TableListComponent.tsx
2025-11-06 12:14:07 +09:00
leeheejin 0839f7f603 리사이징, 체크박스,엔터치면 다음 칸으로 이동, 표수정, 컬럼에서 이미지 넣는거 등등 2025-11-06 12:11:49 +09:00
kjs e25f8893b0 Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feature/screen-management 2025-11-06 11:58:09 +09:00
kjs ff2a069b79 fix: 테이블 리스트 불필요한 스크롤 및 하단 공간 문제 해결
문제:
- 고정 높이 (h-[400px] sm:h-[500px])로 인해 데이터가 적어도 큰 공간 차지
- 하단에 빈 공간이 남는데도 스크롤이 생기는 비효율적인 UX
- overflow-y-scroll이 항상 스크롤바를 표시함

해결:
- 고정 높이 제거 → flex-1 (부모의 남은 공간 차지)
- overflow-y-scroll → overflow-y-auto (필요할 때만 스크롤)
- 데이터 양에 따라 자동으로 높이 조정

개선 사항:
 데이터가 적을 때: 불필요한 공간 없이 컴팩트하게 표시
 데이터가 많을 때: 자동으로 스크롤 생성
 반응형 레이아웃에 자연스럽게 적응
 스크롤바가 필요할 때만 표시되어 깔끔한 UI
2025-11-06 11:53:59 +09:00
kjs 310f43e1bd fix: 테이블 그룹 헤더 스크롤 시 배경 비침 현상 수정
문제:
- 그룹 헤더의 bg-muted/50 (반투명 배경)으로 인해 스크롤 시 뒤 내용이 비쳐 보임
- sticky 위치에서 가독성 저하

해결:
- bg-muted/50 → bg-muted (불투명 배경)
- hover 효과도 hover:bg-muted → hover:bg-muted/80으로 조정
- 스크롤 시 깔끔한 가림 효과 제공

개선 사항:
- sticky 그룹 헤더의 완전한 배경 덮기
- 스크롤 시 가독성 향상
- shadcn 가이드라인 준수 (단색 배경)
2025-11-06 11:52:43 +09:00
kjs 4f02f0bad1 refactor: TableList 컴포넌트 그라데이션 제거 (shadcn 가이드라인 준수)
- 테이블 헤더의 그라데이션 제거 (bg-gradient-to-b from-muted/50 to-muted → bg-muted)
- CardModeRenderer 빈 상태 아이콘의 그라데이션 제거
- 하드코딩된 slate 색상을 shadcn 토큰으로 변경 (bg-muted, text-muted-foreground)
- 일관된 단색 배경으로 심플하고 깔끔한 디자인 유지

shadcn/ui 가이드라인:
- 테이블 헤더는 단색 bg-muted 사용
- 색상 토큰 사용으로 다크모드 자동 대응
- 불필요한 그라데이션 제거
2025-11-06 11:51:11 +09:00
kjs 2b2c096a99 refactor: ButtonPrimaryComponent를 shadcn 가이드라인에 맞게 수정
- 그라데이션 배경 제거하고 단색 배경 적용
- 동적 색상 기반 그림자 제거하고 표준 shadcn 그림자 적용
- hover:opacity-90 효과 추가 (부드러운 어두워짐)
- active:scale-95 효과 추가 (클릭 피드백)
- transition-colors duration-150으로 빠른 색상 전환 적용
- disabled 상태를 단색 회색으로 개선

shadcn/ui 가이드라인 준수:
- 심플하고 깔끔한 단색 디자인
- 일관된 인터랙션 패턴
- 표준화된 그림자 및 전환 효과
2025-11-06 11:49:24 +09:00
kjs 44def0979c fix: 화면 편집기 높이 입력 필드 1px 단위 조절 가능하도록 수정
- 문제: 높이 입력 시 10 단위로만 입력 가능 (예: 1080 입력 불가)
- 원인: 격자 스냅 로직이 onChange마다 높이를 10/20 단위로 강제 반올림
- 해결:
  1. 모든 number input 필드에 step="1" 추가
  2. ScreenDesigner.tsx의 격자 스냅 로직 수정 (높이 스냅 제거)
  3. UnifiedPropertiesPanel.tsx에 로컬 상태 추가하여 입력 중 스냅 방지
  4. onBlur/Enter 시에만 실제 값 업데이트

수정 파일:
- frontend/components/screen/ScreenDesigner.tsx
- frontend/components/screen/panels/UnifiedPropertiesPanel.tsx
- frontend/components/screen/panels/PropertiesPanel.tsx
- frontend/components/screen/panels/ResolutionPanel.tsx
- frontend/components/screen/panels/RowSettingsPanel.tsx
- frontend/components/screen/panels/webtype-configs/NumberTypeConfigPanel.tsx
- frontend/components/screen/panels/webtype-configs/TextTypeConfigPanel.tsx
2025-11-06 10:37:20 +09:00
kjs cf9e81a216 테이블에 카테고리 값 보이기 2025-11-05 18:28:43 +09:00
kjs bc029d1df8 카테고리 구현 2025-11-05 18:08:51 +09:00
dohyeons e65f97b3fe Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feat/dashboard 2025-11-05 16:41:40 +09:00
kjs f3bed0d713 Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feature/screen-management 2025-11-05 16:38:30 +09:00
leeheejin 0b676098a5 버튼 문제 수정 및 여러가지 2025-11-05 16:36:32 +09:00
dohyeons 8b03f3a495 분할 패널 높이 조정 수정 2025-11-05 16:18:00 +09:00
dohyeons df779ac04c 대표 이미지 저장 기능 구현 2025-11-05 15:50:29 +09:00
dohyeons 9429033e2c Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feat/dashboard 2025-11-05 15:39:11 +09:00
dohyeons 8489ff03c2 파일 업로드 구조 개선 2025-11-05 15:39:02 +09:00
kjs 573a300a4a 카테고리 기능 구현 2025-11-05 15:23:57 +09:00
leeheejin c6b2a30651 Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into lhj
; Please enter a commit message to explain why this merge is necessary,
; especially if it merges an updated upstream into a topic branch.
;
; Lines starting with ';' will be ignored, and an empty message aborts
; the commit.
2025-11-05 13:10:25 +09:00
leeheejin b4cc844675 엑셀 다운로드 문제 해결 2025-11-05 10:23:00 +09:00
hjlee 6c713a11d8 Merge pull request '행 이동 화면 할당한 상황에서도 가능하게, 코드병합 버튼액션에 추가' (#183) from lhj into main
Reviewed-on: http://39.117.244.52:3000/kjs/ERP-node/pulls/183
2025-11-04 18:34:43 +09:00
leeheejin 82ff18e388 행 이동 화면 할당한 상황에서도 가능하게, 코드병합 버튼액션에 추가 2025-11-04 18:31:26 +09:00
dohyeons 63b6e89435 디버깅용 console.log 삭제 2025-11-04 18:02:20 +09:00
dohyeons acaa3414d2 파일 업로드 회사별로 보이도록 수정 2025-11-04 17:57:28 +09:00
kjs f4fd1184cd 테이블 리스트 간격설정 2025-11-04 17:48:22 +09:00
kjs 198f678b68 채번 자동생성기능 2025-11-04 17:35:02 +09:00
dohyeons 958aeb2d53 파일 업로드 쪽 수정 2025-11-04 17:32:46 +09:00
dohyeons 36ea8115cb Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feat/dashboard 2025-11-04 16:27:01 +09:00
dohyeons 01e03dedbf 파일 업로드 컴포넌트 높이 조절 수정 2025-11-04 16:26:53 +09:00
kjs 6901baab8e feat(screen-designer): 그리드 컬럼 시스템 개선 및 컴포넌트 너비 렌더링 수정
주요 변경사항:
- 격자 설정을 편집 탭에서 항상 표시 (해상도 설정 하단)
- 그리드 컬럼 수 동적 조정 가능 (1-24)
- 컴포넌트 생성 시 현재 그리드 컬럼 수 기반 자동 계산
- 컴포넌트 너비가 설정한 컬럼 수대로 정확히 표시되도록 수정

수정된 파일:
- ScreenDesigner: 컴포넌트 드롭 시 gridColumns와 style.width 동적 계산
- UnifiedPropertiesPanel: 격자 설정 UI 통합, 차지 컬럼 수 설정 시 width 자동 계산
- RealtimePreviewDynamic: getWidth 우선순위 수정, DOM 크기 디버깅 로그 추가
- 8개 컴포넌트: componentStyle.width를 항상 100%로 고정
  * ButtonPrimaryComponent
  * TextInputComponent
  * NumberInputComponent
  * TextareaBasicComponent
  * DateInputComponent
  * TableListComponent
  * CardDisplayComponent

문제 해결:
- 컴포넌트 내부에서 component.style.width를 재사용하여 이중 축소 발생
- 해결: 부모 컨테이너(RealtimePreviewDynamic)가 width 제어, 컴포넌트는 항상 100%
- 결과: 파란 테두리와 내부 콘텐츠가 동일한 크기로 정확히 표시
2025-11-04 16:17:19 +09:00
dohyeons 7b0bbc91c8 분할 패널 너비 조절 안되는거 개선 2025-11-04 15:32:49 +09:00
kjs 9f131a80ab Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feature/screen-management 2025-11-04 15:16:48 +09:00
kjs 7cf455083d 채번 컴포넌트 생성 2025-11-04 13:58:21 +09:00
leeheejin 7425c37094 엑셀 다운로드, 업로드, 사진촬영(바코드 스캔기능) 추가 2025-11-04 09:41:58 +09:00
leeheejin 94e5a5de0b 회사코드 입력, 작성자 입력가능하게 수정완료 2025-11-03 16:26:32 +09:00
kjs 9a3d65d8d0 fix: TableListComponent 코드 변환 파라미터 순서 수정
문제:
- optimizedConvertCode(value, meta.codeCategory) 
- 함수 정의: optimizedConvertCode(categoryCode, codeValue)
- 파라미터 순서가 반대로 전달되어 카테고리 값이 표시됨

해결:
- optimizedConvertCode(meta.codeCategory, value) 
- 올바른 순서: (카테고리, 코드값)
- 이제 코드명이 정상적으로 표시됨

변경:
- 파라미터 순서 수정
- 주석 추가로 재발 방지
2025-11-03 14:41:12 +09:00
kjs a3f945f5df fix: TableListComponent 코드 변환 로직 재추가 및 개선
요구사항:
- DB에 저장된 코드 값(예: '001') → 코드명(예: '활성')으로 표시

구현:
- inputType === 'code'이고 codeCategory가 있을 때 변환 수행
- optimizedConvertCode를 통해 코드 값 → 코드명 변환
- 변환 성공 시 코드명 반환
- 변환 실패 시 원본 코드 값 반환
- try-catch로 에러 핸들링 추가
- 디버깅을 위한 에러 로그 추가

변경:
- 코드 변환 로직 복원
- 에러 처리 강화
- 변환 실패 시 원본 값 표시로 안전장치
2025-11-03 14:39:43 +09:00
kjs 6a329506a8 fix: TableListComponent 코드 변환 로직 완전 제거
문제:
- inputType이 'code'인 컬럼에서 코드 변환이 실행되어
- 실제 저장된 값 대신 코드 카테고리 값이 표시됨
- 사용자가 원하는 것은 원본 값 그대로 표시

해결:
- 코드 변환 로직 완전 제거
- inputType에 관계없이 원본 값 그대로 표시
- 숫자/날짜 등 기본 포맷팅만 유지

변경:
- optimizedConvertCode 호출 제거
- inputType === 'code' 조건 제거
- 원본 데이터 표시로 단순화
2025-11-03 14:38:27 +09:00
kjs e732ed2891 fix: TableListComponent 코드 변환 조건 수정
문제:
- webType과 codeCategory가 있기만 하면 무조건 코드 변환 시도
- 코드 타입이 아닌 컬럼도 코드 카테고리 값으로 변환되는 오류

해결:
- webType === 'code'일 때만 코드 변환 수행
- 다른 webType(text, number 등)은 코드 변환 건너뛰기

변경:
- meta?.webType && meta?.codeCategory
  → meta?.webType === 'code' && meta?.codeCategory
2025-11-03 14:36:15 +09:00
kjs ac40f0227e refactor: TableListComponent와 FlowWidget 상단 헤더 제거
- TableListComponent: showHeader 조건부 렌더링 제거
  - 타이틀 표시 영역 삭제
  - 공간 절약을 위해 헤더 완전 제거

- FlowWidget: 플로우 제목 및 설명 영역 제거
  - flowData.name 표시 영역 삭제
  - flowData.description 표시 영역 삭제
  - 더 많은 데이터 표시 공간 확보

UI 개선:
- 불필요한 헤더 제거로 컨텐츠 영역 확대
- 더 많은 데이터를 한 화면에 표시 가능
2025-11-03 14:23:53 +09:00
kjs b607ef0aa0 feat: TableListComponent에 그룹핑 기능 구현
- 다중 컬럼 선택으로 계층적 그룹화 지원
- 그룹 설정 다이얼로그 추가
- 그룹별 데이터 펼치기/접기 기능
- 그룹 헤더에 항목 개수 표시
- localStorage에 그룹 설정 저장/복원
- 그룹 해제 버튼 추가
- 그룹 표시 배지 UI

주요 기능:
- 사용자가 원하는 컬럼(들)을 선택하여 그룹화
- 그룹 키: '통화:KRW > 단위:EA' 형식으로 표시
- 그룹 헤더 클릭으로 펼치기/접기
- 그룹 없을 때는 기존 렌더링 방식 유지
2025-11-03 14:08:26 +09:00
kjs 8248c8dc96 fix: TableListComponent에 toast import 추가
- sonner의 toast 함수 import 추가
- 필터 설정 저장 시 알림 기능 정상 작동
2025-11-03 14:00:45 +09:00
kjs c7db82a8a5 fix: TableListComponent filterSettingKey 중복 정의 제거
- 중복된 filterSettingKey 변수 정의 중 하나 제거
- 빌드 에러 해결
2025-11-03 14:00:06 +09:00
kjs 297870a24c feat: TableListComponent에 FlowWidget과 동일한 필터 설정 UI 구현
- 전체 선택/해제 기능 추가
- 선택된 컬럼 개수 표시 추가
- 필터 설정 localStorage 저장/로드 기능
- 체크된 항목만 실제 검색 필터로 표시
- 저장 시 Toast 알림 추가
- FlowWidget과 완전히 동일한 UI/UX 적용
2025-11-03 13:59:12 +09:00
kjs e0e7bc387e fix: TableListComponent 필터 설정 다이얼로그 스타일 개선
🎨 UI 개선
- 필터 설정 다이얼로그 스타일을 플로우 위젯과 동일하게 변경
- hover:bg-gray-50으로 호버 효과 추가
- rounded-lg, p-3, space-x-3으로 간격 및 패딩 개선
- space-y-2, py-4로 리스트 아이템 간격 조정

🐛 버그 수정
- 필터 목록에 key prop 추가 (React 경고 해결)
- Label 컴포넌트 대신 label 태그 사용 (불필요한 import 제거)

📝 변경 사항
- 플로우 위젯과 동일한 체크박스 리스트 스타일 적용
- 더 명확하고 클릭하기 쉬운 UI로 개선

 결과
- 필터 설정 다이얼로그가 플로우 위젯과 일관된 스타일로 표시됨
2025-11-03 13:53:50 +09:00
kjs 714511c3cf fix: 텍스트 줄바꿈 문제 방지 - 모든 셀에 whitespace-nowrap 적용
- 테이블 헤더와 데이터 셀 모두에 whitespace-nowrap 적용
- 모바일에서도 텍스트가 2줄로 깨지지 않음
- overflow-hidden + text-ellipsis로 긴 텍스트 처리
- TableListComponent와 InteractiveDataTable 모두 적용

이제 화면을 줄여도 텍스트가 항상 1줄로 유지됨
2025-11-03 13:34:02 +09:00
kjs 40efb391ea feat: 리스트 헤더 스타일 개선 - 그라데이션 배경, 굵은 테두리, 호버 효과 추가 2025-11-03 13:33:13 +09:00
kjs f9bd7bbcb3 fix: 컬럼 리사이즈 시 정렬이 트리거되는 문제 해결
문제:
- 컬럼 너비를 조절할 때 자동으로 정렬이 실행됨
- 리사이즈 핸들 클릭이 헤더의 onClick 이벤트를 트리거

해결:
- isResizing useRef 플래그 추가
- 리사이즈 시작 시 플래그를 true로 설정
- 헤더 onClick에서 isResizing.current 체크
- 리사이즈 중이면 정렬 실행 안함
- mouseup 후 100ms 지연으로 플래그 해제

적용:
- TableListComponent
- InteractiveDataTable

이제 컬럼 리사이즈가 정렬을 방해하지 않음
2025-11-03 13:30:44 +09:00
kjs 516bcafb2c feat: 테이블 정렬 개선 - 헤더 가운데, 숫자 우측 정렬
- 모든 테이블 헤더를 가운데 정렬 (text-center)
- 숫자 타입(number, decimal) 데이터를 우측 정렬
- TableListComponent: inputType 기반 숫자 판단
- InteractiveDataTable: widgetType 기반 숫자 판단
- 체크박스는 기존대로 가운데 정렬 유지
- 일반 텍스트는 좌측 정렬 유지

더 읽기 쉬운 테이블 레이아웃 완성
2025-11-03 13:25:57 +09:00
kjs 5376d7198d fix: 체크박스 컬럼 패딩 제거 및 중앙 정렬
- 체크박스 컬럼에서 px 패딩 제거 (px-0)
- 체크박스 컬럼 중앙 정렬 (textAlign: center)
- 일반 컬럼은 기존 패딩 유지
- 체크박스와 다른 컬럼의 시각적 구분 명확화
- 불필요한 공간 제거로 깔끔한 UI
2025-11-03 12:28:30 +09:00
kjs 6aa25fa852 fix: TableListComponent 체크박스 컬럼 48px 고정
- 체크박스 컬럼(__checkbox__)을 48px 고정 너비로 설정
- width, minWidth, maxWidth 모두 48px 적용
- 체크박스 컬럼에서 리사이즈 핸들 제거
- 초기 너비 측정 시 체크박스 컬럼 제외
- 테이블 헤더와 본문 셀 모두 적용
- InteractiveDataTable과 일관된 체크박스 컬럼 스타일
2025-11-03 12:24:28 +09:00
kjs 3332c87293 fix: 컬럼 리사이즈 무한 리렌더링 및 원위치 복귀 문제 해결
- ref callback에서 state 업데이트 제거
- useEffect + setTimeout으로 초기 너비 측정 (한 번만)
- hasInitializedWidths useRef로 중복 측정 방지
- columnRefs useRef로 DOM 직접 참조
- 드래그 중 리렌더링 없이 DOM만 직접 조작
- 부드럽고 정확한 리사이즈 구현 완료
2025-11-03 12:18:50 +09:00
kjs 511884f323 fix: 컬럼 초기 너비 이하로 줄어들지 않는 문제 해결
 해결 방법:
- 백분율 defaultWidth 제거, 초기값은 undefined로 설정
- ref callback에서 첫 렌더링 시 실제 offsetWidth 측정
- 측정한 실제 너비를 columnWidths state에 저장
- 이후 드래그로 80px까지 줄일 수 있음

 적용 파일:
- TableListComponent.tsx (실제 화면)
- InteractiveDataTable.tsx (디자인 모드)

 기술적 개선:
- table-layout: fixed + 동적 초기 너비 측정
- DOM 직접 조작으로 부드러운 리사이즈
- 최소 80px 보장 (Math.max)
2025-11-03 12:13:56 +09:00
kjs 3ada095e43 fix: 컬럼 리사이즈 최소 너비 80px 적용 및 디버그 로그 제거
- CSS minWidth 제거 (table-layout: fixed와 충돌)
- JavaScript에서 Math.max(80, width)로 최소 너비 보장
- 드래그 중과 마우스 업 시 모두 80px 최소값 적용
- 모든 디버그 로그 제거
- 깔끔하고 부드러운 리사이즈 완성
2025-11-03 12:06:57 +09:00
kjs c8540b170e fix: table-layout fixed로 컬럼 리사이즈 활성화
- tableLayout: 'fixed' 추가로 컬럼 너비가 DOM 스타일로 제어 가능하도록 설정
- table-layout: auto(기본값)에서는 브라우저가 자동으로 너비를 재조정하여 무시됨
- fixed 모드에서는 설정한 너비가 정확하게 적용됨
2025-11-03 12:01:47 +09:00
kjs 97ce6d3691 fix: useRef로 컬럼 리사이즈 성능 근본 해결
- columnRefs로 DOM 요소 직접 참조
- 드래그 중에는 DOM 스타일만 변경 (리렌더링 없음)
- 드래그 완료 시에만 state 업데이트
- 불필요한 컴포넌트 재초기화 완전 제거
- 부드러운 리사이즈 경험 제공
2025-11-03 11:57:01 +09:00
kjs 48cacf0409 perf: requestAnimationFrame으로 리사이즈 성능 최적화
- 드래그 중 과도한 리렌더링 방지
- requestAnimationFrame으로 throttling 적용
- 초당 60프레임으로 제한하여 부드러운 리사이즈
- cancelAnimationFrame으로 중복 업데이트 방지
2025-11-03 11:55:45 +09:00
kjs 9f501aa839 debug: 리사이즈 핸들 이벤트 디버그 로그 추가
- 마우스다운, 드래그, 마우스업 이벤트 로그
- 시작 너비, 이동 거리, 새 너비 출력
- 이벤트가 제대로 발생하는지 확인용
2025-11-03 11:54:34 +09:00
kjs 4a5c21a3ba fix: 리사이즈 핸들 클릭 영역 개선
- 핸들 너비를 1px에서 2px로 증가
- z-index: 20 추가로 다른 요소 위에 표시
- padding과 negative margin으로 클릭 영역 확대 (좌우 4px씩)
- onClick에 stopPropagation 추가하여 정렬 클릭 방지
- 더 쉽게 클릭하고 드래그할 수 있도록 개선
2025-11-03 11:51:48 +09:00
kjs 787bfd363f feat: TableListComponent 컬럼 너비 드래그 조절 기능 추가
- 실제 화면에서 사용되는 TableListComponent에도 리사이즈 기능 추가
- InteractiveDataTable과 동일한 리사이즈 핸들 구현
- columnWidths 상태로 각 컬럼 너비 관리
- 드래그 중 텍스트 선택 방지 및 이벤트 전파 차단
- 최소 너비 80px 보장
2025-11-03 10:54:23 +09:00
kjs dcf07fdd5e chore: TableListComponent 디버그 로그 제거
- 숫자 포맷팅 확인 완료
- column_labels 테이블 조회로 정확한 input_type 가져오기 검증 완료
2025-11-03 10:45:16 +09:00
kjs 8a77e6d33c fix: getColumnInputTypes가 column_labels 테이블 조회하도록 수정
- 기존: table_type_columns 테이블 조회 (잘못된 테이블)
- 수정: column_labels 테이블 조회 (올바른 테이블)
- 이제 테이블 관리에서 설정한 input_type이 정확하게 반영됨
2025-11-03 10:32:08 +09:00
kjs 1c571ee3c3 feat: 테이블 관리의 입력 타입 기반 자동 숫자 포맷팅
- TableListComponent: table_type_columns의 input_type 정보를 가져와서 숫자 포맷팅
- getColumnInputTypes API 추가로 컬럼별 입력 타입 조회
- columnMeta에 inputType 포함하여 formatCellValue에서 사용
- 테이블 관리에서 설정한 입력 타입(number/decimal)에 따라 자동으로 천 단위 콤마 표시
- 근본적인 해결: 컬럼명 기반이 아닌 실제 설정값 기반 포맷팅
2025-11-03 10:14:32 +09:00
kjs 68aafb3732 debug: TableListComponent formatCellValue 디버그 로그 추가
- 각 컬럼의 inputType, format, value 확인용
- 숫자 포맷팅이 안 되는 원인 파악
2025-11-03 10:10:22 +09:00
kjs 7b676a6aff fix: TableListComponent에서 숫자 타입 컬럼 천 단위 콤마 표시
- inputType이 number 또는 decimal인 컬럼에 천 단위 콤마 자동 적용
- 문자열로 저장된 숫자도 parseFloat 후 포맷팅 처리
- format 속성보다 inputType을 우선 체크하도록 수정
2025-11-03 10:09:33 +09:00
kjs 3d6ce26f9d feat: 테이블 리스트 컴포넌트 제목 편집 기능 추가
- TableListConfigPanel에 테이블 제목 입력 필드 추가
- 제목 표시 우선순위: 사용자 입력 제목 → 테이블 라벨명 → 테이블명
- 사용자가 제목을 비워두면 자동으로 테이블 라벨명 또는 테이블명 표시
- 화면 편집기에서 테이블 제목을 자유롭게 수정 가능
2025-10-31 11:10:09 +09:00
kjs 0bb314f8e5 feat: 화면 관리 및 대시보드 뷰어 레이아웃 전체 너비 활용 개선
- 화면 관리 페이지에서 position.x === 0인 컴포넌트가 100% 너비로 표시되도록 수정
- 대시보드 뷰어에서 부모 컨테이너의 maxWidth 제한 제거하여 화면 전체 너비 활용
- AppLayout의 main 영역에 16px 내부 패딩 적용
- RealtimePreview 및 RealtimePreviewDynamic 컴포넌트에서 좌측 정렬 컴포넌트 너비 자동 조정
- 모바일 환경에서 화면 스케일링 비활성화 (반응형만 작동)
- table-mobile-fixed CSS 클래스 추가로 모바일 테이블 레이아웃 개선
- useResponsive 훅 추가로 반응형 감지 기능 구현
2025-10-31 10:41:45 +09:00
kjs 21af6c5c17 테이블 헤더 및 행 배경색 통일
- 모든 테이블 헤더의 회색 배경 제거 (bg-muted/50 → bg-background)
- 모든 테이블 행의 홀수 행 회색 배경 제거 (모든 행을 흰색 배경으로 통일)
- 호버 시에만 회색 배경이 나타나도록 통일
- TableListComponent, SingleTableWithSticky, 모든 관리자 테이블 컴포넌트에 적용
- 테이블 구조 표준화 문서 업데이트
2025-10-30 15:49:23 +09:00
kjs 4010273d67 feat: 테이블 테두리 및 라운드 제거, 검색 필터 제목 제거
- 모든 테이블 컴포넌트의 외곽 테두리(border) 제거
- 테이블 컨테이너의 라운드(rounded-lg) 제거
- 테이블 행 구분선(border-b)은 유지하여 데이터 구분
- FlowWidget과 TableListComponent에 동일한 스타일 적용
- 검색 필터 영역의 회색 배경(bg-muted/30) 제거
- 검색 필터 제목 제거
- AdvancedSearchFilters 컴포넌트의 '검색 필터' 제목 제거
2025-10-30 15:39:39 +09:00
kjs 556354219a 스타일 수정중 2025-10-30 12:03:50 +09:00
kjs 244f04a199 등록자랑 회사코드 자동으로 들어가도록 수정 2025-10-29 16:06:01 +09:00
kjs efdef36cda 모달창 올리기 2025-10-29 11:26:00 +09:00
kjs eeae338cd4 패널 정리중 2025-10-28 18:41:45 +09:00
kjs 743ae6dbf1 패널 정리 중간 커밋 2025-10-28 17:33:03 +09:00
kjs 775fbf8903 화면 바로 들어가지게 함 2025-10-28 15:39:22 +09:00
kjs a3bfcdf2d8 이력테이블 기준 컬럼 설정 기능 2025-10-27 11:41:30 +09:00
kjs 5fdefffd26 로그시스템 개선 2025-10-27 11:11:08 +09:00
kjs 8d1f0e7098 제어관리 개선판 2025-10-24 14:11:12 +09:00
kjs d9088816a7 플로우 단계별 버튼 표시 설정 2025-10-23 18:23:01 +09:00
kjs c228ddb498 삭제버튼 동작 2025-10-23 17:55:04 +09:00
kjs f9c6ef70db 플로우 위젯 컴포넌트와 버튼의 연동 2025-10-23 17:26:14 +09:00
kjs 8c89b9cf86 테이블 리스트 수정 2025-10-23 16:50:41 +09:00
kjs 70d2c96c80 컴포넌트 잘림현상 수정 2025-10-23 15:06:00 +09:00
kjs b104cd94f2 텍스트 설정 초기화 되는 오류 수정 2025-10-23 13:24:37 +09:00
kjs 4996dd5562 버튼 액션 안되는 버그 수정 2025-10-23 13:15:52 +09:00
kjs 0c3ce4d3eb text타입 라벨 표시문제 수정 2025-10-23 09:56:38 +09:00
kjs 2dd96f5a74 화면관리ui수정 2025-10-22 17:19:47 +09:00
leeheejin 10d112bd69 버튼 문제 해결 2025-10-21 17:32:54 +09:00
kjs cc84e604b1 인풋 오류 수정 2025-10-21 14:41:56 +09:00
kjs f9c171c513 플로우 구현 2025-10-20 10:55:33 +09:00
kjs 2e916678fa ui개선 2025-10-17 16:21:08 +09:00
kjs 2a8081a253 반응형 및 테이블 리스트 컴포넌트 오류 수정 2025-10-17 15:31:23 +09:00
kjs d7a845ad9f 반응형 레이아웃 기능 구현 2025-10-16 18:16:57 +09:00
kjs a0dde51109 분할 패널 및 반복 필드 그룹 컴포넌트 2025-10-16 15:05:24 +09:00
kjs 0c3462a646 Merge branch 'feature/screen-management' of http://39.117.244.52:3000/kjs/ERP-node into feature/screen-management 2025-10-15 17:29:30 +09:00
kjs 7686158a01 분할레이아웃 2025-10-15 17:25:38 +09:00
kjs 4c05b25fd8 Merge branch 'main' into feature/screen-management 2025-10-15 13:33:26 +09:00
kjs 3d242c1c8e 화면관리 ui개선 및 파일업로드 설정 2025-10-15 13:30:11 +09:00
leeheejin 36aec28708 차량위치 위젯 기존꺼 분할 완료 2025-10-15 10:29:15 +09:00
kjs a7de47e7ea 세부설정 2025-10-14 17:40:51 +09:00
kjs a2c3737f7a 세부타입설정 2025-10-14 16:45:30 +09:00
kjs 55f52ed1b5 컬럼 세부 타입 설정 2025-10-14 11:48:04 +09:00
leeheejin 3fa410cbe4 ui 수정 및 시현할 기능 업데이트 2025-10-02 14:34:15 +09:00
leeheejin 0209be8fd6 메일 관리 작업 저장용 커밋 2025-10-01 16:15:53 +09:00
leeheejin fc99beb851 TypeScript 오류 수정 및 Merge conflict 해결
- dataflowControlService.ts: condition.field non-null assertion 추가
- batchExternalDbService.ts: connection 속성들 non-null assertion 추가, error 타입 unknown으로 변경
- multiConnectionQueryService.ts: connection, schemaResult.data non-null assertion 추가
- dataflowExecutionController.ts: 도달할 수 없는 코드 제거
- TableListComponent.tsx, SingleTableWithSticky.tsx: merge conflict 마커 제거
- 모든 TypeScript 컴파일 오류 해결 완료
2025-10-01 09:58:38 +09:00
leeheejin 990d8123b8 프론트엔드 UI/UX 개선사항 복구 및 테이블 스타일링 통일
- 테이블 헤더 스타일링 개선 (더 진한 배경색, 오렌지 호버 효과)
- 파일첨부 컴포넌트 개선 (뚝뚝 잘리는 문제 해결, 패딩/아이콘 크기 조정)
- 카드 디스플레이 스타일링 개선 (명확한 테두리, 오렌지 호버 효과)
- 라벨 표시 기능 수정 (드롭다운 라벨링 문제, 체크박스 풀리는 문제 해결)
- 패널 및 레이아웃 개선 (카드 간격 통일, 주황색 영역 추가)
- CSS 통일성 작업 (Select 컴포넌트 너비 w-48로 조정)
- 정렬 화살표 표시 조건 수정 (정렬된 컬럼에서만 화살표 표시)
- 테이블 스타일링 통일 (SingleTableWithSticky, TableListComponent, InteractiveDataTable)
2025-09-30 18:43:26 +09:00
leeheejin 8c437270a8 표 css 통일, 라벨링 2025-09-30 18:42:33 +09:00
leeheejin 8c19d57ced ui, 외부커넥션에서 쿼리 조회만 가능하도록 2025-09-30 10:30:05 +09:00
dohyeons 6e3d5b40d2 에러 해결 2025-09-29 18:44:16 +09:00
dohyeons e74deb7c34 Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into fix/429error 2025-09-29 17:30:44 +09:00
dohyeons 6e8f529cd3 추가 감소 2025-09-29 17:29:58 +09:00
dohyeons 808a317ed0 38개로 감소 2025-09-29 17:24:06 +09:00
leeheejin a5bf6601a0 ui, 파일업로드 관련 손보기 2025-09-29 17:21:47 +09:00
leeheejin e0143e9cba 문서뷰어기능구현 2025-09-29 13:29:03 +09:00
leeheejin 3600621554 화면관리 쪽 파일첨부 수정 2025-09-26 17:12:03 +09:00
leeheejin ee7c8e989e 파일 업로드 기능 구현 및 상세설정 연동
- 템플릿 파일첨부 컴포넌트와 FileComponentConfigPanel 실시간 동기화
- FileUpload 위젯에 전역 파일 상태 관리 기능 추가
- 파일 업로드/삭제 시 전역 상태 및 localStorage 동기화
- RealtimePreview에서 전역 상태 우선 읽기 및 파일 개수 표시
- 한컴오피스, Apple iWork 파일 형식 지원 추가
- 파일 뷰어 모달 및 미리보기 기능 구현
- 업로드된 파일 디렉토리 .gitignore 추가
2025-09-26 13:11:34 +09:00
leeheejin c28e27f3e8 화면관리의 테이블 리스트, 카드 디스플레이 수정 2025-09-25 18:54:25 +09:00