Skip to content

BaseRow

테이블 행 렌더링을 위한 기본 컴포넌트입니다.

개요

BaseRow는 BaseTable에서 사용되는 행 렌더링 컴포넌트입니다. 다양한 셀 타입을 지원하며, 선택 상태와 스켈레톤 로딩을 처리합니다.

Props

typescript
interface Props<T extends Record<string, unknown>> {
    row: PagingTableRow<T>; // 행 데이터
    columns: PagingTableColumn[]; // 컬럼 정의
    cellWidths: number[]; // 셀 너비 배열
    scrollBarWidth: number; // 스크롤바 너비
    maxMap?: Record<string, number>; // 최대값 맵 (BAR 셀용)
}

지원 셀 타입

  • TEXT: 일반 텍스트
  • VALUE: 숫자 값 (천단위 구분자)
  • DATE: 날짜 형식
  • TIME: 시간 형식
  • BAR: 바 차트 시각화
  • ERROR: 에러 상태 표시
  • SKELETON: 로딩 상태

기본 사용법

vue
<template>
    <BaseRow
        :row="tableRow"
        :columns="tableColumns"
        :cell-widths="[120, 150, 100, 200]"
        :scroll-bar-width="15"
        :max-map="{ score: 100 }"
    />
</template>

<script setup>
import { BaseRow } from '@jennifersoft/apm-components';

const tableRow = {
    id: '1',
    data: {
        name: '사용자명',
        email: 'user@example.com',
        score: 85,
        createdAt: '2025-01-15',
    },
};

const tableColumns = [
    { key: 'name', name: '이름', type: 'text' },
    { key: 'email', name: '이메일', type: 'text' },
    { key: 'score', name: '점수', type: 'bar' },
    { key: 'createdAt', name: '생성일', type: 'date' },
];
</script>

의존성

  • PagingTableColumn, PagingTableRow 타입
  • 각종 셀 렌더러 컴포넌트