fix: 그룹 설정 기능 수정 및 카테고리 값 표시 개선

- TableListComponent: grouping 상태 변경 시 groupByColumns 자동 업데이트
- 그룹화 시 카테고리/엔티티/코드 타입 컬럼은 _name 필드 사용
- 그룹 키 생성 시 실제 이름 표시 (코드 대신)

예시:
- 이전: 상태:CATEGORY_159712 > 품번:SLI-2025-0001
- 이후: 상태:완제품 > 품번:SLI-2025-0001
This commit is contained in:
kjs
2025-11-12 15:25:21 +09:00
parent 0f9cd93b8b
commit 54724fc578

View File

@@ -274,6 +274,11 @@ export const TableListComponent: React.FC<TableListComponentProps> = ({
setCurrentPage(1); // 필터 변경 시 첫 페이지로
}, [filters]);
// grouping이 변경되면 groupByColumns 업데이트
useEffect(() => {
setGroupByColumns(grouping);
}, [grouping]);
// 초기 로드 시 localStorage에서 저장된 설정 불러오기
useEffect(() => {
if (tableConfig.selectedTable && currentUserId) {
@@ -1652,9 +1657,20 @@ export const TableListComponent: React.FC<TableListComponentProps> = ({
data.forEach((item) => {
// 그룹 키 생성: "통화:KRW > 단위:EA"
const keyParts = groupByColumns.map((col) => {
const value = item[col];
// 카테고리/엔티티 타입인 경우 _name 필드 사용
const inputType = columnMeta?.[col]?.inputType;
let displayValue = item[col];
if (inputType === 'category' || inputType === 'entity' || inputType === 'code') {
// _name 필드가 있으면 사용 (예: division_name, writer_name)
const nameField = `${col}_name`;
if (item[nameField] !== undefined && item[nameField] !== null) {
displayValue = item[nameField];
}
}
const label = columnLabels[col] || col;
return `${label}:${value !== null && value !== undefined ? value : "-"}`;
return `${label}:${displayValue !== null && displayValue !== undefined ? displayValue : "-"}`;
});
const groupKey = keyParts.join(" > ");
@@ -1677,7 +1693,7 @@ export const TableListComponent: React.FC<TableListComponentProps> = ({
count: items.length,
};
});
}, [data, groupByColumns, columnLabels]);
}, [data, groupByColumns, columnLabels, columnMeta]);
// 저장된 그룹 설정 불러오기
useEffect(() => {