ant design vue 表格table 默认勾选几项的操作

Ant Design Vue 表格(Table)默认勾选几项的操作,可以通过在表格数据中为需要默认勾选的行数据添加一个 selected 属性,并且在表格操作栏添加一个全选按钮,并将其与表格的 rowSelection 属性绑定起来即可实现。

以下是完整的实现步骤:

  1. 设置表格数据源

首先,需要设置表格的数据源,可以使用一个数组对象来模拟,示例代码如下:

data(){
  return {
    tableData: [
      {
        id: 1,
        name: '张三',
        age: 20,
        gender: 'male',
        selected: false  // 是否勾选
      },
      {
        id: 2,
        name: '李四',
        age: 21,
        gender: 'female',
        selected: true
      },
      {
        id: 3,
        name: '王五',
        age: 22,
        gender: 'male',
        selected: true
      }
    ]
  }
}

上述代码中,每个表格行数据包含一个 selected 属性,用来表示是否需要默认勾选,初值为 falsetrue

  1. 设置表格属性

接下来,需要设置表格的属性,包括 columnsdataSourcerowSelection 等,示例代码如下:

<template>
  <a-table
    :columns="columns"
    :dataSource="dataSource"
    :rowSelection="rowSelection">
    <span slot="title">
      <a-checkbox
        :indeterminate="indeterminate"
        :checked="checkAll"
        @change="checkAllChange">
        全选
      </a-checkbox>
    </span>
  </a-table>
</template>

<script>
export default {
  data() {
    return {
      columns: [
        {
          title: '姓名',
          dataIndex: 'name'
        },
        {
          title: '年龄',
          dataIndex: 'age'
        },
        {
          title: '性别',
          dataIndex: 'gender'
        }
      ],
      dataSource: [],
      selectedRowKeys: [],
      checkAll: false,
      indeterminate: false
    }
  },
  computed: {
    rowSelection() {
      return {
        selectedRowKeys: this.selectedRowKeys,
        onChange: this.onSelectChange,
        getCheckboxProps: record => ({
          disabled: record.name === '李四'
        })
      }
    }
  },
  methods: {
    onSelectChange(selectedRowKeys) {
      this.selectedRowKeys = selectedRowKeys
      this.checkAll = selectedRowKeys.length === this.tableData.length
      this.indeterminate =
        !this.checkAll && selectedRowKeys.length > 0
    },
    checkAllChange(e) {
      const checked = e.target.checked
      this.checkAll = checked
      this.indeterminate = false
      this.selectedRowKeys = checked
        ? this.tableData.map(item => item.id)
        : []
    }
  },
  mounted() {
    this.dataSource = this.tableData.map(item => ({
      ...item,
      key: item.id
    }))
    this.selectedRowKeys = this.tableData
      .filter(item => item.selected === true)
      .map(item => item.id)
  }
}
</script>

上述代码中,columns 定义了表格列,dataSource 定义了表格数据源,rowSelection 表示表格是否可以选择行,并绑定了一些事件。(需要注意的是,checkAllindeterminateselectedRowKeys 等变量都需要定义在 data 中。)

  1. 初始化数据

mounted 生命周期中,需要将表格数据源转换为表格可以直接使用的格式,并将需要默认勾选的行数据的 id 值存入 selectedRowKeys 数组中,示例代码如下:

mounted() {
  this.dataSource = this.tableData.map(item => ({
    ...item,
    key: item.id
  }))
  this.selectedRowKeys = this.tableData
    .filter(item => item.selected === true)
    .map(item => item.id)
}

