branch.php 6.31 KB
<?php $this->load->view('common/header'); ?>

<body>
    <?php $this->load->view('perm/header'); ?>

    <div class="page-container">
<!--        <span>可拖拽/添加/删除/编辑</span>-->

		<div class="col-sm-3">
			<ul id="tree" class="ztree"></ul>
	    </div>
    </div>

    <?php $this->load->view('common/footer'); ?>

    <script>
		var setting = {
			async: {
				enable: true,
				url: '<?=site_url('/perm/organization')?>',
				autoParam:["id"]
			},
			view: {
				addHoverDom: addHoverDom,
				removeHoverDom: removeHoverDom,
				selectedMulti: false
			},
			edit: {
				enable: true,
				editNameSelectAll: true,
			},
			data: {
				simpleData: {
					enable: true
				}
			},
			callback: {
				beforeDrag: beforeDrag,
				beforeEditName: beforeEditName,
				beforeRemove: beforeRemove,
				beforeRename: beforeRename
			}
		};

		var zNodes =[
			{ id:1, pId:0, name:"父节点1 (5人)",open:true},
			{ id:11, pId:1, name:"叶子节点 1-1"},
			{ id:12, pId:1, name:"叶子节点 1-2"},
			{ id:13, pId:1, name:"叶子节点 1-3"},
			{ id:2, pId:0, name:"父节点 2", open:true},
			{ id:21, pId:2, name:"叶子节点 2-1"},
			{ id:22, pId:2, name:"叶子节点 2-2"},
			{ id:23, pId:2, name:"叶子节点 2-3"},
			{ id:3, pId:0, name:"父节点 3", open:true},
			{ id:31, pId:3, name:"叶子节点 3-1"},
			{ id:32, pId:3, name:"叶子节点 3-2"},
			{ id:33, pId:3, name:"叶子节点 3-3"}
		];

		function beforeDrag(treeId, treeNodes) {
			return true;
		}
		function beforeEditName(treeId, treeNode) {
			var zTree = $.fn.zTree.getZTreeObj("tree");
			zTree.selectNode(treeNode);
			zTree.editName(treeNode);
			return false;
		}

		function beforeRemove(treeId, treeNode) {
			var zTree = $.fn.zTree.getZTreeObj("tree");
			zTree.selectNode(treeNode);

			var bool =  confirm("确认删除 节点 -- " + treeNode.name + " 吗? 一旦删除信息无法恢复");
			if(bool) {
			    var  targetUrl = 'department/delete/' + treeNode.id;
                $.ajax({
                    type: 'delete',
                    url: apiBaseUrl + targetUrl,
                    cache: false,
                    dataType: 'json',
                    contentType: "application/json; charset=UTF-8",
                    success: function (data) {
                        if (data.msg) {
                            layer.alert(data.msg);
                        } else if (data.code != 0) {
                            layer.alert('操作失败');
                        } else {
                            layer.msg('操作成功');
                            window.reload();
                        }
                        setTimeout(function () {
                            if(!data.code) {
                                layer_close();
                            }
                        },500);
                    },
                    error: function () {
                        layer.alert("操作失败")
                    }
                })
            }
            return bool;

		}

		function beforeRename(treeId, treeNode, newName, isCancel) {
			if (newName.length == 0) {
				setTimeout(function() {
					var zTree = $.fn.zTree.getZTreeObj("tree");
					zTree.cancelEditName();
					alert("节点名称不能为空.");
				}, 0);
				return false;
			}
            var  targetUrl = 'department/update/' + treeNode.id;
            console.log(treeNode);

			var data = {
                name:newName,
                parentId:treeNode.pId
            }

            $.ajax({
                type: 'put',
                url: apiBaseUrl + targetUrl,
                cache: false,
                dataType: 'json',
                data: JSON.stringify(data),
                contentType: "application/json; charset=UTF-8",
                success: function (data) {
                    if (data.msg) {
                        layer.alert(data.msg);
                    } else if (data.code != 0) {
                        layer.alert('操作失败');
                    } else {
                        layer.msg('操作成功');
                    }
                    setTimeout(function () {
                        if(!data.code) {
                            layer_close();
                        }
                    },500);
                },
                error: function () {
                    layer.alert("操作失败")
                }
            })
			return true;
		}

		var newCount = 1;
		function addHoverDom(treeId, treeNode) {
			var sObj = $("#" + treeNode.tId + "_span");
			if (treeNode.editNameFlag || $("#addBtn_"+treeNode.tId).length>0) return;
			var addStr = "<span class='button add' id='addBtn_" + treeNode.tId
				+ "' title='add node' onfocus='this.blur();'></span>";
			sObj.after(addStr);
			var btn = $("#addBtn_"+treeNode.tId);
			if (btn) btn.bind("click", function(){

                var data = {
                    name:'new node',
                    parentId:treeNode.id
                }

                var targetUrl1 = 'department/add';
                $.ajax({
                    type: 'post',
                    url: apiBaseUrl + targetUrl1,
                    cache: false,
                    dataType: 'json',
                    data: JSON.stringify(data),
                    contentType: "application/json; charset=UTF-8",
                    success: function (data) {
                        if (data.msg) {
                            layer.alert(data.msg);
                        } else if (data.code != 0) {
                            layer.alert('操作失败');
                        } else {
							var zTree = $.fn.zTree.getZTreeObj("tree");
							var newNodes = zTree.addNodes(treeNode, {id: data.data.id, pId:data.data.parentId, name: data.data.name});
							zTree.editName(newNodes[0]);
                        }
                    },
                    error: function () {
                        layer.alert("操作失败")
                    }
                })

				return false;
			});
		};

		function removeHoverDom(treeId, treeNode) {
			$("#addBtn_"+treeNode.tId).unbind().remove();
		};

		function selectAll() {
			var zTree = $.fn.zTree.getZTreeObj("tree");
			zTree.setting.edit.editNameSelectAll =  $("#selectAll").attr("checked");
		}

		$(document).ready(function(){
			window.tree = $.fn.zTree.init($("#tree"), setting);
			$("#selectAll").bind("click", selectAll);
		});
    </script>
</body>
<html>