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
- EasyUI日期选择框
- Java基础03 构造器与方法重载
- web.xml is missing and <failOnMissingWebXml> is set to true
- 【Spring实战】—— 11 通过AOP为特定的类引入新的功能
- 使用Maven创建web项目
- 纸上谈兵: 树, 二叉树, 二叉搜索树
- 【Spring实战】—— 9 AOP环绕通知
- 陈辉:蘑菇街技术架构规划与成长
- JavaSE(二)之继承、封装、多态
- 人与人工智能机器人,究竟谁更聪明?
- 【Spring实战】—— 10 AOP针对参数的通知
- 纸上谈兵: AVL树
- 基于配置的Spring AOP
- JS魔法堂:剖析源码理解Promises/A规范
- 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 数组属性和方法