vue中tree-transfer树形穿梭框的使用

2023-11-12

首先安装插件

npm install el-tree-transfer --save
或者
npm i el-tree-transfer -S
安装

效果图

代码

  <template>
      <div>
        // 使用树形穿梭框组件
        <tree-transfer :title="title" :from_data='fromData' :to_data='toData' :defaultProps="{label:'label'}" @add-btn='add' @remove-btn='remove' :mode='mode' height='540px' :filter="false" openAll>
         <template v-slot:from>
                <el-input v-model="ruleForm.name" placeholder="搜索"></el-input>
            </template>

            <template v-slot:to>
                <el-input v-model="ruleForm.name" placeholder="搜索"></el-input>
            </template>
      </tree-transfer>
      </div>
    </template>

    <script>
      import treeTransfer from 'el-tree-transfer' // 引入

      export defult {
          components:{ treeTransfer } ,// 注册
        data(){
          return:{
            mode: "transfer", // transfer addressList
            fromData:[
              {
                id: "1",
                pid: 0,
                label: "一级 1",
                children: [
                  {
                    id: "1-1",
                    pid: "1",
                    label: "二级 1-1",
                    disabled: true,
                    children: []
                  },
                  {
                    id: "1-2",
                    pid: "1",
                    label: "二级 1-2",
                    children: [
                      {
                        id: "1-2-1",
                        pid: "1-2",
                        children: [],
                        label: "二级 1-2-1"
                      },
                      {
                        id: "1-2-2",
                        pid: "1-2",
                        children: [],
                        label: "二级 1-2-2"
                      }
                    ]
                  }
                ]
              },
            ],
            toData:[]
          }
        },
        methods:{
          // 切换模式 现有树形穿梭框模式transfer 和通讯录模式addressList
          changeMode() {
            if (this.mode == "transfer") {
              this.mode = "addressList";
            } else {
              this.mode = "transfer";
            }
          },
          // 监听穿梭框组件添加
          add(fromData,toData,obj){
            // 树形穿梭框模式transfer时,返回参数为左侧树移动后数据、右侧树移动后数据、移动的{keys,nodes,halfKeys,halfNodes}对象
            // 通讯录模式addressList时,返回参数为右侧收件人列表、右侧抄送人列表、右侧密送人列表
            console.log("fromData:", fromData);
            console.log("toData:", toData);
            console.log("obj:", obj);
          },
          // 监听穿梭框组件移除
          remove(fromData,toData,obj){
            // 树形穿梭框模式transfer时,返回参数为左侧树移动后数据、右侧树移动后数据、移动的{keys,nodes,halfKeys,halfNodes}对象
            // 通讯录模式addressList时,返回参数为右侧收件人列表、右侧抄送人列表、右侧密送人列表
            console.log("fromData:", fromData);
            console.log("toData:", toData);
            console.log("obj:", obj);
          }
        },
        
      }
    </script>

{% note info flat %}注意:数据的pid一定要存在{% endnote %}

文档

