记录一个vue,ele-ui实现列表指定行数批量选中解决方法

本文主要是介绍记录一个vue,ele-ui实现列表指定行数批量选中解决方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这个问题卡了一天,试了好多方法总算试出来了:
 

<template><div><!-- 功能区卡片 --><el-card class="mb-4"><el-row class="mb-1"><el-col :span="12">请输入想勾选的专利起止条数:</el-col></el-row><!-- 输入框及确认按钮 --><el-row><el-col :span="4" class="ml-2"><el-input v-model="start" placeholder="请输入想勾选专利的起始行"></el-input></el-col><el-col :span="4" class="ml-2"><el-input v-model="end" placeholder="请输入想勾选专利的结束行"></el-input></el-col><el-col :span="4" class="ml-2"><el-button type="primary" plain @click="selectSpecifiedPatents">确认</el-button></el-col></el-row><el-row class="mb-2"><el-col :span="12"><el-button type="primary" plain @click="distributePatents">提交分发</el-button><el-button type="warning" plain @click="clearSelection">取消勾选</el-button></el-col></el-row></el-card><!-- 左右两个卡片 --><el-row :gutter="12"><!-- 左侧专利列表 --><el-col :span="12"><el-card class="mb-4"><!-- 添加全选按钮 --><el-table :data="patents" stripe height="400" ref="patentTable"><el-table-column type="index" label="全选"></el-table-column><el-table-column type="selection" width="50" ></el-table-column><el-table-column prop="patent_name" label="专利名称" class="title"></el-table-column></el-table></el-card></el-col><!-- 右侧专家列表 --><el-col :span="12"><el-card class="mb-4"><!-- 添加全选按钮 --><el-table :data="experts" stripe height="400"><el-table-column type="index" label="全选"></el-table-column><el-table-column type="selection" width="50" v-model="selectedExperts"></el-table-column><el-table-column prop="username" label="专家名称" class="title"></el-table-column></el-table></el-card>  </el-col></el-row></div>
</template><script>
import axios from 'axios';export default {data() {return {start: '',end: '',patents: [],experts: [],selectedPatents: [], // 存储选中的专利IDselectedExperts: [], // 存储选中的专家ID};},created() {this.fetchData();},methods: {fetchData() {axios.get('http://localhost:8888/app/get_patent_and_expert_list/').then(response => {this.patents = response.data.patents.map(patent => ({ ...patent, checked: false }));this.experts = response.data.experts;}).catch(error => {console.error('Error fetching data:', error);});},selectSpecifiedPatents() {const startIdx = parseInt(this.start) - 1;const endIdx = parseInt(this.end);if (!isNaN(startIdx) && !isNaN(endIdx) && startIdx >= 0 && endIdx > startIdx && endIdx <= this.patents.length) {this.$refs.patentTable.clearSelection(); // 清除之前的选中状态const selectedRows = this.patents.slice(startIdx, endIdx); // 获取起始和结束位置之间的专利行selectedRows.forEach(row => {this.$refs.patentTable.toggleRowSelection(row, true); // 将专利行设为选中状态});} else {alert('请输入有效的起始和结束序号!');}},clearSelection() {this.selectedPatents = [];this.selectedExperts = [];// 取消所有专利的选中状态this.patents = this.patents.map(patent => ({...patent,checked: false}));},distributePatents() {axios.post('http://localhost:8888/app/distribute_patents/', {selected_patents: this.selectedPatents,selected_experts: this.selectedExperts,}).then(response => {alert('分发成功!');}).catch(error => {console.error('Error distributing patents:', error);});},}
}
</script><style scoped>
.mb-4 {margin-bottom: 20px;
}
.mb-1 {margin-bottom: 20px;
}
.mb-2 {margin-top: 20px;
}
.ml-2 {margin-right: 10px;
}.title {font-size: 16px;
}
</style>

这篇关于记录一个vue,ele-ui实现列表指定行数批量选中解决方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/837132

相关文章

基于C++的UDP网络通信系统设计与实现详解

《基于C++的UDP网络通信系统设计与实现详解》在网络编程领域,UDP作为一种无连接的传输层协议,以其高效、低延迟的特性在实时性要求高的应用场景中占据重要地位,下面我们就来看看如何从零开始构建一个完整... 目录前言一、UDP服务器UdpServer.hpp1.1 基本框架设计1.2 初始化函数Init详解

Java中Map的五种遍历方式实现与对比

《Java中Map的五种遍历方式实现与对比》其实Map遍历藏着多种玩法,有的优雅简洁,有的性能拉满,今天咱们盘一盘这些进阶偏基础的遍历方式,告别重复又臃肿的代码,感兴趣的小伙伴可以了解下... 目录一、先搞懂:Map遍历的核心目标二、几种遍历方式的对比1. 传统EntrySet遍历(最通用)2. Lambd

Python字符串处理方法超全攻略

《Python字符串处理方法超全攻略》字符串可以看作多个字符的按照先后顺序组合,相当于就是序列结构,意味着可以对它进行遍历、切片,:本文主要介绍Python字符串处理方法的相关资料,文中通过代码介... 目录一、基础知识:字符串的“不可变”特性与创建方式二、常用操作:80%场景的“万能工具箱”三、格式化方法

springboot+redis实现订单过期(超时取消)功能的方法详解

《springboot+redis实现订单过期(超时取消)功能的方法详解》在SpringBoot中使用Redis实现订单过期(超时取消)功能,有多种成熟方案,本文为大家整理了几个详细方法,文中的示例代... 目录一、Redis键过期回调方案(推荐)1. 配置Redis监听器2. 监听键过期事件3. Redi

SpringBoot全局异常拦截与自定义错误页面实现过程解读

《SpringBoot全局异常拦截与自定义错误页面实现过程解读》本文介绍了SpringBoot中全局异常拦截与自定义错误页面的实现方法,包括异常的分类、SpringBoot默认异常处理机制、全局异常拦... 目录一、引言二、Spring Boot异常处理基础2.1 异常的分类2.2 Spring Boot默

基于SpringBoot实现分布式锁的三种方法

《基于SpringBoot实现分布式锁的三种方法》这篇文章主要为大家详细介绍了基于SpringBoot实现分布式锁的三种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、基于Redis原生命令实现分布式锁1. 基础版Redis分布式锁2. 可重入锁实现二、使用Redisso

SpringBoo WebFlux+MongoDB实现非阻塞API过程

《SpringBooWebFlux+MongoDB实现非阻塞API过程》本文介绍了如何使用SpringBootWebFlux和MongoDB实现非阻塞API,通过响应式编程提高系统的吞吐量和响应性能... 目录一、引言二、响应式编程基础2.1 响应式编程概念2.2 响应式编程的优势2.3 响应式编程相关技术

JAVA Calendar设置上个月时,日期不存在或错误提示问题及解决

《JAVACalendar设置上个月时,日期不存在或错误提示问题及解决》在使用Java的Calendar类设置上个月的日期时,如果遇到不存在的日期(如4月31日),默认会自动调整到下个月的相应日期(... 目录Java Calendar设置上个月时,日期不存在或错误提示java进行日期计算时如果出现不存在的

C#实现将XML数据自动化地写入Excel文件

《C#实现将XML数据自动化地写入Excel文件》在现代企业级应用中,数据处理与报表生成是核心环节,本文将深入探讨如何利用C#和一款优秀的库,将XML数据自动化地写入Excel文件,有需要的小伙伴可以... 目录理解XML数据结构与Excel的对应关系引入高效工具:使用Spire.XLS for .NETC

自定义注解SpringBoot防重复提交AOP方法详解

《自定义注解SpringBoot防重复提交AOP方法详解》该文章描述了一个防止重复提交的流程,通过HttpServletRequest对象获取请求信息,生成唯一标识,使用Redis分布式锁判断请求是否... 目录防重复提交流程引入依赖properties配置自定义注解切面Redis工具类controller