目前遇到一个需求,需要在v-data-table 组件里面每一行都内置一个子表格,代码如下:
<v-data-table
data-cy="planMaking_dataTable_6"
v-model="tableSelected" //选中行
:items="orderListTableWithInd" //内容
:headers="workOrderHeaders" //标题头
:items-per-page="itemPerPage" //更改每页显示多少条目
:no-data-text="$t('noData')" //无数据提示
:show-select="openTableSelectShow" //如果使用默认行,在表头和行中显示选择复选框。
mobile-breakpoint="0" //用于设置何时在常规表格和移动视图之间切换。
:checkbox-color="tableCheckBoxColor" //设置复选框的颜色
item-key="productionOrderID"
hide-default-footer
disable-pagination
show-expand //在默认行中显示展开切换
calculate-widths //启用列宽计算。widths 属性将在部分作用域插槽内可用。
:expanded.sync="expanded" //扩展项目数组
expand-icon="mdi-menu-down" //用于展开按钮的图标。
disable-sort //完全禁用排序功能。
:loading="tableLoadOpen"
:loading-text="$t('loading')"
@dblclick:row="editWorkOrder" //双击编辑
class="mytable"
>
<!-- 內置table內容 -->
<template v-slot:expanded-item="{ headers, item }">
<td
:colspan="headers.length"
class="elevation-0"
>
<v-data-table
:data-cy="`planMaking_dataTable_7_${item.productionOrderNumber}`"
:headers="subHeaders"
:items="item.processOrderContent"
mobile-breakpoint="0"
hide-default-footer
disable-pagination
class="subtable"
:show-select="tableProcessSelect"
item-key="processOrderID"
:checkbox-color="tableCheckBoxColor"
v-model="tableProcessSelected"
>
<!-- a -->
<template v-slot:[`item.productionProcess`]="{ item }">
<span :data-cy="`planMaking_div_53_${item.processOrderID}`">
{{ item.a }}
</span>
</template>
<!-- b -->
<template v-slot:[`item.isCriticalProcess`]="{ item }">
<div :data-cy="`planMaking_div_92_${item.processOrderID}`">
{{ item.b }}
</div>
</template>
</v-data-table>
</td>
</template>
</v-data-table>