序号 参数 说明 类型 默认值 补充
1 width 宽度 String 100% 建议在外部盒子设定宽度和位置,否则100%不会生效
2 height 高度 String 300px -
3 title 标题 String [“源列表”, “目标列表”] -
4 button_text 按钮名字 Array - -
5 from_data 源数据 Array - 数据格式同element-ui tree组件,但必须有id和pid
6 to_data 目标数据 Array - 数据格式同element-ui tree组件,但必须有id和pid
7 defaultProps 配置项-同el-tree中props Object { label: “label”, children: “children”, isLeaf: “leaf”, disable: “disable” } 用法和el-tree的props一样
8 node_key 自定义node-key的值,默认为id String id 必须与treedata数据内的id参数名一致,必须唯一
9 pid 自定义pid的参数名,默认为"pid" String pid 有网友提出后台给的字段名不叫pid,因此增加自定义支持
10 filter 是否开启筛选功能 Boolean false 根据defaultProps参数的label字段筛选
11 mode 设置穿梭框模式 String transfer -
12 openAll 是否默认展开全部 Boolean false 存在性能问题
13 defaultCheckedKeys 默认选中节点 Array false 只匹配初始时默认节点,不会在你操作后动态改变默认节点
14 transferOpenNode 是否开启筛选功能 穿梭后是否展开穿梭的节点 true -
15 placeholder 设置搜索框提示语 String 输入关键词进行筛选 -
16 defaultTransfer 是否自动穿梭一次默认选中defaultCheckedKeys的节点 Boolean false -
17 addressOptions 通讯录模式配置项 Object {num: Number, suffix: String, connector: String} -
18 lazy 是否启用懒加载 Boolean false -
19 filterNode 自定义搜索函数 Function - -
20 renderAfterExpand 是否在第一次展开某个树节点后才渲染其子节点 Boolean true -
21 expandOnClickNode 是否在点击节点的时候展开或者收缩节点 Boolean true -
22 checkOnClickNode 是否在点击节点的时候选中节点 Boolean false -
23 indent 相邻级节点间的水平缩进,单位为像素 Number 16 -
24 icon-class 自定义树节点的图标 String - -
25 draggable 是否开启拖拽节点功能 Boolean false -
26 allow-drag 判断节点能否被拖拽 Function(node) - -
27 allow-drop 拖拽时判定目标节点能否被放置 Function(draggingNode, dropNode, type) - -

方法

序号 名称 说明
1 addToAims 手动调用添加穿梭,用于调整初始数据默认穿梭 function(useCallBack: Boolean) 本次穿梭是否需要触发@add-btn的emit回调
2 clearChecked 清除选中节点,默认清除全部 function(type: String) left左边 right右边 all全部 默认all
3 getChecked 获取选中数据,若使用了to_data,可以直接用
4 setChecked 设置选中数据 function(leftKeys = [], rightKeys = [])
5 clearFilter 清除搜索框条件,默认清除全部 function(type: String) left左边 right右边 all全部 默认all

官方文档

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue中tree-transfer树形穿梭框的使用 的相关文章

