首页 > 其他分享 >ant design of vue 表格 默认,跨页勾选,翻页选择记忆勾选,数据回显勾选

ant design of vue 表格 默认,跨页勾选,翻页选择记忆勾选,数据回显勾选

时间:2023-09-11 19:46:09浏览次数:27  
标签:rowSelection vue 翻页 勾选 workerId selected record selectedRowKeys

需求

在使用ant design of vue 的table表格时需要让之前已选择的数据显示勾选状态,还要支持跨页勾选

思路

需要指定row-key绑定的值必须唯一
ant-design-vue的表格对于跨页勾选支持的非常友好,只要设置绑定一下rowKey就可以了,我这里绑定的是workerId

代码

<!-- 表格 -->
        <a-table
          class="FormData"
          :columns="columns"
          :data-source="data"
          :pagination="ipageination"
          :rowSelection="rowSelection"
          rowKey="workerId"
          bordered :scroll="{ y: 350 }"
          @change="handleTablePages"
          @showSizeChange="handleTableSizeChange"
        >
          <template slot="operation" slot-scope="text, record">
            <a-space>
              <!-- <a-button @click="edit(record)">编辑</a-button> -->
              <a-button @click="edit(record)">编辑</a-button>
              <a-button @click="delPersonnel(record)">删除</a-button>
         
            </a-space>
          </template>
        </a-table>

onSelect是点击勾选事件,selectedRowKeys是勾选的rowKey值的数组

在点击勾选事件里,判断是否勾选(selected)然后去操作rowSelection.selectedRowKeys,

这个数组是用来指定选中项的 key 数组

getCheckboxProps 是选择框的默认属性配置,这个函数可获得已选择的workerId的数组,让其数据勾选回显

data() {
	return{
        workerIdList: [],
		rowSelection: {
        	type: "checkbox",
	        // 不使用箭头函数就无法获取this
	        //单选
	        onSelect: (record, selected, selectedRows, nativeEvent) => {
	          // console.log(record, selected, selectedRows, nativeEvent)
	          const list = this.workerIdList
	          const selectedRowKeys = this.rowSelection.selectedRowKeys
	          console.log(list,selectedRowKeys);
	          if(!selected){
	          // 这里是取消勾选,删除对应的数组项
	            selectedRowKeys.map((x,item) => {
	              if(x === record.workerId){
	                selectedRowKeys.splice(item,1)
	              }
	            })
	            list.map((x,item) => {
	              if(x === record.workerId){
	                list.splice(item,1)
	              }
	            })
	            console.log(this.rowSelection.selectedRowKeys)
	          }
	          if(selected) {
	          	// 这里是点击勾选,添加workerId字段到selectedRowKeys数组里
	            this.rowSelection.selectedRowKeys.push(record.workerId)
	            console.log(this.rowSelection.selectedRowKeys)
	          }
	        },
	        //全选
	        onSelectAll: (selected, selectedRows, changeRows) => {
	          console.log(selected, selectedRows, changeRows)
	          if(selected) {
	            changeRows.map((x)=>{
	              this.rowSelection.selectedRowKeys.push(x.workerId)
	            })
	          }
	          if(!selected) {
	            const list = this.workerIdList
	            changeRows.map((item,k)=>{
	              list.map((x,i)=>{
	                if(x.workerId == item.workerId) {
	                  list.splice(i,1)
	                }
	              })
	            })
	            this.workerIdList = list
	            this.rowSelection.selectedRowKeys = []
	          }
	        },
        	selectedRowKeys: [],
	        getCheckboxProps:(record) => {
	          if(record.picked !== 0){
	            this.electedRowKeys.push(record.workerId)
	            this.workerIdList.push(record.workerId)
	            this.rowSelection.selectedRowKeys = this.workerIdList
	          }
	          return{
	            props:{
	              defaultChecked:record.picked !== 0,
	            },
	          }
	        },
      },
	}
}

标签:rowSelection,vue,翻页,勾选,workerId,selected,record,selectedRowKeys
From: https://www.cnblogs.com/cn-oldboy/p/17694313.html

相关文章

  • vue中使用xlsx插件前端读取解析excel文件
    问题描述工作中一般都是后端去解析excel数据,前端使用上传组件去将excel组件丢给后端,后端使用一些插件去解析excel(比如hutool工具类)不过有些情况下,前端也需要去做一些excel的解析,比如产品经理说,在上传excel文件之前,要做一个excel的图表化预览审核查看啥的,没问题的话,再丢给后端去......
  • 基于PHP vue2+element+ laravel8+ mysql开发的不良事件管理系统源码
    技术架构:PHP vue2+element+laravel8+mysql5.7+vscode不良事件上报系统通过“事前的人员知识培训管理和制度落地促进”、“事中的事件上报和跟进处理”、以及“事后的原因分析和工作持续优化”,结合预存上百套已正在使用的模板,帮助医院从对护理事件、药品事件、医疗器械事件、......
  • Vue、element图片上传回显
    需求:使用element的上传组件,上传图片,回显图片(可无实际上传:不调后台接口)   ......
  • Vue3入门学习---指令篇
    前言Vue3是一款非常流行的JavaScript框架,它提供了很多的指令来方便我们进行开发。在本篇博客中,我们将详细介绍Vue3的指令,让大家更好地了解这款框架的强大之处。正文开始1.v-bind指令v-bind指令用于绑定数据到DOM元素上,可以绑定任何JavaScript表达式。在Vue3中,我们可以使用简写......
  • 关于vue的 scoped
    前沿关于在vite中使用less|sassnpminstallless-Dnpminstallsass-D在style标签注明:<stylelang="less"></style><stylelang="scss"></style>scopedscoped实现组件的私有化,让当前的style只属于当前模块在DOM结构中可以看到,vue通过在DOM结构以及css样式......
  • 创建vue3的项目和目录结构讲解
    本节目标了解Vue3项目的结构学习Vue3项目的基本开发知识Vue3和Vue2的开发区别全局安装vue-clinpmi-g@vue/clivuecreatevue3-json-schema-form自定义vue3配置自定义配置:选择[自定义],通过方向键上下移动,空格选中,Enter确定,自定义配置中,您将会看到这些配置......
  • vue可以使用this.$set()来进行强制更新,进而解决问题
    可以使用this.$set()来进行强制更新,进而解决问题对象操作:三个参数:this.$set("改变的对象","改变的对象属性","值")数组操作: 三个参数:this.$set("数组","下标","值")......
  • 【源码】Vue.js 官方脚手架 create-vue 是怎么实现的?
    Vue.js官方脚手架create-vue是怎么实现的?摘要本文共分为四个部分,系统解析了vue.js官方脚手架create-vue的实现细节。第一部分主要是一些准备工作,如源码下载、项目组织结构分析、依赖分析、功能点分析等;第二部分分析了create-vue脚手架是如何执行的,执行文件的生成细节......
  • vue 页面导出为pdf与word
    vue页面导出为pdf与word一.导出为word 基于 docxtemplater 来导出word文档的方法1.安装引用依赖//安装docxtemplaternpminstalldocxtemplaterpizzip--save//安装jszip-utilsnpminstalljszip-utils--save//安装jszipnpminstalljszip--save//安装......
  • 使用Github Action在Github Pages上部署vue页面
    GithubAction部分:name:NodeJSon:push:branches:["master"]#SetspermissionsoftheGITHUB_TOKENtoallowdeploymenttoGitHubPagespermissions:contents:write#Allowonlyoneconcurrentdeployment,skippingrunsqueuedbetwee......