el-transfer穿梭框使用(传值、清空)

news2025/1/17 1:14:48

一、组件的使用

   <el-transfer
          ref="myTransfer"
          filterable
          :titles="['待选用户', '已选用户']"
          :filter-method="filterMethod"
          filter-placeholder="请输入关键字查询"
          v-model="selectedUserIds"
          :data="userData"
          :props="{
            key: 'id',
            label: 'userName',
            disabled: 'customDisabled',
          }"
        >
        </el-transfer>

1.element-ui提供了一些属性

1):titles="['待选用户', '已选用户']"

2) 是否可搜索

filterable是否可搜索booleanfalse
filter-placeholder搜索框占位符string请输入搜索内容
filter-method自定义搜索方法function
  filterMethod(query, item) {
      return item.userName.indexOf(query) > -1;
    },

 3)props数据

Transfer 的数据通过 data 属性传入。数据需要是一个对象数组,每个对象有以下属性:key 为数据的唯一性标识,label 为显示文本,disabled 表示该项数据是否禁止转移。

从接口获取到的右侧穿梭框的数据,待选用户数据:

dataTransfer 的数据源array[{ key, label, disabled }]

:data="userData"

props数据源的字段别名object{key, label, disabled}

 :props="{

            key: 'id',

            label: 'userName',

            disabled: 'customDisabled',//或  disabled: 'disabled'

          }"

4)禁用

查看时我们常常需要使用禁用状态。 在组件el-transfer中有些特殊,因为他禁用的不是整个组件,而是每条数据。注意,disabledel-transfer 组件自带的 props,而不是一个额外的自定义字段。在使用 el-transfer 组件时,可以通过 props 来控制项目是否禁用,而不需要新增一个名为 disabled 的自定义字段。

有两种方法:

   方法一:
if (!this.editable) {
        this.userData.forEach((item) => {
          item.customDisabled = true;
        });
      } else {
        this.userData.forEach((item) => {
          item.customDisabled = false;
        });
      }
    },

方法二:
    updateUserDataWithDisabled() {
      this.userData = this.userData.map((item) => {
        return {
          ...item,
          disabled: !this.editable,
        };
      });
    },

1. setCustomDisabledState() 方法:

优点:

  • 通过为每个项目设置一个额外的字段 customDisabled,可以更明确地控制项目的禁用状态。
  • 在不同的状态下,可以更加细致地控制每个项目是否禁用。

缺点:

  • 需要为每个项目添加一个额外的字段 customDisabled,可能会稍微增加数据的复杂性。

2. updateUserDataWithDisabled() 方法:

优点:

  • 利用了 Vue 的响应式数据特性,只需修改 userData 数组中的 disabled 字段,就会自动更新视图。
  • 使用 map 方法在一次迭代中更新了所有项目的禁用状态。

缺点:

  • 修改了 userData 数组中的 disabled 字段,如果在其他地方也使用了 userData,可能会对其他代码产生影响。
  • 注意,:props="{ key: 'id', label: 'userName', disabled: 'disabled', }" this.disabled = false;这样和:props="{ key: 'id', label: 'userName', disabled: 'false', }写没有作用 ,因为el-transfer 组件的 props 中的 disabled 字段是用来控制项目是否被禁用的,但它不是用来设置组件自身的禁用状态的。要遍历给每一条数据都加上。

2.查看编辑时,右侧穿梭框展示之前已选的,接口返回的数据

 可能会遇到从后台获取的数据全部都显示在了左边框中,右边框没有数据,因为 v-model 绑定的selectedUserIds接收的是 key 的数组

 我之前因为直接把所有的字段都给他了,所以右边框没有数据。

这样传入正确的就可以了。

3.清空搜索框、清空穿梭框选中数据

  if (this.$refs.myTransfer) {
        this.$refs.myTransfer.$children['0'].query = [];
        this.$refs.myTransfer.$children['3'].query = [];
        this.$refs.myTransfer.$children['0'].checked = [];
        this.$refs.myTransfer.$children['3'].checked = [];
      }

1)清空搜索框

  if (this.$refs.myTransfer) {
        this.$refs.myTransfer.$children['0'].query = [];
        this.$refs.myTransfer.$children['3'].query = [];
        
      }

<el-transfer>组件中,使用了ref="myTransfer"来给组件命名为"myTransfer"。这样,就可以通过this.$refs.myTransfer来访问这个组件。

