/* * JQuery zTree core v3.5.40 * http://treejs.cn/ * * Copyright (c) 2010 Hunter.z * * Licensed same as jquery - MIT License * http://www.opensource.org/licenses/mit-license.php * * email: hunter.z@263.net * Date: 2019-01-18 */ (function (r) { var J, K, L, M, N, O, v, t = {}, w = {}, x = {}, P = { treeId: "", treeObj: null, view: { addDiyDom: null, autoCancelSelected: !0, dblClickExpand: !0, expandSpeed: "fast", fontCss: {}, nameIsHTML: !1, selectedMulti: !0, showIcon: !0, showLine: !0, showTitle: !0, txtSelectedEnable: !1 }, data: { key: { isParent: "isParent", children: "children", name: "name", title: "", url: "url", icon: "icon" }, simpleData: { enable: !1, idKey: "id", pIdKey: "pId", rootPId: null }, keep: { parent: !1, leaf: !1 } }, async: { enable: !1, contentType: "application/x-www-form-urlencoded", type: "post", dataType: "text", headers: {}, xhrFields: {}, url: "", autoParam: [], otherParam: [], dataFilter: null }, callback: { beforeAsync: null, beforeClick: null, beforeDblClick: null, beforeRightClick: null, beforeMouseDown: null, beforeMouseUp: null, beforeExpand: null, beforeCollapse: null, beforeRemove: null, onAsyncError: null, onAsyncSuccess: null, onNodeCreated: null, onClick: null, onDblClick: null, onRightClick: null, onMouseDown: null, onMouseUp: null, onExpand: null, onCollapse: null, onRemove: null } }, y = [function (a) { var b = a.treeObj, c = g.event; b.bind(c.NODECREATED, function (b, c, i) { h.apply(a.callback.onNodeCreated, [b, c, i]) }); b.bind(c.CLICK, function (b, c, i, e, k) { h.apply(a.callback.onClick, [c, i, e, k]) }); b.bind(c.EXPAND, function (b, c, i) { h.apply(a.callback.onExpand, [b, c, i]) }); b.bind(c.COLLAPSE, function (b, c, i) { h.apply(a.callback.onCollapse, [b, c, i]) }); b.bind(c.ASYNC_SUCCESS, function (b, c, i, e) { h.apply(a.callback.onAsyncSuccess, [b, c, i, e]) }); b.bind(c.ASYNC_ERROR, function (b, c, i, e, k, g) { h.apply(a.callback.onAsyncError, [b, c, i, e, k, g]) }); b.bind(c.REMOVE, function (b, c, i) { h.apply(a.callback.onRemove, [b, c, i]) }); b.bind(c.SELECTED, function (b, c, i) { h.apply(a.callback.onSelected, [c, i]) }); b.bind(c.UNSELECTED, function (b, c, i) { h.apply(a.callback.onUnSelected, [c, i]) }) }], z = [function (a) { var b = g.event; a.treeObj.unbind(b.NODECREATED).unbind(b.CLICK).unbind(b.EXPAND).unbind(b.COLLAPSE).unbind(b.ASYNC_SUCCESS).unbind(b.ASYNC_ERROR).unbind(b.REMOVE).unbind(b.SELECTED).unbind(b.UNSELECTED) }], A = [function (a) { var b = e.getCache(a); b || (b = {}, e.setCache(a, b)); b.nodes = []; b.doms = [] }], B = [function (a, b, c, d, f, i) { if (c) { var m = e.getRoot(a), k = e.nodeChildren(a, c); c.level = b; c.tId = a.treeId + "_" + ++m.zId; c.parentTId = d ? d.tId : null; c.open = typeof c.open == "string" ? h.eqs(c.open, "true") : !! c.open; b = e.nodeIsParent(a, c); h.isArray(k) ? (e.nodeIsParent(a, c, !0), c.zAsync = !0) : (b = e.nodeIsParent(a, c, b), c.open = b && !a.async.enable ? c.open : !1, c.zAsync = !b); c.isFirstNode = f; c.isLastNode = i; c.getParentNode = function () { return e.getNodeCache(a, c.parentTId) }; c.getPreNode = function () { return e.getPreNode(a, c) }; c.getNextNode = function () { return e.getNextNode(a, c) }; c.getIndex = function () { return e.getNodeIndex(a, c) }; c.getPath = function () { return e.getNodePath(a, c) }; c.isAjaxing = !1; e.fixPIdKeyValue(a, c) } }], u = [function (a) { var b = a.target, c = e.getSetting(a.data.treeId), d = "", f = null, i = "", m = "", k = null, j = null, o = null; if (h.eqs(a.type, "mousedown")) m = "mousedown"; else if (h.eqs(a.type, "mouseup")) m = "mouseup"; else if (h.eqs(a.type, "contextmenu")) m = "contextmenu"; else if (h.eqs(a.type, "click")) if (h.eqs(b.tagName, "span") && b.getAttribute("treeNode" + g.id.SWITCH) !== null) d = h.getNodeMainDom(b).id, i = "switchNode"; else { if (o = h.getMDom(c, b, [{ tagName: "a", attrName: "treeNode" + g.id.A }])) d = h.getNodeMainDom(o).id, i = "clickNode" } else if (h.eqs(a.type, "dblclick") && (m = "dblclick", o = h.getMDom(c, b, [{ tagName: "a", attrName: "treeNode" + g.id.A }]))) d = h.getNodeMainDom(o).id, i = "switchNode"; if (m.length > 0 && d.length == 0 && (o = h.getMDom(c, b, [{ tagName: "a", attrName: "treeNode" + g.id.A }]))) d = h.getNodeMainDom(o).id; if (d.length > 0) switch (f = e.getNodeCache(c, d), i) { case "switchNode": e.nodeIsParent(c, f) ? h.eqs(a.type, "click") || h.eqs(a.type, "dblclick") && h.apply(c.view.dblClickExpand, [c.treeId, f], c.view.dblClickExpand) ? k = J : i = "" : i = ""; break; case "clickNode": k = K } switch (m) { case "mousedown": j = L; break; case "mouseup": j = M; break; case "dblclick": j = N; break; case "contextmenu": j = O } return { stop: !1, node: f, nodeEventType: i, nodeEventCallback: k, treeEventType: m, treeEventCallback: j } }], C = [function (a) { var b = e.getRoot(a); b || (b = {}, e.setRoot(a, b)); e.nodeChildren(a, b, []); b.expandTriggerFlag = !1; b.curSelectedList = []; b.noSelection = !0; b.createdNodes = []; b.zId = 0; b._ver = (new Date).getTime() }], D = [], E = [], F = [], G = [], H = [], e = { addNodeCache: function (a, b) { e.getCache(a).nodes[e.getNodeCacheId(b.tId)] = b }, getNodeCacheId: function (a) { return a.substring(a.lastIndexOf("_") + 1) }, addAfterA: function (a) { E.push(a) }, addBeforeA: function (a) { D.push(a) }, addInnerAfterA: function (a) { G.push(a) }, addInnerBeforeA: function (a) { F.push(a) }, addInitBind: function (a) { y.push(a) }, addInitUnBind: function (a) { z.push(a) }, addInitCache: function (a) { A.push(a) }, addInitNode: function (a) { B.push(a) }, addInitProxy: function (a, b) { b ? u.splice(0, 0, a) : u.push(a) }, addInitRoot: function (a) { C.push(a) }, addNodesData: function (a, b, c, d) { var f = e.nodeChildren(a, b); f ? c >= f.length && (c = -1) : (f = e.nodeChildren(a, b, []), c = -1); if (f.length > 0 && c === 0) f[0].isFirstNode = !1, j.setNodeLineIcos(a, f[0]); else if (f.length > 0 && c < 0) f[f.length - 1].isLastNode = !1, j.setNodeLineIcos(a, f[f.length - 1]); e.nodeIsParent(a, b, !0); c < 0 ? e.nodeChildren(a, b, f.concat(d)) : (a = [c, 0].concat(d), f.splice.apply(f, a)) }, addSelectedNode: function (a, b) { var c = e.getRoot(a); e.isSelectedNode(a, b) || c.curSelectedList.push(b) }, addCreatedNode: function (a, b) { (a.callback.onNodeCreated || a.view.addDiyDom) && e.getRoot(a).createdNodes.push(b) }, addZTreeTools: function (a) { H.push(a) }, exSetting: function (a) { r.extend(!0, P, a) }, fixPIdKeyValue: function (a, b) { a.data.simpleData.enable && (b[a.data.simpleData.pIdKey] = b.parentTId ? b.getParentNode()[a.data.simpleData.idKey] : a.data.simpleData.rootPId) }, getAfterA: function (a, b, c) { for (var d = 0, e = E.length; d < e; d++) E[d].apply(this, arguments) }, getBeforeA: function (a, b, c) { for (var d = 0, e = D.length; d < e; d++) D[d].apply(this, arguments) }, getInnerAfterA: function (a, b, c) { for (var d = 0, e = G.length; d < e; d++) G[d].apply(this, arguments) }, getInnerBeforeA: function (a, b, c) { for (var d = 0, e = F.length; d < e; d++) F[d].apply(this, arguments) }, getCache: function (a) { return x[a.treeId] }, getNodeIndex: function (a, b) { if (!b) return null; for (var c = b.parentTId ? b.getParentNode() : e.getRoot(a), c = e.nodeChildren(a, c), d = 0, f = c.length - 1; d <= f; d++) if (c[d] === b) return d; return -1 }, getNextNode: function (a, b) { if (!b) return null; for (var c = b.parentTId ? b.getParentNode() : e.getRoot(a), c = e.nodeChildren(a, c), d = 0, f = c.length - 1; d <= f; d++) if (c[d] === b) return d == f ? null : c[d + 1]; return null }, getNodeByParam: function (a, b, c, d) { if (!b || !c) return null; for (var f = 0, i = b.length; f < i; f++) { var m = b[f]; if (m[c] == d) return b[f]; m = e.nodeChildren(a, m); if (m = e.getNodeByParam(a, m, c, d)) return m } return null }, getNodeCache: function (a, b) { if (!b) return null; var c = x[a.treeId].nodes[e.getNodeCacheId(b)]; return c ? c : null }, getNodePath: function (a, b) { if (!b) return null; var c; (c = b.parentTId ? b.getParentNode().getPath() : []) && c.push(b); return c }, getNodes: function (a) { return e.nodeChildren(a, e.getRoot(a)) }, getNodesByParam: function (a, b, c, d) { if (!b || !c) return []; for (var f = [], i = 0, m = b.length; i < m; i++) { var k = b[i]; k[c] == d && f.push(k); k = e.nodeChildren(a, k); f = f.concat(e.getNodesByParam(a, k, c, d)) } return f }, getNodesByParamFuzzy: function (a, b, c, d) { if (!b || !c) return []; for (var f = [], d = d.toLowerCase(), i = 0, m = b.length; i < m; i++) { var k = b[i]; typeof k[c] == "string" && b[i][c].toLowerCase().indexOf(d) > -1 && f.push(k); k = e.nodeChildren(a, k); f = f.concat(e.getNodesByParamFuzzy(a, k, c, d)) } return f }, getNodesByFilter: function (a, b, c, d, f) { if (!b) return d ? null : []; for (var i = d ? null : [], m = 0, k = b.length; m < k; m++) { var g = b[m]; if (h.apply(c, [g, f], !1)) { if (d) return g; i.push(g) } g = e.nodeChildren(a, g); g = e.getNodesByFilter(a, g, c, d, f); if (d && g) return g; i = d ? g : i.concat(g) } return i }, getPreNode: function (a, b) { if (!b) return null; for (var c = b.parentTId ? b.getParentNode() : e.getRoot(a), c = e.nodeChildren(a, c), d = 0, f = c.length; d < f; d++) if (c[d] === b) return d == 0 ? null : c[d - 1]; return null }, getRoot: function (a) { return a ? w[a.treeId] : null }, getRoots: function () { return w }, getSetting: function (a) { return t[a] }, getSettings: function () { return t }, getZTreeTools: function (a) { return (a = this.getRoot(this.getSetting(a))) ? a.treeTools : null }, initCache: function (a) { for (var b = 0, c = A.length; b < c; b++) A[b].apply(this, arguments) }, initNode: function (a, b, c, d, e, i) { for (var m = 0, g = B.length; m < g; m++) B[m].apply(this, arguments) }, initRoot: function (a) { for (var b = 0, c = C.length; b < c; b++) C[b].apply(this, arguments) }, isSelectedNode: function (a, b) { for (var c = e.getRoot(a), d = 0, f = c.curSelectedList.length; d < f; d++) if (b === c.curSelectedList[d]) return !0; return !1 }, nodeChildren: function (a, b, c) { if (!b) return null; a = a.data.key.children; typeof c !== "undefined" && (b[a] = c); return b[a] }, nodeIsParent: function (a, b, c) { if (!b) return !1; a = a.data.key.isParent; typeof c !== "undefined" ? (typeof c === "string" && (c = h.eqs(c, "true")), b[a] = !! c) : b[a] = typeof b[a] == "string" ? h.eqs(b[a], "true") : !! b[a]; return b[a] }, nodeName: function (a, b, c) { a = a.data.key.name; typeof c !== "undefined" && (b[a] = c); return "" + b[a] }, nodeTitle: function (a, b) { return "" + b[a.data.key.title === "" ? a.data.key.name : a.data.key.title] }, removeNodeCache: function (a, b) { var c = e.nodeChildren(a, b); if (c) for (var d = 0, f = c.length; d < f; d++) e.removeNodeCache(a, c[d]); e.getCache(a).nodes[e.getNodeCacheId(b.tId)] = null }, removeSelectedNode: function (a, b) { for (var c = e.getRoot(a), d = 0, f = c.curSelectedList.length; d < f; d++) if (b === c.curSelectedList[d] || !e.getNodeCache(a, c.curSelectedList[d].tId)) c.curSelectedList.splice(d, 1), a.treeObj.trigger(g.event.UNSELECTED, [a.treeId, b]), d--, f-- }, setCache: function (a, b) { x[a.treeId] = b }, setRoot: function (a, b) { w[a.treeId] = b }, setZTreeTools: function (a, b) { for (var c = 0, d = H.length; c < d; c++) H[c].apply(this, arguments) }, transformToArrayFormat: function (a, b) { function c(b) { d.push(b); (b = e.nodeChildren(a, b)) && (d = d.concat(e.transformToArrayFormat(a, b))) } if (!b) return []; var d = []; if (h.isArray(b)) for (var f = 0, i = b.length; f < i; f++) c(b[f]); else c(b); return d }, transformTozTreeFormat: function (a, b) { var c, d, f = a.data.simpleData.idKey, i = a.data.simpleData.pIdKey; if (!f || f == "" || !b) return []; if (h.isArray(b)) { var g = [], k = {}; for (c = 0, d = b.length; c < d; c++) k[b[c][f]] = b[c]; for (c = 0, d = b.length; c < d; c++) { var j = k[b[c][i]]; if (j && b[c][f] != b[c][i]) { var o = e.nodeChildren(a, j); o || (o = e.nodeChildren(a, j, [])); o.push(b[c]) } else g.push(b[c]) } return g } else return [b] } }, n = { bindEvent: function (a) { for (var b = 0, c = y.length; b < c; b++) y[b].apply(this, arguments) }, unbindEvent: function (a) { for (var b = 0, c = z.length; b < c; b++) z[b].apply(this, arguments) }, bindTree: function (a) { var b = { treeId: a.treeId }, c = a.treeObj; a.view.txtSelectedEnable || c.bind("selectstart", v).css({ "-moz-user-select": "-moz-none" }); c.bind("click", b, n.proxy); c.bind("dblclick", b, n.proxy); c.bind("mouseover", b, n.proxy); c.bind("mouseout", b, n.proxy); c.bind("mousedown", b, n.proxy); c.bind("mouseup", b, n.proxy); c.bind("contextmenu", b, n.proxy) }, unbindTree: function (a) { a.treeObj.unbind("selectstart", v).unbind("click", n.proxy).unbind("dblclick", n.proxy).unbind("mouseover", n.proxy).unbind("mouseout", n.proxy).unbind("mousedown", n.proxy).unbind("mouseup", n.proxy).unbind("contextmenu", n.proxy) }, doProxy: function (a) { for (var b = [], c = 0, d = u.length; c < d; c++) { var e = u[c].apply(this, arguments); b.push(e); if (e.stop) break } return b }, proxy: function (a) { var b = e.getSetting(a.data.treeId); if (!h.uCanDo(b, a)) return !0; for (var b = n.doProxy(a), c = !0, d = 0, f = b.length; d < f; d++) { var i = b[d]; i.nodeEventCallback && (c = i.nodeEventCallback.apply(i, [a, i.node]) && c); i.treeEventCallback && (c = i.treeEventCallback.apply(i, [a, i.node]) && c) } return c } }; J = function (a, b) { var c = e.getSetting(a.data.treeId); if (b.open) { if (h.apply(c.callback.beforeCollapse, [c.treeId, b], !0) == !1) return !0 } else if (h.apply(c.callback.beforeExpand, [c.treeId, b], !0) == !1) return !0; e.getRoot(c).expandTriggerFlag = !0; j.switchNode(c, b); return !0 }; K = function (a, b) { var c = e.getSetting(a.data.treeId), d = c.view.autoCancelSelected && (a.ctrlKey || a.metaKey) && e.isSelectedNode(c, b) ? 0 : c.view.autoCancelSelected && (a.ctrlKey || a.metaKey) && c.view.selectedMulti ? 2 : 1; if (h.apply(c.callback.beforeClick, [c.treeId, b, d], !0) == !1) return !0; d === 0 ? j.cancelPreSelectedNode(c, b) : j.selectNode(c, b, d === 2); c.treeObj.trigger(g.event.CLICK, [a, c.treeId, b, d]); return !0 }; L = function (a, b) { var c = e.getSetting(a.data.treeId); h.apply(c.callback.beforeMouseDown, [c.treeId, b], !0) && h.apply(c.callback.onMouseDown, [a, c.treeId, b]); return !0 }; M = function (a, b) { var c = e.getSetting(a.data.treeId); h.apply(c.callback.beforeMouseUp, [c.treeId, b], !0) && h.apply(c.callback.onMouseUp, [a, c.treeId, b]); return !0 }; N = function (a, b) { var c = e.getSetting(a.data.treeId); h.apply(c.callback.beforeDblClick, [c.treeId, b], !0) && h.apply(c.callback.onDblClick, [a, c.treeId, b]); return !0 }; O = function (a, b) { var c = e.getSetting(a.data.treeId); h.apply(c.callback.beforeRightClick, [c.treeId, b], !0) && h.apply(c.callback.onRightClick, [a, c.treeId, b]); return typeof c.callback.onRightClick != "function" }; v = function (a) { a = a.originalEvent.srcElement.nodeName.toLowerCase(); return a === "input" || a === "textarea" }; var h = { apply: function (a, b, c) { return typeof a == "function" ? a.apply(Q, b ? b : []) : c }, canAsync: function (a, b) { var c = e.nodeChildren(a, b), d = e.nodeIsParent(a, b); return a.async.enable && b && d && !(b.zAsync || c && c.length > 0) }, clone: function (a) { if (a === null) return null; var b = h.isArray(a) ? [] : {}, c; for (c in a) b[c] = a[c] instanceof Date ? new Date(a[c].getTime()) : typeof a[c] === "object" ? h.clone(a[c]) : a[c]; return b }, eqs: function (a, b) { return a.toLowerCase() === b.toLowerCase() }, isArray: function (a) { return Object.prototype.toString.apply(a) === "[object Array]" }, isElement: function (a) { return typeof HTMLElement === "object" ? a instanceof HTMLElement : a && typeof a === "object" && a !== null && a.nodeType === 1 && typeof a.nodeName === "string" }, $: function (a, b, c) { b && typeof b != "string" && (c = b, b = ""); return typeof a == "string" ? r(a, c ? c.treeObj.get(0).ownerDocument : null) : r("#" + a.tId + b, c ? c.treeObj : null) }, getMDom: function (a, b, c) { if (!b) return null; for (; b && b.id !== a.treeId;) { for (var d = 0, e = c.length; b.tagName && d < e; d++) if (h.eqs(b.tagName, c[d].tagName) && b.getAttribute(c[d].attrName) !== null) return b; b = b.parentNode } return null }, getNodeMainDom: function (a) { return r(a).parent("li").get(0) || r(a).parentsUntil("li").parent().get(0) }, isChildOrSelf: function (a, b) { return r(a).closest("#" + b).length > 0 }, uCanDo: function () { return !0 } }, j = { addNodes: function (a, b, c, d, f) { var i = e.nodeIsParent(a, b); if (!a.data.keep.leaf || !b || i) if (h.isArray(d) || (d = [d]), a.data.simpleData.enable && (d = e.transformTozTreeFormat(a, d)), b) { var i = l(b, g.id.SWITCH, a), m = l(b, g.id.ICON, a), k = l(b, g.id.UL, a); if (!b.open) j.replaceSwitchClass(b, i, g.folder.CLOSE), j.replaceIcoClass(b, m, g.folder.CLOSE), b.open = !1, k.css({ display: "none" }); e.addNodesData(a, b, c, d); j.createNodes(a, b.level + 1, d, b, c); f || j.expandCollapseParentNode(a, b, !0) } else e.addNodesData(a, e.getRoot(a), c, d), j.createNodes(a, 0, d, null, c) }, appendNodes: function (a, b, c, d, f, i, g) { if (!c) return []; var k = [], h = d ? d : e.getRoot(a), h = e.nodeChildren(a, h), o, l; if (!h || f >= h.length - c.length) f = -1; for (var s = 0, n = c.length; s < n; s++) { var p = c[s]; i && (o = (f === 0 || h.length == c.length) && s == 0, l = f < 0 && s == c.length - 1, e.initNode(a, b, p, d, o, l, g), e.addNodeCache(a, p)); o = e.nodeIsParent(a, p); l = []; var I = e.nodeChildren(a, p); I && I.length > 0 && (l = j.appendNodes(a, b + 1, I, p, -1, i, g && p.open)); g && (j.makeDOMNodeMainBefore(k, a, p), j.makeDOMNodeLine(k, a, p), e.getBeforeA(a, p, k), j.makeDOMNodeNameBefore(k, a, p), e.getInnerBeforeA(a, p, k), j.makeDOMNodeIcon(k, a, p), e.getInnerAfterA(a, p, k), j.makeDOMNodeNameAfter(k, a, p), e.getAfterA(a, p, k), o && p.open && j.makeUlHtml(a, p, k, l.join("")), j.makeDOMNodeMainAfter(k, a, p), e.addCreatedNode(a, p)) } return k }, appendParentULDom: function (a, b) { var c = [], d = l(b, a); !d.get(0) && b.parentTId && (j.appendParentULDom(a, b.getParentNode()), d = l(b, a)); var f = l(b, g.id.UL, a); f.get(0) && f.remove(); f = e.nodeChildren(a, b); f = j.appendNodes(a, b.level + 1, f, b, -1, !1, !0); j.makeUlHtml(a, b, c, f.join("")); d.append(c.join("")) }, asyncNode: function (a, b, c, d) { var f, i; f = e.nodeIsParent(a, b); if (b && !f) return h.apply(d), !1; else if (b && b.isAjaxing) return !1; else if (h.apply(a.callback.beforeAsync, [a.treeId, b], !0) == !1) return h.apply(d), !1; if (b) b.isAjaxing = !0, l(b, g.id.ICON, a).attr({ style: "", "class": g.className.BUTTON + " " + g.className.ICO_LOADING }); var m = {}, k = h.apply(a.async.autoParam, [a.treeId, b], a.async.autoParam); for (f = 0, i = k.length; b && f < i; f++) { var q = k[f].split("="), o = q; q.length > 1 && (o = q[1], q = q[0]); m[o] = b[q] } k = h.apply(a.async.otherParam, [a.treeId, b], a.async.otherParam); if (h.isArray(k)) for (f = 0, i = k.length; f < i; f += 2) m[k[f]] = k[f + 1]; else for (var n in k) m[n] = k[n]; var s = e.getRoot(a)._ver; r.ajax({ contentType: a.async.contentType, cache: !1, type: a.async.type, url: h.apply(a.async.url, [a.treeId, b], a.async.url), data: a.async.contentType.indexOf("application/json") > -1 ? JSON.stringify(m) : m, dataType: a.async.dataType, headers: a.async.headers, xhrFields: a.async.xhrFields, success: function (i) { if (s == e.getRoot(a)._ver) { var f = []; try { f = !i || i.length == 0 ? [] : typeof i == "string" ? eval("(" + i + ")") : i } catch (k) { f = i } if (b) b.isAjaxing = null, b.zAsync = !0; j.setNodeLineIcos(a, b); f && f !== "" ? (f = h.apply(a.async.dataFilter, [a.treeId, b, f], f), j.addNodes(a, b, -1, f ? h.clone(f) : [], !! c)) : j.addNodes(a, b, -1, [], !! c); a.treeObj.trigger(g.event.ASYNC_SUCCESS, [a.treeId, b, i]); h.apply(d) } }, error: function (c, d, i) { if (s == e.getRoot(a)._ver) { if (b) b.isAjaxing = null; j.setNodeLineIcos(a, b); a.treeObj.trigger(g.event.ASYNC_ERROR, [a.treeId, b, c, d, i]) } } }); return !0 }, cancelPreSelectedNode: function (a, b, c) { var d = e.getRoot(a).curSelectedList, f, i; for (f = d.length - 1; f >= 0; f--) if (i = d[f], b === i || !b && (!c || c !== i)) if (l(i, g.id.A, a).removeClass(g.node.CURSELECTED), b) { e.removeSelectedNode(a, b); break } else d.splice(f, 1), a.treeObj.trigger(g.event.UNSELECTED, [a.treeId, i]) }, createNodeCallback: function (a) { if (a.callback.onNodeCreated || a.view.addDiyDom) for (var b = e.getRoot(a); b.createdNodes.length > 0;) { var c = b.createdNodes.shift(); h.apply(a.view.addDiyDom, [a.treeId, c]); a.callback.onNodeCreated && a.treeObj.trigger(g.event.NODECREATED, [a.treeId, c]) } }, createNodes: function (a, b, c, d, f) { if (c && c.length != 0) { var i = e.getRoot(a), m = !d || d.open || !! l(e.nodeChildren(a, d)[0], a).get(0); i.createdNodes = []; var b = j.appendNodes(a, b, c, d, f, !0, m), k, h; d ? (d = l(d, g.id.UL, a), d.get(0) && (k = d)) : k = a.treeObj; //修改源码 解决滚动条插件对ztree增加节点功能的影响 caoyong 2019.7.22 if(k && k.length > 0){ k = (k.find('.mCSB_container ').length > 0) ? k.find('.mCSB_container ') : k; } k && (f >= 0 && (h = k.children()[f]), f >= 0 && h ? r(h).before(b.join("")) : k.append(b.join(""))); j.createNodeCallback(a) } }, destroy: function (a) { a && (e.initCache(a), e.initRoot(a), n.unbindTree(a), n.unbindEvent(a), a.treeObj.empty(), delete t[a.treeId]) }, expandCollapseNode: function (a, b, c, d, f) { var i = e.getRoot(a), m; if (b) { var k = e.nodeChildren(a, b), q = e.nodeIsParent(a, b); if (i.expandTriggerFlag) m = f, f = function () { m && m(); b.open ? a.treeObj.trigger(g.event.EXPAND, [a.treeId, b]) : a.treeObj.trigger(g.event.COLLAPSE, [a.treeId, b]) }, i.expandTriggerFlag = !1; if (!b.open && q && (!l(b, g.id.UL, a).get(0) || k && k.length > 0 && !l(k[0], a).get(0))) j.appendParentULDom(a, b), j.createNodeCallback(a); if (b.open == c) h.apply(f, []); else { var c = l(b, g.id.UL, a), i = l(b, g.id.SWITCH, a), o = l(b, g.id.ICON, a); q ? (b.open = !b.open, b.iconOpen && b.iconClose && o.attr("style", j.makeNodeIcoStyle(a, b)), b.open ? (j.replaceSwitchClass(b, i, g.folder.OPEN), j.replaceIcoClass(b, o, g.folder.OPEN), d == !1 || a.view.expandSpeed == "" ? (c.show(), h.apply(f, [])) : k && k.length > 0 ? c.slideDown(a.view.expandSpeed, f) : (c.show(), h.apply(f, []))) : (j.replaceSwitchClass(b, i, g.folder.CLOSE), j.replaceIcoClass(b, o, g.folder.CLOSE), d == !1 || a.view.expandSpeed == "" || !(k && k.length > 0) ? (c.hide(), h.apply(f, [])) : c.slideUp(a.view.expandSpeed, f))) : h.apply(f, []) } } else h.apply(f, []) }, expandCollapseParentNode: function (a, b, c, d, e) { b && (b.parentTId ? (j.expandCollapseNode(a, b, c, d), b.parentTId && j.expandCollapseParentNode(a, b.getParentNode(), c, d, e)) : j.expandCollapseNode(a, b, c, d, e)) }, expandCollapseSonNode: function (a, b, c, d, f) { var i = e.getRoot(a), i = b ? e.nodeChildren(a, b) : e.nodeChildren(a, i), g = b ? !1 : d, k = e.getRoot(a).expandTriggerFlag; e.getRoot(a).expandTriggerFlag = !1; if (i) for (var h = 0, l = i.length; h < l; h++) i[h] && j.expandCollapseSonNode(a, i[h], c, g); e.getRoot(a).expandTriggerFlag = k; j.expandCollapseNode(a, b, c, d, f) }, isSelectedNode: function (a, b) { if (!b) return !1; var c = e.getRoot(a).curSelectedList, d; for (d = c.length - 1; d >= 0; d--) if (b === c[d]) return !0; return !1 }, makeDOMNodeIcon: function (a, b, c) { var d = e.nodeName(b, c), d = b.view.nameIsHTML ? d : d.replace(/&/g, "&").replace(//g, ">"); a.push("", d, "") }, makeDOMNodeLine: function (a, b, c) { a.push("") }, makeDOMNodeMainAfter: function (a) { a.push("") }, makeDOMNodeMainBefore: function (a, b, c) { a.push("
  • ") }, makeDOMNodeNameAfter: function (a) { a.push("") }, makeDOMNodeNameBefore: function (a, b, c) { var d = e.nodeTitle(b, c), f = j.makeNodeUrl(b, c), i = j.makeNodeFontCss(b, c), m = [], k; for (k in i) m.push(k, ":", i[k], ";"); a.push(" 0 ? "href='" + f + "'" : "", " target='", j.makeNodeTarget(c), "' style='", m.join(""), "'"); h.apply(b.view.showTitle, [b.treeId, c], b.view.showTitle) && d && a.push("title='", d.replace(/'/g, "'").replace(//g, ">"), "'"); a.push(">") }, makeNodeFontCss: function (a, b) { var c = h.apply(a.view.fontCss, [a.treeId, b], a.view.fontCss); return c && typeof c != "function" ? c : {} }, makeNodeIcoClass: function (a, b) { var c = ["ico"]; if (!b.isAjaxing) { var d = e.nodeIsParent(a, b); c[0] = (b.iconSkin ? b.iconSkin + "_" : "") + c[0]; d ? c.push(b.open ? g.folder.OPEN : g.folder.CLOSE) : c.push(g.folder.DOCU) } return g.className.BUTTON + " " + c.join("_") }, makeNodeIcoStyle: function (a, b) { var c = []; if (!b.isAjaxing) { var d = e.nodeIsParent(a, b) && b.iconOpen && b.iconClose ? b.open ? b.iconOpen : b.iconClose : b[a.data.key.icon]; d && c.push("background:url(", d, ") 0 0 no-repeat;"); (a.view.showIcon == !1 || !h.apply(a.view.showIcon, [a.treeId, b], !0)) && c.push("width:0px;height:0px;") } return c.join("") }, makeNodeLineClass: function (a, b) { var c = []; a.view.showLine ? b.level == 0 && b.isFirstNode && b.isLastNode ? c.push(g.line.ROOT) : b.level == 0 && b.isFirstNode ? c.push(g.line.ROOTS) : b.isLastNode ? c.push(g.line.BOTTOM) : c.push(g.line.CENTER) : c.push(g.line.NOLINE); e.nodeIsParent(a, b) ? c.push(b.open ? g.folder.OPEN : g.folder.CLOSE) : c.push(g.folder.DOCU); return j.makeNodeLineClassEx(b) + c.join("_") }, makeNodeLineClassEx: function (a) { return g.className.BUTTON + " " + g.className.LEVEL + a.level + " " + g.className.SWITCH + " " }, makeNodeTarget: function (a) { return a.target || "_blank" }, makeNodeUrl: function (a, b) { var c = a.data.key.url; return b[c] ? b[c] : null }, makeUlHtml: function (a, b, c, d) { c.push("") }, makeUlLineClass: function (a, b) { return a.view.showLine && !b.isLastNode ? g.line.LINE : "" }, removeChildNodes: function (a, b) { if (b) { var c = e.nodeChildren(a, b); if (c) { for (var d = 0, f = c.length; d < f; d++) e.removeNodeCache(a, c[d]); e.removeSelectedNode(a); delete b[a.data.key.children]; a.data.keep.parent ? l(b, g.id.UL, a).empty() : (e.nodeIsParent(a, b, !1), b.open = !1, c = l(b, g.id.SWITCH, a), d = l(b, g.id.ICON, a), j.replaceSwitchClass(b, c, g.folder.DOCU), j.replaceIcoClass(b, d, g.folder.DOCU), l(b, g.id.UL, a).remove()) } } }, scrollIntoView: function (a, b) { if (b) if (typeof Element === "undefined") { var c = a.treeObj.get(0).getBoundingClientRect(), d = b.getBoundingClientRect(); (d.top < c.top || d.bottom > c.bottom || d.right > c.right || d.left < c.left) && b.scrollIntoView() } else { if (!Element.prototype.scrollIntoViewIfNeeded) Element.prototype.scrollIntoViewIfNeeded = function (a) { function b(a, c) { return { start: a, length: c, end: a + c } } function c(b, d) { return !1 === a || d.start < b.end && b.start < d.end ? Math.max(b.end - d.length, Math.min(d.start, b.start)) : (b.start + b.end - d.length) / 2 } function d(a, b) { return { x: a, y: b, translate: function (c, i) { return d(a + c, b + i) } } } function e(a, b) { for (; a;) b = b.translate(a.offsetLeft, a.offsetTop), a = a.offsetParent; return b } for (var g = e(this, d(0, 0)), j = d(this.offsetWidth, this.offsetHeight), h = this.parentNode, l; h instanceof HTMLElement;) l = e(h, d(h.clientLeft, h.clientTop)), h.scrollLeft = c(b(g.x - l.x, j.x), b(h.scrollLeft, h.clientWidth)), h.scrollTop = c(b(g.y - l.y, j.y), b(h.scrollTop, h.clientHeight)), g = g.translate(-h.scrollLeft, -h.scrollTop), h = h.parentNode }; b.scrollIntoViewIfNeeded() } }, setFirstNode: function (a, b) { var c = e.nodeChildren(a, b); if (c.length > 0) c[0].isFirstNode = !0 }, setLastNode: function (a, b) { var c = e.nodeChildren(a, b); if (c.length > 0) c[c.length - 1].isLastNode = !0 }, removeNode: function (a, b) { var c = e.getRoot(a), d = b.parentTId ? b.getParentNode() : c; b.isFirstNode = !1; b.isLastNode = !1; b.getPreNode = function () { return null }; b.getNextNode = function () { return null }; if (e.getNodeCache(a, b.tId)) { l(b, a).remove(); e.removeNodeCache(a, b); e.removeSelectedNode(a, b); for (var f = e.nodeChildren(a, d), i = 0, h = f.length; i < h; i++) if (f[i].tId == b.tId) { f.splice(i, 1); break } j.setFirstNode(a, d); j.setLastNode(a, d); var k, i = f.length; if (!a.data.keep.parent && i == 0) e.nodeIsParent(a, d, !1), d.open = !1, delete d[a.data.key.children], i = l(d, g.id.UL, a), h = l(d, g.id.SWITCH, a), k = l(d, g.id.ICON, a), j.replaceSwitchClass(d, h, g.folder.DOCU), j.replaceIcoClass(d, k, g.folder.DOCU), i.css("display", "none"); else if (a.view.showLine && i > 0) { var q = f[i - 1], i = l(q, g.id.UL, a), h = l(q, g.id.SWITCH, a); k = l(q, g.id.ICON, a); d == c ? f.length == 1 ? j.replaceSwitchClass(q, h, g.line.ROOT) : (c = l(f[0], g.id.SWITCH, a), j.replaceSwitchClass(f[0], c, g.line.ROOTS), j.replaceSwitchClass(q, h, g.line.BOTTOM)) : j.replaceSwitchClass(q, h, g.line.BOTTOM); i.removeClass(g.line.LINE) } } }, replaceIcoClass: function (a, b, c) { if (b && !a.isAjaxing && (a = b.attr("class"), a != void 0)) { a = a.split("_"); switch (c) { case g.folder.OPEN: case g.folder.CLOSE: case g.folder.DOCU: a[a.length - 1] = c } b.attr("class", a.join("_")) } }, replaceSwitchClass: function (a, b, c) { if (b) { var d = b.attr("class"); if (d != void 0) { d = d.split("_"); switch (c) { case g.line.ROOT: case g.line.ROOTS: case g.line.CENTER: case g.line.BOTTOM: case g.line.NOLINE: d[0] = j.makeNodeLineClassEx(a) + c; break; case g.folder.OPEN: case g.folder.CLOSE: case g.folder.DOCU: d[1] = c } b.attr("class", d.join("_")); c !== g.folder.DOCU ? b.removeAttr("disabled") : b.attr("disabled", "disabled") } } }, selectNode: function (a, b, c) { c || j.cancelPreSelectedNode(a, null, b); l(b, g.id.A, a).addClass(g.node.CURSELECTED); e.addSelectedNode(a, b); a.treeObj.trigger(g.event.SELECTED, [a.treeId, b]) }, setNodeFontCss: function (a, b) { var c = l(b, g.id.A, a), d = j.makeNodeFontCss(a, b); d && c.css(d) }, setNodeLineIcos: function (a, b) { if (b) { var c = l(b, g.id.SWITCH, a), d = l(b, g.id.UL, a), f = l(b, g.id.ICON, a), i = j.makeUlLineClass(a, b); i.length == 0 ? d.removeClass(g.line.LINE) : d.addClass(i); c.attr("class", j.makeNodeLineClass(a, b)); e.nodeIsParent(a, b) ? c.removeAttr("disabled") : c.attr("disabled", "disabled"); f.removeAttr("style"); f.attr("style", j.makeNodeIcoStyle(a, b)); f.attr("class", j.makeNodeIcoClass(a, b)) } }, setNodeName: function (a, b) { var c = e.nodeTitle(a, b), d = l(b, g.id.SPAN, a); d.empty(); a.view.nameIsHTML ? d.html(e.nodeName(a, b)) : d.text(e.nodeName(a, b)); h.apply(a.view.showTitle, [a.treeId, b], a.view.showTitle) && l(b, g.id.A, a).attr("title", !c ? "" : c) }, setNodeTarget: function (a, b) { l(b, g.id.A, a).attr("target", j.makeNodeTarget(b)) }, setNodeUrl: function (a, b) { var c = l(b, g.id.A, a), d = j.makeNodeUrl(a, b); d == null || d.length == 0 ? c.removeAttr("href") : c.attr("href", d) }, switchNode: function (a, b) { b.open || !h.canAsync(a, b) ? j.expandCollapseNode(a, b, !b.open) : a.async.enable ? j.asyncNode(a, b) || j.expandCollapseNode(a, b, !b.open) : b && j.expandCollapseNode(a, b, !b.open) } }; r.fn.zTree = { consts: { className: { BUTTON: "button", LEVEL: "level", ICO_LOADING: "ico_loading", SWITCH: "switch", NAME: "node_name" }, event: { NODECREATED: "ztree_nodeCreated", CLICK: "ztree_click", EXPAND: "ztree_expand", COLLAPSE: "ztree_collapse", ASYNC_SUCCESS: "ztree_async_success", ASYNC_ERROR: "ztree_async_error", REMOVE: "ztree_remove", SELECTED: "ztree_selected", UNSELECTED: "ztree_unselected" }, id: { A: "_a", ICON: "_ico", SPAN: "_span", SWITCH: "_switch", UL: "_ul" }, line: { ROOT: "root", ROOTS: "roots", CENTER: "center", BOTTOM: "bottom", NOLINE: "noline", LINE: "line" }, folder: { OPEN: "open", CLOSE: "close", DOCU: "docu" }, node: { CURSELECTED: "curSelectedNode" } }, _z: { tools: h, view: j, event: n, data: e }, getZTreeObj: function (a) { return (a = e.getZTreeTools(a)) ? a : null }, destroy: function (a) { if (a && a.length > 0) j.destroy(e.getSetting(a)); else for (var b in t) j.destroy(t[b]) }, init: function (a, b, c) { var d = h.clone(P); r.extend(!0, d, b); d.treeId = a.attr("id"); d.treeObj = a; d.treeObj.empty(); t[d.treeId] = d; if (typeof document.body.style.maxHeight === "undefined") d.view.expandSpeed = ""; e.initRoot(d); a = e.getRoot(d); c = c ? h.clone(h.isArray(c) ? c : [c]) : []; d.data.simpleData.enable ? e.nodeChildren(d, a, e.transformTozTreeFormat(d, c)) : e.nodeChildren(d, a, c); e.initCache(d); n.unbindTree(d); n.bindTree(d); n.unbindEvent(d); n.bindEvent(d); var f = { setting: d, addNodes: function (a, b, c, f) { function g() { j.addNodes(d, a, b, n, f == !0) } a || (a = null); var l = e.nodeIsParent(d, a); if (a && !l && d.data.keep.leaf) return null; l = parseInt(b, 10); isNaN(l) ? (f = !! c, c = b, b = -1) : b = l; if (!c) return null; var n = h.clone(h.isArray(c) ? c : [c]); h.canAsync(d, a) ? j.asyncNode(d, a, f, g) : g(); return n }, cancelSelectedNode: function (a) { j.cancelPreSelectedNode(d, a) }, destroy: function () { j.destroy(d) }, expandAll: function (a) { a = !! a; j.expandCollapseSonNode(d, null, a, !0); return a }, expandNode: function (a, b, c, f, g) { function n() { var b = l(a, d).get(0); b && f !== !1 && j.scrollIntoView(d, b) } if (!a || !e.nodeIsParent(d, a)) return null; b !== !0 && b !== !1 && (b = !a.open); if ((g = !! g) && b && h.apply(d.callback.beforeExpand, [d.treeId, a], !0) == !1) return null; else if (g && !b && h.apply(d.callback.beforeCollapse, [d.treeId, a], !0) == !1) return null; b && a.parentTId && j.expandCollapseParentNode(d, a.getParentNode(), b, !1); if (b === a.open && !c) return null; e.getRoot(d).expandTriggerFlag = g; !h.canAsync(d, a) && c ? j.expandCollapseSonNode(d, a, b, !0, n) : (a.open = !b, j.switchNode(this.setting, a), n()); return b }, getNodes: function () { return e.getNodes(d) }, getNodeByParam: function (a, b, c) { return !a ? null : e.getNodeByParam(d, c ? e.nodeChildren(d, c) : e.getNodes(d), a, b) }, getNodeByTId: function (a) { return e.getNodeCache(d, a) }, getNodesByParam: function (a, b, c) { return !a ? null : e.getNodesByParam(d, c ? e.nodeChildren(d, c) : e.getNodes(d), a, b) }, getNodesByParamFuzzy: function (a, b, c) { return !a ? null : e.getNodesByParamFuzzy(d, c ? e.nodeChildren(d, c) : e.getNodes(d), a, b) }, getNodesByFilter: function (a, b, c, f) { b = !! b; return !a || typeof a != "function" ? b ? null : [] : e.getNodesByFilter(d, c ? e.nodeChildren(d, c) : e.getNodes(d), a, b, f) }, getNodeIndex: function (a) { if (!a) return null; for (var b = a.parentTId ? a.getParentNode() : e.getRoot(d), b = e.nodeChildren(d, b), c = 0, f = b.length; c < f; c++) if (b[c] == a) return c; return -1 }, getSelectedNodes: function () { for (var a = [], b = e.getRoot(d).curSelectedList, c = 0, f = b.length; c < f; c++) a.push(b[c]); return a }, isSelectedNode: function (a) { return e.isSelectedNode(d, a) }, reAsyncChildNodesPromise: function (a, b, c) { return new Promise(function (d, e) { try { f.reAsyncChildNodes(a, b, c, function () { d(a) }) } catch (g) { e(g) } }) }, reAsyncChildNodes: function (a, b, c, f) { if (this.setting.async.enable) { var h = !a; h && (a = e.getRoot(d)); if (b == "refresh") { for (var b = e.nodeChildren(d, a), n = 0, r = b ? b.length : 0; n < r; n++) e.removeNodeCache(d, b[n]); e.removeSelectedNode(d); e.nodeChildren(d, a, []); h ? this.setting.treeObj.empty() : l(a, g.id.UL, d).empty() } j.asyncNode(this.setting, h ? null : a, !! c, f) } }, refresh: function () { this.setting.treeObj.empty(); var a = e.getRoot(d), b = e.nodeChildren(d, a); e.initRoot(d); e.nodeChildren(d, a, b); e.initCache(d); j.createNodes(d, 0, e.nodeChildren(d, a), null, -1) }, removeChildNodes: function (a) { if (!a) return null; var b = e.nodeChildren(d, a); j.removeChildNodes(d, a); return b ? b : null }, removeNode: function (a, b) { a && (b = !! b, b && h.apply(d.callback.beforeRemove, [d.treeId, a], !0) == !1 || (j.removeNode(d, a), b && this.setting.treeObj.trigger(g.event.REMOVE, [d.treeId, a]))) }, selectNode: function (a, b, c) { function e() { if (!c) { var b = l(a, d).get(0); j.scrollIntoView(d, b) } } if (a && h.uCanDo(d)) { b = d.view.selectedMulti && b; if (a.parentTId) j.expandCollapseParentNode(d, a.getParentNode(), !0, !1, e); else if (!c) try { l(a, d).focus().blur() } catch (f) {} j.selectNode(d, a, b) } }, transformTozTreeNodes: function (a) { return e.transformTozTreeFormat(d, a) }, transformToArray: function (a) { return e.transformToArrayFormat(d, a) }, updateNode: function (a) { a && l(a, d).get(0) && h.uCanDo(d) && (j.setNodeName(d, a), j.setNodeTarget(d, a), j.setNodeUrl(d, a), j.setNodeLineIcos(d, a), j.setNodeFontCss(d, a)) } }; a.treeTools = f; e.setZTreeTools(d, f); (c = e.nodeChildren(d, a)) && c.length > 0 ? j.createNodes(d, 0, c, null, -1) : d.async.enable && d.async.url && d.async.url !== "" && j.asyncNode(d); return f } }; var Q = r.fn.zTree, l = h.$, g = Q.consts })(jQuery); /* * JQuery zTree excheck v3.5.40 * http://treejs.cn/ * * Copyright (c) 2010 Hunter.z * * Licensed same as jquery - MIT License * http://www.opensource.org/licenses/mit-license.php * * email: hunter.z@263.net * Date: 2019-01-18 */ (function (m) { var p, q, r, o = { event: { CHECK: "ztree_check" }, id: { CHECK: "_check" }, checkbox: { STYLE: "checkbox", DEFAULT: "chk", DISABLED: "disable", FALSE: "false", TRUE: "true", FULL: "full", PART: "part", FOCUS: "focus" }, radio: { STYLE: "radio", TYPE_ALL: "all", TYPE_LEVEL: "level" } }, v = { check: { enable: !1, autoCheckTrigger: !1, chkStyle: o.checkbox.STYLE, nocheckInherit: !1, chkDisabledInherit: !1, radioType: o.radio.TYPE_LEVEL, chkboxType: { Y: "ps", N: "ps" } }, data: { key: { checked: "checked" } }, callback: { beforeCheck: null, onCheck: null } }; p = function (c, a) { if (a.chkDisabled === !0) return !1; var b = f.getSetting(c.data.treeId); if (i.apply(b.callback.beforeCheck, [b.treeId, a], !0) == !1) return !0; var d = f.nodeChecked(b, a); f.nodeChecked(b, a, !d); e.checkNodeRelation(b, a); d = n(a, h.id.CHECK, b); e.setChkClass(b, d, a); e.repairParentChkClassWithSelf(b, a); b.treeObj.trigger(h.event.CHECK, [c, b.treeId, a]); return !0 }; q = function (c, a) { if (a.chkDisabled === !0) return !1; var b = f.getSetting(c.data.treeId), d = n(a, h.id.CHECK, b); a.check_Focus = !0; e.setChkClass(b, d, a); return !0 }; r = function (c, a) { if (a.chkDisabled === !0) return !1; var b = f.getSetting(c.data.treeId), d = n(a, h.id.CHECK, b); a.check_Focus = !1; e.setChkClass(b, d, a); return !0 }; m.extend(!0, m.fn.zTree.consts, o); m.extend(!0, m.fn.zTree._z, { tools: {}, view: { checkNodeRelation: function (c, a) { var b, d, j; d = h.radio; b = f.nodeChecked(c, a); if (c.check.chkStyle == d.STYLE) { var g = f.getRadioCheckedList(c); if (b) if (c.check.radioType == d.TYPE_ALL) { for (d = g.length - 1; d >= 0; d--) { b = g[d]; var k = f.nodeChecked(c, b); k && b != a && (f.nodeChecked(c, b, !1), g.splice(d, 1), e.setChkClass(c, n(b, h.id.CHECK, c), b), b.parentTId != a.parentTId && e.repairParentChkClassWithSelf(c, b)) } g.push(a) } else { g = a.parentTId ? a.getParentNode() : f.getRoot(c); g = f.nodeChildren(c, g); for (d = 0, j = g.length; d < j; d++) if (b = g[d], (k = f.nodeChecked(c, b)) && b != a) f.nodeChecked(c, b, !1), e.setChkClass(c, n(b, h.id.CHECK, c), b) } else if (c.check.radioType == d.TYPE_ALL) for (d = 0, j = g.length; d < j; d++) if (a == g[d]) { g.splice(d, 1); break } } else g = f.nodeChildren(c, a), b && (!g || g.length == 0 || c.check.chkboxType.Y.indexOf("s") > -1) && e.setSonNodeCheckBox(c, a, !0), !b && (!g || g.length == 0 || c.check.chkboxType.N.indexOf("s") > -1) && e.setSonNodeCheckBox(c, a, !1), b && c.check.chkboxType.Y.indexOf("p") > -1 && e.setParentNodeCheckBox(c, a, !0), !b && c.check.chkboxType.N.indexOf("p") > -1 && e.setParentNodeCheckBox(c, a, !1) }, makeChkClass: function (c, a) { var b = h.checkbox, d = h.radio, j = "", g = f.nodeChecked(c, a), j = a.chkDisabled === !0 ? b.DISABLED : a.halfCheck ? b.PART : c.check.chkStyle == d.STYLE ? a.check_Child_State < 1 ? b.FULL : b.PART : g ? a.check_Child_State === 2 || a.check_Child_State === -1 ? b.FULL : b.PART : a.check_Child_State < 1 ? b.FULL : b.PART, d = c.check.chkStyle + "_" + (g ? b.TRUE : b.FALSE) + "_" + j, d = a.check_Focus && a.chkDisabled !== !0 ? d + "_" + b.FOCUS : d; return h.className.BUTTON + " " + b.DEFAULT + " " + d }, repairAllChk: function (c, a) { if (c.check.enable && c.check.chkStyle === h.checkbox.STYLE) for (var b = f.getRoot(c), b = f.nodeChildren(c, b), d = 0, j = b.length; d < j; d++) { var g = b[d]; g.nocheck !== !0 && g.chkDisabled !== !0 && f.nodeChecked(c, g, a); e.setSonNodeCheckBox(c, g, a) } }, repairChkClass: function (c, a) { if (a && (f.makeChkFlag(c, a), a.nocheck !== !0)) { var b = n(a, h.id.CHECK, c); e.setChkClass(c, b, a) } }, repairParentChkClass: function (c, a) { if (a && a.parentTId) { var b = a.getParentNode(); e.repairChkClass(c, b); e.repairParentChkClass(c, b) } }, repairParentChkClassWithSelf: function (c, a) { if (a) { var b = f.nodeChildren(c, a); b && b.length > 0 ? e.repairParentChkClass(c, b[0]) : e.repairParentChkClass(c, a) } }, repairSonChkDisabled: function (c, a, b, d) { if (a) { if (a.chkDisabled != b) a.chkDisabled = b; e.repairChkClass(c, a); if ((a = f.nodeChildren(c, a)) && d) for (var j = 0, g = a.length; j < g; j++) e.repairSonChkDisabled(c, a[j], b, d) } }, repairParentChkDisabled: function (c, a, b, d) { if (a) { if (a.chkDisabled != b && d) a.chkDisabled = b; e.repairChkClass(c, a); e.repairParentChkDisabled(c, a.getParentNode(), b, d) } }, setChkClass: function (c, a, b) { a && (b.nocheck === !0 ? a.hide() : a.show(), a.attr("class", e.makeChkClass(c, b))) }, setParentNodeCheckBox: function (c, a, b, d) { var j = n(a, h.id.CHECK, c); d || (d = a); f.makeChkFlag(c, a); a.nocheck !== !0 && a.chkDisabled !== !0 && (f.nodeChecked(c, a, b), e.setChkClass(c, j, a), c.check.autoCheckTrigger && a != d && c.treeObj.trigger(h.event.CHECK, [null, c.treeId, a])); if (a.parentTId) { j = !0; if (!b) for (var g = f.nodeChildren(c, a.getParentNode()), k = 0, w = g.length; k < w; k++) { var l = g[k], i = f.nodeChecked(c, l); if (l.nocheck !== !0 && l.chkDisabled !== !0 && i || (l.nocheck === !0 || l.chkDisabled === !0) && l.check_Child_State > 0) { j = !1; break } } j && e.setParentNodeCheckBox(c, a.getParentNode(), b, d) } }, setSonNodeCheckBox: function (c, a, b, d) { if (a) { var j = n(a, h.id.CHECK, c); d || (d = a); var g = !1, k = f.nodeChildren(c, a); if (k) for (var i = 0, l = k.length; i < l; i++) { var m = k[i]; e.setSonNodeCheckBox(c, m, b, d); m.chkDisabled === !0 && (g = !0) } if (a != f.getRoot(c) && a.chkDisabled !== !0) { g && a.nocheck !== !0 && f.makeChkFlag(c, a); if (a.nocheck !== !0 && a.chkDisabled !== !0) { if (f.nodeChecked(c, a, b), !g) a.check_Child_State = k && k.length > 0 ? b ? 2 : 0 : -1 } else a.check_Child_State = -1; e.setChkClass(c, j, a); c.check.autoCheckTrigger && a != d && a.nocheck !== !0 && a.chkDisabled !== !0 && c.treeObj.trigger(h.event.CHECK, [null, c.treeId, a]) } } } }, event: {}, data: { getRadioCheckedList: function (c) { for (var a = f.getRoot(c).radioCheckedList, b = 0, d = a.length; b < d; b++) f.getNodeCache(c, a[b].tId) || (a.splice(b, 1), b--, d--); return a }, getCheckStatus: function (c, a) { if (!c.check.enable || a.nocheck || a.chkDisabled) return null; var b = f.nodeChecked(c, a); return { checked: b, half: a.halfCheck ? a.halfCheck : c.check.chkStyle == h.radio.STYLE ? a.check_Child_State === 2 : b ? a.check_Child_State > -1 && a.check_Child_State < 2 : a.check_Child_State > 0 } }, getTreeCheckedNodes: function (c, a, b, d) { if (!a) return []; for (var j = b && c.check.chkStyle == h.radio.STYLE && c.check.radioType == h.radio.TYPE_ALL, d = !d ? [] : d, g = 0, e = a.length; g < e; g++) { var i = a[g], l = f.nodeChildren(c, i), m = f.nodeChecked(c, i); if (i.nocheck !== !0 && i.chkDisabled !== !0 && m == b && (d.push(i), j)) break; f.getTreeCheckedNodes(c, l, b, d); if (j && d.length > 0) break } return d }, getTreeChangeCheckedNodes: function (c, a, b) { if (!a) return []; for (var b = !b ? [] : b, d = 0, j = a.length; d < j; d++) { var g = a[d], e = f.nodeChildren(c, g), h = f.nodeChecked(c, g); g.nocheck !== !0 && g.chkDisabled !== !0 && h != g.checkedOld && b.push(g); f.getTreeChangeCheckedNodes(c, e, b) } return b }, makeChkFlag: function (c, a) { if (a) { var b = -1, d = f.nodeChildren(c, a); if (d) for (var j = 0, g = d.length; j < g; j++) { var e = d[j], i = f.nodeChecked(c, e), l = -1; if (c.check.chkStyle == h.radio.STYLE) if (l = e.nocheck === !0 || e.chkDisabled === !0 ? e.check_Child_State : e.halfCheck === !0 ? 2 : i ? 2 : e.check_Child_State > 0 ? 2 : 0, l == 2) { b = 2; break } else l == 0 && (b = 0); else if (c.check.chkStyle == h.checkbox.STYLE) if (l = e.nocheck === !0 || e.chkDisabled === !0 ? e.check_Child_State : e.halfCheck === !0 ? 1 : i ? e.check_Child_State === -1 || e.check_Child_State === 2 ? 2 : 1 : e.check_Child_State > 0 ? 1 : 0, l === 1) { b = 1; break } else if (l === 2 && b > -1 && j > 0 && l !== b) { b = 1; break } else if (b === 2 && l > -1 && l < 2) { b = 1; break } else l > -1 && (b = l) } a.check_Child_State = b } } } }); var m = m.fn.zTree, i = m._z.tools, h = m.consts, e = m._z.view, f = m._z.data, n = i.$; f.nodeChecked = function (c, a, b) { if (!a) return !1; c = c.data.key.checked; typeof b !== "undefined" ? (typeof b === "string" && (b = i.eqs(b, "true")), a[c] = !! b) : a[c] = typeof a[c] == "string" ? i.eqs(a[c], "true") : !! a[c]; return a[c] }; f.exSetting(v); f.addInitBind(function (c) { c.treeObj.bind(h.event.CHECK, function (a, b, d, e) { a.srcEvent = b; i.apply(c.callback.onCheck, [a, d, e]) }) }); f.addInitUnBind(function (c) { c.treeObj.unbind(h.event.CHECK) }); f.addInitCache(function () {}); f.addInitNode(function (c, a, b, d) { if (b) { a = f.nodeChecked(c, b); b.checkedOld = a; if (typeof b.nocheck == "string") b.nocheck = i.eqs(b.nocheck, "true"); b.nocheck = !! b.nocheck || c.check.nocheckInherit && d && !! d.nocheck; if (typeof b.chkDisabled == "string") b.chkDisabled = i.eqs(b.chkDisabled, "true"); b.chkDisabled = !! b.chkDisabled || c.check.chkDisabledInherit && d && !! d.chkDisabled; if (typeof b.halfCheck == "string") b.halfCheck = i.eqs(b.halfCheck, "true"); b.halfCheck = !! b.halfCheck; b.check_Child_State = -1; b.check_Focus = !1; b.getCheckStatus = function () { return f.getCheckStatus(c, b) }; c.check.chkStyle == h.radio.STYLE && c.check.radioType == h.radio.TYPE_ALL && a && f.getRoot(c).radioCheckedList.push(b) } }); f.addInitProxy(function (c) { var a = c.target, b = f.getSetting(c.data.treeId), d = "", e = null, g = "", k = null; if (i.eqs(c.type, "mouseover")) { if (b.check.enable && i.eqs(a.tagName, "span") && a.getAttribute("treeNode" + h.id.CHECK) !== null) d = i.getNodeMainDom(a).id, g = "mouseoverCheck" } else if (i.eqs(c.type, "mouseout")) { if (b.check.enable && i.eqs(a.tagName, "span") && a.getAttribute("treeNode" + h.id.CHECK) !== null) d = i.getNodeMainDom(a).id, g = "mouseoutCheck" } else if (i.eqs(c.type, "click") && b.check.enable && i.eqs(a.tagName, "span") && a.getAttribute("treeNode" + h.id.CHECK) !== null) d = i.getNodeMainDom(a).id, g = "checkNode"; if (d.length > 0) switch (e = f.getNodeCache(b, d), g) { case "checkNode": k = p; break; case "mouseoverCheck": k = q; break; case "mouseoutCheck": k = r } return { stop: g === "checkNode", node: e, nodeEventType: g, nodeEventCallback: k, treeEventType: "", treeEventCallback: null } }, !0); f.addInitRoot(function (c) { f.getRoot(c).radioCheckedList = [] }); f.addBeforeA(function (c, a, b) { c.check.enable && (f.makeChkFlag(c, a), b.push("")) }); f.addZTreeTools(function (c, a) { a.checkNode = function (a, b, g, k) { var m = f.nodeChecked(c, a); if (a.chkDisabled !== !0 && (b !== !0 && b !== !1 && (b = !m), k = !! k, (m !== b || g) && !(k && i.apply(this.setting.callback.beforeCheck, [this.setting.treeId, a], !0) == !1) && i.uCanDo(this.setting) && this.setting.check.enable && a.nocheck !== !0)) f.nodeChecked(c, a, b), b = n(a, h.id.CHECK, this.setting), (g || this.setting.check.chkStyle === h.radio.STYLE) && e.checkNodeRelation(this.setting, a), e.setChkClass(this.setting, b, a), e.repairParentChkClassWithSelf(this.setting, a), k && this.setting.treeObj.trigger(h.event.CHECK, [null, this.setting.treeId, a]) }; a.checkAllNodes = function (a) { e.repairAllChk(this.setting, !! a) }; a.getCheckedNodes = function (a) { var a = a !== !1, b = f.nodeChildren(c, f.getRoot(this.setting)); return f.getTreeCheckedNodes(this.setting, b, a) }; a.getChangeCheckedNodes = function () { var a = f.nodeChildren(c, f.getRoot(this.setting)); return f.getTreeChangeCheckedNodes(this.setting, a) }; a.setChkDisabled = function (a, b, c, f) { b = !! b; c = !! c; e.repairSonChkDisabled(this.setting, a, b, !! f); e.repairParentChkDisabled(this.setting, a.getParentNode(), b, c) }; var b = a.updateNode; a.updateNode = function (c, f) { b && b.apply(a, arguments); if (c && this.setting.check.enable && n(c, this.setting).get(0) && i.uCanDo(this.setting)) { var g = n(c, h.id.CHECK, this.setting); (f == !0 || this.setting.check.chkStyle === h.radio.STYLE) && e.checkNodeRelation(this.setting, c); e.setChkClass(this.setting, g, c); e.repairParentChkClassWithSelf(this.setting, c) } } }); var s = e.createNodes; e.createNodes = function (c, a, b, d, f) { s && s.apply(e, arguments); b && e.repairParentChkClassWithSelf(c, d) }; var t = e.removeNode; e.removeNode = function (c, a) { var b = a.getParentNode(); t && t.apply(e, arguments); a && b && (e.repairChkClass(c, b), e.repairParentChkClass(c, b)) }; var u = e.appendNodes; e.appendNodes = function (c, a, b, d, h, g, i) { var m = ""; u && (m = u.apply(e, arguments)); d && f.makeChkFlag(c, d); return m } })(jQuery); /* * JQuery zTree exedit v3.5.40 * http://treejs.cn/ * * Copyright (c) 2010 Hunter.z * * Licensed same as jquery - MIT License * http://www.opensource.org/licenses/mit-license.php * * email: hunter.z@263.net * Date: 2019-01-18 */ (function (B) { var I = { event: { DRAG: "ztree_drag", DROP: "ztree_drop", RENAME: "ztree_rename", DRAGMOVE: "ztree_dragmove" }, id: { EDIT: "_edit", INPUT: "_input", REMOVE: "_remove" }, move: { TYPE_INNER: "inner", TYPE_PREV: "prev", TYPE_NEXT: "next" }, node: { CURSELECTED_EDIT: "curSelectedNode_Edit", TMPTARGET_TREE: "tmpTargetzTree", TMPTARGET_NODE: "tmpTargetNode" } }, v = { onHoverOverNode: function (a, b) { var c = i.getSetting(a.data.treeId), d = i.getRoot(c); if (d.curHoverNode != b) v.onHoverOutNode(a); d.curHoverNode = b; e.addHoverDom(c, b) }, onHoverOutNode: function (a) { var a = i.getSetting(a.data.treeId), b = i.getRoot(a); if (b.curHoverNode && !i.isSelectedNode(a, b.curHoverNode)) e.removeTreeDom(a, b.curHoverNode), b.curHoverNode = null }, onMousedownNode: function (a, b) { function c(a) { if (m.dragFlag == 0 && Math.abs(N - a.clientX) < f.edit.drag.minMoveSize && Math.abs(O - a.clientY) < f.edit.drag.minMoveSize) return !0; var b, c, g, j; L.css("cursor", "pointer"); if (m.dragFlag == 0) { if (k.apply(f.callback.beforeDrag, [f.treeId, n], !0) == !1) return l(a), !0; for (b = 0, c = n.length; b < c; b++) { if (b == 0) m.dragNodeShowBefore = []; g = n[b]; i.nodeIsParent(f, g) && g.open ? (e.expandCollapseNode(f, g, !g.open), m.dragNodeShowBefore[g.tId] = !0) : m.dragNodeShowBefore[g.tId] = !1 } m.dragFlag = 1; y.showHoverDom = !1; k.showIfameMask(f, !0); j = !0; var p = -1; if (n.length > 1) { var o = n[0].parentTId ? i.nodeChildren(f, n[0].getParentNode()) : i.getNodes(f); g = []; for (b = 0, c = o.length; b < c; b++) if (m.dragNodeShowBefore[o[b].tId] !== void 0 && (j && p > -1 && p + 1 !== b && (j = !1), g.push(o[b]), p = b), n.length === g.length) { n = g; break } } j && (H = n[0].getPreNode(), Q = n[n.length - 1].getNextNode()); C = q("", f); for (b = 0, c = n.length; b < c; b++) g = n[b], g.editNameFlag = !1, e.selectNode(f, g, b > 0), e.removeTreeDom(f, g), b > f.edit.drag.maxShowNodeNum - 1 || (j = q("
  • ", f), j.append(q(g, d.id.A, f).clone()), j.css("padding", "0"), j.children("#" + g.tId + d.id.A).removeClass(d.node.CURSELECTED), C.append(j), b == f.edit.drag.maxShowNodeNum - 1 && (j = q("
  • ...
  • ", f), C.append(j))); C.attr("id", n[0].tId + d.id.UL + "_tmp"); C.addClass(f.treeObj.attr("class")); C.appendTo(L); u = q("", f); u.attr("id", "zTreeMove_arrow_tmp"); u.appendTo(L); f.treeObj.trigger(d.event.DRAG, [a, f.treeId, n]) } if (m.dragFlag == 1) { t && u.attr("id") == a.target.id && w && a.clientX + G.scrollLeft() + 2 > B("#" + w + d.id.A, t).offset().left ? (g = B("#" + w + d.id.A, t), a.target = g.length > 0 ? g.get(0) : a.target) : t && (t.removeClass(d.node.TMPTARGET_TREE), w && B("#" + w + d.id.A, t).removeClass(d.node.TMPTARGET_NODE + "_" + d.move.TYPE_PREV).removeClass(d.node.TMPTARGET_NODE + "_" + I.move.TYPE_NEXT).removeClass(d.node.TMPTARGET_NODE + "_" + I.move.TYPE_INNER)); w = t = null; J = !1; h = f; g = i.getSettings(); for (var z in g) if (g[z].treeId && g[z].edit.enable && g[z].treeId != f.treeId && (a.target.id == g[z].treeId || B(a.target).parents("#" + g[z].treeId).length > 0)) J = !0, h = g[z]; z = G.scrollTop(); j = G.scrollLeft(); p = h.treeObj.offset(); b = h.treeObj.get(0).scrollHeight; g = h.treeObj.get(0).scrollWidth; c = a.clientY + z - p.top; var E = h.treeObj.height() + p.top - a.clientY - z, r = a.clientX + j - p.left, s = h.treeObj.width() + p.left - a.clientX - j, p = c < f.edit.drag.borderMax && c > f.edit.drag.borderMin, o = E < f.edit.drag.borderMax && E > f.edit.drag.borderMin, F = r < f.edit.drag.borderMax && r > f.edit.drag.borderMin, v = s < f.edit.drag.borderMax && s > f.edit.drag.borderMin, E = c > f.edit.drag.borderMin && E > f.edit.drag.borderMin && r > f.edit.drag.borderMin && s > f.edit.drag.borderMin, r = p && h.treeObj.scrollTop() <= 0, s = o && h.treeObj.scrollTop() + h.treeObj.height() + 10 >= b, M = F && h.treeObj.scrollLeft() <= 0, P = v && h.treeObj.scrollLeft() + h.treeObj.width() + 10 >= g; if (a.target && k.isChildOrSelf(a.target, h.treeId)) { for (var D = a.target; D && D.tagName && !k.eqs(D.tagName, "li") && D.id != h.treeId;) D = D.parentNode; var R = !0; for (b = 0, c = n.length; b < c; b++) if (g = n[b], D.id === g.tId) { R = !1; break } else if (q(g, f).find("#" + D.id).length > 0) { R = !1; break } if (R && a.target && k.isChildOrSelf(a.target, D.id + d.id.A)) t = B(D), w = D.id } g = n[0]; if (E && k.isChildOrSelf(a.target, h.treeId)) { if (!t && (a.target.id == h.treeId || r || s || M || P) && (J || !J && g.parentTId)) t = h.treeObj; p ? h.treeObj.scrollTop(h.treeObj.scrollTop() - 10) : o && h.treeObj.scrollTop(h.treeObj.scrollTop() + 10); F ? h.treeObj.scrollLeft(h.treeObj.scrollLeft() - 10) : v && h.treeObj.scrollLeft(h.treeObj.scrollLeft() + 10); t && t != h.treeObj && t.offset().left < h.treeObj.offset().left && h.treeObj.scrollLeft(h.treeObj.scrollLeft() + t.offset().left - h.treeObj.offset().left) } C.css({ top: a.clientY + z + 3 + "px", left: a.clientX + j + 3 + "px" }); b = j = 0; if (t && t.attr("id") != h.treeId) { var A = w == null ? null : i.getNodeCache(h, w), p = (a.ctrlKey || a.metaKey) && f.edit.drag.isMove && f.edit.drag.isCopy || !f.edit.drag.isMove && f.edit.drag.isCopy; c = !! (H && w === H.tId); F = !! (Q && w === Q.tId); o = g.parentTId && g.parentTId == w; g = (p || !F) && k.apply(h.edit.drag.prev, [h.treeId, n, A], !! h.edit.drag.prev); c = (p || !c) && k.apply(h.edit.drag.next, [h.treeId, n, A], !! h.edit.drag.next); p = (p || !o) && !(h.data.keep.leaf && !i.nodeIsParent(f, A)) && k.apply(h.edit.drag.inner, [h.treeId, n, A], !! h.edit.drag.inner); o = function () { t = null; w = ""; x = d.move.TYPE_INNER; u.css({ display: "none" }); if (window.zTreeMoveTimer) clearTimeout(window.zTreeMoveTimer), window.zTreeMoveTargetNodeTId = null }; if (!g && !c && !p) o(); else if (F = B("#" + w + d.id.A, t), v = A.isLastNode ? null : B("#" + A.getNextNode().tId + d.id.A, t.next()), E = F.offset().top, r = F.offset().left, s = g ? p ? 0.25 : c ? 0.5 : 1 : -1, M = c ? p ? 0.75 : g ? 0.5 : 0 : -1, z = (a.clientY + z - E) / F.height(), (s == 1 || z <= s && z >= -0.2) && g ? (j = 1 - u.width(), b = E - u.height() / 2, x = d.move.TYPE_PREV) : (M == 0 || z >= M && z <= 1.2) && c ? (j = 1 - u.width(), b = v == null || i.nodeIsParent(f, A) && A.open ? E + F.height() - u.height() / 2 : v.offset().top - u.height() / 2, x = d.move.TYPE_NEXT) : p ? (j = 5 - u.width(), b = E, x = d.move.TYPE_INNER) : o(), t) { u.css({ display: "block", top: b + "px", left: r + j + "px" }); F.addClass(d.node.TMPTARGET_NODE + "_" + x); if (S != w || T != x) K = (new Date).getTime(); if (A && i.nodeIsParent(f, A) && x == d.move.TYPE_INNER && (z = !0, window.zTreeMoveTimer && window.zTreeMoveTargetNodeTId !== A.tId ? (clearTimeout(window.zTreeMoveTimer), window.zTreeMoveTargetNodeTId = null) : window.zTreeMoveTimer && window.zTreeMoveTargetNodeTId === A.tId && (z = !1), z)) window.zTreeMoveTimer = setTimeout(function () { x == d.move.TYPE_INNER && A && i.nodeIsParent(f, A) && !A.open && (new Date).getTime() - K > h.edit.drag.autoOpenTime && k.apply(h.callback.beforeDragOpen, [h.treeId, A], !0) && (e.switchNode(h, A), h.edit.drag.autoExpandTrigger && h.treeObj.trigger(d.event.EXPAND, [h.treeId, A])) }, h.edit.drag.autoOpenTime + 50), window.zTreeMoveTargetNodeTId = A.tId } } else if (x = d.move.TYPE_INNER, t && k.apply(h.edit.drag.inner, [h.treeId, n, null], !! h.edit.drag.inner) ? t.addClass(d.node.TMPTARGET_TREE) : t = null, u.css({ display: "none" }), window.zTreeMoveTimer) clearTimeout(window.zTreeMoveTimer), window.zTreeMoveTargetNodeTId = null; S = w; T = x; f.treeObj.trigger(d.event.DRAGMOVE, [a, f.treeId, n]) } return !1 } function l(a) { if (window.zTreeMoveTimer) clearTimeout(window.zTreeMoveTimer), window.zTreeMoveTargetNodeTId = null; T = S = null; G.unbind("mousemove", c); G.unbind("mouseup", l); G.unbind("selectstart", g); L.css("cursor", ""); t && (t.removeClass(d.node.TMPTARGET_TREE), w && B("#" + w + d.id.A, t).removeClass(d.node.TMPTARGET_NODE + "_" + d.move.TYPE_PREV).removeClass(d.node.TMPTARGET_NODE + "_" + I.move.TYPE_NEXT).removeClass(d.node.TMPTARGET_NODE + "_" + I.move.TYPE_INNER)); k.showIfameMask(f, !1); y.showHoverDom = !0; if (m.dragFlag != 0) { m.dragFlag = 0; var b, j, o; for (b = 0, j = n.length; b < j; b++) o = n[b], i.nodeIsParent(f, o) && m.dragNodeShowBefore[o.tId] && !o.open && (e.expandCollapseNode(f, o, !o.open), delete m.dragNodeShowBefore[o.tId]); C && C.remove(); u && u.remove(); var r = (a.ctrlKey || a.metaKey) && f.edit.drag.isMove && f.edit.drag.isCopy || !f.edit.drag.isMove && f.edit.drag.isCopy; !r && t && w && n[0].parentTId && w == n[0].parentTId && x == d.move.TYPE_INNER && (t = null); if (t) { var p = w == null ? null : i.getNodeCache(h, w); if (k.apply(f.callback.beforeDrop, [h.treeId, n, p, x, r], !0) == !1) e.selectNodes(v, n); else { var s = r ? k.clone(n) : n; b = function () { if (J) { if (!r) for (var b = 0, c = n.length; b < c; b++) e.removeNode(f, n[b]); x == d.move.TYPE_INNER ? e.addNodes(h, p, -1, s) : e.addNodes(h, p.getParentNode(), x == d.move.TYPE_PREV ? p.getIndex() : p.getIndex() + 1, s) } else if (r && x == d.move.TYPE_INNER) e.addNodes(h, p, -1, s); else if (r) e.addNodes(h, p.getParentNode(), x == d.move.TYPE_PREV ? p.getIndex() : p.getIndex() + 1, s); else if (x != d.move.TYPE_NEXT) for (b = 0, c = s.length; b < c; b++) e.moveNode(h, p, s[b], x, !1); else for (b = -1, c = s.length - 1; b < c; c--) e.moveNode(h, p, s[c], x, !1); e.selectNodes(h, s); b = q(s[0], f).get(0); e.scrollIntoView(f, b); f.treeObj.trigger(d.event.DROP, [a, h.treeId, s, p, x, r]) }; x == d.move.TYPE_INNER && k.canAsync(h, p) ? e.asyncNode(h, p, !1, b) : b() } } else e.selectNodes(v, n), f.treeObj.trigger(d.event.DROP, [a, f.treeId, n, null, null, null]) } } function g() { return !1 } var o, j, f = i.getSetting(a.data.treeId), m = i.getRoot(f), y = i.getRoots(); if (a.button == 2 || !f.edit.enable || !f.edit.drag.isCopy && !f.edit.drag.isMove) return !0; var r = a.target, s = i.getRoot(f).curSelectedList, n = []; if (i.isSelectedNode(f, b)) for (o = 0, j = s.length; o < j; o++) { if (s[o].editNameFlag && k.eqs(r.tagName, "input") && r.getAttribute("treeNode" + d.id.INPUT) !== null) return !0; n.push(s[o]); if (n[0].parentTId !== s[o].parentTId) { n = [b]; break } } else n = [b]; e.editNodeBlur = !0; e.cancelCurEditNode(f); var G = B(f.treeObj.get(0).ownerDocument), L = B(f.treeObj.get(0).ownerDocument.body), C, u, t, J = !1, h = f, v = f, H, Q, S = null, T = null, w = null, x = d.move.TYPE_INNER, N = a.clientX, O = a.clientY, K = (new Date).getTime(); k.uCanDo(f) && G.bind("mousemove", c); G.bind("mouseup", l); G.bind("selectstart", g); return !0 } }; B.extend(!0, B.fn.zTree.consts, I); B.extend(!0, B.fn.zTree._z, { tools: { getAbs: function (a) { a = a.getBoundingClientRect(); return [a.left + (document.body.scrollLeft + document.documentElement.scrollLeft), a.top + (document.body.scrollTop + document.documentElement.scrollTop)] }, inputFocus: function (a) { a.get(0) && (a.focus(), k.setCursorPosition(a.get(0), a.val().length)) }, inputSelect: function (a) { a.get(0) && (a.focus(), a.select()) }, setCursorPosition: function (a, b) { if (a.setSelectionRange) a.focus(), a.setSelectionRange(b, b); else if (a.createTextRange) { var c = a.createTextRange(); c.collapse(!0); c.moveEnd("character", b); c.moveStart("character", b); c.select() } }, showIfameMask: function (a, b) { for (var c = i.getRoot(a); c.dragMaskList.length > 0;) c.dragMaskList[0].remove(), c.dragMaskList.shift(); if (b) for (var d = q("iframe", a), g = 0, e = d.length; g < e; g++) { var j = d.get(g), f = k.getAbs(j), j = q("
    ", a); j.appendTo(q("body", a)); c.dragMaskList.push(j) } } }, view: { addEditBtn: function (a, b) { if (!(b.editNameFlag || q(b, d.id.EDIT, a).length > 0) && k.apply(a.edit.showRenameBtn, [a.treeId, b], a.edit.showRenameBtn)) { var c = q(b, d.id.A, a), l = ""; c.append(l); q(b, d.id.EDIT, a).bind("click", function () { if (!k.uCanDo(a) || k.apply(a.callback.beforeEditName, [a.treeId, b], !0) == !1) return !1; e.editNode(a, b); return !1 }).show() } }, addRemoveBtn: function (a, b) { if (!(b.editNameFlag || q(b, d.id.REMOVE, a).length > 0) && k.apply(a.edit.showRemoveBtn, [a.treeId, b], a.edit.showRemoveBtn)) { var c = q(b, d.id.A, a), l = ""; c.append(l); q(b, d.id.REMOVE, a).bind("click", function () { if (!k.uCanDo(a) || k.apply(a.callback.beforeRemove, [a.treeId, b], !0) == !1) return !1; e.removeNode(a, b); a.treeObj.trigger(d.event.REMOVE, [a.treeId, b]); return !1 }).bind("mousedown", function () { return !0 }).show() } }, addHoverDom: function (a, b) { if (i.getRoots().showHoverDom) b.isHover = !0, a.edit.enable && (e.addEditBtn(a, b), e.addRemoveBtn(a, b)), k.apply(a.view.addHoverDom, [a.treeId, b]) }, cancelCurEditNode: function (a, b, c) { var l = i.getRoot(a), g = l.curEditNode; if (g) { var o = l.curEditInput, b = b ? b : c ? i.nodeName(a, g) : o.val(); if (k.apply(a.callback.beforeRename, [a.treeId, g, b, c], !0) === !1) return !1; i.nodeName(a, g, b); q(g, d.id.A, a).removeClass(d.node.CURSELECTED_EDIT); o.unbind(); e.setNodeName(a, g); g.editNameFlag = !1; l.curEditNode = null; l.curEditInput = null; e.selectNode(a, g, !1); a.treeObj.trigger(d.event.RENAME, [a.treeId, g, c]) } return l.noSelection = !0 }, editNode: function (a, b) { var c = i.getRoot(a); e.editNodeBlur = !1; if (i.isSelectedNode(a, b) && c.curEditNode == b && b.editNameFlag) setTimeout(function () { k.inputFocus(c.curEditInput) }, 0); else { b.editNameFlag = !0; e.removeTreeDom(a, b); e.cancelCurEditNode(a); e.selectNode(a, b, !1); q(b, d.id.SPAN, a).html(""); var l = q(b, d.id.INPUT, a); l.attr("value", i.nodeName(a, b)); a.edit.editNameSelectAll ? k.inputSelect(l) : k.inputFocus(l); l.bind("blur", function () { e.editNodeBlur || e.cancelCurEditNode(a) }).bind("keydown", function (b) { b.keyCode == "13" ? (e.editNodeBlur = !0, e.cancelCurEditNode(a)) : b.keyCode == "27" && e.cancelCurEditNode(a, null, !0) }).bind("click", function () { return !1 }).bind("dblclick", function () { return !1 }); q(b, d.id.A, a).addClass(d.node.CURSELECTED_EDIT); c.curEditInput = l; c.noSelection = !1; c.curEditNode = b } }, moveNode: function (a, b, c, l, g, k) { var j = i.getRoot(a); if (b != c && (!a.data.keep.leaf || !b || i.nodeIsParent(a, b) || l != d.move.TYPE_INNER)) { var f = c.parentTId ? c.getParentNode() : j, m = b === null || b == j; m && b === null && (b = j); if (m) l = d.move.TYPE_INNER; j = b.parentTId ? b.getParentNode() : j; if (l != d.move.TYPE_PREV && l != d.move.TYPE_NEXT) l = d.move.TYPE_INNER; if (l == d.move.TYPE_INNER) if (m) c.parentTId = null; else { if (!i.nodeIsParent(a, b)) i.nodeIsParent(a, b, !0), b.open = !! b.open, e.setNodeLineIcos(a, b); c.parentTId = b.tId } var y; m ? y = m = a.treeObj : (!k && l == d.move.TYPE_INNER ? e.expandCollapseNode(a, b, !0, !1) : k || e.expandCollapseNode(a, b.getParentNode(), !0, !1), m = q(b, a), y = q(b, d.id.UL, a), m.get(0) && !y.get(0) && (y = [], e.makeUlHtml(a, b, y, ""), m.append(y.join(""))), y = q(b, d.id.UL, a)); var r = q(c, a); r.get(0) ? m.get(0) || r.remove() : r = e.appendNodes(a, c.level, [c], null, -1, !1, !0).join(""); y.get(0) && l == d.move.TYPE_INNER ? y.append(r) : m.get(0) && l == d.move.TYPE_PREV ? m.before(r) : m.get(0) && l == d.move.TYPE_NEXT && m.after(r); var s; y = -1; var r = 0, n = null, m = null, B = c.level, v = i.nodeChildren(a, f), C = i.nodeChildren(a, j), u = i.nodeChildren(a, b); if (c.isFirstNode) { if (y = 0, v.length > 1) n = v[1], n.isFirstNode = !0 } else if (c.isLastNode) y = v.length - 1, n = v[y - 1], n.isLastNode = !0; else for (j = 0, s = v.length; j < s; j++) if (v[j].tId == c.tId) { y = j; break } y >= 0 && v.splice(y, 1); if (l != d.move.TYPE_INNER) for (j = 0, s = C.length; j < s; j++) C[j].tId == b.tId && (r = j); if (l == d.move.TYPE_INNER) { u || (u = i.nodeChildren(a, b, [])); if (u.length > 0) m = u[u.length - 1], m.isLastNode = !1; u.splice(u.length, 0, c); c.isLastNode = !0; c.isFirstNode = u.length == 1 } else b.isFirstNode && l == d.move.TYPE_PREV ? (C.splice(r, 0, c), m = b, m.isFirstNode = !1, c.parentTId = b.parentTId, c.isFirstNode = !0, c.isLastNode = !1) : b.isLastNode && l == d.move.TYPE_NEXT ? (C.splice(r + 1, 0, c), m = b, m.isLastNode = !1, c.parentTId = b.parentTId, c.isFirstNode = !1, c.isLastNode = !0) : (l == d.move.TYPE_PREV ? C.splice(r, 0, c) : C.splice(r + 1, 0, c), c.parentTId = b.parentTId, c.isFirstNode = !1, c.isLastNode = !1); i.fixPIdKeyValue(a, c); i.setSonNodeLevel(a, c.getParentNode(), c); e.setNodeLineIcos(a, c); e.repairNodeLevelClass(a, c, B); !a.data.keep.parent && v.length < 1 ? (i.nodeIsParent(a, f, !1), f.open = !1, b = q(f, d.id.UL, a), l = q(f, d.id.SWITCH, a), j = q(f, d.id.ICON, a), e.replaceSwitchClass(f, l, d.folder.DOCU), e.replaceIcoClass(f, j, d.folder.DOCU), b.css("display", "none")) : n && e.setNodeLineIcos(a, n); m && e.setNodeLineIcos(a, m); a.check && a.check.enable && e.repairChkClass && (e.repairChkClass(a, f), e.repairParentChkClassWithSelf(a, f), f != c.parent && e.repairParentChkClassWithSelf(a, c)); k || e.expandCollapseParentNode(a, c.getParentNode(), !0, g) } }, removeEditBtn: function (a, b) { q(b, d.id.EDIT, a).unbind().remove() }, removeRemoveBtn: function (a, b) { q(b, d.id.REMOVE, a).unbind().remove() }, removeTreeDom: function (a, b) { b.isHover = !1; e.removeEditBtn(a, b); e.removeRemoveBtn(a, b); k.apply(a.view.removeHoverDom, [a.treeId, b]) }, repairNodeLevelClass: function (a, b, c) { if (c !== b.level) { var e = q(b, a), g = q(b, d.id.A, a), a = q(b, d.id.UL, a), c = d.className.LEVEL + c, b = d.className.LEVEL + b.level; e.removeClass(c); e.addClass(b); g.removeClass(c); g.addClass(b); a.removeClass(c); a.addClass(b) } }, selectNodes: function (a, b) { for (var c = 0, d = b.length; c < d; c++) e.selectNode(a, b[c], c > 0) } }, event: {}, data: { setSonNodeLevel: function (a, b, c) { if (c) { var d = i.nodeChildren(a, c); c.level = b ? b.level + 1 : 0; if (d) for (var b = 0, g = d.length; b < g; b++) d[b] && i.setSonNodeLevel(a, c, d[b]) } } } }); var H = B.fn.zTree, k = H._z.tools, d = H.consts, e = H._z.view, i = H._z.data, q = k.$; i.exSetting({ edit: { enable: !1, editNameSelectAll: !1, showRemoveBtn: !0, showRenameBtn: !0, removeTitle: "remove", renameTitle: "rename", drag: { autoExpandTrigger: !1, isCopy: !0, isMove: !0, prev: !0, next: !0, inner: !0, minMoveSize: 5, borderMax: 10, borderMin: -5, maxShowNodeNum: 5, autoOpenTime: 500 } }, view: { addHoverDom: null, removeHoverDom: null }, callback: { beforeDrag: null, beforeDragOpen: null, beforeDrop: null, beforeEditName: null, beforeRename: null, onDrag: null, onDragMove: null, onDrop: null, onRename: null } }); i.addInitBind(function (a) { var b = a.treeObj, c = d.event; b.bind(c.RENAME, function (b, c, d, e) { k.apply(a.callback.onRename, [b, c, d, e]) }); b.bind(c.DRAG, function (b, c, d, e) { k.apply(a.callback.onDrag, [c, d, e]) }); b.bind(c.DRAGMOVE, function (b, c, d, e) { k.apply(a.callback.onDragMove, [c, d, e]) }); b.bind(c.DROP, function (b, c, d, e, f, i, q) { k.apply(a.callback.onDrop, [c, d, e, f, i, q]) }) }); i.addInitUnBind(function (a) { var a = a.treeObj, b = d.event; a.unbind(b.RENAME); a.unbind(b.DRAG); a.unbind(b.DRAGMOVE); a.unbind(b.DROP) }); i.addInitCache(function () {}); i.addInitNode(function (a, b, c) { if (c) c.isHover = !1, c.editNameFlag = !1 }); i.addInitProxy(function (a) { var b = a.target, c = i.getSetting(a.data.treeId), e = a.relatedTarget, g = "", o = null, j = "", f = null, m = null; if (k.eqs(a.type, "mouseover")) { if (m = k.getMDom(c, b, [{ tagName: "a", attrName: "treeNode" + d.id.A }])) g = k.getNodeMainDom(m).id, j = "hoverOverNode" } else if (k.eqs(a.type, "mouseout")) m = k.getMDom(c, e, [{ tagName: "a", attrName: "treeNode" + d.id.A }]), m || (g = "remove", j = "hoverOutNode"); else if (k.eqs(a.type, "mousedown") && (m = k.getMDom(c, b, [{ tagName: "a", attrName: "treeNode" + d.id.A }]))) g = k.getNodeMainDom(m).id, j = "mousedownNode"; if (g.length > 0) switch (o = i.getNodeCache(c, g), j) { case "mousedownNode": f = v.onMousedownNode; break; case "hoverOverNode": f = v.onHoverOverNode; break; case "hoverOutNode": f = v.onHoverOutNode } return { stop: !1, node: o, nodeEventType: j, nodeEventCallback: f, treeEventType: "", treeEventCallback: null } }); i.addInitRoot(function (a) { var a = i.getRoot(a), b = i.getRoots(); a.curEditNode = null; a.curEditInput = null; a.curHoverNode = null; a.dragFlag = 0; a.dragNodeShowBefore = []; a.dragMaskList = []; b.showHoverDom = !0 }); i.addZTreeTools(function (a, b) { b.cancelEditName = function (a) { i.getRoot(this.setting).curEditNode && e.cancelCurEditNode(this.setting, a ? a : null, !0) }; b.copyNode = function (b, l, g, o) { if (!l) return null; var j = i.nodeIsParent(a, b); if (b && !j && this.setting.data.keep.leaf && g === d.move.TYPE_INNER) return null; var f = this, m = k.clone(l); if (!b) b = null, g = d.move.TYPE_INNER; g == d.move.TYPE_INNER ? (l = function () { e.addNodes(f.setting, b, -1, [m], o) }, k.canAsync(this.setting, b) ? e.asyncNode(this.setting, b, o, l) : l()) : (e.addNodes(this.setting, b.parentNode, -1, [m], o), e.moveNode(this.setting, b, m, g, !1, o)); return m }; b.editName = function (a) { a && a.tId && a === i.getNodeCache(this.setting, a.tId) && (a.parentTId && e.expandCollapseParentNode(this.setting, a.getParentNode(), !0), e.editNode(this.setting, a)) }; b.moveNode = function (b, l, g, o) { function j() { e.moveNode(m.setting, b, l, g, !1, o) } if (!l) return l; var f = i.nodeIsParent(a, b); if (b && !f && this.setting.data.keep.leaf && g === d.move.TYPE_INNER) return null; else if (b && (l.parentTId == b.tId && g == d.move.TYPE_INNER || q(l, this.setting).find("#" + b.tId).length > 0)) return null; else b || (b = null); var m = this; k.canAsync(this.setting, b) && g === d.move.TYPE_INNER ? e.asyncNode(this.setting, b, o, j) : j(); return l }; b.setEditable = function (a) { this.setting.edit.enable = a; return this.refresh() } }); var N = e.cancelPreSelectedNode; e.cancelPreSelectedNode = function (a, b) { for (var c = i.getRoot(a).curSelectedList, d = 0, g = c.length; d < g; d++) if (!b || b === c[d]) if (e.removeTreeDom(a, c[d]), b) break; N && N.apply(e, arguments) }; var O = e.createNodes; e.createNodes = function (a, b, c, d, g) { O && O.apply(e, arguments); c && e.repairParentChkClassWithSelf && e.repairParentChkClassWithSelf(a, d) }; var V = e.makeNodeUrl; e.makeNodeUrl = function (a, b) { return a.edit.enable ? null : V.apply(e, arguments) }; var K = e.removeNode; e.removeNode = function (a, b) { var c = i.getRoot(a); if (c.curEditNode === b) c.curEditNode = null; K && K.apply(e, arguments) }; var P = e.selectNode; e.selectNode = function (a, b, c) { var d = i.getRoot(a); if (i.isSelectedNode(a, b) && d.curEditNode == b && b.editNameFlag) return !1; P && P.apply(e, arguments); e.addHoverDom(a, b); return !0 }; var U = k.uCanDo; k.uCanDo = function (a, b) { var c = i.getRoot(a); if (b && (k.eqs(b.type, "mouseover") || k.eqs(b.type, "mouseout") || k.eqs(b.type, "mousedown") || k.eqs(b.type, "mouseup"))) return !0; if (c.curEditNode) e.editNodeBlur = !1, c.curEditInput.focus(); return !c.curEditNode && (U ? U.apply(e, arguments) : !0) } })(jQuery);