Giao diện
Câu hỏi thường gặp — Number Format Field
Sử dụng chung
Định dạng có ảnh hưởng đến tính toán không?
Không. Giá trị lưu trong Database luôn là raw number (số thô). Định dạng chỉ áp dụng khi hiển thị trên UI. Mọi phép tính, filter, sort đều thao tác trên giá trị gốc.
Có thể thay đổi định dạng sau khi tạo field không?
Có. Vào Collection Manager → chọn field → thay đổi Precision hoặc bật/tắt pretty format. Dữ liệu đã lưu không bị ảnh hưởng vì DB lưu raw number.
Sự khác biệt giữa Number và Percent là gì?
| Đặc điểm | Number | Percent |
|---|---|---|
| Hiển thị | Số với dấu phân cách | Số kèm ký hiệu % |
| Lưu trữ | Giá trị gốc | Giá trị decimal (chia 100) |
| Ví dụ: nhập 50 | DB lưu 50 | DB lưu 0.5 |
| Database type mặc định | double | float |
| Validation | min/max, integer/odd/even, regex | min/max (decimal), integer |
Tại sao số hiển thị khác nhau giữa các người dùng?
Plugin sử dụng locale từ localStorage (DIGIFORCE_LOCALE). Nếu người dùng A đặt vi-VN và người dùng B đặt en-US, cùng một giá trị sẽ hiển thị khác:
| Locale | Giá trị 1234567.89 | Hiển thị |
|---|---|---|
vi-VN | 1234567.89 | 1.234.567,89 |
en-US | 1234567.89 | 1,234,567.89 |
de-DE | 1234567.89 | 1.234.567,89 |
Đây là hành vi đúng — mỗi locale có quy ước riêng.
Cấu hình
Precision "step" hoạt động thế nào?
Step quyết định độ chính xác thập phân:
| Step | Precision | Ví dụ (en-US) |
|---|---|---|
1 | 0 chữ số thập phân | 1,234,568 |
0.1 | 1 chữ số | 1,234,567.9 |
0.01 | 2 chữ số | 1,234,567.89 |
0.001 | 3 chữ số | 1,234,567.890 |
0.0001 | 4 chữ số | 1,234,567.8900 |
0.00001 | 5 chữ số | 1,234,567.89000 |
Pretty format là gì?
Khi bật "Use pretty format", plugin tự động:
- Thêm dấu phân cách hàng nghìn theo locale
- Cắt/padding thập phân theo precision
- Hiển thị đẹp trong cả input mode và read-only mode
Khi tắt, input hiển thị số thô không có dấu phân cách.
Có hỗ trợ prefix/suffix (VD: "$" hoặc "VND") không?
Plugin hiện tại không có tùy chọn prefix/suffix tùy chỉnh trong UI cấu hình. Tuy nhiên:
- Field Percent tự động thêm suffix
% - Nếu cần prefix/suffix tùy chỉnh, bạn có thể mở rộng component hoặc sử dụng Schema customization
Lỗi thường gặp
Số hiển thị sai sau khi nhập
Kiểm tra:
- Precision phù hợp chưa? — Nếu step là
1(integer), số1234.56sẽ bị làm tròn - Locale đúng chưa? — Dấu phẩy và dấu chấm có ý nghĩa khác nhau giữa en-US và vi-VN
- Database type phù hợp? —
floatcó thể mất precision với số lớn, dùngdecimalnếu cần chính xác cao
Validation "Maximum must greater than minimum" hiện ra liên tục
Lỗi này xảy ra khi bạn đặt giá trị Maximum nhỏ hơn Minimum trong cấu hình field. Đảm bảo Maximum > Minimum.
Percent field hiển thị giá trị lạ (VD: nhập 50 nhưng thấy 5000%)
Kiểm tra xem bạn có đang ghi dữ liệu trực tiếp vào DB (qua API hoặc import) không. Nhớ rằng Percent field lưu dạng decimal:
- Nhập
50trên UI → DB lưu0.5 - Nếu bạn ghi
50trực tiếp vào DB → UI hiển thị5000%
Giải pháp: Khi ghi dữ liệu qua API, chia cho 100 trước khi lưu.
Dấu phân cách không đúng theo locale
Plugin đọc locale từ localStorage.getItem('DIGIFORCE_LOCALE'). Nếu giá trị này không được set hoặc set sai, plugin sẽ dùng mặc định en-US. Kiểm tra:
javascript
// Trong browser console
localStorage.getItem('DIGIFORCE_LOCALE');
// Nên trả về "vi-VN" hoặc locale mong muốn