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-cli+webpack记事本项目创建

    下面是“vue-cli+webpack记事本项目创建”的完整攻略: 一、前置条件 在开始构建项目之前,请确保已经安装以下软件: Node.js: 版本>=8,用于运行vue-cli。 npm: Node.js自带的包管理工具。 二、创建vue-cli项目 打开命令行工具,输入以下命令安装vue-cli: npm install -g vue-cli 使…

    Vue 2023年5月29日
    00
  • vue中利用Promise封装jsonp并调取数据

    下面是关于“vue中利用Promise封装jsonp并调取数据”这个话题的详细讲解。 简介 在前端开发中,由于浏览器的安全策略限制,无法直接发送跨域请求。一般情况下,我们使用jsonp协议实现跨域请求。而在Vue中,我们可以通过Promise来对jsonp进行封装。 jsonp 在跨域请求中,我们经常会使用jsonp。jsonp本质上是利用script标签来…

    Vue 2023年5月28日
    00
  • Vue3 组件的开发详情

    Vue3 组件的开发详情 Vue3是Vue框架的新版本,相比于Vue2,Vue3在性能、开发体验、API设计等方面都有较大的提升。在Vue3中,组件的开发方式与Vue2基本一致,但也有一些变化。本文将详细讲解Vue3组件的开发过程,包括组件的定义、使用、响应式等细节。 组件的定义 在Vue3中,定义组件的方式与Vue2基本一致,只是Vue3使用的是defin…

    Vue 2023年5月27日
    00
  • 仿照Element-ui实现一个简易的$message方法

    这是一个完整的攻略,步骤如下: 步骤一:创建组件 首先,我们需要创建一个Vue组件来实现这个消息框功能。 我们可以在src/components目录下创建一个messageBox.vue文件,并在其中写入以下代码: <template> <div v-show="visible" :class="[‘messa…

    Vue 2023年5月29日
    00
  • SpringBoot实现滑块验证码验证登陆校验功能详解

    下面我将为你详细讲解“SpringBoot实现滑块验证码验证登陆校验功能”的完整攻略。 1. 概述 在本文中,我们将介绍使用SpringBoot来实现滑块验证码验证登陆校验功能的完整攻略。其中,我们使用了阿里云的滑块验证码服务和Spring Security框架来完成。 本文将分为以下几个部分: 阿里云滑块验证码服务介绍 SpringBoot集成阿里云滑块验…

    Vue 2023年5月28日
    00
  • VUE中data配置项详细解析

    VUE中data配置项详细解析 在Vue中,data是一个配置项,用于存储组件的数据。它可以是一个对象、一个函数或者一个Promise(在Vue 3中)。在这篇文章中,我们将深入了解data配置项,并说明它在Vue应用程序中的作用。 data是什么? data是一个Vue实例的配置项,它用于存储组件的数据。在一个Vue组件中,可以使用data来定义双向绑定的…

    Vue 2023年5月27日
    00
  • Vue计时器的用法详解

    Vue计时器的用法详解 在Vue.js中,我们可以使用计时器来执行一些定时任务,比如实现一些定时更新视图、缓慢滚动等效果。本篇文章将介绍Vue计时器的使用方法。 setInterval和clearInterval 在JavaScript中,我们可以使用setInterval函数来创建计时器,该函数将在指定的时间间隔内执行回调函数。使用clearInterva…

    Vue 2023年5月29日
    00
  • Vue项目总结之webpack常规打包优化方案

    那我们就来详细讲解一下“Vue项目总结之webpack常规打包优化方案”的完整攻略,包括以下内容: 一、Webpack基础知识 Webpack 是一个现代 JavaScript 应用程序的静态模块打包器。它会递归地构建一个依赖关系图,在这个过程中将每个模块视为一个节点,并将模块之间的依赖关系转换为图中的边。 我相信作为一个Vue开发者,你一定已经熟练掌握了W…

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