在vue项目中使用树形结构的穿梭框

先看一下最后的效果:

在这里插入图片描述

一个基于elementui的穿梭框组件:el-tree-transfer

第一步:安装组件

npm install el-tree-transfer --save

第二步:写代码

    // 使用树形穿梭框组件<tree-transfer :title="title" :from_data='fromData' :to_data='toData' :defaultProps="{label:'label'}"            @addBtn='add' @removeBtn='remove' :mode='mode' height='540px' filter openAll></tree-transfer>
import treeTransfer from 'el-tree-transfer' // 引入export defult {data(){return:{mode: "transfer", // transfer addressListfromData:[{id: "1",pid: 0,label: "一级 1",children: [{id: "1-1",pid: "1",label: "二级 1-1",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 和通讯录模式addressListchangeMode() {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);}},components:{ treeTransfer } // 注册}

把上面的代码写完之后,就可以了哦。

参数说明:

  1. 参数:width 说明:宽度 类型:String 必填:false 默认:100% 补充:建议在外部盒子设定宽度和位置

  2. 参数:height 说明:高度 类型:String 必填:false 默认:320px

  3. 参数:title 说明:标题 类型:Array 必填:false 默认:[“源列表”, “目标列表”]

  4. 参数:button_text 说明:按钮名字 类型:Array 必填:false 默认:空

  5. 参数:from_data 说明:源数据 类型:Array 必填:true 补充:数据格式同element-ui tree组件,但必须有id和pid

  6. 参数:to_data 说明:目标数据 类型:Array 必填:true 补充:数据格式同element-ui tree组件,但必须有id和pid

  7. 参数:defaultProps 说明:配置项-同el-tree中props 必填: false
    补充:用法和el-tree的props一样

  8. 参数:node_key 说明:自定义node-key的值,默认为id 必填:false
    补充:必须与treedata数据内的id参数名一致,必须唯一

  9. 参数:pid 说明:自定义pid的参数名,默认为"pid" 必填:false
    补充:有网友提出后台给的字段名不叫pid,因此增加自定义支持

  10. 参数:leafOnly 说明:是否只返回叶子节点 类型:Boolean 必填:false
    补充:默认false,如果你只需要返回的末端子节点可使用此参数

  11. 参数:filter 说明:是否开启筛选功能 类型:Boolean 必填:false

  12. 参数:openAll 说明:是否默认展开全部 类型:Boolean 必填:false

  13. 参数:renderContent 说明:自定义树节点 类型:Function 必填:false 补充:用法同element-ui
    tree

  14. 参数:mode 说明:设置模式,字段可选值为transfer|addressList 类型:String 必填:false
    补充:mode默认为transfer模式,即树形穿梭框模式,可配置字段为addressList改为通讯录模式,通讯录模式时按钮不可自定义名字,如要自定义标题名在title数组传入四个值即可,addressList模式时标题默认为通讯录、收件人、抄送人、密送人

  15. 参数:transferOpenNode 说明:穿梭后是否展开穿梭的节点 类型:Boolean 必填:false
    补充:默认为true即展开穿梭的节点,便于视觉查看,增加此参数是因为数据量大时展开会有明显卡顿问题,但注意,如此参数设置为false则穿梭后不展开,毕竟无法确定第几层就会有庞大数据

  16. 参数:defaultCheckedKeys 说明:默认展开节点 类型:Array 必填:false
    补充:只匹配初始时默认节点,不会在你操作后动态改变默认节点

  17. 参数:placeholder 说明:设置搜索框提示语 类型:String 必填:false 补充:默认为请输入关键词进行筛选
    参数:defaultTransfer 说明:是否自动穿梭一次默认选中defaultCheckedKeys的节点 类型:Boolean
    必填:false 补充:默认false,用来满足用户不想将数据拆分成fromData和toData的需求

  18. 事件:addBtn 说明:点击添加按钮时触发的事件
    回调参数:function(fromData,toData,obj),树形穿梭框transfer模式分别为1.移动后左侧数据,2.移动后右侧数据,3.移动的节点keys、nodes、halfKeys、halfNodes对象;通讯录addressList模式时返回参数为右侧收件人列表、右侧抄送人列表、右侧密送人列表

  19. 事件:removeBtn 说明:点击移除按钮时触发的事件
    回调参数:function(fromData,toData,obj),树形穿梭框transfer模式分别为1.移动后左侧数据,2.移动后右侧数据,3.移动的节点keys、nodes、halfKeys、halfNodes对象;通讯录addressList模式时返回参数为右侧收件人列表、右侧抄送人列表、右侧密送人列表

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

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

相关文章

导航跳转后保持选中状态 jquery高亮当前选中菜单

功能需求&#xff1a; 今天在写一个站点需要用到在导航菜单点击链接跳转到新页面后&#xff0c;高亮当前菜单样式。 简单的说&#xff0c;就是我点击导航菜单中的一个栏目&#xff0c;跳转到该栏目下&#xff0c;该栏目菜单也同时高亮&#xff08;可以是背景色也可以是背景图片…

eacharts中国地图省市区点击显示

1.安装echarts.js 相关模块 npm i echarts2. 在 main.js 文件中搭建全局 // 引入echarts import echarts from echarts Vue.prototype.$echarts echarts3.vue文件种引入相关文档 import echarts from "echarts"; import "./china.js"; // 引入中国地图…

CF2B The least round way(贪心+动规)

