Skip to content

Commit 252a33b

Browse files
authored
Merge pull request #94 from UPONU-GmbH/feature/bodyslots
+ added body prepend and append slots
2 parents bc8ca54 + b285f88 commit 252a33b

File tree

2 files changed

+48
-1
lines changed

2 files changed

+48
-1
lines changed

src/components/DataTable.vue

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,25 @@
7676
</tr>
7777
</thead>
7878
<tbody
79-
v-if="items.length && headerColumns.length"
79+
v-if="headerColumns.length"
8080
class="vue3-easy-data-table__body"
8181
:class="{'row-alternation': alternating}"
8282
>
83+
<slot
84+
name="body.prepend"
85+
v-bind="{
86+
items: pageItems,
87+
pagination: {
88+
isFirstPage,
89+
isLastPage,
90+
currentPaginationNumber,
91+
maxPaginationNumber,
92+
nextPage,
93+
prevPage
94+
},
95+
headers: headersForRender
96+
}"
97+
/>
8398
<template
8499
v-for="(item, index) in pageItems"
85100
:key="index"
@@ -140,6 +155,21 @@
140155
</td>
141156
</tr>
142157
</template>
158+
<slot
159+
name="body.append"
160+
v-bind="{
161+
items: pageItems,
162+
pagination: {
163+
isFirstPage,
164+
isLastPage,
165+
currentPaginationNumber,
166+
maxPaginationNumber,
167+
nextPage,
168+
prevPage
169+
},
170+
headers: headersForRender
171+
}"
172+
/>
143173
</tbody>
144174
</table>
145175
<div

src/modes/Client.vue

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,16 @@
3535
@update-sort="updateSort"
3636
hide-footer
3737
>
38+
<template #body.prepend="body">
39+
<tr>
40+
<td
41+
v-for="(header, index) in body.headers"
42+
:key="index"
43+
>
44+
<span v-if="isDataHeader(header)">Coloumn {{ header.text }}</span>
45+
</td>
46+
</tr>
47+
</template>
3848

3949
<template #expand="item">
4050
<div style="padding: 15px">
@@ -59,6 +69,10 @@
5969
</div>
6070
</div>
6171
</template>
72+
73+
<template #body.append>
74+
<span>body.append</span>
75+
</template>
6276
</DataTable>
6377

6478
<div class="customize-footer">
@@ -229,6 +243,9 @@ const prevPage = () => {
229243
const updatePage = (paginationNumber: number) => {
230244
dataTable.value.updatePage(paginationNumber);
231245
};
246+
const isDataHeader = (header: Header) => {
247+
return !(header.value === 'checkbox' || header.value === 'index' || header.value === 'expand')
248+
}
232249
233250
// rows per page
234251
const rowsPerPageOptions = computed(() => dataTable.value?.rowsPerPageOptions);

0 commit comments

Comments
 (0)