以上就是 Ant Design Vue 表格默认勾选几项的操作的完整攻略,示例代码中,已经实现了全选和部分勾选的逻辑。如果需要实现其他功能,可以根据具体的需求做相应的修改。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ant design vue 表格table 默认勾选几项的操作 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • Vue首屏时间指标采集最佳方式详解

    让我来详细讲解“Vue首屏时间指标采集最佳方式详解”的完整攻略。 简介 随着移动端和PC端访问的流量增长,我们越来越关心用户访问网站的体验速度和网站的性能。而Vue SPA应用的首屏时间是衡量应用性能的一个重要指标。那么要如何采集这个指标呢?我将从以下方面为你介绍:Vue应用首屏时间的含义,如何利用Vue插件及生命周期钩子来实现首屏时间的自动监控,以及如何利…

    Vue 2023年5月29日
    00
  • Vue2.0实现自适应分辨率

    下面我来详细讲解“Vue2.0实现自适应分辨率”的完整攻略。 1. 什么是自适应分辨率? 自适应分辨率指随着设备分辨率的变化而自动适应显示效果,实现在不同分辨率设备上呈现相同的视觉效果。 2. 如何实现自适应分辨率? 实现自适应分辨率的关键是通过响应式设计方法,在不同尺寸的设备上渲染相应的页面视图。Vue2.0框架提供了多种方法实现自适应分辨率,包括: 2.…

    Vue 2023年5月28日
    00
  • ES6知识点整理之Proxy的应用实例详解

    ES6知识点整理之Proxy的应用实例详解 什么是Proxy Proxy是ES6中新增的一个用于拦截外部对对象的访问和改变操作的API,可以对目标对象进行劫持、代理和拦截。在Proxy对象被使用时,会对基础的API进行拦截,以达到监控、控制和修改其行为的目的。 Proxy的基本用法 当我们使用Proxy的时候,可以使用以下语法构造一个Proxy对象: let…

    Vue 2023年5月28日
    00
  • 深入理解Vue nextTick 机制

    深入理解Vue nextTick 机制 什么是 nextTick? 在 Vue 中,nextTick 是 Vue 实例提供的一个方法,可以将回调函数延迟到 DOM 更新之后执行。nextTick 适用于在需要对 DOM 做出修改后,需要立即执行某些操作的场景。 nextTick 方法在 Vue 生命周期的更新阶段之后执行,它触发时会让 Vue 在内部依次执行…

    Vue 2023年5月28日
    00
  • vue自定义加载指令最新详解

    Vue自定义加载指令最新详解 什么是Vue自定义指令 Vue自定义指令是一种定制化行为,可在Vue实例中定义新指令,以达到自定义DOM操作或对现有指令进行增强的目的。 Vue自定义指令分为全局和局部两种,全局指令在多个Vue实例中共享,而局部指令则只在特定的Vue实例中生效。 自定义指令的基本语法 Vue.directive(‘指令名’, { // 指令定义…

    Vue 2023年5月28日
    00
  • 源码揭秘为什么 Vue2 this 能够直接获取到 data 和 methods

    为什么 Vue2 this 能够直接获取到 data 和 methods? 原因就在于Vue内部通过一些技巧将 data 和 methods 注入到组件实例上。在组件初始化的过程中,Vue会将 data 和 methods 进行响应式处理,并且将其转换为可观察的对象和函数。在此过程中,Vue会通过 Object.defineProperty() 把 data…

    Vue 2023年5月27日
    00
  • vue之将echart封装为组件

    封装echarts为Vue组件并不难,只需要遵循以下步骤即可。 步骤1:安装echarts和vue-echarts 使用npm安装echarts和vue-echarts依赖: npm install echarts vue-echarts –save 步骤2:创建一个Echarts.vue组件 在src/components目录下创建一个Echarts.v…

    Vue 2023年5月28日
    00
  • vue项目代码格式规范设置参考指南

    下面我将详细讲解“vue项目代码格式规范设置参考指南”的完整攻略。 为什么需要代码格式规范? 在团队协作开发过程中,每个人的代码习惯存在差异,这样会导致代码风格混乱、不统一,给团队协作带来一定的困难,而代码格式规范可以统一代码格式,提高代码的可读性和可维护性,从而提高开发效率、降低维护成本。 选择合适的代码格式规范 选择一种合适的代码格式规范很重要,好的代码…

    Vue 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部