Element el-transfer 穿梭框详解

简介: 本文目录1. 前言2. 基本用法3. 可搜索4. 自定义标题和按钮的文本5. 设置数据项别名6. 小结

1. 前言

穿梭框就是左右各有一个复选框列表,可以将左侧选中的项目移动到右边,后者将右侧的选中项移回左边的控件。

一般用于物品交接等场景,本篇就来介绍下穿梭框的用法。

2. 基本用法

先看代码:

  基本用法:{{value}}
    <el-transfer v-model="value" :data="preData" @change="selectChange"></el-transfer>
    preData: [{
        key: 1,
        label: '北京',
        disabled: false
      },
      {
        key: 2,
        label: '上海',
        disabled: false
      },
      {
        key: 3,
        label: '广州',
        disabled: true
      }],
      value: [],
  methods: {
    selectChange(value) {
      console.log(value);
    }
  }

解释下,data属性用来绑定数据来源,key表示绑定的唯一标志,label是显示到穿梭框中的值,而disabled决定该数据项能否被移动(disabled为true时表示禁用,此时该数据项为灰色无法移动)。


value属性是选中项key的数组,当数据项被移动到右侧时,其key值被加入value数组中。


最后@change表示选中项发生变化时触发的方法。上述代码效果如下:

image.png

3. 可搜索

有时候数据项比较多,可以使用filterable属性开启搜索功能。

可搜索:
    <el-transfer filterable v-model="value" :data="preData"></el-transfer>
• 1
• 2

效果如下:

image.png

4. 自定义标题和按钮的文本

可以自定义列表标题和按钮显示的文本:


 自定义标题和按钮名称:

   <el-transfer :titles="['候选城市', '选中城市']" :button-texts="['左移', '右移']" v-model="value" :data="preData"></el-transfer>


效果如下:

image.png

5. 设置数据项别名

当我们的数据是来源于数据库时,此时后台返回的JSON数据可能并不是使用key/label/disabled这样的名称。


此时我们可以利用props属性自定义数据项的别名。


数据项别名:

   <el-transfer v-model="value" :data="dbData" :props="{

     key: 'id',

     label: 'name',

     disabled:'disabled'

     }"></el-transfer>


所以上述代码可以绑定如下数据:


  dbData: [{

       id: 1,

       name: '北京',

       disabled: false

     },

     {

       id: 2,

       name: '上海',

       disabled: false

     },

     {

       id: 3,

       name: '广州',

       disabled: true

     }],

6. 小结

穿梭框使用场景不算多,有一个基础的了解就足够了。

相关文章
|
JavaScript
vue element plus Transfer 穿梭框
vue element plus Transfer 穿梭框
759 0
|
前端开发
el-transfer 数据量过大加载慢卡顿解决办法:el-transfer虚拟滚动懒加载的实现
el-transfer 数据量过大加载慢卡顿解决办法:el-transfer虚拟滚动懒加载的实现
1441 0
uniapp 全局数据(globalData)的设置,获取,更改
uniapp 全局数据(globalData)的设置,获取,更改
3964 0
element-plus:el-table自定义展开图标处于列的位置
element-plus:el-table自定义展开图标处于列的位置
1528 0
Element的el-table行列错位对不齐问题处理
本文目录 1. 问题表现 2. 问题发现 3. 问题处理 4. 另一种处理方案
6365 0
Element的el-table行列错位对不齐问题处理
|
资源调度 JavaScript API
【Vue2 / Vue3】 一个贼nb,贼强大的自定义打印插件
【Vue2 / Vue3】 一个贼nb,贼强大的自定义打印插件
14050 120
|
JSON 前端开发 数据格式
使用 el-tree 实现计算每个非叶子节点的后代节点的个数并显示
本文介绍了如何使用ElementPlus的`el-tree`组件实现计算并显示每个非叶子节点后代节点的个数,以及后代节点中ID为一万倍数的个数。
638 1
使用 el-tree 实现计算每个非叶子节点的后代节点的个数并显示
|
JavaScript 前端开发 Java
如何使用正则表达式来匹配电子邮件地址?
如何使用正则表达式来匹配电子邮件地址?
|
JavaScript
如何对ElementUI、ElementPlus中的Tree树组件进行美化,如增加辅助线、替换展开收起图标、点击节点后文字高亮等效果?本文给你答案!
本文介绍了如何对ElementUI和ElementPlus的Tree树组件进行美化,包括增加辅助线、替换展开收起图标、点击节点后文字高亮等效果,并提供了详细的代码示例和实现效果。
4913 0
如何对ElementUI、ElementPlus中的Tree树组件进行美化,如增加辅助线、替换展开收起图标、点击节点后文字高亮等效果?本文给你答案!
|
JSON 前端开发 JavaScript
JSON parse error: Cannot deserialize value of type `java.lang.Integer` from Boolean value
这篇文章讨论了前端Vue应用向后端Spring Boot服务传输数据时发生的类型不匹配问题,即后端期望接收的字段类型为`int`,而前端实际传输的类型为`Boolean`,导致无法反序列化的问题,并提供了问题的诊断和解决方案。
JSON parse error: Cannot deserialize value of type `java.lang.Integer` from Boolean value