Vuetify数据表选择所有禁用复选框

sla*_*ast 3 checkbox datatable selectall vuetify.js disable

我在使用选择行的数据表时遇到问题。我有禁用复选框的行,但无论如何选择都会检查它们......这是一个错误吗?

我做了一个代码笔:https ://codepen.io/slayerbleast/pen/jOWjzWJ

如何修复 selectAll 复选框只检查可用的复选框?

模板:

<v-content>
    <v-data-table
        v-model="selected"
        :headers="headers"
        :items="desserts"
        item-key="name"
        show-select
    >
    <template #item="{ item }">
        <tr>
            <td>
                <v-checkbox
                    :disabled="item.calories > 250"
                    class="pa-0 ma-0"
                    :ripple="false"
                    v-model="selected"
                    :value="item"
                    hide-details
                >
                </v-checkbox>
            </td>
            <td>{{item.name}}</td>
            <td>{{item.calories}}</td>
            <td>{{item.fat}}</td>
            <td>{{item.carbs}}</td>
            <td>{{item.protein}}</td>
            <td>{{item.iron}}</td>
        </tr>
    </template>
    </v-data-table>
</v-content>
Run Code Online (Sandbox Code Playgroud)

数据:

data: () => ({
        selected: [],
            headers: [
          {
            text: 'Dessert (100g serving)',
            align: 'start',
            sortable: false,
            value: 'name',
          },
          { text: 'Calories', value: 'calories' },
          { text: 'Fat (g)', value: 'fat' },
          { text: 'Carbs (g)', value: 'carbs' },
          { text: 'Protein (g)', value: 'protein' },
          { text: 'Iron (%)', value: 'iron' },
        ],
        desserts: [...]
})
Run Code Online (Sandbox Code Playgroud)

Gae*_* C. 7

v-data-table组件上,您可以设置一个selectable-key属性:

每个项目的属性,用于确定它是否可选

如果未指定,则isSelectable默认使用。您可以做的是创建一个计算属性来将此信息添加到您的desserts属性中,如下所示:

computed: {
  enrichedDesserts() {
    return this.desserts.map(x => ({ ...x, isSelectable: x.calories <= 250 }));
  }
}
Run Code Online (Sandbox Code Playgroud)

然后更改items您的属性v-data-table

<v-data-table :items="enrichedDesserts">
Run Code Online (Sandbox Code Playgroud)

请参阅此Codepen以获取工作示例。