这段代码中,this.$refs.myTransfer代表一个Vue组件的引用。然后通过$children数组来访问这个组件的子组件。

$children数组中的索引对应了模板中子组件的顺序。因此,['0']代表第一个子组件,['3']代表第四个子组件。注意,这种索引方式依赖于子组件在模板中的位置,如果你的模板结构发生变化,这些索引可能会失效。

这里['0']['3']可能代表了<el-transfer>组件中的不同区域,每个区域可能具有不同的查询条件(query)和选中项(checked)。

当前代码的组件允许用户在两个列表之间移动元素。有两个区域:一个是"待选用户",另一个是"已选用户"。这些区域对应着组件的子组件。可能是第一个子组件($children['0'])代表"待选用户"区域,第四个子组件($children['3'])代表"已选用户"区域。这是根据组件的模板结构决定的。

如果需要更稳定和可维护的方式来操作子组件,可以考虑使用ref来给子组件命名,然后通过命名来访问子组件,而不是通过索引。

2)清空选中项

  if (this.$refs.myTransfer) {
       
        this.$refs.myTransfer.$children['0'].checked = [];
        this.$refs.myTransfer.$children['3'].checked = [];
      }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/896512.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DyLoRA:使用动态无搜索低秩适应的预训练模型的参数有效微调

又一个针对LoRA的改进方法&#xff1a; DyLoRA: Parameter-Efficient Tuning of Pretrained Models using Dynamic Search-Free Low Rank Adaptation https://arxiv.org/pdf/2210.07558v2.pdf https://github.com/huawei-noah/KD-NLP/tree/main/DyLoRA Part1前言 LoRA存在…

秋招刷题网站推荐

codefun2000.com 最近准备秋招发现了这个网站&#xff0c;里面的题目都是acm输入输出的&#xff0c;包括了最近开的一些公司的笔试真题&#xff0c;秋招笔试就靠这个练习了。 而且里面还有博客和思维导图&#xff0c;讲解比较全面&#xff0c;还能在评论区求助大佬解答。

基于 Debian 12 的MX Linux 23 正式发布!

导读MX Linux 是基于 Debian 稳定分支的面向桌面的 Linux 发行&#xff0c;它是 antiX 及早先的 MEPIS Linux 社区合作的产物。它采用 Xfce 作为默认桌面环境&#xff0c;是一份中量级操作系统&#xff0c;并被设计为优雅而高效的桌面与如下特性的结合&#xff1a;配置简单、高…

数据化决策,揭秘BI工具与数据可视化的魔力

在当今数据驱动的时代&#xff0c;企业越来越需要深入了解自身运营情况&#xff0c;以便做出明智的决策和战略规划。在这个背景下&#xff0c;商业智能&#xff08;Business Intelligence&#xff0c;简称BI&#xff09;工具和数据可视化技术逐渐崭露头角&#xff0c;成为企业成…

tcpip协议族