题目 CF2B The least round way 做法 后面\(0\)的个数&#xff0c;\(2\)和\(5\)是\(10\)分解质因数 则把方格中的每个数分解成\(2\)和\(5\)&#xff0c;对\(2\)和\(5\)求两边动规&#xff0c;得出最小值\(ansmin(num_2,num_5)\) 我们贪心地选择最小值所对应的\(2\)或\(5\)&…

JS 中的return false的作用

在大多数情况下,为事件处理函数返回false,可以防止默认的事件行为. Return False 就相当于终止符,终止默认的事件行为&#xff0c;反之,Return True 就相当于执行符,执行终止默认的事件行为。 在js中return false的作用一般是用来取消默认动作的。比如你单击一个链接除了触发你…

中英翻译(基于百度翻译)

先来看效果图 只做了简单的在线翻译&#xff0c;语音翻译和图片翻译都要钱&#xff0c;哈哈 市面上有名气的翻译公司就是有道和百度了&#xff0c;有道尝试了一下&#xff0c;分为API和SDK两种&#xff0c;但是demo下载下来跑不了 百度的就是API&#xff0c;也很简单&#xff0…

Vue中使用input简易的上传图片

<div class"boximg"><div class"topimg"><!-- <img :src"filePath" width"200px" height"170px" /> --></div><div class"botimg" click"imgClick()">上传logo<…

jQuery选择器之层级选择器

文档中的所有的节点之间都是有这样或者那样的关系。我们可以把节点之间的关系可以用传统的家族关系来描述&#xff0c;可以把文档树当作一个家谱&#xff0c;那么节点与节点直接就会存在父子&#xff0c;兄弟&#xff0c;祖孙的关系了。 选择器中的层级选择器就是用来处理这种关…

文件 图片 上传 及少许正则校验

文件 & 图片 上传 及少许正则校验 <template><div style"padding: 20px"><Row><Col span"24"><div><CFlex type"flex" justify"space-between" align"midlle"><div class"…

bootstrap-table.js如何根据单元格数据不同显示不同的字体的颜色

在bootstrap-table.js里面列属性 formatter就是用来格式化单元格的&#xff0c;其默认值是undefined 类型是function&#xff0c;function(value, row, index), value&#xff1a;该cell本来的值&#xff0c;row&#xff1a;该行数据&#xff0c;index&#xff1a;该行序号&am…

SVN_06导入项目文档

把这个项目的文档迁入到SVN Server上的库中 【1】首先右键点击projectAdmin目录&#xff0c;这时候的右键菜单例如以下图看到的&#xff1a;选择copy URL toCLipboard,就是复制统一资源定位符&#xff08;URL&#xff09;到剪贴板中 https://KJ-AP01.中国.corpnet:8443/svn/pro…

实现省市二级联动效果

实现效果&#xff1a; 代码&#xff1a; <template><div class"main_tableau"><div class"page_title">百城精算编辑</div><CFlex type"flex" justify"space-between"><div style"margin-top…

jquery操作select(取值,设置选中)

jquery操作select(增加&#xff0c;删除&#xff0c;清空) http://huapengpeng1989412.blog.163.com/blog/static/58828754201342841940720/ jQuery获取Select选择的Text和Value: 123456789$("#select_id").change(function(){//code...}); //为Select添加事件&am…

手机验证码获取

<el-form-item label"短信验证码" required><el-input v-model"ruleForm.verificationcode" placeholder"请添加验证码"><el-button v-if"isdisabled" slot"suffix" style"color:#409EFF;" type&…

关于RGB屏调试的一些知识(转)

关于RGB屏调试的一些知识转载于:https://www.cnblogs.com/LittleTiger/p/10983212.html

在bootstrap table中使用Tooltip

//偏好主题function preferenceFormatter(value, row, index) {var nameString "";if (value.length > 6) {nameString value.substring(0,6) ...;} else{nameString value;}return [<a href"#" data-toggle"tooltip" title value >…

实现值两者之间添加 , 、 | 等字符

展示效果&#xff1a; <span v-for"(item, index) in projectData.bdOwnerList" :key"index"><span style"white-space: nowrap">{{ item.userName }}<spanv-if"projectData.bdOwnerList.length - 1 ! index"style&qu…

spring-cloud搭建

1、myApplicaion 启动服务类上层必须有一层包 2、报错 com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused: connect 或者com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known…

JS ===和==区别

这是一种隐式类型转换 var a 12; var b 12; alert(a b);//先把两边的转换成一样的&#xff0c;再进行比较 。结果会返回true alert(a b);//不转换两边类型&#xff0c;直接比较,结果返回false

单页面轮播图滚动

现在网上好多类似的效果&#xff0c;今天心情好&#xff0c;就私自模仿一个去&#xff0c;代码如下。 单页面网站 网站首页公司简介公司产品公司荣誉招聘英才联系我们window.οnscrοllfunction(){ var scTopdocument.documentElement.scrollTop||document.body.scrollTop; va…

xBIM 基础16 IFC的空间层次结构

系列目录 【已更新最新开发文章&#xff0c;点击查看详细】 本篇介绍如何从文件中检索空间结构。IFC中的空间结构表示层次结构的嵌套结构&#xff0c;表示项目&#xff0c;站点&#xff0c;建筑物&#xff0c;楼层和空间。如果您查看IFC文档&#xff0c; 您会发现建筑物可以…