Commit Graph

960 Commits

Author SHA1 Message Date
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
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
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
dohyeons 03bce9d643 프론트 빌드 에러 해결 2025-11-07 11:05:19 +09:00
dohyeons 732928ac0f 프론트 필드 에러 해결 2025-11-07 10:32:30 +09:00
hjlee 0313c83a65 Merge pull request '오늘의 타협점' (#193) from lhj into main
Reviewed-on: http://39.117.244.52:3000/kjs/ERP-node/pulls/193
2025-11-06 19:01:58 +09:00
leeheejin 20e2729bf7 오늘의 타협점 2025-11-06 19:01:44 +09:00
kjs fb201cc799 회사별 테이블 데이터 격리 2025-11-06 18:35:05 +09:00
kjs 0e4cf7b641 쿼리 에러 수정 2025-11-06 18:10:21 +09:00
kjs 5d9233203c Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feature/screen-management 2025-11-06 18:10:05 +09:00
leeheejin 2f39b541dd 화면 고치기 2025-11-06 18:08:28 +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 786576bb76 커밋 2025-11-06 14:46:15 +09:00
kjs 832e80cd7f 배지 표시 수정 2025-11-06 14:18:36 +09:00
kjs 2e674e13d0 fix: resizable-dialog 주석 처리된 객체 리터럴 파싱 에러 수정
- 여러 줄 객체 리터럴을 한 줄로 변경
- console.log 주석이 파싱 에러를 일으키는 문제 해결
- 빌드 에러 해결
2025-11-06 13:26:54 +09:00
kjs bc826e8e49 chore: resizable-dialog 디버깅 로그 모두 제거
- console.log 20개 주석 처리
- 콘솔 스팸 방지
- 불필요한 로그 제거로 성능 개선
2025-11-06 12:46:08 +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
kjs b526d8ea2c fix: 카테고리 배지 표시 개선 및 디버깅 로그 추가
- 매핑이 없어도 항상 배지로 표시
- 매핑 없을 시 코드값 그대로 + 기본 slate 색상 사용
- 카테고리 매핑 로드 과정 로그 추가
- 기존 데이터에 기본 색상 추가하는 마이그레이션 스크립트 생성
2025-11-06 12:15:47 +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
kjs 7581cd1582 feat: 테이블 리스트에서 카테고리 값을 배지로 표시
- 카테고리 타입 컬럼을 배지 형태로 렌더링
- 사용자가 설정한 색상 적용
- categoryMappings에 라벨과 색상 모두 저장
- 기본 색상: #3b82f6 (파란색)
- 텍스트 색상: 흰색으로 고정하여 가독성 확보
2025-11-06 12:12:19 +09:00
leeheejin 0839f7f603 리사이징, 체크박스,엔터치면 다음 칸으로 이동, 표수정, 컬럼에서 이미지 넣는거 등등 2025-11-06 12:11:49 +09:00
kjs 1d87b6c3ac feat: 카테고리 값에 배지 색상 설정 기능 추가
- 카테고리 값 추가/편집 다이얼로그에 색상 선택기 추가
- 18가지 기본 색상 팔레트 제공
- 선택한 색상의 실시간 배지 미리보기
- color 필드를 통해 DB에 저장
- 테이블 리스트에서 배지 형태로 표시할 준비 완료
2025-11-06 12:09:28 +09:00
kjs a1cb9d2a8e fix: 카테고리 타입 컬럼 라벨 표시 및 빌드 오류 수정
- 카테고리 타입 컬럼이 테이블 리스트/플로우 위젯에서 코드값 대신 라벨로 표시되도록 수정
  - InteractiveDataTable: categoryMappings 상태 추가 및 formatCellValue에서 카테고리 라벨 변환
  - FlowWidget: categoryMappings 상태 추가 및 formatValue에서 카테고리 라벨 변환
  - TableListComponent: categoryMappings 상태 추가 및 formatCellValue에서 카테고리 라벨 변환

- FlowWidget 런타임 에러 수정
  - formatValue 함수를 categoryMappings 상태 선언 이후로 이동
  - useCallback 의존성 배열 오류 해결

- Dialog 컴포넌트 빌드 오류 수정
  - CopyScreenModal: DialogFooter → ResizableDialogFooter 태그 일치
  - MenuAssignmentModal: 모든 Dialog 컴포넌트를 ResizableDialog 버전으로 변경
    - Dialog → ResizableDialog
    - DialogContent → ResizableDialogContent
    - DialogFooter → ResizableDialogFooter
    - DialogHeader → ResizableDialogHeader
    - DialogTitle → ResizableDialogTitle
    - DialogDescription → ResizableDialogDescription

- 불필요한 console.log 제거
  - InteractiveDataTable, FlowWidget, TableListComponent에서 디버깅 로그 정리
2025-11-06 12:03:28 +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 fe306aed26 feat: 카테고리 위젯에 드래그 가능한 리사이저 추가
- 좌우 영역을 드래그로 조절 가능
- 리사이저: GripVertical 아이콘으로 시각적 표시
- 좌측 영역: 최소 10%, 최대 40%로 제한
- 호버 시 배경색 변경으로 피드백 제공
- 드래그 중 커서 및 텍스트 선택 방지
2025-11-06 11:40:59 +09:00
kjs 4b568f86b1 style: 카테고리 위젯 좌측 영역 더 축소
- 좌측 영역: 20% → 15%
- 우측 영역: 80% → 85%
- 최소한의 공간으로 컬럼 목록 표시
2025-11-06 11:40:19 +09:00
kjs 107ca3b0b8 style: 카테고리 위젯 좌우 비율 조정
- 좌측 영역: 30% → 20%
- 우측 영역: 70% → 80%
- 좌측은 컬럼 목록만 표시하므로 좁게 조정
- 우측 값 관리 영역에 더 많은 공간 확보
2025-11-06 11:39:21 +09:00
kjs 7efb31a367 feat: 카테고리 컬럼 카드에 항목 개수 표시
- 컬럼명(column_name) 제거
- 우측에 해당 카테고리의 항목 개수 표시
- getCategoryValues API로 각 컬럼의 값 개수 조회
- 'N개' 형식으로 깔끔하게 표시
- 로딩 중에는 '...' 표시
2025-11-06 11:36:45 +09:00
kjs 9f9e9ecd82 style: 카테고리 컬럼 카드 상하 패딩 8px로 조정
- CategoryColumnList 카드: p-4 → px-4 py-2
- 상하 여백 16px → 8px
- 좌우 여백은 16px 유지
- 채번규칙과 일관된 레이아웃
2025-11-06 11:34:08 +09:00
kjs ec2f544a3e style: 채번규칙 규칙명과 미리보기를 한 줄로 배치
- 규칙명과 미리보기를 flex로 나란히 배치
- 각각 flex-1로 동일한 너비 (50:50)
- gap-3로 간격 설정
- 공간 효율성 향상
2025-11-06 11:26:38 +09:00