我在v卡上有一个Vuetify v-data-table,但我无法获得正确的布局。
因此,这是一个可配置的2x2布局(应该使用分页功能,无需滚动)。
<template>
<v-layout column>
<v-layout row>
<DashboardItem :item="itemTypes[0]" class="xs6" />
<DashboardItem :item="itemTypes[1]" class="xs6" />
</v-layout>
<v-layout row>
<DashboardItem :item="itemTypes[2]" class="xs6" />
<DashboardItem :item="itemTypes[3]" class="xs6" />
</v-layout>
</v-layout>
</template>
用户可以将项目配置为2x2布局。这是2x2的版式,因此预计总共为4个项目,所有4个项目的尺寸均相同。
这是DashboardItem的样子:
<template>
<v-flex>
<v-card height="100%">
<Statistics v-if="item==='Statistics'" />
<Alarms v-if="item==='Alerts'" />
<Devices v-if="item==='Devices'" />
<Heartbeat v-if="item==='Heartbeat'" />
</v-card>
</v-flex>
</template>
因此,根据项目类型,我们显示该类型的组件。 现在变得有趣了(至少对我而言)。这是警报组件。这是标题+显示数据的表格。
<template>
<v-layout column child-flex>
<v-card-title>{{ $t('biz.general.items.alarms') }}</v-card-title>
<v-layout ref="tableDiv" style="height:90%;" column v-resize="onResize">
<v-data-table :headers='headers' :items='alarms' :pagination.sync='pagination' hide-actions>
<template slot="items" slot-scope="props">
<td>{{ props.item.fridgeDisplayName }}</td>
<td>{{ props.item.alarmTime | formatDateTime }}</td>
<td>{{ props.item.state }}</td>
<td>{{ props.item.task }}</td>
</template>
</v-data-table>
</v-layout>
<div class="text-xs-center pt-2">
<v-pagination circle v-model="pagination.page" :length="pages"></v-pagination>
</div>
</v-layout>
</template>
这种作品。但是有问题:
我如何强制 2x2布局,而又不使v-data-table推高其v-card的高度?
这是一个具有预期布局的CodePen: https://codepen.io/saschaausulm/pen/xQwawJ
这显示了问题: https://codepen.io/saschaausulm/pen/KrdBZd
更新 您可以调整表格的大小。
小: Small
大: After resize
基本问题是v卡无法保持其高度。
谢谢
Sascha
答案
答案比预期的要怪,但史蒂芬·斯宾金(Steven Spungin)的答案有所帮助。
推送的是v-data-table。因此,设置桌子的高度会有所帮助。 和奇怪的部分: 我正在设置
style =“ height:5px;”
在v-data-table上。
然后,v-data-table停留在v-card中。并在用户更改窗口大小时按预期通过v-resize调整大小/分页。
答案 0 :(得分:1)
最新答案:
数据表高度固定,不灵活。
要变通解决此问题,请在以下两个容器中向代码添加一些显式的灵活性:
<v-app id="inspire">
<v-container fill-height>
<v-layout column fill-height>
<v-layout row style='flex: 1 1 50%; overflow: hidden'>
...
<v-layout row style='flex: 1 1 50%; overflow: hidden'>
然后允许数据表的父卡滚动。
<v-card height="100%" style='overflow:auto'>
这里是一个Codepen。 https://codepen.io/Flamenco/pen/jQbgpG
根据我之前的回答,您还可以通过使用样式/高度,样式/最大高度或通过设置组件上显示的最大行数来设置v-data-table的大小。