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

yizhihongxing

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日

相关文章

  • vuex state中的数组变化监听实例

    关于Vuex state中的数组变化监听,可以使用Vue提供的watch方法监听数组变化。 先来简单介绍一下实现的方法: 在state定义的数组数据前加上$符号,例如:$list 监听数据的方式:    // 监听数据变化    watch: {        ‘$store.state.list’: {            handler: functi…

    Vue 2023年5月29日
    00
  • vue结合Axios+v-for列表循环实现网易健康页面(实例代码)

    下面是详细讲解“vue结合Axios+v-for列表循环实现网易健康页面(实例代码)”的完整攻略: 一、环境配置 首先,我们需要在本地环境中安装Vue.js和Axios。可以通过以下命令进行安装: npm install vue axios –save-dev 接下来,在Vue的入口文件中引入Axios: // main.js import Vue fro…

    Vue 2023年5月28日
    00
  • Vue+ssh框架实现在线聊天

    让我来详细讲解“Vue+ssh框架实现在线聊天”的完整攻略。 1. 项目简介 本项目是使用Vue+ssh框架实现的在线聊天应用。其中,Vue.js是一套用于构建用户界面的渐进式框架,能够通过组合不同的模块来实现一个完整的应用程序;而ssh框架则是由spring、springMVC和hibernate三大框架组成的一种开发模式。 2. 项目准备 2.1 环境准…

    Vue 2023年5月28日
    00
  • Vue路由前后端设计总结

    我来详细讲解一下“Vue路由前后端设计总结”的完整攻略。 一、Vue路由前后端设计总结 本文将介绍如何设计Vue项目的前后端路由,以满足不同页面、不同用户身份不同的访问权限,分为以下几个步骤。 定义路由:编写前端路由文件和后端接口文件; 路由守卫:定义全局路由守卫,并在需要的路由中添加局部路由守卫; 前后端交互:前端调用后端接口,获取用户权限信息; 权限校验…

    Vue 2023年5月29日
    00
  • 利用Vue Native构建移动应用的全过程记录

    利用Vue Native构建移动应用的全过程记录 Vue Native 是一个利用 Vue.js 和 React Native 建立移动应用程序的框架,使开发人员拥有更好的体验和开发效率。 准备工作 安装 Node.js 和 npm 安装 Vue CLI 和 React Native 命令行工具 (CLI) 安装 Expo 命令行工具 编辑器:推荐使用 Vi…

    Vue 2023年5月27日
    00
  • Vue自定义指令写法与个人理解

    下面是Vue自定义指令的完整攻略: 一、Vue自定义指令基本写法 Vue自定义指令可以用来扩展模板的功能,让Vue在处理DOM元素时更加灵活、方便。下面是Vue自定义指令的基本写法: Vue.directive(‘自定义指令名称’,{ // 指令的定义 bind:function(el, binding, vnode) { // 指令与元素绑定时发生的操作 …

    Vue 2023年5月27日
    00
  • 使用vue插件axios传数据的Content-Type及格式问题详解

    使用Vue插件axios传送数据时,我们需要了解有关Content-Type的知识。Content-Type是HTTP头部中的一个域,表示发送数据的媒体类型和字符集。在传送数据时,我们需要根据接受方所期望的Content-Type的类型,构造对应的数据格式来传输数据。 简单来说,如果请求的Content-Type为‘application/json’, 则P…

    Vue 2023年5月28日
    00
  • 理解Proxy及使用Proxy实现vue数据双向绑定操作

    理解 Proxy 在 JavaScript 中,对象是一种引用类型,对象的属性只是指向变量的一个指针。因为这个特性,我们可以获得代理模式的能力:在对象创建之后,可以创建一个代理来控制对象的访问或操作。 Proxy 对象用于定义基本操作的自定义行为(如属性查找,赋值,枚举,函数调用等)。这样,我们可以在读取或修改对象属性时插入其他逻辑,例如数据绑定。 在使用 …

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