vue自定义穿梭框(内容体+多选框)

article/2025/8/25 12:48:35

最近需要做一个资源分配的一个功能,然后用到了穿梭框,但是需要更多的功能控制。具体业务场景如下:需要同时可以分配查看和下载的权限。实现效果如下:

组件用的是: Ant Design Vue 的穿梭框

操作方式:在左侧列表展示未选择的数据,右侧展示已选的数据,同时可操作该条数据的查看和下载权限。只有当数据先选择到右侧时,才可以操作是否可以查看和下载的功能。

相关代码如下:

<a-transferv-model:target-keys="targetKeys":row-key="(record) => record.id":data-source="currentData":one-way="true":titles="['未选', '已选']":show-search="true"pagination@change="handleChange"class="transfer-box"><template class="content" #render="item"><div class="custom-item">{{ item.title }}</div><div class="opt-box" v-if="item.isOpt" @click.stop><a-checkbox:checked="item.isView"@change="handleCheckboxChange(item, 'isView')">查看</a-checkbox><a-checkbox:checked="item.isDown"@change="handleCheckboxChange(item, 'isDown')">下载</a-checkbox></div></template></a-transfer>

但是主要记录的是另外一个问题,在当前内存插槽中添加多选框的时候,在你点击多选框的时候会联动到当前这条数据的选中状态,你选择的其实是多选框的状态,而不是这条数据的选择状态。最主要的操作就是在当前多选框外层的父盒子上添加 @click.stop  阻止冒泡。就可以防止上面那种情况发生。注:当stop事件添加到这两个多选框上时,也是会发生冒泡的情况,最好直接添加到父盒子上,这样就完美解决这个问题。

--------------------------------------------------------------------------

但是还想说另外一个点,这是发现Ant Design Vue的一个好用的点,:one-way="true"。给穿梭框添加这个属性就会更好操作,直接在右侧的框中点击一个删除按钮就可以,不需要再进行向左的操作。

这里记录一下穿梭框优化的一个点,因为按照逻辑,左侧数据在未选择的情况下,是不可以进行查看和下载的权限操作的,这就需要对数据进行一次处理,可以看到我加了一个条件判断。 v-if="item.isOpt"。  需要进行的是,只有右侧选中的数据才有相关的操作。

// 显示操作框
const handleOption = (checkArr, direction) => {currentData.value.forEach((item) => {if (checkArr.includes(item.id)) {direction == 'left' ? (item.isOpt = false) : (item.isOpt = true);}});
};

这个方法主要是实现:当向左移动时,直接将其可操作权限取消。当然向右选中数据同理,也同样需要给其添加可操作的权限。

我看了一下elementplus的穿梭框没有one-way 这个属性,但是操作应该是同样的,只需要在列表数据中筛选已选中的数据,进行下一步的操作。比如右侧已经选中并且添加了可查看和可下载的数据,在其向左侧移动时,在将这条数据取消可操作的同时,也可以将其的两个状态同时设为未选中。这个可以根据自己的业务需求进行具体操作。

这里记录的是一个操作demo,碰到相关的操作时可以按照这个方法操作。


http://www.hkcw.cn/article/PudrgKKuLL.shtml

相关文章

各国竞争的下一代液晶技术:中国铁电液晶取得重大突破突破

一、全球下一代液晶技术发展格局 &#xff08;一&#xff09;韩国&#xff1a;OLED 技术持续领先&#xff0c;布局量子点与柔性显示 韩国作为显示产业强国&#xff0c;三星、LG 等企业在 OLED 领域占据全球主导地位。三星的 AMOLED 技术广泛应用于高端智能手机&#xff0c;其柔…

张亚中提打败赖清德唯一策略 促两岸和平共识

随着国民党主席朱立伦任期即将届满,台湾孙文学校总校长张亚中已于21日宣布参选党主席。张亚中表示,国民党需要一个政策与路线的大辩论,包括两岸关系的核心问题和定位。他认为,若无此策略,国民党难以凭借资历、战力或团结击败现任台湾地区领导人赖清德重返执政。张亚中在接…

