zTree做拖拽移动功能,并保存数据到数据库

思路:zTree的拖拽移动功能是组件自带的,通过setting配置即可,保存到数据库则需要拿到移动节点id和目标父级id,后端去处理,把移动节点的数据挂到目标父级的下面。
这里只介绍前端处理

html:

<div class="container-div ui-layout-center" style="background:#fff">
	<div id="tree" class="ztree"></div>
	<div style="position:absolute;left:400px;top:30px;">
		<div>移动节点:<span id="ydjd"></span></div>
		<div>移动节点id:<span id="ydjd2"></span></div>
		<br/>
		<div>目标父级:<span id="mbfj"></span></div>
		<div>目标父级id:<span id="mbfj2"></span></div>
	</div>

</div>

script:

//先引入指定目录下的这三个js
<script th:src="@{/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.core-3.5.js}"></script>
<script th:src="@{/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.excheck-3.5.js}"></script>
<script th:src="@{/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.exedit-3.5.js}"></script>


	var setting = {
		edit: {
			enable: true,
			showRemoveBtn: true,
			showRenameBtn: true,
			drag: {
				isCopy: false,
				isMove: true,
				prev: true,
				next: true,
				inner: true
			}
		},
		data: {
			key:{
				name:"name"
			},
			simpleData: {
				enable: true,
				idKey:"id",
				pIdKey:"pId",
				rootPid: "0"
			}
		},
		callback: {
			beforeDrag: beforeDrag,
			beforeDrop: beforeDrop,
			onDrop: onDrop,
			beforeRemove: beforeRemove,
			beforeRename: beforeRename,
			onRemove: onRemove,
			onRename: onRename
		}
	};

	var zNodes =[] ,
	//获取树数据接口
	$.ajax({
		url: ctx + "system/dept/currentTreeData",
		type: "get",
		async: false,
		success: function (res) {
			zNodes = res;
			zNodes[0].open=true
			t = $.fn.zTree.init($("#tree"), setting, zNodes)
		}
	})
	//在拖拽之前  可以用来做是否可拖拽限制
	function beforeDrag(treeId, treeNodes) {
	    console.log('beforeDrag',treeNodes[0].title,treeId, treeNodes)
		$('#ydjd').html(treeNodes[0].title)
		$('#ydjd2').html(treeNodes[0].id)
		// if(treeNodes[0].isleaf == true){ //叶子节点
		// 	return false
		// }else{
		// 	return true
		// }
	
	}
	//用于捕获节点拖拽操作结束之前的事件回调函数,并且根据返回值确定是否允许此拖拽操作
	//默认值 null
	function beforeDrop(treeId, treeNodes, targetNode, moveType) {

	}
	//用于捕获节点拖拽操作结束的事件回调函数  默认值: null
	function onDrop(event, treeId, treeNodes, targetNode,moveType) {
		console.log(targetNode.title,event, treeId, treeNodes, targetNode,moveType)

		$('#mbfj').html(targetNode.title)
		$('#mbfj2').html(targetNode.id)
	
	}

	//删除节点之前执行的函数
	function beforeRemove(treeId, treeNode) {
	
	//删除节点执行的函数
	function onRemove(e, treeId, treeNode) {

	}
	//重命名之前执行的函数
	function beforeRename(treeId, treeNode, newName, isCancel) {
		
	}
	//重命名是执行的函数
	function onRename(e, treeId, treeNode, isCancel) {

	}

相关推荐

  1. zTree移动功能保存数据数据库

    2024-03-17 19:38:04       45 阅读
  2. 实现窗口移动

    2024-03-17 19:38:04       33 阅读
  3. HTML5- 功能

    2024-03-17 19:38:04       38 阅读
  4. 以瓦片地图为底图添加图表,保留功能

    2024-03-17 19:38:04       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-17 19:38:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-17 19:38:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-17 19:38:04       87 阅读
  4. Python语言-面向对象

    2024-03-17 19:38:04       96 阅读

热门阅读

  1. [AIGC] Kafka分区分配策略详解

    2024-03-17 19:38:04       68 阅读
  2. 3.17Code

    3.17Code

    2024-03-17 19:38:04      35 阅读
  3. Android/iOS APP备案:遇到的问题汇总指南!

    2024-03-17 19:38:04       45 阅读
  4. JWT原理

    JWT原理

    2024-03-17 19:38:04      36 阅读
  5. (容斥原理例题)洛谷P1287 盒子与球

    2024-03-17 19:38:04       50 阅读
  6. LeetCode350:两个数组的交集Ⅱ

    2024-03-17 19:38:04       42 阅读