随机推荐

  • 数据库判断

    正确 索引可以加快数据的查找速度 但是会给数据更新带来额外性能消耗 数据库管理系统软件都是基于某种数据模型而设计的 逻辑模型和物理模型都是按照计算机系统的观点对数据建模的 所有教师抽象为一类实体 使用 教师 工号 姓名 性别 表达起来的概念
  • 全连接层

    1 将前一层输出的二维特征图综合起来转化为一维向量 它的每一个节点都与上一层的每个节点连接 2 全连接层的主要作用是将输入图像在经过卷积和池化操作后提取的特征进行压缩 并且根据压缩的特征完成模型的分类功能 在整个卷积神经网络中起到 分类器
  • __attribute__((weak))的使用

    一 背景 我们不确定外部模块是否提供一个函数func 但是我们不得不用这个函数 举个例子 A B两个模块 A模块调用了B模块的函数 但是不确定B模块是否提供了该函数 但是又不得不调用 这个时候在A模块中再申明一个弱符号函数 即用weak 如
  • 浮点精度 加减乘除 原生方法

    关于JavaScript 二进制精度问题 浮点数的计算精度会存在缺失问题 专门去百度了一下解决方案 发现有的不是很全 再不就是在项目里面使用会报错 不支持with用法 等等问题 所以针对这四个方法 自己 写了一下 一般我们是放在utils或
  • Linux 分区扩容

    虚拟机磁盘空间250G 克隆后系统分区空间只有200G 通过resize2fs扩容分区 suer pro 22 244 sudo fdisk l 磁盘 dev sda 268 4 GB 268435456000 字节 524288000 个
  • 【C++】C语言基础部分知识点总结 (指针,函数,内存,关键字,预处理等)(秋招篇)

    文章目录 前言 讲一下32位系统常用数据类型的字节大小 stm32f103为例 讲一些C C 中常见的库 什么是易变变量 代码的转化和构建通常会经历哪几个步骤 预处理 编译 汇编 链接 介绍一下C C 常用的关键字 介绍一些const的使用
  • python 基础绘图(关于随时间序列变动的图的画法)

    画这种图要考虑两点 1 如何生成连续的时间轴 2 如何在图中适当的显示轴标签的样式和数量 import matplotlib pyplot as plt import matplotlib as mpl import numpy as np
  • Collection排序

    使用Collection的sort方法可以对List对象进行排序 其中Record为自己定义的类 包含value index count三个成员变量 ArrayList
  • 记录获取蓝鲸智云token的过程

    一 使用python脚本获取蓝鲸智云token python版本环境 3 11 coding utf 8 import requests def get user token domain user password 模拟用户登录 并返回
  • 判断IP是否能够ping成功

    public bool IsCondtion object condtion CondtionPing vData condtion as CondtionPing int m pingNum 3 if vData null return
  • 操作系统 --- 多线程 Multithreading

    操作系统 多线程 Multi Threading 什么是线程和多线程 进程的缺点 线程 Thread 线程的优点 线程和进程的区别 关于线程的资源 线程独有的资源 线程共享的资源 同步线程和异步线程 Asynchronous thread
  • 物联网采集数据存储到MySQL_物联网中的数据分类、存储与应用

    本文主要介绍物联网的数据从传感器采集 存储到分析处理的过程 数据分类 物联网数据可以分为静态数据和动态数据 静态数据 被测设备地址类 地点 GIS信息 设备名称编号 资产属性相关 设备相关的标签类 设备的规格 静态数据多以结构性 关系型数据
  • 【计算机视觉

    文章目录 一 Mask R CNN 二 Hybrid Task Cascade 三 Cascade Mask R CNN 四 Contour Proposal Network 五 GCNet 六 PANet 七 K Net 八 Center
  • Ubuntu安装“启动引导器”的设备选哪一项,选默认还是选/boot分区?

    如果你要用Ubuntu的引导器代替Windows的引导器 就选 dev sda 如果你要保留Windows的引导器 就选 boot分区 但这样一来 装完Ubuntu重启后 只能启动Windows 还必须在Windows上面安装Easybcd
  • 多元函数的泰勒展开公式

    泰勒定理 泰勒展开是一个很有趣的方法 应该大部分人都看过下面这么一条定理 泰勒定理 若函数f x 在闭区间 a b 上存在直至n阶的连续导函数 在开区间 a b 内存在 n 1 阶导函数 则对任意给定的 x x0 a b x x 0 a
  • CentOS 7系统安装配置图解教程

    操作系统 CentOS 7 3 备注 CentOS 7 x系列只有64位系统 没有32位 生产服务器建议安装CentOS 7 x86 64 Minimal 1611 iso版本 一 安装CentOS 7 3 成功引导系统后 会出现下面的界面
  • Zookeeper安装(服务注册与发现)

    第一步 先准备安装包 这里我推荐在Apache官网下载 Zookeeper下载地址 https archive apache org dist zookeeper zookeeper 3 6 1 https archive apache o
  • c++以空格分开的输入数组_C++处理输入字符串并转为数组的操作

    最近在做题的时候在处理输入时遇到一个令人头疼的问题 今天解决了和大家分享一下 比如题目要求的输入为一行数 数与数之间用空格间隔开 数的个数未知 数也有正有负 11 2 65 7 那么如何把这个输入保存到数组a中 且数组a中的值为a 0 11
  • 4G DTU

    4G DTU是一种可以将RS232 485采集的数据通过3G 4G发送到云端服务器进行数据交互的传输设备 实现串口设备的无线长距离数据传输 进而实现远程数据通信管理 主要应用在远程数据采集和远程控制项目 卓岚的4G DTU分为2种类型 1
  • vue中tree-transfer树形穿梭框的使用

    首先安装插件 npm install el tree transfer save 或者 npm i el tree transfer S 安装 效果图 代码