《深度关系-从建立关系到彼此信任》

陈海贤老师推荐的书&#xff0c;花了几个小时&#xff0c;感觉现在的人与人之间特别缺乏这种深度的关系&#xff0c;但是与一个人建立深度的关系并没有那么简单&#xff0c;反正至今为止&#xff0c;自己好像没有与任何一个人建立了这种深度的关系&#xff0c;那种双方高度同频…

LLaMaFactory - 支持的模型和模板 常用命令

一、 环境准备 激活LLaMaFactory环境&#xff0c;进入LLaMaFactory目录 cd LLaMA-Factoryconda activate llamafactory 下载模型 #模型下载 from modelscope import snapshot_download model_dir snapshot_download(Qwen/Qwen2.5-0.5B-Instruct) 二、启动一个 Qwen3-0.6B…

数据结构——优先级队列(PriorityQueue)

1.优先级队列 优先级队列可以看作队列的另一个版本&#xff0c;队列的返回元素是由是由插入顺序决定的&#xff0c;先进先出嘛&#xff0c;但是有时我们可能想要返回优先级较高的元素&#xff0c;比如最大值&#xff1f;这种场景下就由优先级队列登场。 优先级队列底层是由堆实…

学习如何设计大规模系统,为系统设计面试做准备!

前言 在当今快速发展的技术时代&#xff0c;系统设计能力已成为衡量一名软件工程师专业素养的重要标尺。随着云计算、大数据、人工智能等领域的兴起&#xff0c;构建高性能、可扩展且稳定的系统已成为企业成功的关键。然而&#xff0c;对于许多工程师而言&#xff0c;如何有效…

负载电容匹配:晶振电路设计中被忽视的隐形杀手

在电子电路的复杂世界里&#xff0c;晶振电路作为频率控制的核心部件&#xff0c;其稳定性和准确性对整个系统的性能起着举足轻重的作用。晶振就如同电子设备的“心脏起搏器”&#xff0c;精准地控制着电路的运行节奏。然而&#xff0c;在众多影响晶振电路性能的因素中&#xf…

Python Day36 学习

对列表、字典、元组、集合进行总结 浙大疏锦行 摘自讲义 机器学习管道Pipeline Q1. 什么是机器学习管道Pipeline&#xff1f; 摘自讲义 Q. 关于“转换器”&#xff1f; 摘自讲义 # 导入StandardScaler转换器 from sklearn.preprocessing import StandardScaler# 初始化转换…

003 flutter初始文件讲解(2)

1.书接上回 首先&#xff0c;我们先来看看昨天最后的代码及展示效果&#xff1a; import "package:flutter/material.dart";void main(){runApp(MaterialApp(home:Scaffold(appBar:AppBar(title:Text("The World")), body:Center(child:Text("Hello…

深入理解C#中的LINQ:数据查询的终极利器

在现代软件开发中&#xff0c;数据处理和查询是几乎所有应用程序的核心需求。无论是从数据库检索数据、过滤内存中的集合&#xff0c;还是解析XML文档&#xff0c;开发者都需要高效、灵活的方式来操作数据。C# 提供的 LINQ&#xff08;Language Integrated Query&#xff0c;语…

133.在 Vue3 中使用 OpenLayers 实现画多边形、任意编辑、遮罩与剪切处理功能

&#x1f3ac; 效果演示截图&#xff08;先睹为快&#xff09; ✨ 功能概览&#xff1a; ✅ 鼠标画任意形状多边形&#xff1b; ✏️ 点击“修改边界”可拖动顶点&#xff1b; &#x1f7e5; 点击“遮罩”后地图除多边形区域外变红&#xff1b; ✂️ 点击“剪切”后仅显示选…

爬虫到智能数据分析:Bright Data × Kimi 智能洞察亚马逊电商产品销售潜力

