Я использую v-data-table (Vuetify 2.x) и хотел бы сделать следующее.
- закрепить итоговую строку таблицы
- сделать total always visible
- отрегулируйте общую ширину строки так же, как и заголовки
Я пытался закодировать вышеуказанные элементы, но не смог. Для №3 я использовал код v-slot:footer
, но я не могу настроить общую строку. Вот код.
<div id="app">
<v-app>
<v-data-table
:headers="headers"
:items="desserts"
:sort-by="['calories', 'fat']"
:sort-desc="[false, true]"
multi-sort
class="elevation-1"
:height="300"
>
<template v-slot:footer>
<tr>
<td style="font-weight:bold">total</td>
<td style="font-weight:bold">{{ total.calories }}</td>
<td style="font-weight:bold">{{ total.fat }}</td>
</tr>
</template>
</v-data-table>
</v-app>
</div>
new Vue({
el: '#app',
vuetify: new Vuetify(),
data () {
return {
headers: [
{
text: 'Dessert (100g serving)',
align: 'start',
sortable: false,
value: 'name',
},
{ text: 'Calories', value: 'calories' },
{ text: 'Fat (g)', value: 'fat' },
],
desserts: [
{
name: 'Frozen Yogurt',
calories: 200,
fat: 6.0,
},
{
name: 'Ice cream sandwich',
calories: 200,
fat: 9.0,
},
{
name: 'Eclair',
calories: 300,
fat: 16.0,
},
{
name: 'Cupcake',
calories: 300,
fat: 3.7,
},
{
name: 'Gingerbread',
calories: 400,
fat: 16.0,
},
{
name: 'Jelly bean',
calories: 400,
fat: 0.0,
},
{
name: 'Lollipop',
calories: 400,
fat: 0.2,
},
{
name: 'Honeycomb',
calories: 400,
fat: 3.2,
},
{
name: 'Donut',
calories: 500,
fat: 25.0,
},
{
name: 'KitKat',
calories: 500,
fat: 26.0,
},
],
total: {
calories: 3600,
fat: 105.1,
},
}
},
})
https://codepen.io/UKanamo/pen/GRpyOEP
Когда я использовал <template v-slot:body.append>
, я не мог сделать итоговое значение всегда видимым (# 2 ).
Как я могу закодировать элементы выше?