Anwenden der Komponente <x-safweb.table>
In der Blade View kann die Tabelle mit
<x-safweb.table :tableDef="$tableDef" :data="$data"/>
integriert werden.
Info:
Die Variable$tableDefund$datamüssen definiert sein.
Format von $data
array(
0 => [
'columName1' => 'value',
'columName2' => 'value',
'columName3' => 'value',
'columName_n' => 'value',
],
1 => [
'columName1' => 'value',
'columName2' => 'value',
'columName3' => 'value',
'columName_n' => 'value',
],
n
)
Format von $tableDef
Die Namensgebung ist Casesentitive. D.h. es sollten alle Feld/Spaltennamen einheitlich klein oder groß geschrieben werden.
Table-Definition hat vier Segmente:
- header - Tabellenkopf Label
- columns - Tabellen-Spalten Typ und Inhalte
- meta - Sonderangaben
- footer - Summen
array (
'header' => [
],
'columns' => [
],
'meta' => [
],
'footer' [
]
);
Format header
Hier werden den Columns nur Labels für den Tabellenkopf vergeben.
'columnname' => 'Label for this Column',
...
Format columns
Hier wird festgelegt, wie die Datenzeilen und spalten in der Tabelle dargestellt werden.
'columnname' => [
'type' => 'boolean|number|float|integer|string|date|year|currency|percent',
'fnedit' => 'url or link',
'fnedit_if_sub' => 'url_or_link',
'if_sub_key' => 'sub_key'
'fneditsub' => 'url_or_link',
'<color>_on' => '<field-value>',
'sub' => 'relationname',
'btnfn' => 'url_or_link',
'icon' => 'name'
],
'columnname' => [],
...
Precision
Bei Floatingpoint Types, kann eine precision zusätzlich angegeben werden. Damit wird die Anzahl der Nachkommastellen festgelegt.
'column' => ['type' => 'float,4']
fnedit - Edit-Link
Ist dieser Parameter gesetzt, wird auf jede Key-Spalte (getKeyName) der angegebene Link gelegt.
In Daten ohne Modell, muss 'meta' => 'keyname' angegeben sein.
fnedit_if_sub
Es kann ein Link auf eine Relation über deren ID zur Relation gelegt werden.
Muss zusammen mit if_sub_key definiert sein. Das ist die ID der Relation.
fneditsub
Ein beliebiger Link auf eine Relation. Hier wird nicht die Relations-ID benötigt wie bei fnedit_if_sub.
<color>_on
'orange_on' => 'GU'
Legt den Hintergund der Zelle fest, bei Auftreten eines bestimmten Wertes innerhalb der Zelle.
momentan ist nur orange_on fest implementiert.
sub
Hiermit kann über den Relationsnamen auf ein zugeordnetes Modell zugegriffen werden. Der Relationsname muss im Modell definiert sein.
$row->$key->{$columnData['sub']};
Format meta
Meta dient dazu, ergänzende Informationen an die Komponente zu übergeben. Momentan ist nur eine Funktion implementiert:
'keyname' => 'Spaltenname bei Array Daten'
Bei Modellen kann über getKeyName() die ID des Satzes ermitellt werden. Bei Arraydaten geht das nicht, daher muss das ID-Feld separat angegeben werden.
Format footer
Es werden die Spalten festgelegt, für die Berechnungen erfolgen sollen. Derzeit ist die Summenfunktion implementiert.
'feldname' => ['fn' => 'sum'],