前言 电商数据分析在现代商业中具有重要的战略价值&#xff0c;通过对消费者行为、销售趋势、商品价格、库存等数据的深入分析&#xff0c;企业能够获得对市场动态的精准洞察&#xff0c;优化运营决策&#xff0c;预测市场趋势、优化广告投放、提升供应链效率&#xff0c;并通…

2025年信息素养大赛 图形化编程复赛 官方样题绘制图形答案解析

今天给大家做一下2025年全国青少年信息素养大赛 图形化编程复赛、决赛官方样题1 编程题&#xff0c;绘制图形及答案解析。 题外话&#xff1a;2024年对Scratch画笔画图考的比较多&#xff0c;例如7月20日的复赛小高组就考了4道数形结合的画图编程题&#xff0c;点击查看&#x…

ONLYOFFICE文档API:编辑器的品牌定制化

在当今数字化办公时代&#xff0c;文档编辑器已成为各类企业、组织和开发者不可或缺的工具之一。ONLYOFFICE 文档提供的功能丰富且强大的文档编辑 API&#xff0c;让开发者能够根据自己的产品需求和品牌特点&#xff0c;定制编辑器界面&#xff0c;实现品牌化展示&#xff0c;为…

【unity游戏开发——编辑器扩展】EditorApplication公共类处理编辑器生命周期事件、播放模式控制以及各种编辑器状态查询

注意&#xff1a;考虑到编辑器扩展的内容比较多&#xff0c;我将编辑器扩展的内容分开&#xff0c;并全部整合放在【unity游戏开发——编辑器扩展】专栏里&#xff0c;感兴趣的小伙伴可以前往逐一查看学习。 文章目录 前言一、监听编辑器事件1、常用编辑器事件2、示例监听播放模…

企业如何制定互联网营销策略?

互联网环境的变化速度&#xff0c;让很多企业不懂得在这个流量时代该如何更好地抓住推广时机。企业在制定互联网营销策略的过程中&#xff0c;该如何让策略能够成功生效&#xff0c;令其为企业发展赋能呢&#xff1f;下面就让我们分四步来简单了解下。 一、明确品牌定位 在制定…

Windows10下搭建sftp服务器(附:详细搭建过程、CMD连接测试、连接失败问题分析解决等)

最终连接sftp效果 搭建sftp服务器 1、这里附上作者已找好的 freeSSHd安装包 ,使用它进行搭建sftp服务器。 2、打开freeSSHd安装包,进行安装 (1)、选择完全安装 (2)、安装完成后,对提示窗口选择关闭 (3)、安装完成后,提示是否安装私有密钥。我们选择"是" (4)、安…

第五十九节:性能优化-GPU加速 (CUDA 模块)

在计算机视觉领域,实时性往往是关键瓶颈。当传统CPU处理高分辨率视频流或复杂算法时,力不从心。本文将深入探索OpenCV的CUDA模块,揭示如何通过GPU并行计算实现数量级的性能飞跃。 一、GPU加速:计算机视觉的必由之路 CPU的强项在于复杂逻辑和低延迟任务,但面对图像处理中高…

Linux---系统守护systemd(System Daemon)

一、systemd 概述 1. 定位与作用 init 系统替代品&#xff1a;作为 Linux 系统的第 1 个进程&#xff08;PID1&#xff09;&#xff0c;替代传统的 SysVinit 和 Upstart&#xff0c;负责管理系统服务、启动流程、资源分配等。统一管理&#xff1a;通过 单元&#xff08;Unit&…

Lua语言学习

为什么要用Lua 大部分的手机系统出于安全考虑禁止从网络上下载代码后动态的将这些下载的代码加载到内存中执行 所以&#xff0c;当你更新游戏时&#xff0c;就必须让用户从手机市场下载更新版本的程序&#xff0c;游戏程序通常体积较大&#xff0c;重新下载不仅耗时还耗流量&…