Tài liệu
Hàng đợi vận hành
Hàng đợi vận hành Ví dụ này xây dựng trang hàng đợi cho các bản ghi cần người xử lý. Bảng Tạo review_case . Trường hoặc quan hệ Kiểu Ghi chú title string Bắt buộc status select open , in_review , resolved priority select low , normal , high assignee quan hệ many-to-one tới enfyra
Hàng đợi vận hành
Ví dụ này xây dựng trang hàng đợi cho các bản ghi cần người xử lý.
Bảng
Tạo review_case.
| Trường hoặc quan hệ | Kiểu | Ghi chú |
|---|---|---|
title |
string | Bắt buộc |
status |
select | open, in_review, resolved |
priority |
select | low, normal, high |
assignee |
quan hệ many-to-one tới enfyra_user |
Không bắt buộc |
payload |
simple-json | Không bắt buộc |
Mẫu truy vấn
Dùng filter phía server và phân trang có giới hạn. Không lấy một giới hạn lớn tùy ý rồi lọc trong trình duyệt.
const page = ref(1);
const status = ref('open');
const search = ref('');
const query = computed(() => ({
filter: JSON.stringify({
_and: [
{ status: { _eq: status.value } },
search.value
? { title: { _contains: search.value } }
: {}
]
}),
fields: 'id,title,status,priority,assignee.email,createdAt',
sort: 'priority,-createdAt',
page: page.value,
limit: 25,
meta: 'filterCount'
}));
Thao tác nhận xử lý
Tạo POST /review-cases/claim.
if (!@USER?.id) {
@THROW401();
}
const id = @BODY.id;
if (!id) {
@THROW400('id is required');
}
const updated = await #review_case.update({
id,
data: {
status: 'in_review',
assignee: { id: @USER.id }
}
});
return updated.data?.[0] || null;
Dùng PermissionGate quanh nút nhận xử lý và yêu cầu quyền POST /review-cases/claim.