现在Internet(因特网&#xff09;使用的主流协议族是TCP/IP协议族&#xff0c;它是一个分层、多协议的通信体系。TCP/IP协议族是一个四层协议系统&#xff0c;自底而上分别是数据链路层、网络层、传输层和应用层。每一层完成不同的能&#xff0c;且通过若干协议来实现&#xff…

CW4-3A-S(004)CW4-6A-S(004)CW4-10A-S(004)CW4-20A-S(004)CW4-30A-S(004)端子台式滤波器

CW4L3-3A-S(003) CW4L3-6A-S(003) CW4L3-10A-S(003) CW4L3-20A-S(003) CW4L3-30A-S(003)端子台式滤波器 CW4-3A-S(004) CW4-6A-S(004) CW4-10A-S(004) CW4-20A-S(004) CW4-30A-S(004)端子台式滤波器 CW4L4-3A-R CW4L4--6A-R CW4L4-10A-R CW4L4-20A-R CW4L4-30A-R端…

字节二面:10Wqps会员系统,如何设计?

说在前面 在尼恩的&#xff08;50&#xff09;读者社区中&#xff0c;经常遇到一个 非常、非常高频的一个面试题&#xff0c;但是很不好回答&#xff0c;类似如下&#xff1a; 千万级数据&#xff0c;如何做系统架构&#xff1f; 亿级数据&#xff0c;如何做系统架构&#xf…

工业物联网网关是什么?有什么作用?

工业物联网网关是工业领域中的一种重要设备&#xff0c;它在工业物联网系统中充当桥梁和连接器的角色。作为边缘计算的关键组件之一&#xff0c;工业物联网网关用于实现工业设备、传感器、PLC、DCS、OPC等各种设备的数据采集、处理、转发和控制。它在工业物联网系统中发挥着关键…

BEiT: BERT Pre-Training of Image Transformers 论文笔记

BEiT: BERT Pre-Training of Image Transformers 论文笔记 论文名称&#xff1a;BEiT: BERT Pre-Training of Image Transformers 论文地址&#xff1a;2106.08254] BEiT: BERT Pre-Training of Image Transformers (arxiv.org) 代码地址&#xff1a;unilm/beit at master …

恒运资本:如何融券做空?融资做多?

在股票商场经常听到做多、做空两种战略。那么。如何融券做空&#xff1f;融资做多&#xff1f;下面恒运资本为大家准备了相关内容&#xff0c;以供参阅。 如何融券做空&#xff1f; 融券做空的意思是投资者以为未来某只股票会跌落&#xff0c;因而向证券公司借入某只股票&…

浅谈智能建筑中电力监控系统的应用与产品选型

贾丽丽 安科瑞电气股份有限公司 上海嘉定201801 摘要&#xff1a;近几十年&#xff0c;中国现代化经济不断发展&#xff0c;计算机技术、信息技术等相关产业也取得了飞跃性的进步。随着商业、生活以及公共建筑不断提高智能管理和节能的要求&#xff0c;电力监控系统开始逐渐渗…

带你掌握Stable Diffution商业级玩法

课程介绍 学习地址 《Stable Diffusion商业级玩法》通过详细讲解AI绘画技巧、实操演示和个性化指导&#xff0c;帮助您从零基础成为绘画高手&#xff0c;帮助您有效推广产品或服务&#xff0c;提升市场份额。教您掌握稳定扩散绘画技巧&#xff0c;开启艺术创作新篇章。

【力扣每日一题】2023.8.18 3n块披萨

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我们一个披萨&#xff0c;分成了3n块&#xff0c;每次我们可以选择一块&#xff0c;而我们的两个小伙伴会拿走我们选的披萨的相邻的…

【广州华锐视点】AR配电所巡检系统:可视化巡检利器

随着科技的发展&#xff0c;人工智能、大数据等技术逐渐应用于各个领域&#xff0c;为人们的生活带来便利。在电力行业&#xff0c;AR(增强现实)技术的应用也日益广泛。AR配电所巡检系统作为一种新型的巡检方式&#xff0c;可以实现多种功能&#xff0c;提高巡检效率&#xff0…

C++函数模板和类模板

C另一种编程思想称为泛型编程&#xff0c;主要利用的技术是模板 C提供两种模板机制&#xff1a;函数模板和类模板 C提供了模板(template)编程的概念。所谓模板&#xff0c;实际上是建立一个通用函数或类&#xff0c; 其类内部的类型和函数的形参类型不具体指定&#xff0c; 用…

【网络安全】跨站脚本(xss)攻击

跨站点脚本&#xff08;也称为 XSS&#xff09;是一种 Web 安全漏洞&#xff0c;允许攻击者破坏用户与易受攻击的应用程序的交互。它允许攻击者绕过同源策略&#xff0c;该策略旨在将不同的网站彼此隔离。跨站点脚本漏洞通常允许攻击者伪装成受害者用户&#xff0c;执行用户能够…

「UG/NX」Block UI 选择特征SelectFeature

✨博客主页何曾参静谧的博客📌文章专栏「UG/NX」BlockUI集合📚全部专栏「UG/NX」NX二次开发「UG/NX」BlockUI集合「VS」Visual Studio「QT」QT5程序设计「C/C+&#

【IMX6ULL驱动开发学习】08.马达驱动实战:驱动编写、手动注册平台设备和设备树添加节点信息

目录 一、使用设备树 1.1 修改设备树流程 二、手动创建平台设备 三、总结&#xff08;附驱动程序&#xff09; 前情提要&#xff1a;​​​​​​​【IMX6ULL驱动开发学习】07.驱动程序分离的思想之平台总线设备驱动模型和设备树_阿龙还在写代码的博客-CSDN博客 手动注册…

SpringjDBCTemplate_spring25

1、首先导入两个包&#xff0c;里面有模板 2、transtion事务 jDbc操作对象&#xff0c;底层默认的是事务&#xff1a; 3、我们java一般对实体类进行操作。 4、第一步写好坐标。 创建一个Account表 数据修改用update 数据进去了