Skip to content

CStatistic

Thẻ chỉ số (KPI): nhãn, giá trị lớn, biến động và icon. Dùng cho hàng chỉ số đầu trang tổng quan.

Dùng khi: một con số tóm tắt cần nhìn thấy ngay — số đơn hôm nay, doanh thu tháng, số việc chờ xử lý.

Không dùng khi: số chỉ là một dòng trong bảng thông tin (dùng CDescriptions), hoặc cần so sánh nhiều mốc thời gian (cần biểu đồ — xem Trang tổng quan).

Giá trị đã định dạng

vue
<CStatistic label="Doanh thu tháng" :value="compact.format(2_430_000_000)" accent="success">
  <template #suffix>₫</template>
</CStatistic>

Component không định dạng số — trang tự quyết định: rút gọn (2,4 tỷ), đủ chữ số (2.430.000.000), hay làm tròn. Đặt đơn vị vào slot #suffix thay vì nối vào chuỗi giá trị, để cỡ chữ của đơn vị nhỏ hơn con số.

Biến động

vue
<CStatistic label="Đơn hôm nay" :value="128" :trend="12.4" />
<CStatistic label="Tỉ lệ huỷ" :value="'3,1%'" :trend="-3.1" />

trendphần trăm biến động: dương hiện mũi tên lên màu xanh, âm hiện mũi tên xuống màu đỏ.

Tăng không phải lúc nào cũng tốt

Màu chỉ phản ánh dấu của con số, không hiểu nghiệp vụ. "Tỉ lệ huỷ đơn tăng 12%" vẫn hiện xanh. Với chỉ số mà tăng là xấu, nói rõ trong nhãn ("Tỉ lệ huỷ — càng thấp càng tốt") hoặc bỏ trend.

Không có trend thì phần biến động ẩn hẳn — đừng truyền 0 chỉ để giữ chỗ.

Màu nhấn và icon

vue
<CStatistic label="Chờ xử lý" :value="17" accent="warning">
  <template #icon><IconClock :size="20" /></template>
</CStatistic>

accent nhận primary (mặc định), accent, success, warning, error, info — chọn theo ý nghĩa của chỉ số, không theo thẩm mỹ. Icon dùng @tabler/icons-vue, cỡ 20.

API

Props

TênKiểuMặc địnhMô tả
label*stringNhãn chỉ số, vd "Doanh thu tháng".
value*string | numberGiá trị hiển thị — trang tự định dạng số trước khi truyền vào.
trendnumberundefinedPhần trăm biến động; dương → tăng (xanh), âm → giảm (đỏ).
accent"primary" | "error" | "accent" | "success" | "warning" | "info"'primary'Màu nhấn của thẻ (viền, icon).

Slot

TênProps của slotMô tả
#iconanyIcon đầu thẻ (khuyến nghị
#suffixanyĐơn vị hiển thị sau giá trị, vd "đ", "%".

Bố cục hàng chỉ số

vue
<CRow :gutter="16">
  <CCol :xs="24" :sm="12" :lg="8">
    <CStatistic label="Đơn hôm nay" :value="summary.todayCount" />
  </CCol>
  <!-- … -->
</CRow>

Ba đến bốn thẻ một hàng là vừa; nhiều hơn thì người đọc không còn phân biệt được cái nào quan trọng. Luôn khai điểm ngắt để hàng chỉ số xếp dọc trên điện thoại.

Khả năng tiếp cận

  • Nhãn và giá trị đều là văn bản thật, trình đọc màn hình đọc theo thứ tự nhãn → giá trị → biến động.
  • Mũi tên biến động là ký tự, không phải màu đơn thuần — người không phân biệt được màu vẫn biết tăng hay giảm.
  • Icon chỉ trang trí; đừng đặt thông tin duy nhất vào icon.

Lưu ý

  • Chỉ số cần mốc thời gian rõ ràng trong nhãn: "Doanh thu tháng này" chứ không phải "Doanh thu".
  • Chưa có dữ liệu thì hiện , đừng hiện 0 — số 0 là một khẳng định.
  • Khối chỉ số nhạy cảm (doanh thu, chi phí) nên gating quyền bằng <Can> — xem Chặn theo quyền.

Liên quan