import treeTransfer from "el-tree-transfer"; 全量树去除 选中的
时间:2023-04-27
本文章向大家介绍import treeTransfer from "el-tree-transfer"; 全量树去除 选中的,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
<template>
<div>
<tree-transfer
:title="['源列表', '目标列表']"
:from_data="fromData"
:to_data="toData"
:defaultProps="{label:'label'}"
@add-btn="add"
@remove-btn="remove"
:mode="mode"
height="540px"
filter
openAll
></tree-transfer>
</div>
</template>
<script>
import treeTransfer from "el-tree-transfer"; // 引入
export default {
components: { treeTransfer }, // 注册
data() {
return {
mode: "transfer", // transfer addressList
check:[
{
"id": "1",
"pid": 0,
"label": "一级 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"
}
]
}
]
}
],
fromData: [],
resForm: [
{
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: [],
};
},
mounted(){
// this.fromData=this.resForm
this.toData=this.check
this.handlea()
// this.fromData=this.differenceTree()
},
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);
},
handlea(){
const ids = [];
function getIds(array) {
for (let i = 0; i < array.length; i++) {
const element = array[i];
ids.push(element.id);
if (element.children && element.children.length > 0) {
getIds(element.children);
}
}
}
if (this.toData.length > 0) {
getIds(JSON.parse(JSON.stringify(this.toData)));
this.fromData = this.differenceTree(ids, JSON.parse(JSON.stringify(this.resForm)));
console.log(this.fromData);
return;
}
},
//树过滤
differenceTree(ids, arr) {
const newarr = [];
arr.forEach((element) => {
if (ids.indexOf(element.id) == -1) {
// 判断条件
newarr.push(element);
} else if (element.children && element.children.length > 0) {
const redata = this.differenceTree(ids, element.children);
if (redata && redata.length > 0) {
const obj = {
...element,
children: redata,
};
newarr.push(obj);
}
}
});
return newarr;
},
},
};
</script>
<style>
</style>
原文地址:https://www.cnblogs.com/7c89/p/17360430.html
- quartz定时任务,已过期的内容自动下线
- http请求,HttpClient,调用短信接口
- Java常用工具类之压缩解压
- Java常用工具类之MD5加密
- Java常用工具类之发送邮件
- Spring Boot入门
- IDEA使用
- JFinal极速开发框架使用笔记(二) 两个问题,一个发现
- JFinal极速开发框架使用笔记(三) 分析Model和ActiveRecord
- JFinal极速开发框架使用笔记(四) _JFinalDemoGenerator实体类生成及映射自动化
- Python语言做数据探索教程
- Java常用工具类之时间转换(注释乱码,全)
- Java常用工具类之RegexpUtils,正则表达式工具类
- 短信接口发送验证码倒计时以及提交验证
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Redis 事件驱动分析
- JDK1.8 新特性 (八):还在重复写空指针检查代码?
- 使用Angular HTTP client对数据模型进行update操作
- Nodejs中OS模块
- 使用Angular HTTP client对数据模型进行创建操作
- 使用Angular HTTP client对数据模型进行删除操作
- Angular开发文档中一些常用的词汇
- Angular应用里child Component如何向parent Component发送事件
- 如何在SAP WebClient UI里使用jChartFX
- Go语言|基于channel实现的并发安全的字节池
- 对于hashmap的一点理解
- IntelliJ IDEA 2020.2 破解
- MATLAB批量给数据集加雾
- Vue Cli 4 引入 Cesium 配置
- R语言在不同样本量下的Littles MCAR检验