Zum Inhalt springen

Zusätzliche Spalten

Zusätzliche Spalten ermöglichen es Ihnen, berechnete oder abgeleitete Daten in der Sammlungstabelle anzuzeigen, ohne sie in der Datenbank zu speichern.

import { defineCollection } from "@rebasepro/cms-types";
const ordersCollection = defineCollection({
slug: "orders",
name: "Orders",
table: "orders",
properties: {
items: {
name: "Items",
type: "array",
of: {
name: "Item",
type: "map",
properties: {
price: { name: "Price", type: "number" },
quantity: { name: "Quantity", type: "number" }
}
}
},
status: { name: "Status", type: "string" }
},
admin: {
additionalFields: [
{
key: "total_display",
name: "Total",
Builder: ({ entity }) => {
const total = entity.values.items?.reduce(
(sum, item) => sum + (item.price * item.quantity), 0
) ?? 0;
return <span>${total.toFixed(2)}</span>;
}
},
{
key: "status_badge",
name: "Status",
Builder: ({ entity }) => {
const color = entity.values.status === "completed" ? "green" : "orange";
return (
<span style={{ color }}>
{entity.values.status}
</span>
);
},
dependencies: ["status"] // Re-render when these fields change
}
]
}
});
Eigenschaft Typ Beschreibung
entity Entity Die Entität für diese Zeile
context RebaseContext Voller Rebase-Kontext