@wavemaker/app-runtime-wm-build 11.4.0-next.24576 → 11.4.0-next.24578
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- app-runtime-wm-build/package.json +1 -1
- app-runtime-wm-build/wmapp/scripts/wm-libs.js +3567 -1
- app-runtime-wm-build/wmapp/scripts/wm-libs.min.js +167 -167
- app-runtime-wm-build/wmapp/scripts/wm-loader.js +264 -285
- app-runtime-wm-build/wmapp/scripts/wm-loader.min.js +3 -3
- app-runtime-wm-build/wmmobile/scripts/wm-libs.js +3567 -1
- app-runtime-wm-build/wmmobile/scripts/wm-libs.min.js +215 -215
- app-runtime-wm-build/wmmobile/scripts/wm-mobileloader.js +264 -285
- app-runtime-wm-build/wmmobile/scripts/wm-mobileloader.min.js +17 -17
|
@@ -227311,6 +227311,7 @@ window.requestAnimationFrame = function() {
|
|
|
227311
227311
|
BaseVariableManager.prototype.httpCall = function(requestParams, variable, params) {
|
|
227312
227312
|
var _this = this;
|
|
227313
227313
|
return new Promise((function(resolve, reject) {
|
|
227314
|
+
requestParams["_source"] = "variable";
|
|
227314
227315
|
variable.httpService.sendCall(requestParams, variable).then((function(response) {
|
|
227315
227316
|
if (response && response.type || response && response.status) {
|
|
227316
227317
|
_this.setRequestTrackId(response, variable);
|
|
@@ -236680,4 +236681,3569 @@ window.requestAnimationFrame = function() {
|
|
|
236680
236681
|
Object.defineProperty(exports, "__esModule", {
|
|
236681
236682
|
value: true
|
|
236682
236683
|
});
|
|
236683
|
-
}));
|
|
236684
|
+
}));
|
|
236685
|
+
|
|
236686
|
+
(function($) {
|
|
236687
|
+
var settings = {}, roots = {}, caches = {}, _consts = {
|
|
236688
|
+
className: {
|
|
236689
|
+
BUTTON: "button",
|
|
236690
|
+
LEVEL: "level",
|
|
236691
|
+
ICO_LOADING: "ico_loading",
|
|
236692
|
+
SWITCH: "switch",
|
|
236693
|
+
NAME: "node_name"
|
|
236694
|
+
},
|
|
236695
|
+
event: {
|
|
236696
|
+
NODECREATED: "ztree_nodeCreated",
|
|
236697
|
+
CLICK: "ztree_click",
|
|
236698
|
+
EXPAND: "ztree_expand",
|
|
236699
|
+
COLLAPSE: "ztree_collapse",
|
|
236700
|
+
ASYNC_SUCCESS: "ztree_async_success",
|
|
236701
|
+
ASYNC_ERROR: "ztree_async_error",
|
|
236702
|
+
REMOVE: "ztree_remove",
|
|
236703
|
+
SELECTED: "ztree_selected",
|
|
236704
|
+
UNSELECTED: "ztree_unselected"
|
|
236705
|
+
},
|
|
236706
|
+
id: {
|
|
236707
|
+
A: "_a",
|
|
236708
|
+
ICON: "_ico",
|
|
236709
|
+
SPAN: "_span",
|
|
236710
|
+
SWITCH: "_switch",
|
|
236711
|
+
UL: "_ul"
|
|
236712
|
+
},
|
|
236713
|
+
line: {
|
|
236714
|
+
ROOT: "root",
|
|
236715
|
+
ROOTS: "roots",
|
|
236716
|
+
CENTER: "center",
|
|
236717
|
+
BOTTOM: "bottom",
|
|
236718
|
+
NOLINE: "noline",
|
|
236719
|
+
LINE: "line"
|
|
236720
|
+
},
|
|
236721
|
+
folder: {
|
|
236722
|
+
OPEN: "open",
|
|
236723
|
+
CLOSE: "close",
|
|
236724
|
+
DOCU: "docu"
|
|
236725
|
+
},
|
|
236726
|
+
node: {
|
|
236727
|
+
CURSELECTED: "curSelectedNode"
|
|
236728
|
+
}
|
|
236729
|
+
}, _setting = {
|
|
236730
|
+
treeId: "",
|
|
236731
|
+
treeObj: null,
|
|
236732
|
+
view: {
|
|
236733
|
+
addDiyDom: null,
|
|
236734
|
+
autoCancelSelected: true,
|
|
236735
|
+
dblClickExpand: true,
|
|
236736
|
+
expandSpeed: "fast",
|
|
236737
|
+
fontCss: {},
|
|
236738
|
+
nodeClasses: {},
|
|
236739
|
+
nameIsHTML: false,
|
|
236740
|
+
selectedMulti: true,
|
|
236741
|
+
showIcon: true,
|
|
236742
|
+
showLine: true,
|
|
236743
|
+
showTitle: true,
|
|
236744
|
+
txtSelectedEnable: false
|
|
236745
|
+
},
|
|
236746
|
+
data: {
|
|
236747
|
+
key: {
|
|
236748
|
+
isParent: "isParent",
|
|
236749
|
+
children: "children",
|
|
236750
|
+
name: "name",
|
|
236751
|
+
title: "",
|
|
236752
|
+
url: "url",
|
|
236753
|
+
icon: "icon"
|
|
236754
|
+
},
|
|
236755
|
+
render: {
|
|
236756
|
+
name: null,
|
|
236757
|
+
title: null
|
|
236758
|
+
},
|
|
236759
|
+
simpleData: {
|
|
236760
|
+
enable: false,
|
|
236761
|
+
idKey: "id",
|
|
236762
|
+
pIdKey: "pId",
|
|
236763
|
+
rootPId: null
|
|
236764
|
+
},
|
|
236765
|
+
keep: {
|
|
236766
|
+
parent: false,
|
|
236767
|
+
leaf: false
|
|
236768
|
+
}
|
|
236769
|
+
},
|
|
236770
|
+
async: {
|
|
236771
|
+
enable: false,
|
|
236772
|
+
contentType: "application/x-www-form-urlencoded",
|
|
236773
|
+
type: "post",
|
|
236774
|
+
dataType: "text",
|
|
236775
|
+
headers: {},
|
|
236776
|
+
xhrFields: {},
|
|
236777
|
+
url: "",
|
|
236778
|
+
autoParam: [],
|
|
236779
|
+
otherParam: [],
|
|
236780
|
+
dataFilter: null
|
|
236781
|
+
},
|
|
236782
|
+
callback: {
|
|
236783
|
+
beforeAsync: null,
|
|
236784
|
+
beforeClick: null,
|
|
236785
|
+
beforeDblClick: null,
|
|
236786
|
+
beforeRightClick: null,
|
|
236787
|
+
beforeMouseDown: null,
|
|
236788
|
+
beforeMouseUp: null,
|
|
236789
|
+
beforeExpand: null,
|
|
236790
|
+
beforeCollapse: null,
|
|
236791
|
+
beforeRemove: null,
|
|
236792
|
+
onAsyncError: null,
|
|
236793
|
+
onAsyncSuccess: null,
|
|
236794
|
+
onNodeCreated: null,
|
|
236795
|
+
onClick: null,
|
|
236796
|
+
onDblClick: null,
|
|
236797
|
+
onRightClick: null,
|
|
236798
|
+
onMouseDown: null,
|
|
236799
|
+
onMouseUp: null,
|
|
236800
|
+
onExpand: null,
|
|
236801
|
+
onCollapse: null,
|
|
236802
|
+
onRemove: null
|
|
236803
|
+
}
|
|
236804
|
+
}, _initRoot = function(setting) {
|
|
236805
|
+
var r = data.getRoot(setting);
|
|
236806
|
+
if (!r) {
|
|
236807
|
+
r = {};
|
|
236808
|
+
data.setRoot(setting, r);
|
|
236809
|
+
}
|
|
236810
|
+
data.nodeChildren(setting, r, []);
|
|
236811
|
+
r.expandTriggerFlag = false;
|
|
236812
|
+
r.curSelectedList = [];
|
|
236813
|
+
r.noSelection = true;
|
|
236814
|
+
r.createdNodes = [];
|
|
236815
|
+
r.zId = 0;
|
|
236816
|
+
r._ver = (new Date).getTime();
|
|
236817
|
+
}, _initCache = function(setting) {
|
|
236818
|
+
var c = data.getCache(setting);
|
|
236819
|
+
if (!c) {
|
|
236820
|
+
c = {};
|
|
236821
|
+
data.setCache(setting, c);
|
|
236822
|
+
}
|
|
236823
|
+
c.nodes = [];
|
|
236824
|
+
c.doms = [];
|
|
236825
|
+
}, _bindEvent = function(setting) {
|
|
236826
|
+
var o = setting.treeObj, c = consts.event;
|
|
236827
|
+
o.bind(c.NODECREATED, (function(event, treeId, node) {
|
|
236828
|
+
tools.apply(setting.callback.onNodeCreated, [ event, treeId, node ]);
|
|
236829
|
+
}));
|
|
236830
|
+
o.bind(c.CLICK, (function(event, srcEvent, treeId, node, clickFlag) {
|
|
236831
|
+
tools.apply(setting.callback.onClick, [ srcEvent, treeId, node, clickFlag ]);
|
|
236832
|
+
}));
|
|
236833
|
+
o.bind(c.EXPAND, (function(event, treeId, node) {
|
|
236834
|
+
tools.apply(setting.callback.onExpand, [ event, treeId, node ]);
|
|
236835
|
+
}));
|
|
236836
|
+
o.bind(c.COLLAPSE, (function(event, treeId, node) {
|
|
236837
|
+
tools.apply(setting.callback.onCollapse, [ event, treeId, node ]);
|
|
236838
|
+
}));
|
|
236839
|
+
o.bind(c.ASYNC_SUCCESS, (function(event, treeId, node, msg) {
|
|
236840
|
+
tools.apply(setting.callback.onAsyncSuccess, [ event, treeId, node, msg ]);
|
|
236841
|
+
}));
|
|
236842
|
+
o.bind(c.ASYNC_ERROR, (function(event, treeId, node, XMLHttpRequest, textStatus, errorThrown) {
|
|
236843
|
+
tools.apply(setting.callback.onAsyncError, [ event, treeId, node, XMLHttpRequest, textStatus, errorThrown ]);
|
|
236844
|
+
}));
|
|
236845
|
+
o.bind(c.REMOVE, (function(event, treeId, treeNode) {
|
|
236846
|
+
tools.apply(setting.callback.onRemove, [ event, treeId, treeNode ]);
|
|
236847
|
+
}));
|
|
236848
|
+
o.bind(c.SELECTED, (function(event, treeId, node) {
|
|
236849
|
+
tools.apply(setting.callback.onSelected, [ treeId, node ]);
|
|
236850
|
+
}));
|
|
236851
|
+
o.bind(c.UNSELECTED, (function(event, treeId, node) {
|
|
236852
|
+
tools.apply(setting.callback.onUnSelected, [ treeId, node ]);
|
|
236853
|
+
}));
|
|
236854
|
+
}, _unbindEvent = function(setting) {
|
|
236855
|
+
var o = setting.treeObj, c = consts.event;
|
|
236856
|
+
o.unbind(c.NODECREATED).unbind(c.CLICK).unbind(c.EXPAND).unbind(c.COLLAPSE).unbind(c.ASYNC_SUCCESS).unbind(c.ASYNC_ERROR).unbind(c.REMOVE).unbind(c.SELECTED).unbind(c.UNSELECTED);
|
|
236857
|
+
}, _eventProxy = function(event) {
|
|
236858
|
+
var target = event.target, setting = data.getSetting(event.data.treeId), tId = "", node = null, nodeEventType = "", treeEventType = "", nodeEventCallback = null, treeEventCallback = null, tmp = null;
|
|
236859
|
+
if (tools.eqs(event.type, "mousedown")) {
|
|
236860
|
+
treeEventType = "mousedown";
|
|
236861
|
+
} else if (tools.eqs(event.type, "mouseup")) {
|
|
236862
|
+
treeEventType = "mouseup";
|
|
236863
|
+
} else if (tools.eqs(event.type, "contextmenu")) {
|
|
236864
|
+
treeEventType = "contextmenu";
|
|
236865
|
+
} else if (tools.eqs(event.type, "click")) {
|
|
236866
|
+
if (tools.eqs(target.tagName, "span") && target.getAttribute("treeNode" + consts.id.SWITCH) !== null) {
|
|
236867
|
+
tId = tools.getNodeMainDom(target).id;
|
|
236868
|
+
nodeEventType = "switchNode";
|
|
236869
|
+
} else {
|
|
236870
|
+
tmp = tools.getMDom(setting, target, [ {
|
|
236871
|
+
tagName: "a",
|
|
236872
|
+
attrName: "treeNode" + consts.id.A
|
|
236873
|
+
} ]);
|
|
236874
|
+
if (tmp) {
|
|
236875
|
+
tId = tools.getNodeMainDom(tmp).id;
|
|
236876
|
+
nodeEventType = "clickNode";
|
|
236877
|
+
}
|
|
236878
|
+
}
|
|
236879
|
+
} else if (tools.eqs(event.type, "dblclick")) {
|
|
236880
|
+
treeEventType = "dblclick";
|
|
236881
|
+
tmp = tools.getMDom(setting, target, [ {
|
|
236882
|
+
tagName: "a",
|
|
236883
|
+
attrName: "treeNode" + consts.id.A
|
|
236884
|
+
} ]);
|
|
236885
|
+
if (tmp) {
|
|
236886
|
+
tId = tools.getNodeMainDom(tmp).id;
|
|
236887
|
+
nodeEventType = "switchNode";
|
|
236888
|
+
}
|
|
236889
|
+
}
|
|
236890
|
+
if (treeEventType.length > 0 && tId.length == 0) {
|
|
236891
|
+
tmp = tools.getMDom(setting, target, [ {
|
|
236892
|
+
tagName: "a",
|
|
236893
|
+
attrName: "treeNode" + consts.id.A
|
|
236894
|
+
} ]);
|
|
236895
|
+
if (tmp) {
|
|
236896
|
+
tId = tools.getNodeMainDom(tmp).id;
|
|
236897
|
+
}
|
|
236898
|
+
}
|
|
236899
|
+
if (tId.length > 0) {
|
|
236900
|
+
node = data.getNodeCache(setting, tId);
|
|
236901
|
+
switch (nodeEventType) {
|
|
236902
|
+
case "switchNode":
|
|
236903
|
+
var isParent = data.nodeIsParent(setting, node);
|
|
236904
|
+
if (!isParent) {
|
|
236905
|
+
nodeEventType = "";
|
|
236906
|
+
} else if (tools.eqs(event.type, "click") || tools.eqs(event.type, "dblclick") && tools.apply(setting.view.dblClickExpand, [ setting.treeId, node ], setting.view.dblClickExpand)) {
|
|
236907
|
+
nodeEventCallback = handler.onSwitchNode;
|
|
236908
|
+
} else {
|
|
236909
|
+
nodeEventType = "";
|
|
236910
|
+
}
|
|
236911
|
+
break;
|
|
236912
|
+
|
|
236913
|
+
case "clickNode":
|
|
236914
|
+
nodeEventCallback = handler.onClickNode;
|
|
236915
|
+
break;
|
|
236916
|
+
}
|
|
236917
|
+
}
|
|
236918
|
+
switch (treeEventType) {
|
|
236919
|
+
case "mousedown":
|
|
236920
|
+
treeEventCallback = handler.onZTreeMousedown;
|
|
236921
|
+
break;
|
|
236922
|
+
|
|
236923
|
+
case "mouseup":
|
|
236924
|
+
treeEventCallback = handler.onZTreeMouseup;
|
|
236925
|
+
break;
|
|
236926
|
+
|
|
236927
|
+
case "dblclick":
|
|
236928
|
+
treeEventCallback = handler.onZTreeDblclick;
|
|
236929
|
+
break;
|
|
236930
|
+
|
|
236931
|
+
case "contextmenu":
|
|
236932
|
+
treeEventCallback = handler.onZTreeContextmenu;
|
|
236933
|
+
break;
|
|
236934
|
+
}
|
|
236935
|
+
var proxyResult = {
|
|
236936
|
+
stop: false,
|
|
236937
|
+
node: node,
|
|
236938
|
+
nodeEventType: nodeEventType,
|
|
236939
|
+
nodeEventCallback: nodeEventCallback,
|
|
236940
|
+
treeEventType: treeEventType,
|
|
236941
|
+
treeEventCallback: treeEventCallback
|
|
236942
|
+
};
|
|
236943
|
+
return proxyResult;
|
|
236944
|
+
}, _initNode = function(setting, level, n, parentNode, isFirstNode, isLastNode, openFlag) {
|
|
236945
|
+
if (!n) return;
|
|
236946
|
+
var r = data.getRoot(setting), children = data.nodeChildren(setting, n);
|
|
236947
|
+
n.level = level;
|
|
236948
|
+
n.tId = setting.treeId + "_" + ++r.zId;
|
|
236949
|
+
n.parentTId = parentNode ? parentNode.tId : null;
|
|
236950
|
+
n.open = typeof n.open == "string" ? tools.eqs(n.open, "true") : !!n.open;
|
|
236951
|
+
var isParent = data.nodeIsParent(setting, n);
|
|
236952
|
+
if (tools.isArray(children)) {
|
|
236953
|
+
data.nodeIsParent(setting, n, true);
|
|
236954
|
+
n.zAsync = true;
|
|
236955
|
+
} else {
|
|
236956
|
+
isParent = data.nodeIsParent(setting, n, isParent);
|
|
236957
|
+
n.open = isParent && !setting.async.enable ? n.open : false;
|
|
236958
|
+
n.zAsync = !isParent;
|
|
236959
|
+
}
|
|
236960
|
+
n.isFirstNode = isFirstNode;
|
|
236961
|
+
n.isLastNode = isLastNode;
|
|
236962
|
+
n.getParentNode = function() {
|
|
236963
|
+
return data.getNodeCache(setting, n.parentTId);
|
|
236964
|
+
};
|
|
236965
|
+
n.getPreNode = function() {
|
|
236966
|
+
return data.getPreNode(setting, n);
|
|
236967
|
+
};
|
|
236968
|
+
n.getNextNode = function() {
|
|
236969
|
+
return data.getNextNode(setting, n);
|
|
236970
|
+
};
|
|
236971
|
+
n.getIndex = function() {
|
|
236972
|
+
return data.getNodeIndex(setting, n);
|
|
236973
|
+
};
|
|
236974
|
+
n.getPath = function() {
|
|
236975
|
+
return data.getNodePath(setting, n);
|
|
236976
|
+
};
|
|
236977
|
+
n.isAjaxing = false;
|
|
236978
|
+
data.fixPIdKeyValue(setting, n);
|
|
236979
|
+
}, _init = {
|
|
236980
|
+
bind: [ _bindEvent ],
|
|
236981
|
+
unbind: [ _unbindEvent ],
|
|
236982
|
+
caches: [ _initCache ],
|
|
236983
|
+
nodes: [ _initNode ],
|
|
236984
|
+
proxys: [ _eventProxy ],
|
|
236985
|
+
roots: [ _initRoot ],
|
|
236986
|
+
beforeA: [],
|
|
236987
|
+
afterA: [],
|
|
236988
|
+
innerBeforeA: [],
|
|
236989
|
+
innerAfterA: [],
|
|
236990
|
+
zTreeTools: []
|
|
236991
|
+
}, data = {
|
|
236992
|
+
addNodeCache: function(setting, node) {
|
|
236993
|
+
data.getCache(setting).nodes[data.getNodeCacheId(node.tId)] = node;
|
|
236994
|
+
},
|
|
236995
|
+
getNodeCacheId: function(tId) {
|
|
236996
|
+
return tId.substring(tId.lastIndexOf("_") + 1);
|
|
236997
|
+
},
|
|
236998
|
+
addAfterA: function(afterA) {
|
|
236999
|
+
_init.afterA.push(afterA);
|
|
237000
|
+
},
|
|
237001
|
+
addBeforeA: function(beforeA) {
|
|
237002
|
+
_init.beforeA.push(beforeA);
|
|
237003
|
+
},
|
|
237004
|
+
addInnerAfterA: function(innerAfterA) {
|
|
237005
|
+
_init.innerAfterA.push(innerAfterA);
|
|
237006
|
+
},
|
|
237007
|
+
addInnerBeforeA: function(innerBeforeA) {
|
|
237008
|
+
_init.innerBeforeA.push(innerBeforeA);
|
|
237009
|
+
},
|
|
237010
|
+
addInitBind: function(bindEvent) {
|
|
237011
|
+
_init.bind.push(bindEvent);
|
|
237012
|
+
},
|
|
237013
|
+
addInitUnBind: function(unbindEvent) {
|
|
237014
|
+
_init.unbind.push(unbindEvent);
|
|
237015
|
+
},
|
|
237016
|
+
addInitCache: function(initCache) {
|
|
237017
|
+
_init.caches.push(initCache);
|
|
237018
|
+
},
|
|
237019
|
+
addInitNode: function(initNode) {
|
|
237020
|
+
_init.nodes.push(initNode);
|
|
237021
|
+
},
|
|
237022
|
+
addInitProxy: function(initProxy, isFirst) {
|
|
237023
|
+
if (!!isFirst) {
|
|
237024
|
+
_init.proxys.splice(0, 0, initProxy);
|
|
237025
|
+
} else {
|
|
237026
|
+
_init.proxys.push(initProxy);
|
|
237027
|
+
}
|
|
237028
|
+
},
|
|
237029
|
+
addInitRoot: function(initRoot) {
|
|
237030
|
+
_init.roots.push(initRoot);
|
|
237031
|
+
},
|
|
237032
|
+
addNodesData: function(setting, parentNode, index, nodes) {
|
|
237033
|
+
var children = data.nodeChildren(setting, parentNode), params;
|
|
237034
|
+
if (!children) {
|
|
237035
|
+
children = data.nodeChildren(setting, parentNode, []);
|
|
237036
|
+
index = -1;
|
|
237037
|
+
} else if (index >= children.length) {
|
|
237038
|
+
index = -1;
|
|
237039
|
+
}
|
|
237040
|
+
if (children.length > 0 && index === 0) {
|
|
237041
|
+
children[0].isFirstNode = false;
|
|
237042
|
+
view.setNodeLineIcos(setting, children[0]);
|
|
237043
|
+
} else if (children.length > 0 && index < 0) {
|
|
237044
|
+
children[children.length - 1].isLastNode = false;
|
|
237045
|
+
view.setNodeLineIcos(setting, children[children.length - 1]);
|
|
237046
|
+
}
|
|
237047
|
+
data.nodeIsParent(setting, parentNode, true);
|
|
237048
|
+
if (index < 0) {
|
|
237049
|
+
data.nodeChildren(setting, parentNode, children.concat(nodes));
|
|
237050
|
+
} else {
|
|
237051
|
+
params = [ index, 0 ].concat(nodes);
|
|
237052
|
+
children.splice.apply(children, params);
|
|
237053
|
+
}
|
|
237054
|
+
},
|
|
237055
|
+
addSelectedNode: function(setting, node) {
|
|
237056
|
+
var root = data.getRoot(setting);
|
|
237057
|
+
if (!data.isSelectedNode(setting, node)) {
|
|
237058
|
+
root.curSelectedList.push(node);
|
|
237059
|
+
}
|
|
237060
|
+
},
|
|
237061
|
+
addCreatedNode: function(setting, node) {
|
|
237062
|
+
if (!!setting.callback.onNodeCreated || !!setting.view.addDiyDom) {
|
|
237063
|
+
var root = data.getRoot(setting);
|
|
237064
|
+
root.createdNodes.push(node);
|
|
237065
|
+
}
|
|
237066
|
+
},
|
|
237067
|
+
addZTreeTools: function(zTreeTools) {
|
|
237068
|
+
_init.zTreeTools.push(zTreeTools);
|
|
237069
|
+
},
|
|
237070
|
+
exSetting: function(s) {
|
|
237071
|
+
$.extend(true, _setting, s);
|
|
237072
|
+
},
|
|
237073
|
+
fixPIdKeyValue: function(setting, node) {
|
|
237074
|
+
if (setting.data.simpleData.enable) {
|
|
237075
|
+
node[setting.data.simpleData.pIdKey] = node.parentTId ? node.getParentNode()[setting.data.simpleData.idKey] : setting.data.simpleData.rootPId;
|
|
237076
|
+
}
|
|
237077
|
+
},
|
|
237078
|
+
getAfterA: function(setting, node, array) {
|
|
237079
|
+
for (var i = 0, j = _init.afterA.length; i < j; i++) {
|
|
237080
|
+
_init.afterA[i].apply(this, arguments);
|
|
237081
|
+
}
|
|
237082
|
+
},
|
|
237083
|
+
getBeforeA: function(setting, node, array) {
|
|
237084
|
+
for (var i = 0, j = _init.beforeA.length; i < j; i++) {
|
|
237085
|
+
_init.beforeA[i].apply(this, arguments);
|
|
237086
|
+
}
|
|
237087
|
+
},
|
|
237088
|
+
getInnerAfterA: function(setting, node, array) {
|
|
237089
|
+
for (var i = 0, j = _init.innerAfterA.length; i < j; i++) {
|
|
237090
|
+
_init.innerAfterA[i].apply(this, arguments);
|
|
237091
|
+
}
|
|
237092
|
+
},
|
|
237093
|
+
getInnerBeforeA: function(setting, node, array) {
|
|
237094
|
+
for (var i = 0, j = _init.innerBeforeA.length; i < j; i++) {
|
|
237095
|
+
_init.innerBeforeA[i].apply(this, arguments);
|
|
237096
|
+
}
|
|
237097
|
+
},
|
|
237098
|
+
getCache: function(setting) {
|
|
237099
|
+
return caches[setting.treeId];
|
|
237100
|
+
},
|
|
237101
|
+
getNodeIndex: function(setting, node) {
|
|
237102
|
+
if (!node) return null;
|
|
237103
|
+
var p = node.parentTId ? node.getParentNode() : data.getRoot(setting), children = data.nodeChildren(setting, p);
|
|
237104
|
+
for (var i = 0, l = children.length - 1; i <= l; i++) {
|
|
237105
|
+
if (children[i] === node) {
|
|
237106
|
+
return i;
|
|
237107
|
+
}
|
|
237108
|
+
}
|
|
237109
|
+
return -1;
|
|
237110
|
+
},
|
|
237111
|
+
getNextNode: function(setting, node) {
|
|
237112
|
+
if (!node) return null;
|
|
237113
|
+
var p = node.parentTId ? node.getParentNode() : data.getRoot(setting), children = data.nodeChildren(setting, p);
|
|
237114
|
+
for (var i = 0, l = children.length - 1; i <= l; i++) {
|
|
237115
|
+
if (children[i] === node) {
|
|
237116
|
+
return i == l ? null : children[i + 1];
|
|
237117
|
+
}
|
|
237118
|
+
}
|
|
237119
|
+
return null;
|
|
237120
|
+
},
|
|
237121
|
+
getNodeByParam: function(setting, nodes, key, value) {
|
|
237122
|
+
if (!nodes || !key) return null;
|
|
237123
|
+
for (var i = 0, l = nodes.length; i < l; i++) {
|
|
237124
|
+
var node = nodes[i];
|
|
237125
|
+
if (node[key] == value) {
|
|
237126
|
+
return nodes[i];
|
|
237127
|
+
}
|
|
237128
|
+
var children = data.nodeChildren(setting, node);
|
|
237129
|
+
var tmp = data.getNodeByParam(setting, children, key, value);
|
|
237130
|
+
if (tmp) return tmp;
|
|
237131
|
+
}
|
|
237132
|
+
return null;
|
|
237133
|
+
},
|
|
237134
|
+
getNodeCache: function(setting, tId) {
|
|
237135
|
+
if (!tId) return null;
|
|
237136
|
+
var n = caches[setting.treeId].nodes[data.getNodeCacheId(tId)];
|
|
237137
|
+
return n ? n : null;
|
|
237138
|
+
},
|
|
237139
|
+
getNodePath: function(setting, node) {
|
|
237140
|
+
if (!node) return null;
|
|
237141
|
+
var path;
|
|
237142
|
+
if (node.parentTId) {
|
|
237143
|
+
path = node.getParentNode().getPath();
|
|
237144
|
+
} else {
|
|
237145
|
+
path = [];
|
|
237146
|
+
}
|
|
237147
|
+
if (path) {
|
|
237148
|
+
path.push(node);
|
|
237149
|
+
}
|
|
237150
|
+
return path;
|
|
237151
|
+
},
|
|
237152
|
+
getNodes: function(setting) {
|
|
237153
|
+
return data.nodeChildren(setting, data.getRoot(setting));
|
|
237154
|
+
},
|
|
237155
|
+
getNodesByParam: function(setting, nodes, key, value) {
|
|
237156
|
+
if (!nodes || !key) return [];
|
|
237157
|
+
var result = [];
|
|
237158
|
+
for (var i = 0, l = nodes.length; i < l; i++) {
|
|
237159
|
+
var node = nodes[i];
|
|
237160
|
+
if (node[key] == value) {
|
|
237161
|
+
result.push(node);
|
|
237162
|
+
}
|
|
237163
|
+
var children = data.nodeChildren(setting, node);
|
|
237164
|
+
result = result.concat(data.getNodesByParam(setting, children, key, value));
|
|
237165
|
+
}
|
|
237166
|
+
return result;
|
|
237167
|
+
},
|
|
237168
|
+
getNodesByParamFuzzy: function(setting, nodes, key, value) {
|
|
237169
|
+
if (!nodes || !key) return [];
|
|
237170
|
+
var result = [];
|
|
237171
|
+
value = value.toLowerCase();
|
|
237172
|
+
for (var i = 0, l = nodes.length; i < l; i++) {
|
|
237173
|
+
var node = nodes[i];
|
|
237174
|
+
if (typeof node[key] == "string" && nodes[i][key].toLowerCase().indexOf(value) > -1) {
|
|
237175
|
+
result.push(node);
|
|
237176
|
+
}
|
|
237177
|
+
var children = data.nodeChildren(setting, node);
|
|
237178
|
+
result = result.concat(data.getNodesByParamFuzzy(setting, children, key, value));
|
|
237179
|
+
}
|
|
237180
|
+
return result;
|
|
237181
|
+
},
|
|
237182
|
+
getNodesByFilter: function(setting, nodes, filter, isSingle, invokeParam) {
|
|
237183
|
+
if (!nodes) return isSingle ? null : [];
|
|
237184
|
+
var result = isSingle ? null : [];
|
|
237185
|
+
for (var i = 0, l = nodes.length; i < l; i++) {
|
|
237186
|
+
var node = nodes[i];
|
|
237187
|
+
if (tools.apply(filter, [ node, invokeParam ], false)) {
|
|
237188
|
+
if (isSingle) {
|
|
237189
|
+
return node;
|
|
237190
|
+
}
|
|
237191
|
+
result.push(node);
|
|
237192
|
+
}
|
|
237193
|
+
var children = data.nodeChildren(setting, node);
|
|
237194
|
+
var tmpResult = data.getNodesByFilter(setting, children, filter, isSingle, invokeParam);
|
|
237195
|
+
if (isSingle && !!tmpResult) {
|
|
237196
|
+
return tmpResult;
|
|
237197
|
+
}
|
|
237198
|
+
result = isSingle ? tmpResult : result.concat(tmpResult);
|
|
237199
|
+
}
|
|
237200
|
+
return result;
|
|
237201
|
+
},
|
|
237202
|
+
getPreNode: function(setting, node) {
|
|
237203
|
+
if (!node) return null;
|
|
237204
|
+
var p = node.parentTId ? node.getParentNode() : data.getRoot(setting), children = data.nodeChildren(setting, p);
|
|
237205
|
+
for (var i = 0, l = children.length; i < l; i++) {
|
|
237206
|
+
if (children[i] === node) {
|
|
237207
|
+
return i == 0 ? null : children[i - 1];
|
|
237208
|
+
}
|
|
237209
|
+
}
|
|
237210
|
+
return null;
|
|
237211
|
+
},
|
|
237212
|
+
getRoot: function(setting) {
|
|
237213
|
+
return setting ? roots[setting.treeId] : null;
|
|
237214
|
+
},
|
|
237215
|
+
getRoots: function() {
|
|
237216
|
+
return roots;
|
|
237217
|
+
},
|
|
237218
|
+
getSetting: function(treeId) {
|
|
237219
|
+
return settings[treeId];
|
|
237220
|
+
},
|
|
237221
|
+
getSettings: function() {
|
|
237222
|
+
return settings;
|
|
237223
|
+
},
|
|
237224
|
+
getZTreeTools: function(treeId) {
|
|
237225
|
+
var r = this.getRoot(this.getSetting(treeId));
|
|
237226
|
+
return r ? r.treeTools : null;
|
|
237227
|
+
},
|
|
237228
|
+
initCache: function(setting) {
|
|
237229
|
+
for (var i = 0, j = _init.caches.length; i < j; i++) {
|
|
237230
|
+
_init.caches[i].apply(this, arguments);
|
|
237231
|
+
}
|
|
237232
|
+
},
|
|
237233
|
+
initNode: function(setting, level, node, parentNode, preNode, nextNode) {
|
|
237234
|
+
for (var i = 0, j = _init.nodes.length; i < j; i++) {
|
|
237235
|
+
_init.nodes[i].apply(this, arguments);
|
|
237236
|
+
}
|
|
237237
|
+
},
|
|
237238
|
+
initRoot: function(setting) {
|
|
237239
|
+
for (var i = 0, j = _init.roots.length; i < j; i++) {
|
|
237240
|
+
_init.roots[i].apply(this, arguments);
|
|
237241
|
+
}
|
|
237242
|
+
},
|
|
237243
|
+
isSelectedNode: function(setting, node) {
|
|
237244
|
+
var root = data.getRoot(setting);
|
|
237245
|
+
for (var i = 0, j = root.curSelectedList.length; i < j; i++) {
|
|
237246
|
+
if (node === root.curSelectedList[i]) return true;
|
|
237247
|
+
}
|
|
237248
|
+
return false;
|
|
237249
|
+
},
|
|
237250
|
+
nodeChildren: function(setting, node, newChildren) {
|
|
237251
|
+
if (!node) {
|
|
237252
|
+
return null;
|
|
237253
|
+
}
|
|
237254
|
+
var key = setting.data.key.children;
|
|
237255
|
+
if (typeof newChildren !== "undefined") {
|
|
237256
|
+
node[key] = newChildren;
|
|
237257
|
+
}
|
|
237258
|
+
return node[key];
|
|
237259
|
+
},
|
|
237260
|
+
nodeIsParent: function(setting, node, newIsParent) {
|
|
237261
|
+
if (!node) {
|
|
237262
|
+
return false;
|
|
237263
|
+
}
|
|
237264
|
+
var key = setting.data.key.isParent;
|
|
237265
|
+
if (typeof newIsParent !== "undefined") {
|
|
237266
|
+
if (typeof newIsParent === "string") {
|
|
237267
|
+
newIsParent = tools.eqs(newIsParent, "true");
|
|
237268
|
+
}
|
|
237269
|
+
newIsParent = !!newIsParent;
|
|
237270
|
+
node[key] = newIsParent;
|
|
237271
|
+
} else if (typeof node[key] == "string") {
|
|
237272
|
+
node[key] = tools.eqs(node[key], "true");
|
|
237273
|
+
} else {
|
|
237274
|
+
node[key] = !!node[key];
|
|
237275
|
+
}
|
|
237276
|
+
return node[key];
|
|
237277
|
+
},
|
|
237278
|
+
nodeName: function(setting, node, newName) {
|
|
237279
|
+
var key = setting.data.key.name;
|
|
237280
|
+
if (typeof newName !== "undefined") {
|
|
237281
|
+
node[key] = newName;
|
|
237282
|
+
}
|
|
237283
|
+
var rawName = "" + node[key];
|
|
237284
|
+
if (typeof setting.data.render.name === "function") {
|
|
237285
|
+
return setting.data.render.name.call(this, rawName, node);
|
|
237286
|
+
}
|
|
237287
|
+
return rawName;
|
|
237288
|
+
},
|
|
237289
|
+
nodeTitle: function(setting, node) {
|
|
237290
|
+
var t = setting.data.key.title === "" ? setting.data.key.name : setting.data.key.title;
|
|
237291
|
+
var rawTitle = "" + node[t];
|
|
237292
|
+
if (typeof setting.data.render.title === "function") {
|
|
237293
|
+
return setting.data.render.title.call(this, rawTitle, node);
|
|
237294
|
+
}
|
|
237295
|
+
return rawTitle;
|
|
237296
|
+
},
|
|
237297
|
+
removeNodeCache: function(setting, node) {
|
|
237298
|
+
var children = data.nodeChildren(setting, node);
|
|
237299
|
+
if (children) {
|
|
237300
|
+
for (var i = 0, l = children.length; i < l; i++) {
|
|
237301
|
+
data.removeNodeCache(setting, children[i]);
|
|
237302
|
+
}
|
|
237303
|
+
}
|
|
237304
|
+
data.getCache(setting).nodes[data.getNodeCacheId(node.tId)] = null;
|
|
237305
|
+
},
|
|
237306
|
+
removeSelectedNode: function(setting, node) {
|
|
237307
|
+
var root = data.getRoot(setting);
|
|
237308
|
+
for (var i = 0, j = root.curSelectedList.length; i < j; i++) {
|
|
237309
|
+
if (node === root.curSelectedList[i] || !data.getNodeCache(setting, root.curSelectedList[i].tId)) {
|
|
237310
|
+
root.curSelectedList.splice(i, 1);
|
|
237311
|
+
setting.treeObj.trigger(consts.event.UNSELECTED, [ setting.treeId, node ]);
|
|
237312
|
+
i--;
|
|
237313
|
+
j--;
|
|
237314
|
+
}
|
|
237315
|
+
}
|
|
237316
|
+
},
|
|
237317
|
+
setCache: function(setting, cache) {
|
|
237318
|
+
caches[setting.treeId] = cache;
|
|
237319
|
+
},
|
|
237320
|
+
setRoot: function(setting, root) {
|
|
237321
|
+
roots[setting.treeId] = root;
|
|
237322
|
+
},
|
|
237323
|
+
setZTreeTools: function(setting, zTreeTools) {
|
|
237324
|
+
for (var i = 0, j = _init.zTreeTools.length; i < j; i++) {
|
|
237325
|
+
_init.zTreeTools[i].apply(this, arguments);
|
|
237326
|
+
}
|
|
237327
|
+
},
|
|
237328
|
+
transformToArrayFormat: function(setting, nodes) {
|
|
237329
|
+
if (!nodes) return [];
|
|
237330
|
+
var r = [];
|
|
237331
|
+
if (tools.isArray(nodes)) {
|
|
237332
|
+
for (var i = 0, l = nodes.length; i < l; i++) {
|
|
237333
|
+
var node = nodes[i];
|
|
237334
|
+
_do(node);
|
|
237335
|
+
}
|
|
237336
|
+
} else {
|
|
237337
|
+
_do(nodes);
|
|
237338
|
+
}
|
|
237339
|
+
return r;
|
|
237340
|
+
function _do(_node) {
|
|
237341
|
+
r.push(_node);
|
|
237342
|
+
var children = data.nodeChildren(setting, _node);
|
|
237343
|
+
if (children) {
|
|
237344
|
+
r = r.concat(data.transformToArrayFormat(setting, children));
|
|
237345
|
+
}
|
|
237346
|
+
}
|
|
237347
|
+
},
|
|
237348
|
+
transformTozTreeFormat: function(setting, sNodes) {
|
|
237349
|
+
var i, l, key = setting.data.simpleData.idKey, parentKey = setting.data.simpleData.pIdKey;
|
|
237350
|
+
if (!key || key == "" || !sNodes) return [];
|
|
237351
|
+
if (tools.isArray(sNodes)) {
|
|
237352
|
+
var r = [];
|
|
237353
|
+
var tmpMap = {};
|
|
237354
|
+
for (i = 0, l = sNodes.length; i < l; i++) {
|
|
237355
|
+
tmpMap[sNodes[i][key]] = sNodes[i];
|
|
237356
|
+
}
|
|
237357
|
+
for (i = 0, l = sNodes.length; i < l; i++) {
|
|
237358
|
+
var p = tmpMap[sNodes[i][parentKey]];
|
|
237359
|
+
if (p && sNodes[i][key] != sNodes[i][parentKey]) {
|
|
237360
|
+
var children = data.nodeChildren(setting, p);
|
|
237361
|
+
if (!children) {
|
|
237362
|
+
children = data.nodeChildren(setting, p, []);
|
|
237363
|
+
}
|
|
237364
|
+
children.push(sNodes[i]);
|
|
237365
|
+
} else {
|
|
237366
|
+
r.push(sNodes[i]);
|
|
237367
|
+
}
|
|
237368
|
+
}
|
|
237369
|
+
return r;
|
|
237370
|
+
} else {
|
|
237371
|
+
return [ sNodes ];
|
|
237372
|
+
}
|
|
237373
|
+
}
|
|
237374
|
+
}, event = {
|
|
237375
|
+
bindEvent: function(setting) {
|
|
237376
|
+
for (var i = 0, j = _init.bind.length; i < j; i++) {
|
|
237377
|
+
_init.bind[i].apply(this, arguments);
|
|
237378
|
+
}
|
|
237379
|
+
},
|
|
237380
|
+
unbindEvent: function(setting) {
|
|
237381
|
+
for (var i = 0, j = _init.unbind.length; i < j; i++) {
|
|
237382
|
+
_init.unbind[i].apply(this, arguments);
|
|
237383
|
+
}
|
|
237384
|
+
},
|
|
237385
|
+
bindTree: function(setting) {
|
|
237386
|
+
var eventParam = {
|
|
237387
|
+
treeId: setting.treeId
|
|
237388
|
+
}, o = setting.treeObj;
|
|
237389
|
+
if (!setting.view.txtSelectedEnable) {
|
|
237390
|
+
o.bind("selectstart", handler.onSelectStart).css({
|
|
237391
|
+
"-moz-user-select": "-moz-none"
|
|
237392
|
+
});
|
|
237393
|
+
}
|
|
237394
|
+
o.bind("click", eventParam, event.proxy);
|
|
237395
|
+
o.bind("dblclick", eventParam, event.proxy);
|
|
237396
|
+
o.bind("mouseover", eventParam, event.proxy);
|
|
237397
|
+
o.bind("mouseout", eventParam, event.proxy);
|
|
237398
|
+
o.bind("mousedown", eventParam, event.proxy);
|
|
237399
|
+
o.bind("mouseup", eventParam, event.proxy);
|
|
237400
|
+
o.bind("contextmenu", eventParam, event.proxy);
|
|
237401
|
+
},
|
|
237402
|
+
unbindTree: function(setting) {
|
|
237403
|
+
var o = setting.treeObj;
|
|
237404
|
+
o.unbind("selectstart", handler.onSelectStart).unbind("click", event.proxy).unbind("dblclick", event.proxy).unbind("mouseover", event.proxy).unbind("mouseout", event.proxy).unbind("mousedown", event.proxy).unbind("mouseup", event.proxy).unbind("contextmenu", event.proxy);
|
|
237405
|
+
},
|
|
237406
|
+
doProxy: function(e) {
|
|
237407
|
+
var results = [];
|
|
237408
|
+
for (var i = 0, j = _init.proxys.length; i < j; i++) {
|
|
237409
|
+
var proxyResult = _init.proxys[i].apply(this, arguments);
|
|
237410
|
+
results.push(proxyResult);
|
|
237411
|
+
if (proxyResult.stop) {
|
|
237412
|
+
break;
|
|
237413
|
+
}
|
|
237414
|
+
}
|
|
237415
|
+
return results;
|
|
237416
|
+
},
|
|
237417
|
+
proxy: function(e) {
|
|
237418
|
+
var setting = data.getSetting(e.data.treeId);
|
|
237419
|
+
if (!tools.uCanDo(setting, e)) return true;
|
|
237420
|
+
var results = event.doProxy(e), r = true, x = false;
|
|
237421
|
+
for (var i = 0, l = results.length; i < l; i++) {
|
|
237422
|
+
var proxyResult = results[i];
|
|
237423
|
+
if (proxyResult.nodeEventCallback) {
|
|
237424
|
+
x = true;
|
|
237425
|
+
r = proxyResult.nodeEventCallback.apply(proxyResult, [ e, proxyResult.node ]) && r;
|
|
237426
|
+
}
|
|
237427
|
+
if (proxyResult.treeEventCallback) {
|
|
237428
|
+
x = true;
|
|
237429
|
+
r = proxyResult.treeEventCallback.apply(proxyResult, [ e, proxyResult.node ]) && r;
|
|
237430
|
+
}
|
|
237431
|
+
}
|
|
237432
|
+
return r;
|
|
237433
|
+
}
|
|
237434
|
+
}, handler = {
|
|
237435
|
+
onSwitchNode: function(event, node) {
|
|
237436
|
+
var setting = data.getSetting(event.data.treeId);
|
|
237437
|
+
if (node.open) {
|
|
237438
|
+
if (tools.apply(setting.callback.beforeCollapse, [ setting.treeId, node ], true) == false) return true;
|
|
237439
|
+
data.getRoot(setting).expandTriggerFlag = true;
|
|
237440
|
+
view.switchNode(setting, node);
|
|
237441
|
+
} else {
|
|
237442
|
+
if (tools.apply(setting.callback.beforeExpand, [ setting.treeId, node ], true) == false) return true;
|
|
237443
|
+
data.getRoot(setting).expandTriggerFlag = true;
|
|
237444
|
+
view.switchNode(setting, node);
|
|
237445
|
+
}
|
|
237446
|
+
return true;
|
|
237447
|
+
},
|
|
237448
|
+
onClickNode: function(event, node) {
|
|
237449
|
+
var setting = data.getSetting(event.data.treeId), clickFlag = setting.view.autoCancelSelected && (event.ctrlKey || event.metaKey) && data.isSelectedNode(setting, node) ? 0 : setting.view.autoCancelSelected && (event.ctrlKey || event.metaKey) && setting.view.selectedMulti ? 2 : 1;
|
|
237450
|
+
if (tools.apply(setting.callback.beforeClick, [ setting.treeId, node, clickFlag ], true) == false) return true;
|
|
237451
|
+
if (clickFlag === 0) {
|
|
237452
|
+
view.cancelPreSelectedNode(setting, node);
|
|
237453
|
+
} else {
|
|
237454
|
+
view.selectNode(setting, node, clickFlag === 2);
|
|
237455
|
+
}
|
|
237456
|
+
setting.treeObj.trigger(consts.event.CLICK, [ event, setting.treeId, node, clickFlag ]);
|
|
237457
|
+
return true;
|
|
237458
|
+
},
|
|
237459
|
+
onZTreeMousedown: function(event, node) {
|
|
237460
|
+
var setting = data.getSetting(event.data.treeId);
|
|
237461
|
+
if (tools.apply(setting.callback.beforeMouseDown, [ setting.treeId, node ], true)) {
|
|
237462
|
+
tools.apply(setting.callback.onMouseDown, [ event, setting.treeId, node ]);
|
|
237463
|
+
}
|
|
237464
|
+
return true;
|
|
237465
|
+
},
|
|
237466
|
+
onZTreeMouseup: function(event, node) {
|
|
237467
|
+
var setting = data.getSetting(event.data.treeId);
|
|
237468
|
+
if (tools.apply(setting.callback.beforeMouseUp, [ setting.treeId, node ], true)) {
|
|
237469
|
+
tools.apply(setting.callback.onMouseUp, [ event, setting.treeId, node ]);
|
|
237470
|
+
}
|
|
237471
|
+
return true;
|
|
237472
|
+
},
|
|
237473
|
+
onZTreeDblclick: function(event, node) {
|
|
237474
|
+
var setting = data.getSetting(event.data.treeId);
|
|
237475
|
+
if (tools.apply(setting.callback.beforeDblClick, [ setting.treeId, node ], true)) {
|
|
237476
|
+
tools.apply(setting.callback.onDblClick, [ event, setting.treeId, node ]);
|
|
237477
|
+
}
|
|
237478
|
+
return true;
|
|
237479
|
+
},
|
|
237480
|
+
onZTreeContextmenu: function(event, node) {
|
|
237481
|
+
var setting = data.getSetting(event.data.treeId);
|
|
237482
|
+
if (tools.apply(setting.callback.beforeRightClick, [ setting.treeId, node ], true)) {
|
|
237483
|
+
tools.apply(setting.callback.onRightClick, [ event, setting.treeId, node ]);
|
|
237484
|
+
}
|
|
237485
|
+
return typeof setting.callback.onRightClick != "function";
|
|
237486
|
+
},
|
|
237487
|
+
onSelectStart: function(e) {
|
|
237488
|
+
var n = e.originalEvent.srcElement.nodeName.toLowerCase();
|
|
237489
|
+
return n === "input" || n === "textarea";
|
|
237490
|
+
}
|
|
237491
|
+
}, tools = {
|
|
237492
|
+
apply: function(fun, param, defaultValue) {
|
|
237493
|
+
if (typeof fun == "function") {
|
|
237494
|
+
return fun.apply(zt, param ? param : []);
|
|
237495
|
+
}
|
|
237496
|
+
return defaultValue;
|
|
237497
|
+
},
|
|
237498
|
+
canAsync: function(setting, node) {
|
|
237499
|
+
var children = data.nodeChildren(setting, node);
|
|
237500
|
+
var isParent = data.nodeIsParent(setting, node);
|
|
237501
|
+
return setting.async.enable && node && isParent && !(node.zAsync || children && children.length > 0);
|
|
237502
|
+
},
|
|
237503
|
+
clone: function(obj) {
|
|
237504
|
+
if (obj === null) return null;
|
|
237505
|
+
var o = tools.isArray(obj) ? [] : {};
|
|
237506
|
+
for (var i in obj) {
|
|
237507
|
+
o[i] = obj[i] instanceof Date ? new Date(obj[i].getTime()) : typeof obj[i] === "object" ? tools.clone(obj[i]) : obj[i];
|
|
237508
|
+
}
|
|
237509
|
+
return o;
|
|
237510
|
+
},
|
|
237511
|
+
eqs: function(str1, str2) {
|
|
237512
|
+
return str1.toLowerCase() === str2.toLowerCase();
|
|
237513
|
+
},
|
|
237514
|
+
isArray: function(arr) {
|
|
237515
|
+
return Object.prototype.toString.apply(arr) === "[object Array]";
|
|
237516
|
+
},
|
|
237517
|
+
isElement: function(o) {
|
|
237518
|
+
return typeof HTMLElement === "object" ? o instanceof HTMLElement : o && typeof o === "object" && o !== null && o.nodeType === 1 && typeof o.nodeName === "string";
|
|
237519
|
+
},
|
|
237520
|
+
$: function(node, exp, setting) {
|
|
237521
|
+
if (!!exp && typeof exp != "string") {
|
|
237522
|
+
setting = exp;
|
|
237523
|
+
exp = "";
|
|
237524
|
+
}
|
|
237525
|
+
if (typeof node == "string") {
|
|
237526
|
+
return $(node, setting ? setting.treeObj.get(0).ownerDocument : null);
|
|
237527
|
+
} else {
|
|
237528
|
+
return $("#" + node.tId + exp, setting ? setting.treeObj : null);
|
|
237529
|
+
}
|
|
237530
|
+
},
|
|
237531
|
+
getMDom: function(setting, curDom, targetExpr) {
|
|
237532
|
+
if (!curDom) return null;
|
|
237533
|
+
while (curDom && curDom.id !== setting.treeId) {
|
|
237534
|
+
for (var i = 0, l = targetExpr.length; curDom.tagName && i < l; i++) {
|
|
237535
|
+
if (tools.eqs(curDom.tagName, targetExpr[i].tagName) && curDom.getAttribute(targetExpr[i].attrName) !== null) {
|
|
237536
|
+
return curDom;
|
|
237537
|
+
}
|
|
237538
|
+
}
|
|
237539
|
+
curDom = curDom.parentNode;
|
|
237540
|
+
}
|
|
237541
|
+
return null;
|
|
237542
|
+
},
|
|
237543
|
+
getNodeMainDom: function(target) {
|
|
237544
|
+
return $(target).parent("li").get(0) || $(target).parentsUntil("li").parent().get(0);
|
|
237545
|
+
},
|
|
237546
|
+
isChildOrSelf: function(dom, parentId) {
|
|
237547
|
+
return $(dom).closest("#" + parentId).length > 0;
|
|
237548
|
+
},
|
|
237549
|
+
uCanDo: function(setting, e) {
|
|
237550
|
+
return true;
|
|
237551
|
+
}
|
|
237552
|
+
}, view = {
|
|
237553
|
+
addNodes: function(setting, parentNode, index, newNodes, isSilent) {
|
|
237554
|
+
var isParent = data.nodeIsParent(setting, parentNode);
|
|
237555
|
+
if (setting.data.keep.leaf && parentNode && !isParent) {
|
|
237556
|
+
return;
|
|
237557
|
+
}
|
|
237558
|
+
if (!tools.isArray(newNodes)) {
|
|
237559
|
+
newNodes = [ newNodes ];
|
|
237560
|
+
}
|
|
237561
|
+
if (setting.data.simpleData.enable) {
|
|
237562
|
+
newNodes = data.transformTozTreeFormat(setting, newNodes);
|
|
237563
|
+
}
|
|
237564
|
+
if (parentNode) {
|
|
237565
|
+
var target_switchObj = $$(parentNode, consts.id.SWITCH, setting), target_icoObj = $$(parentNode, consts.id.ICON, setting), target_ulObj = $$(parentNode, consts.id.UL, setting);
|
|
237566
|
+
if (!parentNode.open) {
|
|
237567
|
+
view.replaceSwitchClass(parentNode, target_switchObj, consts.folder.CLOSE);
|
|
237568
|
+
view.replaceIcoClass(parentNode, target_icoObj, consts.folder.CLOSE);
|
|
237569
|
+
parentNode.open = false;
|
|
237570
|
+
target_ulObj.css({
|
|
237571
|
+
display: "none"
|
|
237572
|
+
});
|
|
237573
|
+
}
|
|
237574
|
+
data.addNodesData(setting, parentNode, index, newNodes);
|
|
237575
|
+
view.createNodes(setting, parentNode.level + 1, newNodes, parentNode, index);
|
|
237576
|
+
if (!isSilent) {
|
|
237577
|
+
view.expandCollapseParentNode(setting, parentNode, true);
|
|
237578
|
+
}
|
|
237579
|
+
} else {
|
|
237580
|
+
data.addNodesData(setting, data.getRoot(setting), index, newNodes);
|
|
237581
|
+
view.createNodes(setting, 0, newNodes, null, index);
|
|
237582
|
+
}
|
|
237583
|
+
},
|
|
237584
|
+
appendNodes: function(setting, level, nodes, parentNode, index, initFlag, openFlag) {
|
|
237585
|
+
if (!nodes) return [];
|
|
237586
|
+
var html = [];
|
|
237587
|
+
var tmpPNode = parentNode ? parentNode : data.getRoot(setting), tmpPChild = data.nodeChildren(setting, tmpPNode), isFirstNode, isLastNode;
|
|
237588
|
+
if (!tmpPChild || index >= tmpPChild.length - nodes.length) {
|
|
237589
|
+
index = -1;
|
|
237590
|
+
}
|
|
237591
|
+
for (var i = 0, l = nodes.length; i < l; i++) {
|
|
237592
|
+
var node = nodes[i];
|
|
237593
|
+
if (initFlag) {
|
|
237594
|
+
isFirstNode = (index === 0 || tmpPChild.length == nodes.length) && i == 0;
|
|
237595
|
+
isLastNode = index < 0 && i == nodes.length - 1;
|
|
237596
|
+
data.initNode(setting, level, node, parentNode, isFirstNode, isLastNode, openFlag);
|
|
237597
|
+
data.addNodeCache(setting, node);
|
|
237598
|
+
}
|
|
237599
|
+
var isParent = data.nodeIsParent(setting, node);
|
|
237600
|
+
var childHtml = [];
|
|
237601
|
+
var children = data.nodeChildren(setting, node);
|
|
237602
|
+
if (children && children.length > 0) {
|
|
237603
|
+
childHtml = view.appendNodes(setting, level + 1, children, node, -1, initFlag, openFlag && node.open);
|
|
237604
|
+
}
|
|
237605
|
+
if (openFlag) {
|
|
237606
|
+
view.makeDOMNodeMainBefore(html, setting, node);
|
|
237607
|
+
view.makeDOMNodeLine(html, setting, node);
|
|
237608
|
+
data.getBeforeA(setting, node, html);
|
|
237609
|
+
view.makeDOMNodeNameBefore(html, setting, node);
|
|
237610
|
+
data.getInnerBeforeA(setting, node, html);
|
|
237611
|
+
view.makeDOMNodeIcon(html, setting, node);
|
|
237612
|
+
data.getInnerAfterA(setting, node, html);
|
|
237613
|
+
view.makeDOMNodeNameAfter(html, setting, node);
|
|
237614
|
+
data.getAfterA(setting, node, html);
|
|
237615
|
+
if (isParent && node.open) {
|
|
237616
|
+
view.makeUlHtml(setting, node, html, childHtml.join(""));
|
|
237617
|
+
}
|
|
237618
|
+
view.makeDOMNodeMainAfter(html, setting, node);
|
|
237619
|
+
data.addCreatedNode(setting, node);
|
|
237620
|
+
}
|
|
237621
|
+
}
|
|
237622
|
+
return html;
|
|
237623
|
+
},
|
|
237624
|
+
appendParentULDom: function(setting, node) {
|
|
237625
|
+
var html = [], nObj = $$(node, setting);
|
|
237626
|
+
if (!nObj.get(0) && !!node.parentTId) {
|
|
237627
|
+
view.appendParentULDom(setting, node.getParentNode());
|
|
237628
|
+
nObj = $$(node, setting);
|
|
237629
|
+
}
|
|
237630
|
+
var ulObj = $$(node, consts.id.UL, setting);
|
|
237631
|
+
if (ulObj.get(0)) {
|
|
237632
|
+
ulObj.remove();
|
|
237633
|
+
}
|
|
237634
|
+
var children = data.nodeChildren(setting, node), childHtml = view.appendNodes(setting, node.level + 1, children, node, -1, false, true);
|
|
237635
|
+
view.makeUlHtml(setting, node, html, childHtml.join(""));
|
|
237636
|
+
nObj.append(html.join(""));
|
|
237637
|
+
},
|
|
237638
|
+
asyncNode: function(setting, node, isSilent, callback) {
|
|
237639
|
+
var i, l;
|
|
237640
|
+
var isParent = data.nodeIsParent(setting, node);
|
|
237641
|
+
if (node && !isParent) {
|
|
237642
|
+
tools.apply(callback);
|
|
237643
|
+
return false;
|
|
237644
|
+
} else if (node && node.isAjaxing) {
|
|
237645
|
+
return false;
|
|
237646
|
+
} else if (tools.apply(setting.callback.beforeAsync, [ setting.treeId, node ], true) == false) {
|
|
237647
|
+
tools.apply(callback);
|
|
237648
|
+
return false;
|
|
237649
|
+
}
|
|
237650
|
+
if (node) {
|
|
237651
|
+
node.isAjaxing = true;
|
|
237652
|
+
var icoObj = $$(node, consts.id.ICON, setting);
|
|
237653
|
+
icoObj.attr({
|
|
237654
|
+
style: "",
|
|
237655
|
+
class: consts.className.BUTTON + " " + consts.className.ICO_LOADING
|
|
237656
|
+
});
|
|
237657
|
+
}
|
|
237658
|
+
var tmpParam = {};
|
|
237659
|
+
var autoParam = tools.apply(setting.async.autoParam, [ setting.treeId, node ], setting.async.autoParam);
|
|
237660
|
+
for (i = 0, l = autoParam.length; node && i < l; i++) {
|
|
237661
|
+
var pKey = autoParam[i].split("="), spKey = pKey;
|
|
237662
|
+
if (pKey.length > 1) {
|
|
237663
|
+
spKey = pKey[1];
|
|
237664
|
+
pKey = pKey[0];
|
|
237665
|
+
}
|
|
237666
|
+
tmpParam[spKey] = node[pKey];
|
|
237667
|
+
}
|
|
237668
|
+
var otherParam = tools.apply(setting.async.otherParam, [ setting.treeId, node ], setting.async.otherParam);
|
|
237669
|
+
if (tools.isArray(otherParam)) {
|
|
237670
|
+
for (i = 0, l = otherParam.length; i < l; i += 2) {
|
|
237671
|
+
tmpParam[otherParam[i]] = otherParam[i + 1];
|
|
237672
|
+
}
|
|
237673
|
+
} else {
|
|
237674
|
+
for (var p in otherParam) {
|
|
237675
|
+
tmpParam[p] = otherParam[p];
|
|
237676
|
+
}
|
|
237677
|
+
}
|
|
237678
|
+
var _tmpV = data.getRoot(setting)._ver;
|
|
237679
|
+
$.ajax({
|
|
237680
|
+
contentType: setting.async.contentType,
|
|
237681
|
+
cache: false,
|
|
237682
|
+
type: setting.async.type,
|
|
237683
|
+
url: tools.apply(setting.async.url, [ setting.treeId, node ], setting.async.url),
|
|
237684
|
+
data: setting.async.contentType.indexOf("application/json") > -1 ? JSON.stringify(tmpParam) : tmpParam,
|
|
237685
|
+
dataType: setting.async.dataType,
|
|
237686
|
+
headers: setting.async.headers,
|
|
237687
|
+
xhrFields: setting.async.xhrFields,
|
|
237688
|
+
success: function(msg) {
|
|
237689
|
+
if (_tmpV != data.getRoot(setting)._ver) {
|
|
237690
|
+
return;
|
|
237691
|
+
}
|
|
237692
|
+
var newNodes = [];
|
|
237693
|
+
try {
|
|
237694
|
+
if (!msg || msg.length == 0) {
|
|
237695
|
+
newNodes = [];
|
|
237696
|
+
} else if (typeof msg == "string") {
|
|
237697
|
+
newNodes = eval("(" + msg + ")");
|
|
237698
|
+
} else {
|
|
237699
|
+
newNodes = msg;
|
|
237700
|
+
}
|
|
237701
|
+
} catch (err) {
|
|
237702
|
+
newNodes = msg;
|
|
237703
|
+
}
|
|
237704
|
+
if (node) {
|
|
237705
|
+
node.isAjaxing = null;
|
|
237706
|
+
node.zAsync = true;
|
|
237707
|
+
}
|
|
237708
|
+
view.setNodeLineIcos(setting, node);
|
|
237709
|
+
if (newNodes && newNodes !== "") {
|
|
237710
|
+
newNodes = tools.apply(setting.async.dataFilter, [ setting.treeId, node, newNodes ], newNodes);
|
|
237711
|
+
view.addNodes(setting, node, -1, !!newNodes ? tools.clone(newNodes) : [], !!isSilent);
|
|
237712
|
+
} else {
|
|
237713
|
+
view.addNodes(setting, node, -1, [], !!isSilent);
|
|
237714
|
+
}
|
|
237715
|
+
setting.treeObj.trigger(consts.event.ASYNC_SUCCESS, [ setting.treeId, node, msg ]);
|
|
237716
|
+
tools.apply(callback);
|
|
237717
|
+
},
|
|
237718
|
+
error: function(XMLHttpRequest, textStatus, errorThrown) {
|
|
237719
|
+
if (_tmpV != data.getRoot(setting)._ver) {
|
|
237720
|
+
return;
|
|
237721
|
+
}
|
|
237722
|
+
if (node) node.isAjaxing = null;
|
|
237723
|
+
view.setNodeLineIcos(setting, node);
|
|
237724
|
+
setting.treeObj.trigger(consts.event.ASYNC_ERROR, [ setting.treeId, node, XMLHttpRequest, textStatus, errorThrown ]);
|
|
237725
|
+
}
|
|
237726
|
+
});
|
|
237727
|
+
return true;
|
|
237728
|
+
},
|
|
237729
|
+
cancelPreSelectedNode: function(setting, node, excludeNode) {
|
|
237730
|
+
var list = data.getRoot(setting).curSelectedList, i, n;
|
|
237731
|
+
for (i = list.length - 1; i >= 0; i--) {
|
|
237732
|
+
n = list[i];
|
|
237733
|
+
if (node === n || !node && (!excludeNode || excludeNode !== n)) {
|
|
237734
|
+
$$(n, consts.id.A, setting).removeClass(consts.node.CURSELECTED);
|
|
237735
|
+
if (node) {
|
|
237736
|
+
data.removeSelectedNode(setting, node);
|
|
237737
|
+
break;
|
|
237738
|
+
} else {
|
|
237739
|
+
list.splice(i, 1);
|
|
237740
|
+
setting.treeObj.trigger(consts.event.UNSELECTED, [ setting.treeId, n ]);
|
|
237741
|
+
}
|
|
237742
|
+
}
|
|
237743
|
+
}
|
|
237744
|
+
},
|
|
237745
|
+
createNodeCallback: function(setting) {
|
|
237746
|
+
if (!!setting.callback.onNodeCreated || !!setting.view.addDiyDom) {
|
|
237747
|
+
var root = data.getRoot(setting);
|
|
237748
|
+
while (root.createdNodes.length > 0) {
|
|
237749
|
+
var node = root.createdNodes.shift();
|
|
237750
|
+
tools.apply(setting.view.addDiyDom, [ setting.treeId, node ]);
|
|
237751
|
+
if (!!setting.callback.onNodeCreated) {
|
|
237752
|
+
setting.treeObj.trigger(consts.event.NODECREATED, [ setting.treeId, node ]);
|
|
237753
|
+
}
|
|
237754
|
+
}
|
|
237755
|
+
}
|
|
237756
|
+
},
|
|
237757
|
+
createNodes: function(setting, level, nodes, parentNode, index) {
|
|
237758
|
+
if (!nodes || nodes.length == 0) return;
|
|
237759
|
+
var root = data.getRoot(setting), openFlag = !parentNode || parentNode.open || !!$$(data.nodeChildren(setting, parentNode)[0], setting).get(0);
|
|
237760
|
+
root.createdNodes = [];
|
|
237761
|
+
var zTreeHtml = view.appendNodes(setting, level, nodes, parentNode, index, true, openFlag), parentObj, nextObj;
|
|
237762
|
+
if (!parentNode) {
|
|
237763
|
+
parentObj = setting.treeObj;
|
|
237764
|
+
} else {
|
|
237765
|
+
var ulObj = $$(parentNode, consts.id.UL, setting);
|
|
237766
|
+
if (ulObj.get(0)) {
|
|
237767
|
+
parentObj = ulObj;
|
|
237768
|
+
}
|
|
237769
|
+
}
|
|
237770
|
+
if (parentObj) {
|
|
237771
|
+
if (index >= 0) {
|
|
237772
|
+
nextObj = parentObj.children()[index];
|
|
237773
|
+
}
|
|
237774
|
+
if (index >= 0 && nextObj) {
|
|
237775
|
+
$(nextObj).before(zTreeHtml.join(""));
|
|
237776
|
+
} else {
|
|
237777
|
+
parentObj.append(zTreeHtml.join(""));
|
|
237778
|
+
}
|
|
237779
|
+
}
|
|
237780
|
+
view.createNodeCallback(setting);
|
|
237781
|
+
},
|
|
237782
|
+
destroy: function(setting) {
|
|
237783
|
+
if (!setting) return;
|
|
237784
|
+
data.initCache(setting);
|
|
237785
|
+
data.initRoot(setting);
|
|
237786
|
+
event.unbindTree(setting);
|
|
237787
|
+
event.unbindEvent(setting);
|
|
237788
|
+
setting.treeObj.empty();
|
|
237789
|
+
delete settings[setting.treeId];
|
|
237790
|
+
},
|
|
237791
|
+
expandCollapseNode: function(setting, node, expandFlag, animateFlag, callback) {
|
|
237792
|
+
var root = data.getRoot(setting);
|
|
237793
|
+
var tmpCb, _callback;
|
|
237794
|
+
if (!node) {
|
|
237795
|
+
tools.apply(callback, []);
|
|
237796
|
+
return;
|
|
237797
|
+
}
|
|
237798
|
+
var children = data.nodeChildren(setting, node);
|
|
237799
|
+
var isParent = data.nodeIsParent(setting, node);
|
|
237800
|
+
if (root.expandTriggerFlag) {
|
|
237801
|
+
_callback = callback;
|
|
237802
|
+
tmpCb = function() {
|
|
237803
|
+
if (_callback) _callback();
|
|
237804
|
+
if (node.open) {
|
|
237805
|
+
setting.treeObj.trigger(consts.event.EXPAND, [ setting.treeId, node ]);
|
|
237806
|
+
} else {
|
|
237807
|
+
setting.treeObj.trigger(consts.event.COLLAPSE, [ setting.treeId, node ]);
|
|
237808
|
+
}
|
|
237809
|
+
};
|
|
237810
|
+
callback = tmpCb;
|
|
237811
|
+
root.expandTriggerFlag = false;
|
|
237812
|
+
}
|
|
237813
|
+
if (!node.open && isParent && (!$$(node, consts.id.UL, setting).get(0) || children && children.length > 0 && !$$(children[0], setting).get(0))) {
|
|
237814
|
+
view.appendParentULDom(setting, node);
|
|
237815
|
+
view.createNodeCallback(setting);
|
|
237816
|
+
}
|
|
237817
|
+
if (node.open == expandFlag) {
|
|
237818
|
+
tools.apply(callback, []);
|
|
237819
|
+
return;
|
|
237820
|
+
}
|
|
237821
|
+
var ulObj = $$(node, consts.id.UL, setting), switchObj = $$(node, consts.id.SWITCH, setting), icoObj = $$(node, consts.id.ICON, setting);
|
|
237822
|
+
if (isParent) {
|
|
237823
|
+
node.open = !node.open;
|
|
237824
|
+
if (node.iconOpen && node.iconClose) {
|
|
237825
|
+
icoObj.attr("style", view.makeNodeIcoStyle(setting, node));
|
|
237826
|
+
}
|
|
237827
|
+
if (node.open) {
|
|
237828
|
+
view.replaceSwitchClass(node, switchObj, consts.folder.OPEN);
|
|
237829
|
+
view.replaceIcoClass(node, icoObj, consts.folder.OPEN);
|
|
237830
|
+
if (animateFlag == false || setting.view.expandSpeed == "") {
|
|
237831
|
+
ulObj.show();
|
|
237832
|
+
tools.apply(callback, []);
|
|
237833
|
+
} else {
|
|
237834
|
+
if (children && children.length > 0) {
|
|
237835
|
+
ulObj.slideDown(setting.view.expandSpeed, callback);
|
|
237836
|
+
} else {
|
|
237837
|
+
ulObj.show();
|
|
237838
|
+
tools.apply(callback, []);
|
|
237839
|
+
}
|
|
237840
|
+
}
|
|
237841
|
+
} else {
|
|
237842
|
+
view.replaceSwitchClass(node, switchObj, consts.folder.CLOSE);
|
|
237843
|
+
view.replaceIcoClass(node, icoObj, consts.folder.CLOSE);
|
|
237844
|
+
if (animateFlag == false || setting.view.expandSpeed == "" || !(children && children.length > 0)) {
|
|
237845
|
+
ulObj.hide();
|
|
237846
|
+
tools.apply(callback, []);
|
|
237847
|
+
} else {
|
|
237848
|
+
ulObj.slideUp(setting.view.expandSpeed, callback);
|
|
237849
|
+
}
|
|
237850
|
+
}
|
|
237851
|
+
} else {
|
|
237852
|
+
tools.apply(callback, []);
|
|
237853
|
+
}
|
|
237854
|
+
},
|
|
237855
|
+
expandCollapseParentNode: function(setting, node, expandFlag, animateFlag, callback) {
|
|
237856
|
+
if (!node) return;
|
|
237857
|
+
if (!node.parentTId) {
|
|
237858
|
+
view.expandCollapseNode(setting, node, expandFlag, animateFlag, callback);
|
|
237859
|
+
return;
|
|
237860
|
+
} else {
|
|
237861
|
+
view.expandCollapseNode(setting, node, expandFlag, animateFlag);
|
|
237862
|
+
}
|
|
237863
|
+
if (node.parentTId) {
|
|
237864
|
+
view.expandCollapseParentNode(setting, node.getParentNode(), expandFlag, animateFlag, callback);
|
|
237865
|
+
}
|
|
237866
|
+
},
|
|
237867
|
+
expandCollapseSonNode: function(setting, node, expandFlag, animateFlag, callback) {
|
|
237868
|
+
var root = data.getRoot(setting), treeNodes = node ? data.nodeChildren(setting, node) : data.nodeChildren(setting, root), selfAnimateSign = node ? false : animateFlag, expandTriggerFlag = data.getRoot(setting).expandTriggerFlag;
|
|
237869
|
+
data.getRoot(setting).expandTriggerFlag = false;
|
|
237870
|
+
if (treeNodes) {
|
|
237871
|
+
for (var i = 0, l = treeNodes.length; i < l; i++) {
|
|
237872
|
+
if (treeNodes[i]) view.expandCollapseSonNode(setting, treeNodes[i], expandFlag, selfAnimateSign);
|
|
237873
|
+
}
|
|
237874
|
+
}
|
|
237875
|
+
data.getRoot(setting).expandTriggerFlag = expandTriggerFlag;
|
|
237876
|
+
view.expandCollapseNode(setting, node, expandFlag, animateFlag, callback);
|
|
237877
|
+
},
|
|
237878
|
+
isSelectedNode: function(setting, node) {
|
|
237879
|
+
if (!node) {
|
|
237880
|
+
return false;
|
|
237881
|
+
}
|
|
237882
|
+
var list = data.getRoot(setting).curSelectedList, i;
|
|
237883
|
+
for (i = list.length - 1; i >= 0; i--) {
|
|
237884
|
+
if (node === list[i]) {
|
|
237885
|
+
return true;
|
|
237886
|
+
}
|
|
237887
|
+
}
|
|
237888
|
+
return false;
|
|
237889
|
+
},
|
|
237890
|
+
makeDOMNodeIcon: function(html, setting, node) {
|
|
237891
|
+
var nameStr = data.nodeName(setting, node), name = setting.view.nameIsHTML ? nameStr : nameStr.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
|
|
237892
|
+
html.push("<span id='", node.tId, consts.id.ICON, "' title='' treeNode", consts.id.ICON, " class='", view.makeNodeIcoClass(setting, node), "' style='", view.makeNodeIcoStyle(setting, node), "'></span><span id='", node.tId, consts.id.SPAN, "' class='", consts.className.NAME, "'>", name, "</span>");
|
|
237893
|
+
},
|
|
237894
|
+
makeDOMNodeLine: function(html, setting, node) {
|
|
237895
|
+
html.push("<span id='", node.tId, consts.id.SWITCH, "' title='' class='", view.makeNodeLineClass(setting, node), "' treeNode", consts.id.SWITCH, "></span>");
|
|
237896
|
+
},
|
|
237897
|
+
makeDOMNodeMainAfter: function(html, setting, node) {
|
|
237898
|
+
html.push("</li>");
|
|
237899
|
+
},
|
|
237900
|
+
makeDOMNodeMainBefore: function(html, setting, node) {
|
|
237901
|
+
html.push("<li id='", node.tId, "' class='", consts.className.LEVEL, node.level, "' tabindex='0' hidefocus='true' treenode>");
|
|
237902
|
+
},
|
|
237903
|
+
makeDOMNodeNameAfter: function(html, setting, node) {
|
|
237904
|
+
html.push("</a>");
|
|
237905
|
+
},
|
|
237906
|
+
makeDOMNodeNameBefore: function(html, setting, node) {
|
|
237907
|
+
var title = data.nodeTitle(setting, node), url = view.makeNodeUrl(setting, node), fontcss = view.makeNodeFontCss(setting, node), nodeClasses = view.makeNodeClasses(setting, node), fontStyle = [];
|
|
237908
|
+
for (var f in fontcss) {
|
|
237909
|
+
fontStyle.push(f, ":", fontcss[f], ";");
|
|
237910
|
+
}
|
|
237911
|
+
html.push("<a id='", node.tId, consts.id.A, "' class='", consts.className.LEVEL, node.level, nodeClasses.add ? " " + nodeClasses.add.join(" ") : "", "' treeNode", consts.id.A, node.click ? ' onclick="' + node.click + '"' : "", url != null && url.length > 0 ? " href='" + url + "'" : "", " target='", view.makeNodeTarget(node), "' style='", fontStyle.join(""), "'");
|
|
237912
|
+
if (tools.apply(setting.view.showTitle, [ setting.treeId, node ], setting.view.showTitle) && title) {
|
|
237913
|
+
html.push("title='", title.replace(/'/g, "'").replace(/</g, "<").replace(/>/g, ">"), "'");
|
|
237914
|
+
}
|
|
237915
|
+
html.push(">");
|
|
237916
|
+
},
|
|
237917
|
+
makeNodeFontCss: function(setting, node) {
|
|
237918
|
+
var fontCss = tools.apply(setting.view.fontCss, [ setting.treeId, node ], setting.view.fontCss);
|
|
237919
|
+
return fontCss && typeof fontCss != "function" ? fontCss : {};
|
|
237920
|
+
},
|
|
237921
|
+
makeNodeClasses: function(setting, node) {
|
|
237922
|
+
var classes = tools.apply(setting.view.nodeClasses, [ setting.treeId, node ], setting.view.nodeClasses);
|
|
237923
|
+
return classes && typeof classes !== "function" ? classes : {
|
|
237924
|
+
add: [],
|
|
237925
|
+
remove: []
|
|
237926
|
+
};
|
|
237927
|
+
},
|
|
237928
|
+
makeNodeIcoClass: function(setting, node) {
|
|
237929
|
+
var icoCss = [ "ico" ];
|
|
237930
|
+
if (!node.isAjaxing) {
|
|
237931
|
+
var isParent = data.nodeIsParent(setting, node);
|
|
237932
|
+
icoCss[0] = (node.iconSkin ? node.iconSkin + "_" : "") + icoCss[0];
|
|
237933
|
+
if (isParent) {
|
|
237934
|
+
icoCss.push(node.open ? consts.folder.OPEN : consts.folder.CLOSE);
|
|
237935
|
+
} else {
|
|
237936
|
+
icoCss.push(consts.folder.DOCU);
|
|
237937
|
+
}
|
|
237938
|
+
}
|
|
237939
|
+
return consts.className.BUTTON + " " + icoCss.join("_");
|
|
237940
|
+
},
|
|
237941
|
+
makeNodeIcoStyle: function(setting, node) {
|
|
237942
|
+
var icoStyle = [];
|
|
237943
|
+
if (!node.isAjaxing) {
|
|
237944
|
+
var isParent = data.nodeIsParent(setting, node);
|
|
237945
|
+
var icon = isParent && node.iconOpen && node.iconClose ? node.open ? node.iconOpen : node.iconClose : node[setting.data.key.icon];
|
|
237946
|
+
if (icon) icoStyle.push("background:url(", icon, ") 0 0 no-repeat;");
|
|
237947
|
+
if (setting.view.showIcon == false || !tools.apply(setting.view.showIcon, [ setting.treeId, node ], true)) {
|
|
237948
|
+
icoStyle.push("display:none;");
|
|
237949
|
+
}
|
|
237950
|
+
}
|
|
237951
|
+
return icoStyle.join("");
|
|
237952
|
+
},
|
|
237953
|
+
makeNodeLineClass: function(setting, node) {
|
|
237954
|
+
var lineClass = [];
|
|
237955
|
+
if (setting.view.showLine) {
|
|
237956
|
+
if (node.level == 0 && node.isFirstNode && node.isLastNode) {
|
|
237957
|
+
lineClass.push(consts.line.ROOT);
|
|
237958
|
+
} else if (node.level == 0 && node.isFirstNode) {
|
|
237959
|
+
lineClass.push(consts.line.ROOTS);
|
|
237960
|
+
} else if (node.isLastNode) {
|
|
237961
|
+
lineClass.push(consts.line.BOTTOM);
|
|
237962
|
+
} else {
|
|
237963
|
+
lineClass.push(consts.line.CENTER);
|
|
237964
|
+
}
|
|
237965
|
+
} else {
|
|
237966
|
+
lineClass.push(consts.line.NOLINE);
|
|
237967
|
+
}
|
|
237968
|
+
if (data.nodeIsParent(setting, node)) {
|
|
237969
|
+
lineClass.push(node.open ? consts.folder.OPEN : consts.folder.CLOSE);
|
|
237970
|
+
} else {
|
|
237971
|
+
lineClass.push(consts.folder.DOCU);
|
|
237972
|
+
}
|
|
237973
|
+
return view.makeNodeLineClassEx(node) + lineClass.join("_");
|
|
237974
|
+
},
|
|
237975
|
+
makeNodeLineClassEx: function(node) {
|
|
237976
|
+
return consts.className.BUTTON + " " + consts.className.LEVEL + node.level + " " + consts.className.SWITCH + " ";
|
|
237977
|
+
},
|
|
237978
|
+
makeNodeTarget: function(node) {
|
|
237979
|
+
return node.target || "_blank";
|
|
237980
|
+
},
|
|
237981
|
+
makeNodeUrl: function(setting, node) {
|
|
237982
|
+
var urlKey = setting.data.key.url;
|
|
237983
|
+
return node[urlKey] ? node[urlKey] : null;
|
|
237984
|
+
},
|
|
237985
|
+
makeUlHtml: function(setting, node, html, content) {
|
|
237986
|
+
html.push("<ul id='", node.tId, consts.id.UL, "' class='", consts.className.LEVEL, node.level, " ", view.makeUlLineClass(setting, node), "' style='display:", node.open ? "block" : "none", "'>");
|
|
237987
|
+
html.push(content);
|
|
237988
|
+
html.push("</ul>");
|
|
237989
|
+
},
|
|
237990
|
+
makeUlLineClass: function(setting, node) {
|
|
237991
|
+
return setting.view.showLine && !node.isLastNode ? consts.line.LINE : "";
|
|
237992
|
+
},
|
|
237993
|
+
removeChildNodes: function(setting, node) {
|
|
237994
|
+
if (!node) return;
|
|
237995
|
+
var nodes = data.nodeChildren(setting, node);
|
|
237996
|
+
if (!nodes) return;
|
|
237997
|
+
for (var i = 0, l = nodes.length; i < l; i++) {
|
|
237998
|
+
data.removeNodeCache(setting, nodes[i]);
|
|
237999
|
+
}
|
|
238000
|
+
data.removeSelectedNode(setting);
|
|
238001
|
+
delete node[setting.data.key.children];
|
|
238002
|
+
if (!setting.data.keep.parent) {
|
|
238003
|
+
data.nodeIsParent(setting, node, false);
|
|
238004
|
+
node.open = false;
|
|
238005
|
+
var tmp_switchObj = $$(node, consts.id.SWITCH, setting), tmp_icoObj = $$(node, consts.id.ICON, setting);
|
|
238006
|
+
view.replaceSwitchClass(node, tmp_switchObj, consts.folder.DOCU);
|
|
238007
|
+
view.replaceIcoClass(node, tmp_icoObj, consts.folder.DOCU);
|
|
238008
|
+
$$(node, consts.id.UL, setting).remove();
|
|
238009
|
+
} else {
|
|
238010
|
+
$$(node, consts.id.UL, setting).empty();
|
|
238011
|
+
}
|
|
238012
|
+
},
|
|
238013
|
+
scrollIntoView: function(setting, dom) {
|
|
238014
|
+
if (!dom) {
|
|
238015
|
+
return;
|
|
238016
|
+
}
|
|
238017
|
+
if (typeof Element === "undefined" || typeof HTMLElement === "undefined") {
|
|
238018
|
+
var contRect = setting.treeObj.get(0).getBoundingClientRect(), findMeRect = dom.getBoundingClientRect();
|
|
238019
|
+
if (findMeRect.top < contRect.top || findMeRect.bottom > contRect.bottom || findMeRect.right > contRect.right || findMeRect.left < contRect.left) {
|
|
238020
|
+
dom.scrollIntoView();
|
|
238021
|
+
}
|
|
238022
|
+
return;
|
|
238023
|
+
}
|
|
238024
|
+
if (!Element.prototype.scrollIntoViewIfNeeded) {
|
|
238025
|
+
Element.prototype.scrollIntoViewIfNeeded = function(centerIfNeeded) {
|
|
238026
|
+
"use strict";
|
|
238027
|
+
function makeRange(start, length) {
|
|
238028
|
+
return {
|
|
238029
|
+
start: start,
|
|
238030
|
+
length: length,
|
|
238031
|
+
end: start + length
|
|
238032
|
+
};
|
|
238033
|
+
}
|
|
238034
|
+
function coverRange(inner, outer) {
|
|
238035
|
+
if (false === centerIfNeeded || outer.start < inner.end && inner.start < outer.end) {
|
|
238036
|
+
return Math.max(inner.end - outer.length, Math.min(outer.start, inner.start));
|
|
238037
|
+
}
|
|
238038
|
+
return (inner.start + inner.end - outer.length) / 2;
|
|
238039
|
+
}
|
|
238040
|
+
function makePoint(x, y) {
|
|
238041
|
+
return {
|
|
238042
|
+
x: x,
|
|
238043
|
+
y: y,
|
|
238044
|
+
translate: function translate(dX, dY) {
|
|
238045
|
+
return makePoint(x + dX, y + dY);
|
|
238046
|
+
}
|
|
238047
|
+
};
|
|
238048
|
+
}
|
|
238049
|
+
function absolute(elem, pt) {
|
|
238050
|
+
while (elem) {
|
|
238051
|
+
pt = pt.translate(elem.offsetLeft, elem.offsetTop);
|
|
238052
|
+
elem = elem.offsetParent;
|
|
238053
|
+
}
|
|
238054
|
+
return pt;
|
|
238055
|
+
}
|
|
238056
|
+
var target = absolute(this, makePoint(0, 0)), extent = makePoint(this.offsetWidth, this.offsetHeight), elem = this.parentNode, origin;
|
|
238057
|
+
while (elem instanceof HTMLElement) {
|
|
238058
|
+
origin = absolute(elem, makePoint(elem.clientLeft, elem.clientTop));
|
|
238059
|
+
elem.scrollLeft = coverRange(makeRange(target.x - origin.x, extent.x), makeRange(elem.scrollLeft, elem.clientWidth));
|
|
238060
|
+
elem.scrollTop = coverRange(makeRange(target.y - origin.y, extent.y), makeRange(elem.scrollTop, elem.clientHeight));
|
|
238061
|
+
target = target.translate(-elem.scrollLeft, -elem.scrollTop);
|
|
238062
|
+
elem = elem.parentNode;
|
|
238063
|
+
}
|
|
238064
|
+
};
|
|
238065
|
+
}
|
|
238066
|
+
dom.scrollIntoViewIfNeeded();
|
|
238067
|
+
},
|
|
238068
|
+
setFirstNode: function(setting, parentNode) {
|
|
238069
|
+
var children = data.nodeChildren(setting, parentNode);
|
|
238070
|
+
if (children.length > 0) {
|
|
238071
|
+
children[0].isFirstNode = true;
|
|
238072
|
+
}
|
|
238073
|
+
},
|
|
238074
|
+
setLastNode: function(setting, parentNode) {
|
|
238075
|
+
var children = data.nodeChildren(setting, parentNode);
|
|
238076
|
+
if (children.length > 0) {
|
|
238077
|
+
children[children.length - 1].isLastNode = true;
|
|
238078
|
+
}
|
|
238079
|
+
},
|
|
238080
|
+
removeNode: function(setting, node) {
|
|
238081
|
+
var root = data.getRoot(setting), parentNode = node.parentTId ? node.getParentNode() : root;
|
|
238082
|
+
node.isFirstNode = false;
|
|
238083
|
+
node.isLastNode = false;
|
|
238084
|
+
node.getPreNode = function() {
|
|
238085
|
+
return null;
|
|
238086
|
+
};
|
|
238087
|
+
node.getNextNode = function() {
|
|
238088
|
+
return null;
|
|
238089
|
+
};
|
|
238090
|
+
if (!data.getNodeCache(setting, node.tId)) {
|
|
238091
|
+
return;
|
|
238092
|
+
}
|
|
238093
|
+
$$(node, setting).remove();
|
|
238094
|
+
data.removeNodeCache(setting, node);
|
|
238095
|
+
data.removeSelectedNode(setting, node);
|
|
238096
|
+
var children = data.nodeChildren(setting, parentNode);
|
|
238097
|
+
for (var i = 0, l = children.length; i < l; i++) {
|
|
238098
|
+
if (children[i].tId == node.tId) {
|
|
238099
|
+
children.splice(i, 1);
|
|
238100
|
+
break;
|
|
238101
|
+
}
|
|
238102
|
+
}
|
|
238103
|
+
view.setFirstNode(setting, parentNode);
|
|
238104
|
+
view.setLastNode(setting, parentNode);
|
|
238105
|
+
var tmp_ulObj, tmp_switchObj, tmp_icoObj, childLength = children.length;
|
|
238106
|
+
if (!setting.data.keep.parent && childLength == 0) {
|
|
238107
|
+
data.nodeIsParent(setting, parentNode, false);
|
|
238108
|
+
parentNode.open = false;
|
|
238109
|
+
delete parentNode[setting.data.key.children];
|
|
238110
|
+
tmp_ulObj = $$(parentNode, consts.id.UL, setting);
|
|
238111
|
+
tmp_switchObj = $$(parentNode, consts.id.SWITCH, setting);
|
|
238112
|
+
tmp_icoObj = $$(parentNode, consts.id.ICON, setting);
|
|
238113
|
+
view.replaceSwitchClass(parentNode, tmp_switchObj, consts.folder.DOCU);
|
|
238114
|
+
view.replaceIcoClass(parentNode, tmp_icoObj, consts.folder.DOCU);
|
|
238115
|
+
tmp_ulObj.css("display", "none");
|
|
238116
|
+
} else if (setting.view.showLine && childLength > 0) {
|
|
238117
|
+
var newLast = children[childLength - 1];
|
|
238118
|
+
tmp_ulObj = $$(newLast, consts.id.UL, setting);
|
|
238119
|
+
tmp_switchObj = $$(newLast, consts.id.SWITCH, setting);
|
|
238120
|
+
tmp_icoObj = $$(newLast, consts.id.ICON, setting);
|
|
238121
|
+
if (parentNode == root) {
|
|
238122
|
+
if (children.length == 1) {
|
|
238123
|
+
view.replaceSwitchClass(newLast, tmp_switchObj, consts.line.ROOT);
|
|
238124
|
+
} else {
|
|
238125
|
+
var tmp_first_switchObj = $$(children[0], consts.id.SWITCH, setting);
|
|
238126
|
+
view.replaceSwitchClass(children[0], tmp_first_switchObj, consts.line.ROOTS);
|
|
238127
|
+
view.replaceSwitchClass(newLast, tmp_switchObj, consts.line.BOTTOM);
|
|
238128
|
+
}
|
|
238129
|
+
} else {
|
|
238130
|
+
view.replaceSwitchClass(newLast, tmp_switchObj, consts.line.BOTTOM);
|
|
238131
|
+
}
|
|
238132
|
+
tmp_ulObj.removeClass(consts.line.LINE);
|
|
238133
|
+
}
|
|
238134
|
+
},
|
|
238135
|
+
replaceIcoClass: function(node, obj, newName) {
|
|
238136
|
+
if (!obj || node.isAjaxing) return;
|
|
238137
|
+
var tmpName = obj.attr("class");
|
|
238138
|
+
if (tmpName == undefined) return;
|
|
238139
|
+
var tmpList = tmpName.split("_");
|
|
238140
|
+
switch (newName) {
|
|
238141
|
+
case consts.folder.OPEN:
|
|
238142
|
+
case consts.folder.CLOSE:
|
|
238143
|
+
case consts.folder.DOCU:
|
|
238144
|
+
tmpList[tmpList.length - 1] = newName;
|
|
238145
|
+
break;
|
|
238146
|
+
}
|
|
238147
|
+
obj.attr("class", tmpList.join("_"));
|
|
238148
|
+
},
|
|
238149
|
+
replaceSwitchClass: function(node, obj, newName) {
|
|
238150
|
+
if (!obj) return;
|
|
238151
|
+
var tmpName = obj.attr("class");
|
|
238152
|
+
if (tmpName == undefined) return;
|
|
238153
|
+
var tmpList = tmpName.split("_");
|
|
238154
|
+
switch (newName) {
|
|
238155
|
+
case consts.line.ROOT:
|
|
238156
|
+
case consts.line.ROOTS:
|
|
238157
|
+
case consts.line.CENTER:
|
|
238158
|
+
case consts.line.BOTTOM:
|
|
238159
|
+
case consts.line.NOLINE:
|
|
238160
|
+
tmpList[0] = view.makeNodeLineClassEx(node) + newName;
|
|
238161
|
+
break;
|
|
238162
|
+
|
|
238163
|
+
case consts.folder.OPEN:
|
|
238164
|
+
case consts.folder.CLOSE:
|
|
238165
|
+
case consts.folder.DOCU:
|
|
238166
|
+
tmpList[1] = newName;
|
|
238167
|
+
break;
|
|
238168
|
+
}
|
|
238169
|
+
obj.attr("class", tmpList.join("_"));
|
|
238170
|
+
if (newName !== consts.folder.DOCU) {
|
|
238171
|
+
obj.removeAttr("disabled");
|
|
238172
|
+
} else {
|
|
238173
|
+
obj.attr("disabled", "disabled");
|
|
238174
|
+
}
|
|
238175
|
+
},
|
|
238176
|
+
selectNode: function(setting, node, addFlag) {
|
|
238177
|
+
if (!addFlag) {
|
|
238178
|
+
view.cancelPreSelectedNode(setting, null, node);
|
|
238179
|
+
}
|
|
238180
|
+
$$(node, consts.id.A, setting).addClass(consts.node.CURSELECTED);
|
|
238181
|
+
data.addSelectedNode(setting, node);
|
|
238182
|
+
setting.treeObj.trigger(consts.event.SELECTED, [ setting.treeId, node ]);
|
|
238183
|
+
},
|
|
238184
|
+
setNodeFontCss: function(setting, treeNode) {
|
|
238185
|
+
var aObj = $$(treeNode, consts.id.A, setting), fontCss = view.makeNodeFontCss(setting, treeNode);
|
|
238186
|
+
if (fontCss) {
|
|
238187
|
+
aObj.css(fontCss);
|
|
238188
|
+
}
|
|
238189
|
+
},
|
|
238190
|
+
setNodeClasses: function(setting, treeNode) {
|
|
238191
|
+
var aObj = $$(treeNode, consts.id.A, setting), classes = view.makeNodeClasses(setting, treeNode);
|
|
238192
|
+
if ("add" in classes && classes.add.length) {
|
|
238193
|
+
aObj.addClass(classes.add.join(" "));
|
|
238194
|
+
}
|
|
238195
|
+
if ("remove" in classes && classes.remove.length) {
|
|
238196
|
+
aObj.removeClass(classes.remove.join(" "));
|
|
238197
|
+
}
|
|
238198
|
+
},
|
|
238199
|
+
setNodeLineIcos: function(setting, node) {
|
|
238200
|
+
if (!node) return;
|
|
238201
|
+
var switchObj = $$(node, consts.id.SWITCH, setting), ulObj = $$(node, consts.id.UL, setting), icoObj = $$(node, consts.id.ICON, setting), ulLine = view.makeUlLineClass(setting, node);
|
|
238202
|
+
if (ulLine.length == 0) {
|
|
238203
|
+
ulObj.removeClass(consts.line.LINE);
|
|
238204
|
+
} else {
|
|
238205
|
+
ulObj.addClass(ulLine);
|
|
238206
|
+
}
|
|
238207
|
+
switchObj.attr("class", view.makeNodeLineClass(setting, node));
|
|
238208
|
+
if (data.nodeIsParent(setting, node)) {
|
|
238209
|
+
switchObj.removeAttr("disabled");
|
|
238210
|
+
} else {
|
|
238211
|
+
switchObj.attr("disabled", "disabled");
|
|
238212
|
+
}
|
|
238213
|
+
icoObj.removeAttr("style");
|
|
238214
|
+
icoObj.attr("style", view.makeNodeIcoStyle(setting, node));
|
|
238215
|
+
icoObj.attr("class", view.makeNodeIcoClass(setting, node));
|
|
238216
|
+
},
|
|
238217
|
+
setNodeName: function(setting, node) {
|
|
238218
|
+
var title = data.nodeTitle(setting, node), nObj = $$(node, consts.id.SPAN, setting);
|
|
238219
|
+
nObj.empty();
|
|
238220
|
+
if (setting.view.nameIsHTML) {
|
|
238221
|
+
nObj.html(data.nodeName(setting, node));
|
|
238222
|
+
} else {
|
|
238223
|
+
nObj.text(data.nodeName(setting, node));
|
|
238224
|
+
}
|
|
238225
|
+
if (tools.apply(setting.view.showTitle, [ setting.treeId, node ], setting.view.showTitle)) {
|
|
238226
|
+
var aObj = $$(node, consts.id.A, setting);
|
|
238227
|
+
aObj.attr("title", !title ? "" : title);
|
|
238228
|
+
}
|
|
238229
|
+
},
|
|
238230
|
+
setNodeTarget: function(setting, node) {
|
|
238231
|
+
var aObj = $$(node, consts.id.A, setting);
|
|
238232
|
+
aObj.attr("target", view.makeNodeTarget(node));
|
|
238233
|
+
},
|
|
238234
|
+
setNodeUrl: function(setting, node) {
|
|
238235
|
+
var aObj = $$(node, consts.id.A, setting), url = view.makeNodeUrl(setting, node);
|
|
238236
|
+
if (url == null || url.length == 0) {
|
|
238237
|
+
aObj.removeAttr("href");
|
|
238238
|
+
} else {
|
|
238239
|
+
aObj.attr("href", url);
|
|
238240
|
+
}
|
|
238241
|
+
},
|
|
238242
|
+
switchNode: function(setting, node) {
|
|
238243
|
+
if (node.open || !tools.canAsync(setting, node)) {
|
|
238244
|
+
view.expandCollapseNode(setting, node, !node.open);
|
|
238245
|
+
} else if (setting.async.enable) {
|
|
238246
|
+
if (!view.asyncNode(setting, node)) {
|
|
238247
|
+
view.expandCollapseNode(setting, node, !node.open);
|
|
238248
|
+
return;
|
|
238249
|
+
}
|
|
238250
|
+
} else if (node) {
|
|
238251
|
+
view.expandCollapseNode(setting, node, !node.open);
|
|
238252
|
+
}
|
|
238253
|
+
}
|
|
238254
|
+
};
|
|
238255
|
+
$.fn.zTree = {
|
|
238256
|
+
consts: _consts,
|
|
238257
|
+
_z: {
|
|
238258
|
+
tools: tools,
|
|
238259
|
+
view: view,
|
|
238260
|
+
event: event,
|
|
238261
|
+
data: data
|
|
238262
|
+
},
|
|
238263
|
+
getZTreeObj: function(treeId) {
|
|
238264
|
+
var o = data.getZTreeTools(treeId);
|
|
238265
|
+
return o ? o : null;
|
|
238266
|
+
},
|
|
238267
|
+
destroy: function(treeId) {
|
|
238268
|
+
if (!!treeId && treeId.length > 0) {
|
|
238269
|
+
view.destroy(data.getSetting(treeId));
|
|
238270
|
+
} else {
|
|
238271
|
+
for (var s in settings) {
|
|
238272
|
+
view.destroy(settings[s]);
|
|
238273
|
+
}
|
|
238274
|
+
}
|
|
238275
|
+
},
|
|
238276
|
+
init: function(obj, zSetting, zNodes) {
|
|
238277
|
+
var setting = tools.clone(_setting);
|
|
238278
|
+
$.extend(true, setting, zSetting);
|
|
238279
|
+
setting.treeId = obj.attr("id");
|
|
238280
|
+
setting.treeObj = obj;
|
|
238281
|
+
setting.treeObj.empty();
|
|
238282
|
+
settings[setting.treeId] = setting;
|
|
238283
|
+
if (typeof document.body.style.maxHeight === "undefined") {
|
|
238284
|
+
setting.view.expandSpeed = "";
|
|
238285
|
+
}
|
|
238286
|
+
data.initRoot(setting);
|
|
238287
|
+
var root = data.getRoot(setting);
|
|
238288
|
+
zNodes = zNodes ? tools.clone(tools.isArray(zNodes) ? zNodes : [ zNodes ]) : [];
|
|
238289
|
+
if (setting.data.simpleData.enable) {
|
|
238290
|
+
data.nodeChildren(setting, root, data.transformTozTreeFormat(setting, zNodes));
|
|
238291
|
+
} else {
|
|
238292
|
+
data.nodeChildren(setting, root, zNodes);
|
|
238293
|
+
}
|
|
238294
|
+
data.initCache(setting);
|
|
238295
|
+
event.unbindTree(setting);
|
|
238296
|
+
event.bindTree(setting);
|
|
238297
|
+
event.unbindEvent(setting);
|
|
238298
|
+
event.bindEvent(setting);
|
|
238299
|
+
var zTreeTools = {
|
|
238300
|
+
setting: setting,
|
|
238301
|
+
addNodes: function(parentNode, index, newNodes, isSilent) {
|
|
238302
|
+
if (!parentNode) parentNode = null;
|
|
238303
|
+
var isParent = data.nodeIsParent(setting, parentNode);
|
|
238304
|
+
if (parentNode && !isParent && setting.data.keep.leaf) return null;
|
|
238305
|
+
var i = parseInt(index, 10);
|
|
238306
|
+
if (isNaN(i)) {
|
|
238307
|
+
isSilent = !!newNodes;
|
|
238308
|
+
newNodes = index;
|
|
238309
|
+
index = -1;
|
|
238310
|
+
} else {
|
|
238311
|
+
index = i;
|
|
238312
|
+
}
|
|
238313
|
+
if (!newNodes) return null;
|
|
238314
|
+
var xNewNodes = tools.clone(tools.isArray(newNodes) ? newNodes : [ newNodes ]);
|
|
238315
|
+
function addCallback() {
|
|
238316
|
+
view.addNodes(setting, parentNode, index, xNewNodes, isSilent == true);
|
|
238317
|
+
}
|
|
238318
|
+
if (tools.canAsync(setting, parentNode)) {
|
|
238319
|
+
view.asyncNode(setting, parentNode, isSilent, addCallback);
|
|
238320
|
+
} else {
|
|
238321
|
+
addCallback();
|
|
238322
|
+
}
|
|
238323
|
+
return xNewNodes;
|
|
238324
|
+
},
|
|
238325
|
+
cancelSelectedNode: function(node) {
|
|
238326
|
+
view.cancelPreSelectedNode(setting, node);
|
|
238327
|
+
},
|
|
238328
|
+
destroy: function() {
|
|
238329
|
+
view.destroy(setting);
|
|
238330
|
+
},
|
|
238331
|
+
expandAll: function(expandFlag) {
|
|
238332
|
+
expandFlag = !!expandFlag;
|
|
238333
|
+
view.expandCollapseSonNode(setting, null, expandFlag, true);
|
|
238334
|
+
return expandFlag;
|
|
238335
|
+
},
|
|
238336
|
+
expandNode: function(node, expandFlag, sonSign, focus, callbackFlag) {
|
|
238337
|
+
if (!node || !data.nodeIsParent(setting, node)) return null;
|
|
238338
|
+
if (expandFlag !== true && expandFlag !== false) {
|
|
238339
|
+
expandFlag = !node.open;
|
|
238340
|
+
}
|
|
238341
|
+
callbackFlag = !!callbackFlag;
|
|
238342
|
+
if (callbackFlag && expandFlag && tools.apply(setting.callback.beforeExpand, [ setting.treeId, node ], true) == false) {
|
|
238343
|
+
return null;
|
|
238344
|
+
} else if (callbackFlag && !expandFlag && tools.apply(setting.callback.beforeCollapse, [ setting.treeId, node ], true) == false) {
|
|
238345
|
+
return null;
|
|
238346
|
+
}
|
|
238347
|
+
if (expandFlag && node.parentTId) {
|
|
238348
|
+
view.expandCollapseParentNode(setting, node.getParentNode(), expandFlag, false);
|
|
238349
|
+
}
|
|
238350
|
+
if (expandFlag === node.open && !sonSign) {
|
|
238351
|
+
return null;
|
|
238352
|
+
}
|
|
238353
|
+
data.getRoot(setting).expandTriggerFlag = callbackFlag;
|
|
238354
|
+
if (!tools.canAsync(setting, node) && sonSign) {
|
|
238355
|
+
view.expandCollapseSonNode(setting, node, expandFlag, true, showNodeFocus);
|
|
238356
|
+
} else {
|
|
238357
|
+
node.open = !expandFlag;
|
|
238358
|
+
view.switchNode(this.setting, node);
|
|
238359
|
+
showNodeFocus();
|
|
238360
|
+
}
|
|
238361
|
+
return expandFlag;
|
|
238362
|
+
function showNodeFocus() {
|
|
238363
|
+
var a = $$(node, consts.id.A, setting).get(0);
|
|
238364
|
+
if (a && focus !== false) {
|
|
238365
|
+
view.scrollIntoView(setting, a);
|
|
238366
|
+
}
|
|
238367
|
+
}
|
|
238368
|
+
},
|
|
238369
|
+
getNodes: function() {
|
|
238370
|
+
return data.getNodes(setting);
|
|
238371
|
+
},
|
|
238372
|
+
getNodeByParam: function(key, value, parentNode) {
|
|
238373
|
+
if (!key) return null;
|
|
238374
|
+
return data.getNodeByParam(setting, parentNode ? data.nodeChildren(setting, parentNode) : data.getNodes(setting), key, value);
|
|
238375
|
+
},
|
|
238376
|
+
getNodeByTId: function(tId) {
|
|
238377
|
+
return data.getNodeCache(setting, tId);
|
|
238378
|
+
},
|
|
238379
|
+
getNodesByParam: function(key, value, parentNode) {
|
|
238380
|
+
if (!key) return null;
|
|
238381
|
+
return data.getNodesByParam(setting, parentNode ? data.nodeChildren(setting, parentNode) : data.getNodes(setting), key, value);
|
|
238382
|
+
},
|
|
238383
|
+
getNodesByParamFuzzy: function(key, value, parentNode) {
|
|
238384
|
+
if (!key) return null;
|
|
238385
|
+
return data.getNodesByParamFuzzy(setting, parentNode ? data.nodeChildren(setting, parentNode) : data.getNodes(setting), key, value);
|
|
238386
|
+
},
|
|
238387
|
+
getNodesByFilter: function(filter, isSingle, parentNode, invokeParam) {
|
|
238388
|
+
isSingle = !!isSingle;
|
|
238389
|
+
if (!filter || typeof filter != "function") return isSingle ? null : [];
|
|
238390
|
+
return data.getNodesByFilter(setting, parentNode ? data.nodeChildren(setting, parentNode) : data.getNodes(setting), filter, isSingle, invokeParam);
|
|
238391
|
+
},
|
|
238392
|
+
getNodeIndex: function(node) {
|
|
238393
|
+
if (!node) return null;
|
|
238394
|
+
var parentNode = node.parentTId ? node.getParentNode() : data.getRoot(setting);
|
|
238395
|
+
var children = data.nodeChildren(setting, parentNode);
|
|
238396
|
+
for (var i = 0, l = children.length; i < l; i++) {
|
|
238397
|
+
if (children[i] == node) return i;
|
|
238398
|
+
}
|
|
238399
|
+
return -1;
|
|
238400
|
+
},
|
|
238401
|
+
getSelectedNodes: function() {
|
|
238402
|
+
var r = [], list = data.getRoot(setting).curSelectedList;
|
|
238403
|
+
for (var i = 0, l = list.length; i < l; i++) {
|
|
238404
|
+
r.push(list[i]);
|
|
238405
|
+
}
|
|
238406
|
+
return r;
|
|
238407
|
+
},
|
|
238408
|
+
isSelectedNode: function(node) {
|
|
238409
|
+
return data.isSelectedNode(setting, node);
|
|
238410
|
+
},
|
|
238411
|
+
reAsyncChildNodesPromise: function(parentNode, reloadType, isSilent) {
|
|
238412
|
+
var promise = new Promise((function(resolve, reject) {
|
|
238413
|
+
try {
|
|
238414
|
+
zTreeTools.reAsyncChildNodes(parentNode, reloadType, isSilent, (function() {
|
|
238415
|
+
resolve(parentNode);
|
|
238416
|
+
}));
|
|
238417
|
+
} catch (e) {
|
|
238418
|
+
reject(e);
|
|
238419
|
+
}
|
|
238420
|
+
}));
|
|
238421
|
+
return promise;
|
|
238422
|
+
},
|
|
238423
|
+
reAsyncChildNodes: function(parentNode, reloadType, isSilent, callback) {
|
|
238424
|
+
if (!this.setting.async.enable) return;
|
|
238425
|
+
var isRoot = !parentNode;
|
|
238426
|
+
if (isRoot) {
|
|
238427
|
+
parentNode = data.getRoot(setting);
|
|
238428
|
+
}
|
|
238429
|
+
if (reloadType == "refresh") {
|
|
238430
|
+
var children = data.nodeChildren(setting, parentNode);
|
|
238431
|
+
for (var i = 0, l = children ? children.length : 0; i < l; i++) {
|
|
238432
|
+
data.removeNodeCache(setting, children[i]);
|
|
238433
|
+
}
|
|
238434
|
+
data.removeSelectedNode(setting);
|
|
238435
|
+
data.nodeChildren(setting, parentNode, []);
|
|
238436
|
+
if (isRoot) {
|
|
238437
|
+
this.setting.treeObj.empty();
|
|
238438
|
+
} else {
|
|
238439
|
+
var ulObj = $$(parentNode, consts.id.UL, setting);
|
|
238440
|
+
ulObj.empty();
|
|
238441
|
+
}
|
|
238442
|
+
}
|
|
238443
|
+
view.asyncNode(this.setting, isRoot ? null : parentNode, !!isSilent, callback);
|
|
238444
|
+
},
|
|
238445
|
+
refresh: function() {
|
|
238446
|
+
this.setting.treeObj.empty();
|
|
238447
|
+
var root = data.getRoot(setting), nodes = data.nodeChildren(setting, root);
|
|
238448
|
+
data.initRoot(setting);
|
|
238449
|
+
data.nodeChildren(setting, root, nodes);
|
|
238450
|
+
data.initCache(setting);
|
|
238451
|
+
view.createNodes(setting, 0, data.nodeChildren(setting, root), null, -1);
|
|
238452
|
+
},
|
|
238453
|
+
removeChildNodes: function(node) {
|
|
238454
|
+
if (!node) return null;
|
|
238455
|
+
var nodes = data.nodeChildren(setting, node);
|
|
238456
|
+
view.removeChildNodes(setting, node);
|
|
238457
|
+
return nodes ? nodes : null;
|
|
238458
|
+
},
|
|
238459
|
+
removeNode: function(node, callbackFlag) {
|
|
238460
|
+
if (!node) return;
|
|
238461
|
+
callbackFlag = !!callbackFlag;
|
|
238462
|
+
if (callbackFlag && tools.apply(setting.callback.beforeRemove, [ setting.treeId, node ], true) == false) return;
|
|
238463
|
+
view.removeNode(setting, node);
|
|
238464
|
+
if (callbackFlag) {
|
|
238465
|
+
this.setting.treeObj.trigger(consts.event.REMOVE, [ setting.treeId, node ]);
|
|
238466
|
+
}
|
|
238467
|
+
},
|
|
238468
|
+
selectNode: function(node, addFlag, isSilent) {
|
|
238469
|
+
if (!node) return;
|
|
238470
|
+
if (tools.uCanDo(setting)) {
|
|
238471
|
+
addFlag = setting.view.selectedMulti && addFlag;
|
|
238472
|
+
if (node.parentTId) {
|
|
238473
|
+
view.expandCollapseParentNode(setting, node.getParentNode(), true, false, showNodeFocus);
|
|
238474
|
+
} else if (!isSilent) {
|
|
238475
|
+
try {
|
|
238476
|
+
$$(node, setting).focus().blur();
|
|
238477
|
+
} catch (e) {}
|
|
238478
|
+
}
|
|
238479
|
+
view.selectNode(setting, node, addFlag);
|
|
238480
|
+
}
|
|
238481
|
+
function showNodeFocus() {
|
|
238482
|
+
if (isSilent) {
|
|
238483
|
+
return;
|
|
238484
|
+
}
|
|
238485
|
+
var a = $$(node, setting).get(0);
|
|
238486
|
+
view.scrollIntoView(setting, a);
|
|
238487
|
+
}
|
|
238488
|
+
},
|
|
238489
|
+
transformTozTreeNodes: function(simpleNodes) {
|
|
238490
|
+
return data.transformTozTreeFormat(setting, simpleNodes);
|
|
238491
|
+
},
|
|
238492
|
+
transformToArray: function(nodes) {
|
|
238493
|
+
return data.transformToArrayFormat(setting, nodes);
|
|
238494
|
+
},
|
|
238495
|
+
updateNode: function(node, checkTypeFlag) {
|
|
238496
|
+
if (!node) return;
|
|
238497
|
+
var nObj = $$(node, setting);
|
|
238498
|
+
if (nObj.get(0) && tools.uCanDo(setting)) {
|
|
238499
|
+
view.setNodeName(setting, node);
|
|
238500
|
+
view.setNodeTarget(setting, node);
|
|
238501
|
+
view.setNodeUrl(setting, node);
|
|
238502
|
+
view.setNodeLineIcos(setting, node);
|
|
238503
|
+
view.setNodeFontCss(setting, node);
|
|
238504
|
+
view.setNodeClasses(setting, node);
|
|
238505
|
+
}
|
|
238506
|
+
}
|
|
238507
|
+
};
|
|
238508
|
+
root.treeTools = zTreeTools;
|
|
238509
|
+
data.setZTreeTools(setting, zTreeTools);
|
|
238510
|
+
var children = data.nodeChildren(setting, root);
|
|
238511
|
+
if (children && children.length > 0) {
|
|
238512
|
+
view.createNodes(setting, 0, children, null, -1);
|
|
238513
|
+
} else if (setting.async.enable && setting.async.url && setting.async.url !== "") {
|
|
238514
|
+
view.asyncNode(setting);
|
|
238515
|
+
}
|
|
238516
|
+
return zTreeTools;
|
|
238517
|
+
}
|
|
238518
|
+
};
|
|
238519
|
+
var zt = $.fn.zTree, $$ = tools.$, consts = zt.consts;
|
|
238520
|
+
})(jQuery);
|
|
238521
|
+
|
|
238522
|
+
(function($) {
|
|
238523
|
+
var _consts = {
|
|
238524
|
+
event: {
|
|
238525
|
+
CHECK: "ztree_check"
|
|
238526
|
+
},
|
|
238527
|
+
id: {
|
|
238528
|
+
CHECK: "_check"
|
|
238529
|
+
},
|
|
238530
|
+
checkbox: {
|
|
238531
|
+
STYLE: "checkbox",
|
|
238532
|
+
DEFAULT: "chk",
|
|
238533
|
+
DISABLED: "disable",
|
|
238534
|
+
FALSE: "false",
|
|
238535
|
+
TRUE: "true",
|
|
238536
|
+
FULL: "full",
|
|
238537
|
+
PART: "part",
|
|
238538
|
+
FOCUS: "focus"
|
|
238539
|
+
},
|
|
238540
|
+
radio: {
|
|
238541
|
+
STYLE: "radio",
|
|
238542
|
+
TYPE_ALL: "all",
|
|
238543
|
+
TYPE_LEVEL: "level"
|
|
238544
|
+
}
|
|
238545
|
+
}, _setting = {
|
|
238546
|
+
check: {
|
|
238547
|
+
enable: false,
|
|
238548
|
+
autoCheckTrigger: false,
|
|
238549
|
+
chkStyle: _consts.checkbox.STYLE,
|
|
238550
|
+
nocheckInherit: false,
|
|
238551
|
+
chkDisabledInherit: false,
|
|
238552
|
+
radioType: _consts.radio.TYPE_LEVEL,
|
|
238553
|
+
chkboxType: {
|
|
238554
|
+
Y: "ps",
|
|
238555
|
+
N: "ps"
|
|
238556
|
+
}
|
|
238557
|
+
},
|
|
238558
|
+
data: {
|
|
238559
|
+
key: {
|
|
238560
|
+
checked: "checked"
|
|
238561
|
+
}
|
|
238562
|
+
},
|
|
238563
|
+
callback: {
|
|
238564
|
+
beforeCheck: null,
|
|
238565
|
+
onCheck: null
|
|
238566
|
+
}
|
|
238567
|
+
}, _initRoot = function(setting) {
|
|
238568
|
+
var r = data.getRoot(setting);
|
|
238569
|
+
r.radioCheckedList = [];
|
|
238570
|
+
}, _initCache = function(treeId) {}, _bindEvent = function(setting) {
|
|
238571
|
+
var o = setting.treeObj, c = consts.event;
|
|
238572
|
+
o.bind(c.CHECK, (function(event, srcEvent, treeId, node) {
|
|
238573
|
+
event.srcEvent = srcEvent;
|
|
238574
|
+
tools.apply(setting.callback.onCheck, [ event, treeId, node ]);
|
|
238575
|
+
}));
|
|
238576
|
+
}, _unbindEvent = function(setting) {
|
|
238577
|
+
var o = setting.treeObj, c = consts.event;
|
|
238578
|
+
o.unbind(c.CHECK);
|
|
238579
|
+
}, _eventProxy = function(e) {
|
|
238580
|
+
var target = e.target, setting = data.getSetting(e.data.treeId), tId = "", node = null, nodeEventType = "", treeEventType = "", nodeEventCallback = null, treeEventCallback = null;
|
|
238581
|
+
if (tools.eqs(e.type, "mouseover")) {
|
|
238582
|
+
if (setting.check.enable && tools.eqs(target.tagName, "span") && target.getAttribute("treeNode" + consts.id.CHECK) !== null) {
|
|
238583
|
+
tId = tools.getNodeMainDom(target).id;
|
|
238584
|
+
nodeEventType = "mouseoverCheck";
|
|
238585
|
+
}
|
|
238586
|
+
} else if (tools.eqs(e.type, "mouseout")) {
|
|
238587
|
+
if (setting.check.enable && tools.eqs(target.tagName, "span") && target.getAttribute("treeNode" + consts.id.CHECK) !== null) {
|
|
238588
|
+
tId = tools.getNodeMainDom(target).id;
|
|
238589
|
+
nodeEventType = "mouseoutCheck";
|
|
238590
|
+
}
|
|
238591
|
+
} else if (tools.eqs(e.type, "click")) {
|
|
238592
|
+
if (setting.check.enable && tools.eqs(target.tagName, "span") && target.getAttribute("treeNode" + consts.id.CHECK) !== null) {
|
|
238593
|
+
tId = tools.getNodeMainDom(target).id;
|
|
238594
|
+
nodeEventType = "checkNode";
|
|
238595
|
+
}
|
|
238596
|
+
}
|
|
238597
|
+
if (tId.length > 0) {
|
|
238598
|
+
node = data.getNodeCache(setting, tId);
|
|
238599
|
+
switch (nodeEventType) {
|
|
238600
|
+
case "checkNode":
|
|
238601
|
+
nodeEventCallback = _handler.onCheckNode;
|
|
238602
|
+
break;
|
|
238603
|
+
|
|
238604
|
+
case "mouseoverCheck":
|
|
238605
|
+
nodeEventCallback = _handler.onMouseoverCheck;
|
|
238606
|
+
break;
|
|
238607
|
+
|
|
238608
|
+
case "mouseoutCheck":
|
|
238609
|
+
nodeEventCallback = _handler.onMouseoutCheck;
|
|
238610
|
+
break;
|
|
238611
|
+
}
|
|
238612
|
+
}
|
|
238613
|
+
var proxyResult = {
|
|
238614
|
+
stop: nodeEventType === "checkNode",
|
|
238615
|
+
node: node,
|
|
238616
|
+
nodeEventType: nodeEventType,
|
|
238617
|
+
nodeEventCallback: nodeEventCallback,
|
|
238618
|
+
treeEventType: treeEventType,
|
|
238619
|
+
treeEventCallback: treeEventCallback
|
|
238620
|
+
};
|
|
238621
|
+
return proxyResult;
|
|
238622
|
+
}, _initNode = function(setting, level, n, parentNode, isFirstNode, isLastNode, openFlag) {
|
|
238623
|
+
if (!n) return;
|
|
238624
|
+
var checked = data.nodeChecked(setting, n);
|
|
238625
|
+
n.checkedOld = checked;
|
|
238626
|
+
if (typeof n.nocheck == "string") n.nocheck = tools.eqs(n.nocheck, "true");
|
|
238627
|
+
n.nocheck = !!n.nocheck || setting.check.nocheckInherit && parentNode && !!parentNode.nocheck;
|
|
238628
|
+
if (typeof n.chkDisabled == "string") n.chkDisabled = tools.eqs(n.chkDisabled, "true");
|
|
238629
|
+
n.chkDisabled = !!n.chkDisabled || setting.check.chkDisabledInherit && parentNode && !!parentNode.chkDisabled;
|
|
238630
|
+
if (typeof n.halfCheck == "string") n.halfCheck = tools.eqs(n.halfCheck, "true");
|
|
238631
|
+
n.halfCheck = !!n.halfCheck;
|
|
238632
|
+
n.check_Child_State = -1;
|
|
238633
|
+
n.check_Focus = false;
|
|
238634
|
+
n.getCheckStatus = function() {
|
|
238635
|
+
return data.getCheckStatus(setting, n);
|
|
238636
|
+
};
|
|
238637
|
+
if (setting.check.chkStyle == consts.radio.STYLE && setting.check.radioType == consts.radio.TYPE_ALL && checked) {
|
|
238638
|
+
var r = data.getRoot(setting);
|
|
238639
|
+
r.radioCheckedList.push(n);
|
|
238640
|
+
}
|
|
238641
|
+
}, _beforeA = function(setting, node, html) {
|
|
238642
|
+
if (setting.check.enable) {
|
|
238643
|
+
data.makeChkFlag(setting, node);
|
|
238644
|
+
html.push("<span ID='", node.tId, consts.id.CHECK, "' class='", view.makeChkClass(setting, node), "' treeNode", consts.id.CHECK, node.nocheck === true ? " style='display:none;'" : "", "></span>");
|
|
238645
|
+
}
|
|
238646
|
+
}, _zTreeTools = function(setting, zTreeTools) {
|
|
238647
|
+
zTreeTools.checkNode = function(node, checked, checkTypeFlag, callbackFlag) {
|
|
238648
|
+
var nodeChecked = data.nodeChecked(setting, node);
|
|
238649
|
+
if (node.chkDisabled === true) return;
|
|
238650
|
+
if (checked !== true && checked !== false) {
|
|
238651
|
+
checked = !nodeChecked;
|
|
238652
|
+
}
|
|
238653
|
+
callbackFlag = !!callbackFlag;
|
|
238654
|
+
if (nodeChecked === checked && !checkTypeFlag) {
|
|
238655
|
+
return;
|
|
238656
|
+
} else if (callbackFlag && tools.apply(this.setting.callback.beforeCheck, [ this.setting.treeId, node ], true) == false) {
|
|
238657
|
+
return;
|
|
238658
|
+
}
|
|
238659
|
+
if (tools.uCanDo(this.setting) && this.setting.check.enable && node.nocheck !== true) {
|
|
238660
|
+
data.nodeChecked(setting, node, checked);
|
|
238661
|
+
var checkObj = $$(node, consts.id.CHECK, this.setting);
|
|
238662
|
+
if (checkTypeFlag || this.setting.check.chkStyle === consts.radio.STYLE) view.checkNodeRelation(this.setting, node);
|
|
238663
|
+
view.setChkClass(this.setting, checkObj, node);
|
|
238664
|
+
view.repairParentChkClassWithSelf(this.setting, node);
|
|
238665
|
+
if (callbackFlag) {
|
|
238666
|
+
this.setting.treeObj.trigger(consts.event.CHECK, [ null, this.setting.treeId, node ]);
|
|
238667
|
+
}
|
|
238668
|
+
}
|
|
238669
|
+
};
|
|
238670
|
+
zTreeTools.checkAllNodes = function(checked) {
|
|
238671
|
+
view.repairAllChk(this.setting, !!checked);
|
|
238672
|
+
};
|
|
238673
|
+
zTreeTools.getCheckedNodes = function(checked) {
|
|
238674
|
+
checked = checked !== false;
|
|
238675
|
+
var children = data.nodeChildren(setting, data.getRoot(this.setting));
|
|
238676
|
+
return data.getTreeCheckedNodes(this.setting, children, checked);
|
|
238677
|
+
};
|
|
238678
|
+
zTreeTools.getChangeCheckedNodes = function() {
|
|
238679
|
+
var children = data.nodeChildren(setting, data.getRoot(this.setting));
|
|
238680
|
+
return data.getTreeChangeCheckedNodes(this.setting, children);
|
|
238681
|
+
};
|
|
238682
|
+
zTreeTools.setChkDisabled = function(node, disabled, inheritParent, inheritChildren) {
|
|
238683
|
+
disabled = !!disabled;
|
|
238684
|
+
inheritParent = !!inheritParent;
|
|
238685
|
+
inheritChildren = !!inheritChildren;
|
|
238686
|
+
view.repairSonChkDisabled(this.setting, node, disabled, inheritChildren);
|
|
238687
|
+
view.repairParentChkDisabled(this.setting, node.getParentNode(), disabled, inheritParent);
|
|
238688
|
+
};
|
|
238689
|
+
var _updateNode = zTreeTools.updateNode;
|
|
238690
|
+
zTreeTools.updateNode = function(node, checkTypeFlag) {
|
|
238691
|
+
if (_updateNode) _updateNode.apply(zTreeTools, arguments);
|
|
238692
|
+
if (!node || !this.setting.check.enable) return;
|
|
238693
|
+
var nObj = $$(node, this.setting);
|
|
238694
|
+
if (nObj.get(0) && tools.uCanDo(this.setting)) {
|
|
238695
|
+
var checkObj = $$(node, consts.id.CHECK, this.setting);
|
|
238696
|
+
if (checkTypeFlag == true || this.setting.check.chkStyle === consts.radio.STYLE) view.checkNodeRelation(this.setting, node);
|
|
238697
|
+
view.setChkClass(this.setting, checkObj, node);
|
|
238698
|
+
view.repairParentChkClassWithSelf(this.setting, node);
|
|
238699
|
+
}
|
|
238700
|
+
};
|
|
238701
|
+
}, _data = {
|
|
238702
|
+
getRadioCheckedList: function(setting) {
|
|
238703
|
+
var checkedList = data.getRoot(setting).radioCheckedList;
|
|
238704
|
+
for (var i = 0, j = checkedList.length; i < j; i++) {
|
|
238705
|
+
if (!data.getNodeCache(setting, checkedList[i].tId)) {
|
|
238706
|
+
checkedList.splice(i, 1);
|
|
238707
|
+
i--;
|
|
238708
|
+
j--;
|
|
238709
|
+
}
|
|
238710
|
+
}
|
|
238711
|
+
return checkedList;
|
|
238712
|
+
},
|
|
238713
|
+
getCheckStatus: function(setting, node) {
|
|
238714
|
+
if (!setting.check.enable || node.nocheck || node.chkDisabled) return null;
|
|
238715
|
+
var checked = data.nodeChecked(setting, node), r = {
|
|
238716
|
+
checked: checked,
|
|
238717
|
+
half: node.halfCheck ? node.halfCheck : setting.check.chkStyle == consts.radio.STYLE ? node.check_Child_State === 2 : checked ? node.check_Child_State > -1 && node.check_Child_State < 2 : node.check_Child_State > 0
|
|
238718
|
+
};
|
|
238719
|
+
return r;
|
|
238720
|
+
},
|
|
238721
|
+
getTreeCheckedNodes: function(setting, nodes, checked, results) {
|
|
238722
|
+
if (!nodes) return [];
|
|
238723
|
+
var onlyOne = checked && setting.check.chkStyle == consts.radio.STYLE && setting.check.radioType == consts.radio.TYPE_ALL;
|
|
238724
|
+
results = !results ? [] : results;
|
|
238725
|
+
for (var i = 0, l = nodes.length; i < l; i++) {
|
|
238726
|
+
var node = nodes[i];
|
|
238727
|
+
var children = data.nodeChildren(setting, node);
|
|
238728
|
+
var nodeChecked = data.nodeChecked(setting, node);
|
|
238729
|
+
if (node.nocheck !== true && node.chkDisabled !== true && nodeChecked == checked) {
|
|
238730
|
+
results.push(node);
|
|
238731
|
+
if (onlyOne) {
|
|
238732
|
+
break;
|
|
238733
|
+
}
|
|
238734
|
+
}
|
|
238735
|
+
data.getTreeCheckedNodes(setting, children, checked, results);
|
|
238736
|
+
if (onlyOne && results.length > 0) {
|
|
238737
|
+
break;
|
|
238738
|
+
}
|
|
238739
|
+
}
|
|
238740
|
+
return results;
|
|
238741
|
+
},
|
|
238742
|
+
getTreeChangeCheckedNodes: function(setting, nodes, results) {
|
|
238743
|
+
if (!nodes) return [];
|
|
238744
|
+
results = !results ? [] : results;
|
|
238745
|
+
for (var i = 0, l = nodes.length; i < l; i++) {
|
|
238746
|
+
var node = nodes[i];
|
|
238747
|
+
var children = data.nodeChildren(setting, node);
|
|
238748
|
+
var nodeChecked = data.nodeChecked(setting, node);
|
|
238749
|
+
if (node.nocheck !== true && node.chkDisabled !== true && nodeChecked != node.checkedOld) {
|
|
238750
|
+
results.push(node);
|
|
238751
|
+
}
|
|
238752
|
+
data.getTreeChangeCheckedNodes(setting, children, results);
|
|
238753
|
+
}
|
|
238754
|
+
return results;
|
|
238755
|
+
},
|
|
238756
|
+
makeChkFlag: function(setting, node) {
|
|
238757
|
+
if (!node) return;
|
|
238758
|
+
var chkFlag = -1;
|
|
238759
|
+
var children = data.nodeChildren(setting, node);
|
|
238760
|
+
if (children) {
|
|
238761
|
+
for (var i = 0, l = children.length; i < l; i++) {
|
|
238762
|
+
var cNode = children[i];
|
|
238763
|
+
var nodeChecked = data.nodeChecked(setting, cNode);
|
|
238764
|
+
var tmp = -1;
|
|
238765
|
+
if (setting.check.chkStyle == consts.radio.STYLE) {
|
|
238766
|
+
if (cNode.nocheck === true || cNode.chkDisabled === true) {
|
|
238767
|
+
tmp = cNode.check_Child_State;
|
|
238768
|
+
} else if (cNode.halfCheck === true) {
|
|
238769
|
+
tmp = 2;
|
|
238770
|
+
} else if (nodeChecked) {
|
|
238771
|
+
tmp = 2;
|
|
238772
|
+
} else {
|
|
238773
|
+
tmp = cNode.check_Child_State > 0 ? 2 : 0;
|
|
238774
|
+
}
|
|
238775
|
+
if (tmp == 2) {
|
|
238776
|
+
chkFlag = 2;
|
|
238777
|
+
break;
|
|
238778
|
+
} else if (tmp == 0) {
|
|
238779
|
+
chkFlag = 0;
|
|
238780
|
+
}
|
|
238781
|
+
} else if (setting.check.chkStyle == consts.checkbox.STYLE) {
|
|
238782
|
+
if (cNode.nocheck === true || cNode.chkDisabled === true) {
|
|
238783
|
+
tmp = cNode.check_Child_State;
|
|
238784
|
+
} else if (cNode.halfCheck === true) {
|
|
238785
|
+
tmp = 1;
|
|
238786
|
+
} else if (nodeChecked) {
|
|
238787
|
+
tmp = cNode.check_Child_State === -1 || cNode.check_Child_State === 2 ? 2 : 1;
|
|
238788
|
+
} else {
|
|
238789
|
+
tmp = cNode.check_Child_State > 0 ? 1 : 0;
|
|
238790
|
+
}
|
|
238791
|
+
if (tmp === 1) {
|
|
238792
|
+
chkFlag = 1;
|
|
238793
|
+
break;
|
|
238794
|
+
} else if (tmp === 2 && chkFlag > -1 && i > 0 && tmp !== chkFlag) {
|
|
238795
|
+
chkFlag = 1;
|
|
238796
|
+
break;
|
|
238797
|
+
} else if (chkFlag === 2 && tmp > -1 && tmp < 2) {
|
|
238798
|
+
chkFlag = 1;
|
|
238799
|
+
break;
|
|
238800
|
+
} else if (tmp > -1) {
|
|
238801
|
+
chkFlag = tmp;
|
|
238802
|
+
}
|
|
238803
|
+
}
|
|
238804
|
+
}
|
|
238805
|
+
}
|
|
238806
|
+
node.check_Child_State = chkFlag;
|
|
238807
|
+
}
|
|
238808
|
+
}, _event = {}, _handler = {
|
|
238809
|
+
onCheckNode: function(event, node) {
|
|
238810
|
+
if (node.chkDisabled === true) return false;
|
|
238811
|
+
var setting = data.getSetting(event.data.treeId);
|
|
238812
|
+
if (tools.apply(setting.callback.beforeCheck, [ setting.treeId, node ], true) == false) return true;
|
|
238813
|
+
var nodeChecked = data.nodeChecked(setting, node);
|
|
238814
|
+
data.nodeChecked(setting, node, !nodeChecked);
|
|
238815
|
+
view.checkNodeRelation(setting, node);
|
|
238816
|
+
var checkObj = $$(node, consts.id.CHECK, setting);
|
|
238817
|
+
view.setChkClass(setting, checkObj, node);
|
|
238818
|
+
view.repairParentChkClassWithSelf(setting, node);
|
|
238819
|
+
setting.treeObj.trigger(consts.event.CHECK, [ event, setting.treeId, node ]);
|
|
238820
|
+
return true;
|
|
238821
|
+
},
|
|
238822
|
+
onMouseoverCheck: function(event, node) {
|
|
238823
|
+
if (node.chkDisabled === true) return false;
|
|
238824
|
+
var setting = data.getSetting(event.data.treeId), checkObj = $$(node, consts.id.CHECK, setting);
|
|
238825
|
+
node.check_Focus = true;
|
|
238826
|
+
view.setChkClass(setting, checkObj, node);
|
|
238827
|
+
return true;
|
|
238828
|
+
},
|
|
238829
|
+
onMouseoutCheck: function(event, node) {
|
|
238830
|
+
if (node.chkDisabled === true) return false;
|
|
238831
|
+
var setting = data.getSetting(event.data.treeId), checkObj = $$(node, consts.id.CHECK, setting);
|
|
238832
|
+
node.check_Focus = false;
|
|
238833
|
+
view.setChkClass(setting, checkObj, node);
|
|
238834
|
+
return true;
|
|
238835
|
+
}
|
|
238836
|
+
}, _tools = {}, _view = {
|
|
238837
|
+
checkNodeRelation: function(setting, node) {
|
|
238838
|
+
var pNode, i, l, r = consts.radio;
|
|
238839
|
+
var nodeChecked = data.nodeChecked(setting, node);
|
|
238840
|
+
if (setting.check.chkStyle == r.STYLE) {
|
|
238841
|
+
var checkedList = data.getRadioCheckedList(setting);
|
|
238842
|
+
if (nodeChecked) {
|
|
238843
|
+
if (setting.check.radioType == r.TYPE_ALL) {
|
|
238844
|
+
for (i = checkedList.length - 1; i >= 0; i--) {
|
|
238845
|
+
pNode = checkedList[i];
|
|
238846
|
+
var pNodeChecked = data.nodeChecked(setting, pNode);
|
|
238847
|
+
if (pNodeChecked && pNode != node) {
|
|
238848
|
+
data.nodeChecked(setting, pNode, false);
|
|
238849
|
+
checkedList.splice(i, 1);
|
|
238850
|
+
view.setChkClass(setting, $$(pNode, consts.id.CHECK, setting), pNode);
|
|
238851
|
+
if (pNode.parentTId != node.parentTId) {
|
|
238852
|
+
view.repairParentChkClassWithSelf(setting, pNode);
|
|
238853
|
+
}
|
|
238854
|
+
}
|
|
238855
|
+
}
|
|
238856
|
+
checkedList.push(node);
|
|
238857
|
+
} else {
|
|
238858
|
+
var parentNode = node.parentTId ? node.getParentNode() : data.getRoot(setting);
|
|
238859
|
+
var children = data.nodeChildren(setting, parentNode);
|
|
238860
|
+
for (i = 0, l = children.length; i < l; i++) {
|
|
238861
|
+
pNode = children[i];
|
|
238862
|
+
var pNodeChecked = data.nodeChecked(setting, pNode);
|
|
238863
|
+
if (pNodeChecked && pNode != node) {
|
|
238864
|
+
data.nodeChecked(setting, pNode, false);
|
|
238865
|
+
view.setChkClass(setting, $$(pNode, consts.id.CHECK, setting), pNode);
|
|
238866
|
+
}
|
|
238867
|
+
}
|
|
238868
|
+
}
|
|
238869
|
+
} else if (setting.check.radioType == r.TYPE_ALL) {
|
|
238870
|
+
for (i = 0, l = checkedList.length; i < l; i++) {
|
|
238871
|
+
if (node == checkedList[i]) {
|
|
238872
|
+
checkedList.splice(i, 1);
|
|
238873
|
+
break;
|
|
238874
|
+
}
|
|
238875
|
+
}
|
|
238876
|
+
}
|
|
238877
|
+
} else {
|
|
238878
|
+
var children = data.nodeChildren(setting, node);
|
|
238879
|
+
if (nodeChecked && (!children || children.length == 0 || setting.check.chkboxType.Y.indexOf("s") > -1)) {
|
|
238880
|
+
view.setSonNodeCheckBox(setting, node, true);
|
|
238881
|
+
}
|
|
238882
|
+
if (!nodeChecked && (!children || children.length == 0 || setting.check.chkboxType.N.indexOf("s") > -1)) {
|
|
238883
|
+
view.setSonNodeCheckBox(setting, node, false);
|
|
238884
|
+
}
|
|
238885
|
+
if (nodeChecked && setting.check.chkboxType.Y.indexOf("p") > -1) {
|
|
238886
|
+
view.setParentNodeCheckBox(setting, node, true);
|
|
238887
|
+
}
|
|
238888
|
+
if (!nodeChecked && setting.check.chkboxType.N.indexOf("p") > -1) {
|
|
238889
|
+
view.setParentNodeCheckBox(setting, node, false);
|
|
238890
|
+
}
|
|
238891
|
+
}
|
|
238892
|
+
},
|
|
238893
|
+
makeChkClass: function(setting, node) {
|
|
238894
|
+
var c = consts.checkbox, r = consts.radio, fullStyle = "";
|
|
238895
|
+
var nodeChecked = data.nodeChecked(setting, node);
|
|
238896
|
+
if (node.chkDisabled === true) {
|
|
238897
|
+
fullStyle = c.DISABLED;
|
|
238898
|
+
} else if (node.halfCheck) {
|
|
238899
|
+
fullStyle = c.PART;
|
|
238900
|
+
} else if (setting.check.chkStyle == r.STYLE) {
|
|
238901
|
+
fullStyle = node.check_Child_State < 1 ? c.FULL : c.PART;
|
|
238902
|
+
} else {
|
|
238903
|
+
fullStyle = nodeChecked ? node.check_Child_State === 2 || node.check_Child_State === -1 ? c.FULL : c.PART : node.check_Child_State < 1 ? c.FULL : c.PART;
|
|
238904
|
+
}
|
|
238905
|
+
var chkName = setting.check.chkStyle + "_" + (nodeChecked ? c.TRUE : c.FALSE) + "_" + fullStyle;
|
|
238906
|
+
chkName = node.check_Focus && node.chkDisabled !== true ? chkName + "_" + c.FOCUS : chkName;
|
|
238907
|
+
return consts.className.BUTTON + " " + c.DEFAULT + " " + chkName;
|
|
238908
|
+
},
|
|
238909
|
+
repairAllChk: function(setting, checked) {
|
|
238910
|
+
if (setting.check.enable && setting.check.chkStyle === consts.checkbox.STYLE) {
|
|
238911
|
+
var root = data.getRoot(setting);
|
|
238912
|
+
var children = data.nodeChildren(setting, root);
|
|
238913
|
+
for (var i = 0, l = children.length; i < l; i++) {
|
|
238914
|
+
var node = children[i];
|
|
238915
|
+
if (node.nocheck !== true && node.chkDisabled !== true) {
|
|
238916
|
+
data.nodeChecked(setting, node, checked);
|
|
238917
|
+
}
|
|
238918
|
+
view.setSonNodeCheckBox(setting, node, checked);
|
|
238919
|
+
}
|
|
238920
|
+
}
|
|
238921
|
+
},
|
|
238922
|
+
repairChkClass: function(setting, node) {
|
|
238923
|
+
if (!node) return;
|
|
238924
|
+
data.makeChkFlag(setting, node);
|
|
238925
|
+
if (node.nocheck !== true) {
|
|
238926
|
+
var checkObj = $$(node, consts.id.CHECK, setting);
|
|
238927
|
+
view.setChkClass(setting, checkObj, node);
|
|
238928
|
+
}
|
|
238929
|
+
},
|
|
238930
|
+
repairParentChkClass: function(setting, node) {
|
|
238931
|
+
if (!node || !node.parentTId) return;
|
|
238932
|
+
var pNode = node.getParentNode();
|
|
238933
|
+
view.repairChkClass(setting, pNode);
|
|
238934
|
+
view.repairParentChkClass(setting, pNode);
|
|
238935
|
+
},
|
|
238936
|
+
repairParentChkClassWithSelf: function(setting, node) {
|
|
238937
|
+
if (!node) return;
|
|
238938
|
+
var children = data.nodeChildren(setting, node);
|
|
238939
|
+
if (children && children.length > 0) {
|
|
238940
|
+
view.repairParentChkClass(setting, children[0]);
|
|
238941
|
+
} else {
|
|
238942
|
+
view.repairParentChkClass(setting, node);
|
|
238943
|
+
}
|
|
238944
|
+
},
|
|
238945
|
+
repairSonChkDisabled: function(setting, node, chkDisabled, inherit) {
|
|
238946
|
+
if (!node) return;
|
|
238947
|
+
if (node.chkDisabled != chkDisabled) {
|
|
238948
|
+
node.chkDisabled = chkDisabled;
|
|
238949
|
+
}
|
|
238950
|
+
view.repairChkClass(setting, node);
|
|
238951
|
+
var children = data.nodeChildren(setting, node);
|
|
238952
|
+
if (children && inherit) {
|
|
238953
|
+
for (var i = 0, l = children.length; i < l; i++) {
|
|
238954
|
+
var sNode = children[i];
|
|
238955
|
+
view.repairSonChkDisabled(setting, sNode, chkDisabled, inherit);
|
|
238956
|
+
}
|
|
238957
|
+
}
|
|
238958
|
+
},
|
|
238959
|
+
repairParentChkDisabled: function(setting, node, chkDisabled, inherit) {
|
|
238960
|
+
if (!node) return;
|
|
238961
|
+
if (node.chkDisabled != chkDisabled && inherit) {
|
|
238962
|
+
node.chkDisabled = chkDisabled;
|
|
238963
|
+
}
|
|
238964
|
+
view.repairChkClass(setting, node);
|
|
238965
|
+
view.repairParentChkDisabled(setting, node.getParentNode(), chkDisabled, inherit);
|
|
238966
|
+
},
|
|
238967
|
+
setChkClass: function(setting, obj, node) {
|
|
238968
|
+
if (!obj) return;
|
|
238969
|
+
if (node.nocheck === true) {
|
|
238970
|
+
obj.hide();
|
|
238971
|
+
} else {
|
|
238972
|
+
obj.show();
|
|
238973
|
+
}
|
|
238974
|
+
obj.attr("class", view.makeChkClass(setting, node));
|
|
238975
|
+
},
|
|
238976
|
+
setParentNodeCheckBox: function(setting, node, value, srcNode) {
|
|
238977
|
+
var checkObj = $$(node, consts.id.CHECK, setting);
|
|
238978
|
+
if (!srcNode) srcNode = node;
|
|
238979
|
+
data.makeChkFlag(setting, node);
|
|
238980
|
+
if (node.nocheck !== true && node.chkDisabled !== true) {
|
|
238981
|
+
data.nodeChecked(setting, node, value);
|
|
238982
|
+
view.setChkClass(setting, checkObj, node);
|
|
238983
|
+
if (setting.check.autoCheckTrigger && node != srcNode) {
|
|
238984
|
+
setting.treeObj.trigger(consts.event.CHECK, [ null, setting.treeId, node ]);
|
|
238985
|
+
}
|
|
238986
|
+
}
|
|
238987
|
+
if (node.parentTId) {
|
|
238988
|
+
var pSign = true;
|
|
238989
|
+
if (!value) {
|
|
238990
|
+
var pNodes = data.nodeChildren(setting, node.getParentNode());
|
|
238991
|
+
for (var i = 0, l = pNodes.length; i < l; i++) {
|
|
238992
|
+
var pNode = pNodes[i];
|
|
238993
|
+
var nodeChecked = data.nodeChecked(setting, pNode);
|
|
238994
|
+
if (pNode.nocheck !== true && pNode.chkDisabled !== true && nodeChecked || (pNode.nocheck === true || pNode.chkDisabled === true) && pNode.check_Child_State > 0) {
|
|
238995
|
+
pSign = false;
|
|
238996
|
+
break;
|
|
238997
|
+
}
|
|
238998
|
+
}
|
|
238999
|
+
}
|
|
239000
|
+
if (pSign) {
|
|
239001
|
+
view.setParentNodeCheckBox(setting, node.getParentNode(), value, srcNode);
|
|
239002
|
+
}
|
|
239003
|
+
}
|
|
239004
|
+
},
|
|
239005
|
+
setSonNodeCheckBox: function(setting, node, value, srcNode) {
|
|
239006
|
+
if (!node) return;
|
|
239007
|
+
var checkObj = $$(node, consts.id.CHECK, setting);
|
|
239008
|
+
if (!srcNode) srcNode = node;
|
|
239009
|
+
var hasDisable = false;
|
|
239010
|
+
var children = data.nodeChildren(setting, node);
|
|
239011
|
+
if (children) {
|
|
239012
|
+
for (var i = 0, l = children.length; i < l; i++) {
|
|
239013
|
+
var sNode = children[i];
|
|
239014
|
+
view.setSonNodeCheckBox(setting, sNode, value, srcNode);
|
|
239015
|
+
if (sNode.chkDisabled === true) hasDisable = true;
|
|
239016
|
+
}
|
|
239017
|
+
}
|
|
239018
|
+
if (node != data.getRoot(setting) && node.chkDisabled !== true) {
|
|
239019
|
+
if (hasDisable && node.nocheck !== true) {
|
|
239020
|
+
data.makeChkFlag(setting, node);
|
|
239021
|
+
}
|
|
239022
|
+
if (node.nocheck !== true && node.chkDisabled !== true) {
|
|
239023
|
+
data.nodeChecked(setting, node, value);
|
|
239024
|
+
if (!hasDisable) node.check_Child_State = children && children.length > 0 ? value ? 2 : 0 : -1;
|
|
239025
|
+
} else {
|
|
239026
|
+
node.check_Child_State = -1;
|
|
239027
|
+
}
|
|
239028
|
+
view.setChkClass(setting, checkObj, node);
|
|
239029
|
+
if (setting.check.autoCheckTrigger && node != srcNode && node.nocheck !== true && node.chkDisabled !== true) {
|
|
239030
|
+
setting.treeObj.trigger(consts.event.CHECK, [ null, setting.treeId, node ]);
|
|
239031
|
+
}
|
|
239032
|
+
}
|
|
239033
|
+
}
|
|
239034
|
+
}, _z = {
|
|
239035
|
+
tools: _tools,
|
|
239036
|
+
view: _view,
|
|
239037
|
+
event: _event,
|
|
239038
|
+
data: _data
|
|
239039
|
+
};
|
|
239040
|
+
$.extend(true, $.fn.zTree.consts, _consts);
|
|
239041
|
+
$.extend(true, $.fn.zTree._z, _z);
|
|
239042
|
+
var zt = $.fn.zTree, tools = zt._z.tools, consts = zt.consts, view = zt._z.view, data = zt._z.data, event = zt._z.event, $$ = tools.$;
|
|
239043
|
+
data.nodeChecked = function(setting, node, newChecked) {
|
|
239044
|
+
if (!node) {
|
|
239045
|
+
return false;
|
|
239046
|
+
}
|
|
239047
|
+
var key = setting.data.key.checked;
|
|
239048
|
+
if (typeof newChecked !== "undefined") {
|
|
239049
|
+
if (typeof newChecked === "string") {
|
|
239050
|
+
newChecked = tools.eqs(newChecked, "true");
|
|
239051
|
+
}
|
|
239052
|
+
newChecked = !!newChecked;
|
|
239053
|
+
node[key] = newChecked;
|
|
239054
|
+
} else if (typeof node[key] == "string") {
|
|
239055
|
+
node[key] = tools.eqs(node[key], "true");
|
|
239056
|
+
} else {
|
|
239057
|
+
node[key] = !!node[key];
|
|
239058
|
+
}
|
|
239059
|
+
return node[key];
|
|
239060
|
+
};
|
|
239061
|
+
data.exSetting(_setting);
|
|
239062
|
+
data.addInitBind(_bindEvent);
|
|
239063
|
+
data.addInitUnBind(_unbindEvent);
|
|
239064
|
+
data.addInitCache(_initCache);
|
|
239065
|
+
data.addInitNode(_initNode);
|
|
239066
|
+
data.addInitProxy(_eventProxy, true);
|
|
239067
|
+
data.addInitRoot(_initRoot);
|
|
239068
|
+
data.addBeforeA(_beforeA);
|
|
239069
|
+
data.addZTreeTools(_zTreeTools);
|
|
239070
|
+
var _createNodes = view.createNodes;
|
|
239071
|
+
view.createNodes = function(setting, level, nodes, parentNode, index) {
|
|
239072
|
+
if (_createNodes) _createNodes.apply(view, arguments);
|
|
239073
|
+
if (!nodes) return;
|
|
239074
|
+
view.repairParentChkClassWithSelf(setting, parentNode);
|
|
239075
|
+
};
|
|
239076
|
+
var _removeNode = view.removeNode;
|
|
239077
|
+
view.removeNode = function(setting, node) {
|
|
239078
|
+
var parentNode = node.getParentNode();
|
|
239079
|
+
if (_removeNode) _removeNode.apply(view, arguments);
|
|
239080
|
+
if (!node || !parentNode) return;
|
|
239081
|
+
view.repairChkClass(setting, parentNode);
|
|
239082
|
+
view.repairParentChkClass(setting, parentNode);
|
|
239083
|
+
};
|
|
239084
|
+
var _appendNodes = view.appendNodes;
|
|
239085
|
+
view.appendNodes = function(setting, level, nodes, parentNode, index, initFlag, openFlag) {
|
|
239086
|
+
var html = "";
|
|
239087
|
+
if (_appendNodes) {
|
|
239088
|
+
html = _appendNodes.apply(view, arguments);
|
|
239089
|
+
}
|
|
239090
|
+
if (parentNode) {
|
|
239091
|
+
data.makeChkFlag(setting, parentNode);
|
|
239092
|
+
}
|
|
239093
|
+
return html;
|
|
239094
|
+
};
|
|
239095
|
+
})(jQuery);
|
|
239096
|
+
|
|
239097
|
+
(function($) {
|
|
239098
|
+
var _consts = {
|
|
239099
|
+
event: {
|
|
239100
|
+
DRAG: "ztree_drag",
|
|
239101
|
+
DROP: "ztree_drop",
|
|
239102
|
+
RENAME: "ztree_rename",
|
|
239103
|
+
DRAGMOVE: "ztree_dragmove"
|
|
239104
|
+
},
|
|
239105
|
+
id: {
|
|
239106
|
+
EDIT: "_edit",
|
|
239107
|
+
INPUT: "_input",
|
|
239108
|
+
REMOVE: "_remove"
|
|
239109
|
+
},
|
|
239110
|
+
move: {
|
|
239111
|
+
TYPE_INNER: "inner",
|
|
239112
|
+
TYPE_PREV: "prev",
|
|
239113
|
+
TYPE_NEXT: "next"
|
|
239114
|
+
},
|
|
239115
|
+
node: {
|
|
239116
|
+
CURSELECTED_EDIT: "curSelectedNode_Edit",
|
|
239117
|
+
TMPTARGET_TREE: "tmpTargetzTree",
|
|
239118
|
+
TMPTARGET_NODE: "tmpTargetNode"
|
|
239119
|
+
}
|
|
239120
|
+
}, _setting = {
|
|
239121
|
+
edit: {
|
|
239122
|
+
enable: false,
|
|
239123
|
+
editNameSelectAll: false,
|
|
239124
|
+
showRemoveBtn: true,
|
|
239125
|
+
showRenameBtn: true,
|
|
239126
|
+
removeTitle: "remove",
|
|
239127
|
+
renameTitle: "rename",
|
|
239128
|
+
drag: {
|
|
239129
|
+
autoExpandTrigger: false,
|
|
239130
|
+
isCopy: true,
|
|
239131
|
+
isMove: true,
|
|
239132
|
+
prev: true,
|
|
239133
|
+
next: true,
|
|
239134
|
+
inner: true,
|
|
239135
|
+
minMoveSize: 5,
|
|
239136
|
+
borderMax: 10,
|
|
239137
|
+
borderMin: -5,
|
|
239138
|
+
maxShowNodeNum: 5,
|
|
239139
|
+
autoOpenTime: 500
|
|
239140
|
+
}
|
|
239141
|
+
},
|
|
239142
|
+
view: {
|
|
239143
|
+
addHoverDom: null,
|
|
239144
|
+
removeHoverDom: null
|
|
239145
|
+
},
|
|
239146
|
+
callback: {
|
|
239147
|
+
beforeDrag: null,
|
|
239148
|
+
beforeDragOpen: null,
|
|
239149
|
+
beforeDrop: null,
|
|
239150
|
+
beforeEditName: null,
|
|
239151
|
+
beforeRename: null,
|
|
239152
|
+
onDrag: null,
|
|
239153
|
+
onDragMove: null,
|
|
239154
|
+
onDrop: null,
|
|
239155
|
+
onRename: null
|
|
239156
|
+
}
|
|
239157
|
+
}, _initRoot = function(setting) {
|
|
239158
|
+
var r = data.getRoot(setting), rs = data.getRoots();
|
|
239159
|
+
r.curEditNode = null;
|
|
239160
|
+
r.curEditInput = null;
|
|
239161
|
+
r.curHoverNode = null;
|
|
239162
|
+
r.dragFlag = 0;
|
|
239163
|
+
r.dragNodeShowBefore = [];
|
|
239164
|
+
r.dragMaskList = new Array;
|
|
239165
|
+
rs.showHoverDom = true;
|
|
239166
|
+
}, _initCache = function(treeId) {}, _bindEvent = function(setting) {
|
|
239167
|
+
var o = setting.treeObj;
|
|
239168
|
+
var c = consts.event;
|
|
239169
|
+
o.bind(c.RENAME, (function(event, treeId, treeNode, isCancel) {
|
|
239170
|
+
tools.apply(setting.callback.onRename, [ event, treeId, treeNode, isCancel ]);
|
|
239171
|
+
}));
|
|
239172
|
+
o.bind(c.DRAG, (function(event, srcEvent, treeId, treeNodes) {
|
|
239173
|
+
tools.apply(setting.callback.onDrag, [ srcEvent, treeId, treeNodes ]);
|
|
239174
|
+
}));
|
|
239175
|
+
o.bind(c.DRAGMOVE, (function(event, srcEvent, treeId, treeNodes) {
|
|
239176
|
+
tools.apply(setting.callback.onDragMove, [ srcEvent, treeId, treeNodes ]);
|
|
239177
|
+
}));
|
|
239178
|
+
o.bind(c.DROP, (function(event, srcEvent, treeId, treeNodes, targetNode, moveType, isCopy) {
|
|
239179
|
+
tools.apply(setting.callback.onDrop, [ srcEvent, treeId, treeNodes, targetNode, moveType, isCopy ]);
|
|
239180
|
+
}));
|
|
239181
|
+
}, _unbindEvent = function(setting) {
|
|
239182
|
+
var o = setting.treeObj;
|
|
239183
|
+
var c = consts.event;
|
|
239184
|
+
o.unbind(c.RENAME);
|
|
239185
|
+
o.unbind(c.DRAG);
|
|
239186
|
+
o.unbind(c.DRAGMOVE);
|
|
239187
|
+
o.unbind(c.DROP);
|
|
239188
|
+
}, _eventProxy = function(e) {
|
|
239189
|
+
var target = e.target, setting = data.getSetting(e.data.treeId), relatedTarget = e.relatedTarget, tId = "", node = null, nodeEventType = "", treeEventType = "", nodeEventCallback = null, treeEventCallback = null, tmp = null;
|
|
239190
|
+
if (tools.eqs(e.type, "mouseover")) {
|
|
239191
|
+
tmp = tools.getMDom(setting, target, [ {
|
|
239192
|
+
tagName: "a",
|
|
239193
|
+
attrName: "treeNode" + consts.id.A
|
|
239194
|
+
} ]);
|
|
239195
|
+
if (tmp) {
|
|
239196
|
+
tId = tools.getNodeMainDom(tmp).id;
|
|
239197
|
+
nodeEventType = "hoverOverNode";
|
|
239198
|
+
}
|
|
239199
|
+
} else if (tools.eqs(e.type, "mouseout")) {
|
|
239200
|
+
tmp = tools.getMDom(setting, relatedTarget, [ {
|
|
239201
|
+
tagName: "a",
|
|
239202
|
+
attrName: "treeNode" + consts.id.A
|
|
239203
|
+
} ]);
|
|
239204
|
+
if (!tmp) {
|
|
239205
|
+
tId = "remove";
|
|
239206
|
+
nodeEventType = "hoverOutNode";
|
|
239207
|
+
}
|
|
239208
|
+
} else if (tools.eqs(e.type, "mousedown")) {
|
|
239209
|
+
tmp = tools.getMDom(setting, target, [ {
|
|
239210
|
+
tagName: "a",
|
|
239211
|
+
attrName: "treeNode" + consts.id.A
|
|
239212
|
+
} ]);
|
|
239213
|
+
if (tmp) {
|
|
239214
|
+
tId = tools.getNodeMainDom(tmp).id;
|
|
239215
|
+
nodeEventType = "mousedownNode";
|
|
239216
|
+
}
|
|
239217
|
+
}
|
|
239218
|
+
if (tId.length > 0) {
|
|
239219
|
+
node = data.getNodeCache(setting, tId);
|
|
239220
|
+
switch (nodeEventType) {
|
|
239221
|
+
case "mousedownNode":
|
|
239222
|
+
nodeEventCallback = _handler.onMousedownNode;
|
|
239223
|
+
break;
|
|
239224
|
+
|
|
239225
|
+
case "hoverOverNode":
|
|
239226
|
+
nodeEventCallback = _handler.onHoverOverNode;
|
|
239227
|
+
break;
|
|
239228
|
+
|
|
239229
|
+
case "hoverOutNode":
|
|
239230
|
+
nodeEventCallback = _handler.onHoverOutNode;
|
|
239231
|
+
break;
|
|
239232
|
+
}
|
|
239233
|
+
}
|
|
239234
|
+
var proxyResult = {
|
|
239235
|
+
stop: false,
|
|
239236
|
+
node: node,
|
|
239237
|
+
nodeEventType: nodeEventType,
|
|
239238
|
+
nodeEventCallback: nodeEventCallback,
|
|
239239
|
+
treeEventType: treeEventType,
|
|
239240
|
+
treeEventCallback: treeEventCallback
|
|
239241
|
+
};
|
|
239242
|
+
return proxyResult;
|
|
239243
|
+
}, _initNode = function(setting, level, n, parentNode, isFirstNode, isLastNode, openFlag) {
|
|
239244
|
+
if (!n) return;
|
|
239245
|
+
n.isHover = false;
|
|
239246
|
+
n.editNameFlag = false;
|
|
239247
|
+
}, _zTreeTools = function(setting, zTreeTools) {
|
|
239248
|
+
zTreeTools.cancelEditName = function(newName) {
|
|
239249
|
+
var root = data.getRoot(this.setting);
|
|
239250
|
+
if (!root.curEditNode) return;
|
|
239251
|
+
view.cancelCurEditNode(this.setting, newName ? newName : null, true);
|
|
239252
|
+
};
|
|
239253
|
+
zTreeTools.copyNode = function(targetNode, node, moveType, isSilent) {
|
|
239254
|
+
if (!node) return null;
|
|
239255
|
+
var isParent = data.nodeIsParent(setting, targetNode);
|
|
239256
|
+
if (targetNode && !isParent && this.setting.data.keep.leaf && moveType === consts.move.TYPE_INNER) return null;
|
|
239257
|
+
var _this = this, newNode = tools.clone(node);
|
|
239258
|
+
if (!targetNode) {
|
|
239259
|
+
targetNode = null;
|
|
239260
|
+
moveType = consts.move.TYPE_INNER;
|
|
239261
|
+
}
|
|
239262
|
+
if (moveType == consts.move.TYPE_INNER) {
|
|
239263
|
+
function copyCallback() {
|
|
239264
|
+
view.addNodes(_this.setting, targetNode, -1, [ newNode ], isSilent);
|
|
239265
|
+
}
|
|
239266
|
+
if (tools.canAsync(this.setting, targetNode)) {
|
|
239267
|
+
view.asyncNode(this.setting, targetNode, isSilent, copyCallback);
|
|
239268
|
+
} else {
|
|
239269
|
+
copyCallback();
|
|
239270
|
+
}
|
|
239271
|
+
} else {
|
|
239272
|
+
view.addNodes(this.setting, targetNode.parentNode, -1, [ newNode ], isSilent);
|
|
239273
|
+
view.moveNode(this.setting, targetNode, newNode, moveType, false, isSilent);
|
|
239274
|
+
}
|
|
239275
|
+
return newNode;
|
|
239276
|
+
};
|
|
239277
|
+
zTreeTools.editName = function(node) {
|
|
239278
|
+
if (!node || !node.tId || node !== data.getNodeCache(this.setting, node.tId)) return;
|
|
239279
|
+
if (node.parentTId) view.expandCollapseParentNode(this.setting, node.getParentNode(), true);
|
|
239280
|
+
view.editNode(this.setting, node);
|
|
239281
|
+
};
|
|
239282
|
+
zTreeTools.moveNode = function(targetNode, node, moveType, isSilent) {
|
|
239283
|
+
if (!node) return node;
|
|
239284
|
+
var isParent = data.nodeIsParent(setting, targetNode);
|
|
239285
|
+
if (targetNode && !isParent && this.setting.data.keep.leaf && moveType === consts.move.TYPE_INNER) {
|
|
239286
|
+
return null;
|
|
239287
|
+
} else if (targetNode && (node.parentTId == targetNode.tId && moveType == consts.move.TYPE_INNER || $$(node, this.setting).find("#" + targetNode.tId).length > 0)) {
|
|
239288
|
+
return null;
|
|
239289
|
+
} else if (!targetNode) {
|
|
239290
|
+
targetNode = null;
|
|
239291
|
+
}
|
|
239292
|
+
var _this = this;
|
|
239293
|
+
function moveCallback() {
|
|
239294
|
+
view.moveNode(_this.setting, targetNode, node, moveType, false, isSilent);
|
|
239295
|
+
}
|
|
239296
|
+
if (tools.canAsync(this.setting, targetNode) && moveType === consts.move.TYPE_INNER) {
|
|
239297
|
+
view.asyncNode(this.setting, targetNode, isSilent, moveCallback);
|
|
239298
|
+
} else {
|
|
239299
|
+
moveCallback();
|
|
239300
|
+
}
|
|
239301
|
+
return node;
|
|
239302
|
+
};
|
|
239303
|
+
zTreeTools.setEditable = function(editable) {
|
|
239304
|
+
this.setting.edit.enable = editable;
|
|
239305
|
+
return this.refresh();
|
|
239306
|
+
};
|
|
239307
|
+
}, _data = {
|
|
239308
|
+
setSonNodeLevel: function(setting, parentNode, node) {
|
|
239309
|
+
if (!node) return;
|
|
239310
|
+
var children = data.nodeChildren(setting, node);
|
|
239311
|
+
var oldLevel = node.level;
|
|
239312
|
+
node.level = parentNode ? parentNode.level + 1 : 0;
|
|
239313
|
+
view.repairNodeLevelClass(setting, node, oldLevel);
|
|
239314
|
+
if (!children) return;
|
|
239315
|
+
for (var i = 0, l = children.length; i < l; i++) {
|
|
239316
|
+
if (children[i]) data.setSonNodeLevel(setting, node, children[i]);
|
|
239317
|
+
}
|
|
239318
|
+
}
|
|
239319
|
+
}, _event = {}, _handler = {
|
|
239320
|
+
onHoverOverNode: function(event, node) {
|
|
239321
|
+
var setting = data.getSetting(event.data.treeId), root = data.getRoot(setting);
|
|
239322
|
+
if (root.curHoverNode != node) {
|
|
239323
|
+
_handler.onHoverOutNode(event);
|
|
239324
|
+
}
|
|
239325
|
+
root.curHoverNode = node;
|
|
239326
|
+
view.addHoverDom(setting, node);
|
|
239327
|
+
},
|
|
239328
|
+
onHoverOutNode: function(event, node) {
|
|
239329
|
+
var setting = data.getSetting(event.data.treeId), root = data.getRoot(setting);
|
|
239330
|
+
if (root.curHoverNode && !data.isSelectedNode(setting, root.curHoverNode)) {
|
|
239331
|
+
view.removeTreeDom(setting, root.curHoverNode);
|
|
239332
|
+
root.curHoverNode = null;
|
|
239333
|
+
}
|
|
239334
|
+
},
|
|
239335
|
+
onMousedownNode: function(eventMouseDown, _node) {
|
|
239336
|
+
var i, l, setting = data.getSetting(eventMouseDown.data.treeId), root = data.getRoot(setting), roots = data.getRoots();
|
|
239337
|
+
if (eventMouseDown.button == 2 || !setting.edit.enable || !setting.edit.drag.isCopy && !setting.edit.drag.isMove) return true;
|
|
239338
|
+
var target = eventMouseDown.target, _nodes = data.getRoot(setting).curSelectedList, nodes = [];
|
|
239339
|
+
if (!data.isSelectedNode(setting, _node)) {
|
|
239340
|
+
nodes = [ _node ];
|
|
239341
|
+
} else {
|
|
239342
|
+
for (i = 0, l = _nodes.length; i < l; i++) {
|
|
239343
|
+
if (_nodes[i].editNameFlag && tools.eqs(target.tagName, "input") && target.getAttribute("treeNode" + consts.id.INPUT) !== null) {
|
|
239344
|
+
return true;
|
|
239345
|
+
}
|
|
239346
|
+
nodes.push(_nodes[i]);
|
|
239347
|
+
if (nodes[0].parentTId !== _nodes[i].parentTId) {
|
|
239348
|
+
nodes = [ _node ];
|
|
239349
|
+
break;
|
|
239350
|
+
}
|
|
239351
|
+
}
|
|
239352
|
+
}
|
|
239353
|
+
view.editNodeBlur = true;
|
|
239354
|
+
view.cancelCurEditNode(setting);
|
|
239355
|
+
var doc = $(setting.treeObj.get(0).ownerDocument), body = $(setting.treeObj.get(0).ownerDocument.body), curNode, tmpArrow, tmpTarget, isOtherTree = false, targetSetting = setting, sourceSetting = setting, preNode, nextNode, preTmpTargetNodeId = null, preTmpMoveType = null, tmpTargetNodeId = null, moveType = consts.move.TYPE_INNER, mouseDownX = eventMouseDown.clientX, mouseDownY = eventMouseDown.clientY, startTime = (new Date).getTime();
|
|
239356
|
+
if (tools.uCanDo(setting)) {
|
|
239357
|
+
doc.bind("mousemove", _docMouseMove);
|
|
239358
|
+
}
|
|
239359
|
+
function _docMouseMove(event) {
|
|
239360
|
+
if (root.dragFlag == 0 && Math.abs(mouseDownX - event.clientX) < setting.edit.drag.minMoveSize && Math.abs(mouseDownY - event.clientY) < setting.edit.drag.minMoveSize) {
|
|
239361
|
+
return true;
|
|
239362
|
+
}
|
|
239363
|
+
var i, l, tmpNode, tmpDom, tmpNodes;
|
|
239364
|
+
body.css("cursor", "pointer");
|
|
239365
|
+
if (root.dragFlag == 0) {
|
|
239366
|
+
if (tools.apply(setting.callback.beforeDrag, [ setting.treeId, nodes ], true) == false) {
|
|
239367
|
+
_docMouseUp(event);
|
|
239368
|
+
return true;
|
|
239369
|
+
}
|
|
239370
|
+
for (i = 0, l = nodes.length; i < l; i++) {
|
|
239371
|
+
if (i == 0) {
|
|
239372
|
+
root.dragNodeShowBefore = [];
|
|
239373
|
+
}
|
|
239374
|
+
tmpNode = nodes[i];
|
|
239375
|
+
if (data.nodeIsParent(setting, tmpNode) && tmpNode.open) {
|
|
239376
|
+
view.expandCollapseNode(setting, tmpNode, !tmpNode.open);
|
|
239377
|
+
root.dragNodeShowBefore[tmpNode.tId] = true;
|
|
239378
|
+
} else {
|
|
239379
|
+
root.dragNodeShowBefore[tmpNode.tId] = false;
|
|
239380
|
+
}
|
|
239381
|
+
}
|
|
239382
|
+
root.dragFlag = 1;
|
|
239383
|
+
roots.showHoverDom = false;
|
|
239384
|
+
tools.showIfameMask(setting, true);
|
|
239385
|
+
var isOrder = true, lastIndex = -1;
|
|
239386
|
+
if (nodes.length > 1) {
|
|
239387
|
+
var pNodes = nodes[0].parentTId ? data.nodeChildren(setting, nodes[0].getParentNode()) : data.getNodes(setting);
|
|
239388
|
+
tmpNodes = [];
|
|
239389
|
+
for (i = 0, l = pNodes.length; i < l; i++) {
|
|
239390
|
+
if (root.dragNodeShowBefore[pNodes[i].tId] !== undefined) {
|
|
239391
|
+
if (isOrder && lastIndex > -1 && lastIndex + 1 !== i) {
|
|
239392
|
+
isOrder = false;
|
|
239393
|
+
}
|
|
239394
|
+
tmpNodes.push(pNodes[i]);
|
|
239395
|
+
lastIndex = i;
|
|
239396
|
+
}
|
|
239397
|
+
if (nodes.length === tmpNodes.length) {
|
|
239398
|
+
nodes = tmpNodes;
|
|
239399
|
+
break;
|
|
239400
|
+
}
|
|
239401
|
+
}
|
|
239402
|
+
}
|
|
239403
|
+
if (isOrder) {
|
|
239404
|
+
preNode = nodes[0].getPreNode();
|
|
239405
|
+
nextNode = nodes[nodes.length - 1].getNextNode();
|
|
239406
|
+
}
|
|
239407
|
+
curNode = $$("<ul class='zTreeDragUL'></ul>", setting);
|
|
239408
|
+
for (i = 0, l = nodes.length; i < l; i++) {
|
|
239409
|
+
tmpNode = nodes[i];
|
|
239410
|
+
tmpNode.editNameFlag = false;
|
|
239411
|
+
view.selectNode(setting, tmpNode, i > 0);
|
|
239412
|
+
view.removeTreeDom(setting, tmpNode);
|
|
239413
|
+
if (i > setting.edit.drag.maxShowNodeNum - 1) {
|
|
239414
|
+
continue;
|
|
239415
|
+
}
|
|
239416
|
+
tmpDom = $$("<li id='" + tmpNode.tId + "_tmp'></li>", setting);
|
|
239417
|
+
tmpDom.append($$(tmpNode, consts.id.A, setting).clone());
|
|
239418
|
+
tmpDom.css("padding", "0");
|
|
239419
|
+
tmpDom.children("#" + tmpNode.tId + consts.id.A).removeClass(consts.node.CURSELECTED);
|
|
239420
|
+
curNode.append(tmpDom);
|
|
239421
|
+
if (i == setting.edit.drag.maxShowNodeNum - 1) {
|
|
239422
|
+
tmpDom = $$("<li id='" + tmpNode.tId + "_moretmp'><a> ... </a></li>", setting);
|
|
239423
|
+
curNode.append(tmpDom);
|
|
239424
|
+
}
|
|
239425
|
+
}
|
|
239426
|
+
curNode.attr("id", nodes[0].tId + consts.id.UL + "_tmp");
|
|
239427
|
+
curNode.addClass(setting.treeObj.attr("class"));
|
|
239428
|
+
curNode.appendTo(body);
|
|
239429
|
+
tmpArrow = $$("<span class='tmpzTreeMove_arrow'></span>", setting);
|
|
239430
|
+
tmpArrow.attr("id", "zTreeMove_arrow_tmp");
|
|
239431
|
+
tmpArrow.appendTo(body);
|
|
239432
|
+
setting.treeObj.trigger(consts.event.DRAG, [ event, setting.treeId, nodes ]);
|
|
239433
|
+
}
|
|
239434
|
+
if (root.dragFlag == 1) {
|
|
239435
|
+
if (tmpTarget && tmpArrow.attr("id") == event.target.id && tmpTargetNodeId && event.clientX + doc.scrollLeft() + 2 > $("#" + tmpTargetNodeId + consts.id.A, tmpTarget).offset().left) {
|
|
239436
|
+
var xT = $("#" + tmpTargetNodeId + consts.id.A, tmpTarget);
|
|
239437
|
+
event.target = xT.length > 0 ? xT.get(0) : event.target;
|
|
239438
|
+
} else if (tmpTarget) {
|
|
239439
|
+
tmpTarget.removeClass(consts.node.TMPTARGET_TREE);
|
|
239440
|
+
if (tmpTargetNodeId) $("#" + tmpTargetNodeId + consts.id.A, tmpTarget).removeClass(consts.node.TMPTARGET_NODE + "_" + consts.move.TYPE_PREV).removeClass(consts.node.TMPTARGET_NODE + "_" + _consts.move.TYPE_NEXT).removeClass(consts.node.TMPTARGET_NODE + "_" + _consts.move.TYPE_INNER);
|
|
239441
|
+
}
|
|
239442
|
+
tmpTarget = null;
|
|
239443
|
+
tmpTargetNodeId = null;
|
|
239444
|
+
isOtherTree = false;
|
|
239445
|
+
targetSetting = setting;
|
|
239446
|
+
var settings = data.getSettings();
|
|
239447
|
+
for (var s in settings) {
|
|
239448
|
+
if (settings[s].treeId && settings[s].edit.enable && settings[s].treeId != setting.treeId && (event.target.id == settings[s].treeId || $(event.target).parents("#" + settings[s].treeId).length > 0)) {
|
|
239449
|
+
isOtherTree = true;
|
|
239450
|
+
targetSetting = settings[s];
|
|
239451
|
+
}
|
|
239452
|
+
}
|
|
239453
|
+
var docScrollTop = doc.scrollTop(), docScrollLeft = doc.scrollLeft(), treeOffset = targetSetting.treeObj.offset(), scrollHeight = targetSetting.treeObj.get(0).scrollHeight, scrollWidth = targetSetting.treeObj.get(0).scrollWidth, dTop = event.clientY + docScrollTop - treeOffset.top, dBottom = targetSetting.treeObj.height() + treeOffset.top - event.clientY - docScrollTop, dLeft = event.clientX + docScrollLeft - treeOffset.left, dRight = targetSetting.treeObj.width() + treeOffset.left - event.clientX - docScrollLeft, isTop = dTop < setting.edit.drag.borderMax && dTop > setting.edit.drag.borderMin, isBottom = dBottom < setting.edit.drag.borderMax && dBottom > setting.edit.drag.borderMin, isLeft = dLeft < setting.edit.drag.borderMax && dLeft > setting.edit.drag.borderMin, isRight = dRight < setting.edit.drag.borderMax && dRight > setting.edit.drag.borderMin, isTreeInner = dTop > setting.edit.drag.borderMin && dBottom > setting.edit.drag.borderMin && dLeft > setting.edit.drag.borderMin && dRight > setting.edit.drag.borderMin, isTreeTop = isTop && targetSetting.treeObj.scrollTop() <= 0, isTreeBottom = isBottom && targetSetting.treeObj.scrollTop() + targetSetting.treeObj.height() + 10 >= scrollHeight, isTreeLeft = isLeft && targetSetting.treeObj.scrollLeft() <= 0, isTreeRight = isRight && targetSetting.treeObj.scrollLeft() + targetSetting.treeObj.width() + 10 >= scrollWidth;
|
|
239454
|
+
if (event.target && tools.isChildOrSelf(event.target, targetSetting.treeId)) {
|
|
239455
|
+
var targetObj = event.target;
|
|
239456
|
+
while (targetObj && targetObj.tagName && !tools.eqs(targetObj.tagName, "li") && targetObj.id != targetSetting.treeId) {
|
|
239457
|
+
targetObj = targetObj.parentNode;
|
|
239458
|
+
}
|
|
239459
|
+
var canMove = true;
|
|
239460
|
+
for (i = 0, l = nodes.length; i < l; i++) {
|
|
239461
|
+
tmpNode = nodes[i];
|
|
239462
|
+
if (targetObj.id === tmpNode.tId) {
|
|
239463
|
+
canMove = false;
|
|
239464
|
+
break;
|
|
239465
|
+
} else if ($$(tmpNode, setting).find("#" + targetObj.id).length > 0) {
|
|
239466
|
+
canMove = false;
|
|
239467
|
+
break;
|
|
239468
|
+
}
|
|
239469
|
+
}
|
|
239470
|
+
if (canMove && event.target && tools.isChildOrSelf(event.target, targetObj.id + consts.id.A)) {
|
|
239471
|
+
tmpTarget = $(targetObj);
|
|
239472
|
+
tmpTargetNodeId = targetObj.id;
|
|
239473
|
+
}
|
|
239474
|
+
}
|
|
239475
|
+
tmpNode = nodes[0];
|
|
239476
|
+
if (isTreeInner && tools.isChildOrSelf(event.target, targetSetting.treeId)) {
|
|
239477
|
+
if (!tmpTarget && (event.target.id == targetSetting.treeId || isTreeTop || isTreeBottom || isTreeLeft || isTreeRight) && (isOtherTree || !isOtherTree && tmpNode.parentTId)) {
|
|
239478
|
+
tmpTarget = targetSetting.treeObj;
|
|
239479
|
+
}
|
|
239480
|
+
if (isTop) {
|
|
239481
|
+
targetSetting.treeObj.scrollTop(targetSetting.treeObj.scrollTop() - 10);
|
|
239482
|
+
} else if (isBottom) {
|
|
239483
|
+
targetSetting.treeObj.scrollTop(targetSetting.treeObj.scrollTop() + 10);
|
|
239484
|
+
}
|
|
239485
|
+
if (isLeft) {
|
|
239486
|
+
targetSetting.treeObj.scrollLeft(targetSetting.treeObj.scrollLeft() - 10);
|
|
239487
|
+
} else if (isRight) {
|
|
239488
|
+
targetSetting.treeObj.scrollLeft(targetSetting.treeObj.scrollLeft() + 10);
|
|
239489
|
+
}
|
|
239490
|
+
if (tmpTarget && tmpTarget != targetSetting.treeObj && tmpTarget.offset().left < targetSetting.treeObj.offset().left) {
|
|
239491
|
+
targetSetting.treeObj.scrollLeft(targetSetting.treeObj.scrollLeft() + tmpTarget.offset().left - targetSetting.treeObj.offset().left);
|
|
239492
|
+
}
|
|
239493
|
+
}
|
|
239494
|
+
curNode.css({
|
|
239495
|
+
top: event.clientY + docScrollTop + 3 + "px",
|
|
239496
|
+
left: event.clientX + docScrollLeft + 3 + "px"
|
|
239497
|
+
});
|
|
239498
|
+
var dX = 0;
|
|
239499
|
+
var dY = 0;
|
|
239500
|
+
if (tmpTarget && tmpTarget.attr("id") != targetSetting.treeId) {
|
|
239501
|
+
var tmpTargetNode = tmpTargetNodeId == null ? null : data.getNodeCache(targetSetting, tmpTargetNodeId), isCopy = (event.ctrlKey || event.metaKey) && setting.edit.drag.isMove && setting.edit.drag.isCopy || !setting.edit.drag.isMove && setting.edit.drag.isCopy, isPrev = !!(preNode && tmpTargetNodeId === preNode.tId), isNext = !!(nextNode && tmpTargetNodeId === nextNode.tId), isInner = tmpNode.parentTId && tmpNode.parentTId == tmpTargetNodeId, canPrev = (isCopy || !isNext) && tools.apply(targetSetting.edit.drag.prev, [ targetSetting.treeId, nodes, tmpTargetNode ], !!targetSetting.edit.drag.prev), canNext = (isCopy || !isPrev) && tools.apply(targetSetting.edit.drag.next, [ targetSetting.treeId, nodes, tmpTargetNode ], !!targetSetting.edit.drag.next), canInner = (isCopy || !isInner) && !(targetSetting.data.keep.leaf && !data.nodeIsParent(setting, tmpTargetNode)) && tools.apply(targetSetting.edit.drag.inner, [ targetSetting.treeId, nodes, tmpTargetNode ], !!targetSetting.edit.drag.inner);
|
|
239502
|
+
function clearMove() {
|
|
239503
|
+
tmpTarget = null;
|
|
239504
|
+
tmpTargetNodeId = "";
|
|
239505
|
+
moveType = consts.move.TYPE_INNER;
|
|
239506
|
+
tmpArrow.css({
|
|
239507
|
+
display: "none"
|
|
239508
|
+
});
|
|
239509
|
+
if (window.zTreeMoveTimer) {
|
|
239510
|
+
clearTimeout(window.zTreeMoveTimer);
|
|
239511
|
+
window.zTreeMoveTargetNodeTId = null;
|
|
239512
|
+
}
|
|
239513
|
+
}
|
|
239514
|
+
if (!canPrev && !canNext && !canInner) {
|
|
239515
|
+
clearMove();
|
|
239516
|
+
} else {
|
|
239517
|
+
var tmpTargetA = $("#" + tmpTargetNodeId + consts.id.A, tmpTarget), tmpNextA = tmpTargetNode.isLastNode ? null : $("#" + tmpTargetNode.getNextNode().tId + consts.id.A, tmpTarget.next()), tmpTop = tmpTargetA.offset().top, tmpLeft = tmpTargetA.offset().left, prevPercent = canPrev ? canInner ? .25 : canNext ? .5 : 1 : -1, nextPercent = canNext ? canInner ? .75 : canPrev ? .5 : 0 : -1, dY_percent = (event.clientY + docScrollTop - tmpTop) / tmpTargetA.height();
|
|
239518
|
+
if ((prevPercent == 1 || dY_percent <= prevPercent && dY_percent >= -.2) && canPrev) {
|
|
239519
|
+
dX = 1 - tmpArrow.width();
|
|
239520
|
+
dY = tmpTop - tmpArrow.height() / 2;
|
|
239521
|
+
moveType = consts.move.TYPE_PREV;
|
|
239522
|
+
} else if ((nextPercent == 0 || dY_percent >= nextPercent && dY_percent <= 1.2) && canNext) {
|
|
239523
|
+
dX = 1 - tmpArrow.width();
|
|
239524
|
+
dY = tmpNextA == null || data.nodeIsParent(setting, tmpTargetNode) && tmpTargetNode.open ? tmpTop + tmpTargetA.height() - tmpArrow.height() / 2 : tmpNextA.offset().top - tmpArrow.height() / 2;
|
|
239525
|
+
moveType = consts.move.TYPE_NEXT;
|
|
239526
|
+
} else if (canInner) {
|
|
239527
|
+
dX = 5 - tmpArrow.width();
|
|
239528
|
+
dY = tmpTop;
|
|
239529
|
+
moveType = consts.move.TYPE_INNER;
|
|
239530
|
+
} else {
|
|
239531
|
+
clearMove();
|
|
239532
|
+
}
|
|
239533
|
+
if (tmpTarget) {
|
|
239534
|
+
tmpArrow.css({
|
|
239535
|
+
display: "block",
|
|
239536
|
+
top: dY + "px",
|
|
239537
|
+
left: tmpLeft + dX + "px"
|
|
239538
|
+
});
|
|
239539
|
+
tmpTargetA.addClass(consts.node.TMPTARGET_NODE + "_" + moveType);
|
|
239540
|
+
if (preTmpTargetNodeId != tmpTargetNodeId || preTmpMoveType != moveType) {
|
|
239541
|
+
startTime = (new Date).getTime();
|
|
239542
|
+
}
|
|
239543
|
+
if (tmpTargetNode && data.nodeIsParent(setting, tmpTargetNode) && moveType == consts.move.TYPE_INNER) {
|
|
239544
|
+
var startTimer = true;
|
|
239545
|
+
if (window.zTreeMoveTimer && window.zTreeMoveTargetNodeTId !== tmpTargetNode.tId) {
|
|
239546
|
+
clearTimeout(window.zTreeMoveTimer);
|
|
239547
|
+
window.zTreeMoveTargetNodeTId = null;
|
|
239548
|
+
} else if (window.zTreeMoveTimer && window.zTreeMoveTargetNodeTId === tmpTargetNode.tId) {
|
|
239549
|
+
startTimer = false;
|
|
239550
|
+
}
|
|
239551
|
+
if (startTimer) {
|
|
239552
|
+
window.zTreeMoveTimer = setTimeout((function() {
|
|
239553
|
+
if (moveType != consts.move.TYPE_INNER) return;
|
|
239554
|
+
if (tmpTargetNode && data.nodeIsParent(setting, tmpTargetNode) && !tmpTargetNode.open && (new Date).getTime() - startTime > targetSetting.edit.drag.autoOpenTime && tools.apply(targetSetting.callback.beforeDragOpen, [ targetSetting.treeId, tmpTargetNode ], true)) {
|
|
239555
|
+
view.switchNode(targetSetting, tmpTargetNode);
|
|
239556
|
+
if (targetSetting.edit.drag.autoExpandTrigger) {
|
|
239557
|
+
targetSetting.treeObj.trigger(consts.event.EXPAND, [ targetSetting.treeId, tmpTargetNode ]);
|
|
239558
|
+
}
|
|
239559
|
+
}
|
|
239560
|
+
}), targetSetting.edit.drag.autoOpenTime + 50);
|
|
239561
|
+
window.zTreeMoveTargetNodeTId = tmpTargetNode.tId;
|
|
239562
|
+
}
|
|
239563
|
+
}
|
|
239564
|
+
}
|
|
239565
|
+
}
|
|
239566
|
+
} else {
|
|
239567
|
+
moveType = consts.move.TYPE_INNER;
|
|
239568
|
+
if (tmpTarget && tools.apply(targetSetting.edit.drag.inner, [ targetSetting.treeId, nodes, null ], !!targetSetting.edit.drag.inner)) {
|
|
239569
|
+
tmpTarget.addClass(consts.node.TMPTARGET_TREE);
|
|
239570
|
+
} else {
|
|
239571
|
+
tmpTarget = null;
|
|
239572
|
+
}
|
|
239573
|
+
tmpArrow.css({
|
|
239574
|
+
display: "none"
|
|
239575
|
+
});
|
|
239576
|
+
if (window.zTreeMoveTimer) {
|
|
239577
|
+
clearTimeout(window.zTreeMoveTimer);
|
|
239578
|
+
window.zTreeMoveTargetNodeTId = null;
|
|
239579
|
+
}
|
|
239580
|
+
}
|
|
239581
|
+
preTmpTargetNodeId = tmpTargetNodeId;
|
|
239582
|
+
preTmpMoveType = moveType;
|
|
239583
|
+
setting.treeObj.trigger(consts.event.DRAGMOVE, [ event, setting.treeId, nodes ]);
|
|
239584
|
+
}
|
|
239585
|
+
return false;
|
|
239586
|
+
}
|
|
239587
|
+
doc.bind("mouseup", _docMouseUp);
|
|
239588
|
+
function _docMouseUp(event) {
|
|
239589
|
+
if (window.zTreeMoveTimer) {
|
|
239590
|
+
clearTimeout(window.zTreeMoveTimer);
|
|
239591
|
+
window.zTreeMoveTargetNodeTId = null;
|
|
239592
|
+
}
|
|
239593
|
+
preTmpTargetNodeId = null;
|
|
239594
|
+
preTmpMoveType = null;
|
|
239595
|
+
doc.unbind("mousemove", _docMouseMove);
|
|
239596
|
+
doc.unbind("mouseup", _docMouseUp);
|
|
239597
|
+
doc.unbind("selectstart", _docSelect);
|
|
239598
|
+
body.css("cursor", "");
|
|
239599
|
+
if (tmpTarget) {
|
|
239600
|
+
tmpTarget.removeClass(consts.node.TMPTARGET_TREE);
|
|
239601
|
+
if (tmpTargetNodeId) $("#" + tmpTargetNodeId + consts.id.A, tmpTarget).removeClass(consts.node.TMPTARGET_NODE + "_" + consts.move.TYPE_PREV).removeClass(consts.node.TMPTARGET_NODE + "_" + _consts.move.TYPE_NEXT).removeClass(consts.node.TMPTARGET_NODE + "_" + _consts.move.TYPE_INNER);
|
|
239602
|
+
}
|
|
239603
|
+
tools.showIfameMask(setting, false);
|
|
239604
|
+
roots.showHoverDom = true;
|
|
239605
|
+
if (root.dragFlag == 0) return;
|
|
239606
|
+
root.dragFlag = 0;
|
|
239607
|
+
var i, l, tmpNode;
|
|
239608
|
+
for (i = 0, l = nodes.length; i < l; i++) {
|
|
239609
|
+
tmpNode = nodes[i];
|
|
239610
|
+
if (data.nodeIsParent(setting, tmpNode) && root.dragNodeShowBefore[tmpNode.tId] && !tmpNode.open) {
|
|
239611
|
+
view.expandCollapseNode(setting, tmpNode, !tmpNode.open);
|
|
239612
|
+
delete root.dragNodeShowBefore[tmpNode.tId];
|
|
239613
|
+
}
|
|
239614
|
+
}
|
|
239615
|
+
if (curNode) curNode.remove();
|
|
239616
|
+
if (tmpArrow) tmpArrow.remove();
|
|
239617
|
+
var isCopy = (event.ctrlKey || event.metaKey) && setting.edit.drag.isMove && setting.edit.drag.isCopy || !setting.edit.drag.isMove && setting.edit.drag.isCopy;
|
|
239618
|
+
if (!isCopy && tmpTarget && tmpTargetNodeId && nodes[0].parentTId && tmpTargetNodeId == nodes[0].parentTId && moveType == consts.move.TYPE_INNER) {
|
|
239619
|
+
tmpTarget = null;
|
|
239620
|
+
}
|
|
239621
|
+
if (tmpTarget) {
|
|
239622
|
+
var dragTargetNode = tmpTargetNodeId == null ? null : data.getNodeCache(targetSetting, tmpTargetNodeId);
|
|
239623
|
+
if (tools.apply(setting.callback.beforeDrop, [ targetSetting.treeId, nodes, dragTargetNode, moveType, isCopy ], true) == false) {
|
|
239624
|
+
view.selectNodes(sourceSetting, nodes);
|
|
239625
|
+
return;
|
|
239626
|
+
}
|
|
239627
|
+
var newNodes = isCopy ? tools.clone(nodes) : nodes;
|
|
239628
|
+
function dropCallback() {
|
|
239629
|
+
if (isOtherTree) {
|
|
239630
|
+
if (!isCopy) {
|
|
239631
|
+
for (var i = 0, l = nodes.length; i < l; i++) {
|
|
239632
|
+
view.removeNode(setting, nodes[i]);
|
|
239633
|
+
}
|
|
239634
|
+
}
|
|
239635
|
+
if (moveType == consts.move.TYPE_INNER) {
|
|
239636
|
+
view.addNodes(targetSetting, dragTargetNode, -1, newNodes);
|
|
239637
|
+
} else {
|
|
239638
|
+
view.addNodes(targetSetting, dragTargetNode.getParentNode(), moveType == consts.move.TYPE_PREV ? dragTargetNode.getIndex() : dragTargetNode.getIndex() + 1, newNodes);
|
|
239639
|
+
}
|
|
239640
|
+
} else {
|
|
239641
|
+
if (isCopy && moveType == consts.move.TYPE_INNER) {
|
|
239642
|
+
view.addNodes(targetSetting, dragTargetNode, -1, newNodes);
|
|
239643
|
+
} else if (isCopy) {
|
|
239644
|
+
view.addNodes(targetSetting, dragTargetNode.getParentNode(), moveType == consts.move.TYPE_PREV ? dragTargetNode.getIndex() : dragTargetNode.getIndex() + 1, newNodes);
|
|
239645
|
+
} else {
|
|
239646
|
+
if (moveType != consts.move.TYPE_NEXT) {
|
|
239647
|
+
for (i = 0, l = newNodes.length; i < l; i++) {
|
|
239648
|
+
view.moveNode(targetSetting, dragTargetNode, newNodes[i], moveType, false);
|
|
239649
|
+
}
|
|
239650
|
+
} else {
|
|
239651
|
+
for (i = -1, l = newNodes.length - 1; i < l; l--) {
|
|
239652
|
+
view.moveNode(targetSetting, dragTargetNode, newNodes[l], moveType, false);
|
|
239653
|
+
}
|
|
239654
|
+
}
|
|
239655
|
+
}
|
|
239656
|
+
}
|
|
239657
|
+
view.selectNodes(targetSetting, newNodes);
|
|
239658
|
+
var a = $$(newNodes[0], setting).get(0);
|
|
239659
|
+
view.scrollIntoView(setting, a);
|
|
239660
|
+
setting.treeObj.trigger(consts.event.DROP, [ event, targetSetting.treeId, newNodes, dragTargetNode, moveType, isCopy ]);
|
|
239661
|
+
}
|
|
239662
|
+
if (moveType == consts.move.TYPE_INNER && tools.canAsync(targetSetting, dragTargetNode)) {
|
|
239663
|
+
view.asyncNode(targetSetting, dragTargetNode, false, dropCallback);
|
|
239664
|
+
} else {
|
|
239665
|
+
dropCallback();
|
|
239666
|
+
}
|
|
239667
|
+
} else {
|
|
239668
|
+
view.selectNodes(sourceSetting, nodes);
|
|
239669
|
+
setting.treeObj.trigger(consts.event.DROP, [ event, setting.treeId, nodes, null, null, null ]);
|
|
239670
|
+
}
|
|
239671
|
+
}
|
|
239672
|
+
doc.bind("selectstart", _docSelect);
|
|
239673
|
+
function _docSelect() {
|
|
239674
|
+
return false;
|
|
239675
|
+
}
|
|
239676
|
+
return true;
|
|
239677
|
+
}
|
|
239678
|
+
}, _tools = {
|
|
239679
|
+
getAbs: function(obj) {
|
|
239680
|
+
var oRect = obj.getBoundingClientRect(), scrollTop = document.body.scrollTop + document.documentElement.scrollTop, scrollLeft = document.body.scrollLeft + document.documentElement.scrollLeft;
|
|
239681
|
+
return [ oRect.left + scrollLeft, oRect.top + scrollTop ];
|
|
239682
|
+
},
|
|
239683
|
+
inputFocus: function(inputObj) {
|
|
239684
|
+
if (inputObj.get(0)) {
|
|
239685
|
+
inputObj.focus();
|
|
239686
|
+
tools.setCursorPosition(inputObj.get(0), inputObj.val().length);
|
|
239687
|
+
}
|
|
239688
|
+
},
|
|
239689
|
+
inputSelect: function(inputObj) {
|
|
239690
|
+
if (inputObj.get(0)) {
|
|
239691
|
+
inputObj.focus();
|
|
239692
|
+
inputObj.select();
|
|
239693
|
+
}
|
|
239694
|
+
},
|
|
239695
|
+
setCursorPosition: function(obj, pos) {
|
|
239696
|
+
if (obj.setSelectionRange) {
|
|
239697
|
+
obj.focus();
|
|
239698
|
+
obj.setSelectionRange(pos, pos);
|
|
239699
|
+
} else if (obj.createTextRange) {
|
|
239700
|
+
var range = obj.createTextRange();
|
|
239701
|
+
range.collapse(true);
|
|
239702
|
+
range.moveEnd("character", pos);
|
|
239703
|
+
range.moveStart("character", pos);
|
|
239704
|
+
range.select();
|
|
239705
|
+
}
|
|
239706
|
+
},
|
|
239707
|
+
showIfameMask: function(setting, showSign) {
|
|
239708
|
+
var root = data.getRoot(setting);
|
|
239709
|
+
while (root.dragMaskList.length > 0) {
|
|
239710
|
+
root.dragMaskList[0].remove();
|
|
239711
|
+
root.dragMaskList.shift();
|
|
239712
|
+
}
|
|
239713
|
+
if (showSign) {
|
|
239714
|
+
var iframeList = $$("iframe", setting);
|
|
239715
|
+
for (var i = 0, l = iframeList.length; i < l; i++) {
|
|
239716
|
+
var obj = iframeList.get(i), r = tools.getAbs(obj), dragMask = $$("<div id='zTreeMask_" + i + "' class='zTreeMask' style='top:" + r[1] + "px; left:" + r[0] + "px; width:" + obj.offsetWidth + "px; height:" + obj.offsetHeight + "px;'></div>", setting);
|
|
239717
|
+
dragMask.appendTo($$("body", setting));
|
|
239718
|
+
root.dragMaskList.push(dragMask);
|
|
239719
|
+
}
|
|
239720
|
+
}
|
|
239721
|
+
}
|
|
239722
|
+
}, _view = {
|
|
239723
|
+
addEditBtn: function(setting, node) {
|
|
239724
|
+
if (node.editNameFlag || $$(node, consts.id.EDIT, setting).length > 0) {
|
|
239725
|
+
return;
|
|
239726
|
+
}
|
|
239727
|
+
if (!tools.apply(setting.edit.showRenameBtn, [ setting.treeId, node ], setting.edit.showRenameBtn)) {
|
|
239728
|
+
return;
|
|
239729
|
+
}
|
|
239730
|
+
var aObj = $$(node, consts.id.A, setting), editStr = "<span class='" + consts.className.BUTTON + " edit' id='" + node.tId + consts.id.EDIT + "' title='" + tools.apply(setting.edit.renameTitle, [ setting.treeId, node ], setting.edit.renameTitle) + "' treeNode" + consts.id.EDIT + " style='display:none;'></span>";
|
|
239731
|
+
aObj.append(editStr);
|
|
239732
|
+
$$(node, consts.id.EDIT, setting).bind("click", (function() {
|
|
239733
|
+
if (!tools.uCanDo(setting) || tools.apply(setting.callback.beforeEditName, [ setting.treeId, node ], true) == false) return false;
|
|
239734
|
+
view.editNode(setting, node);
|
|
239735
|
+
return false;
|
|
239736
|
+
})).show();
|
|
239737
|
+
},
|
|
239738
|
+
addRemoveBtn: function(setting, node) {
|
|
239739
|
+
if (node.editNameFlag || $$(node, consts.id.REMOVE, setting).length > 0) {
|
|
239740
|
+
return;
|
|
239741
|
+
}
|
|
239742
|
+
if (!tools.apply(setting.edit.showRemoveBtn, [ setting.treeId, node ], setting.edit.showRemoveBtn)) {
|
|
239743
|
+
return;
|
|
239744
|
+
}
|
|
239745
|
+
var aObj = $$(node, consts.id.A, setting), removeStr = "<span class='" + consts.className.BUTTON + " remove' id='" + node.tId + consts.id.REMOVE + "' title='" + tools.apply(setting.edit.removeTitle, [ setting.treeId, node ], setting.edit.removeTitle) + "' treeNode" + consts.id.REMOVE + " style='display:none;'></span>";
|
|
239746
|
+
aObj.append(removeStr);
|
|
239747
|
+
$$(node, consts.id.REMOVE, setting).bind("click", (function() {
|
|
239748
|
+
if (!tools.uCanDo(setting) || tools.apply(setting.callback.beforeRemove, [ setting.treeId, node ], true) == false) return false;
|
|
239749
|
+
view.removeNode(setting, node);
|
|
239750
|
+
setting.treeObj.trigger(consts.event.REMOVE, [ setting.treeId, node ]);
|
|
239751
|
+
return false;
|
|
239752
|
+
})).bind("mousedown", (function(eventMouseDown) {
|
|
239753
|
+
return true;
|
|
239754
|
+
})).show();
|
|
239755
|
+
},
|
|
239756
|
+
addHoverDom: function(setting, node) {
|
|
239757
|
+
if (data.getRoots().showHoverDom) {
|
|
239758
|
+
node.isHover = true;
|
|
239759
|
+
if (setting.edit.enable) {
|
|
239760
|
+
view.addEditBtn(setting, node);
|
|
239761
|
+
view.addRemoveBtn(setting, node);
|
|
239762
|
+
}
|
|
239763
|
+
tools.apply(setting.view.addHoverDom, [ setting.treeId, node ]);
|
|
239764
|
+
}
|
|
239765
|
+
},
|
|
239766
|
+
cancelCurEditNode: function(setting, forceName, isCancel) {
|
|
239767
|
+
var root = data.getRoot(setting), node = root.curEditNode;
|
|
239768
|
+
if (node) {
|
|
239769
|
+
var inputObj = root.curEditInput, newName = forceName ? forceName : isCancel ? data.nodeName(setting, node) : inputObj.val();
|
|
239770
|
+
if (tools.apply(setting.callback.beforeRename, [ setting.treeId, node, newName, isCancel ], true) === false) {
|
|
239771
|
+
return false;
|
|
239772
|
+
}
|
|
239773
|
+
data.nodeName(setting, node, newName);
|
|
239774
|
+
var aObj = $$(node, consts.id.A, setting);
|
|
239775
|
+
aObj.removeClass(consts.node.CURSELECTED_EDIT);
|
|
239776
|
+
inputObj.unbind();
|
|
239777
|
+
view.setNodeName(setting, node);
|
|
239778
|
+
node.editNameFlag = false;
|
|
239779
|
+
root.curEditNode = null;
|
|
239780
|
+
root.curEditInput = null;
|
|
239781
|
+
view.selectNode(setting, node, false);
|
|
239782
|
+
setting.treeObj.trigger(consts.event.RENAME, [ setting.treeId, node, isCancel ]);
|
|
239783
|
+
}
|
|
239784
|
+
root.noSelection = true;
|
|
239785
|
+
return true;
|
|
239786
|
+
},
|
|
239787
|
+
editNode: function(setting, node) {
|
|
239788
|
+
var root = data.getRoot(setting);
|
|
239789
|
+
view.editNodeBlur = false;
|
|
239790
|
+
if (data.isSelectedNode(setting, node) && root.curEditNode == node && node.editNameFlag) {
|
|
239791
|
+
setTimeout((function() {
|
|
239792
|
+
tools.inputFocus(root.curEditInput);
|
|
239793
|
+
}), 0);
|
|
239794
|
+
return;
|
|
239795
|
+
}
|
|
239796
|
+
node.editNameFlag = true;
|
|
239797
|
+
view.removeTreeDom(setting, node);
|
|
239798
|
+
view.cancelCurEditNode(setting);
|
|
239799
|
+
view.selectNode(setting, node, false);
|
|
239800
|
+
$$(node, consts.id.SPAN, setting).html("<input type=text class='rename' id='" + node.tId + consts.id.INPUT + "' treeNode" + consts.id.INPUT + " >");
|
|
239801
|
+
var inputObj = $$(node, consts.id.INPUT, setting);
|
|
239802
|
+
inputObj.attr("value", data.nodeName(setting, node));
|
|
239803
|
+
if (setting.edit.editNameSelectAll) {
|
|
239804
|
+
tools.inputSelect(inputObj);
|
|
239805
|
+
} else {
|
|
239806
|
+
tools.inputFocus(inputObj);
|
|
239807
|
+
}
|
|
239808
|
+
inputObj.bind("blur", (function(event) {
|
|
239809
|
+
if (!view.editNodeBlur) {
|
|
239810
|
+
view.cancelCurEditNode(setting);
|
|
239811
|
+
}
|
|
239812
|
+
})).bind("keydown", (function(event) {
|
|
239813
|
+
if (event.keyCode == "13") {
|
|
239814
|
+
view.editNodeBlur = true;
|
|
239815
|
+
view.cancelCurEditNode(setting);
|
|
239816
|
+
} else if (event.keyCode == "27") {
|
|
239817
|
+
view.cancelCurEditNode(setting, null, true);
|
|
239818
|
+
}
|
|
239819
|
+
})).bind("click", (function(event) {
|
|
239820
|
+
return false;
|
|
239821
|
+
})).bind("dblclick", (function(event) {
|
|
239822
|
+
return false;
|
|
239823
|
+
}));
|
|
239824
|
+
$$(node, consts.id.A, setting).addClass(consts.node.CURSELECTED_EDIT);
|
|
239825
|
+
root.curEditInput = inputObj;
|
|
239826
|
+
root.noSelection = false;
|
|
239827
|
+
root.curEditNode = node;
|
|
239828
|
+
},
|
|
239829
|
+
moveNode: function(setting, targetNode, node, moveType, animateFlag, isSilent) {
|
|
239830
|
+
var root = data.getRoot(setting);
|
|
239831
|
+
if (targetNode == node) return;
|
|
239832
|
+
if (setting.data.keep.leaf && targetNode && !data.nodeIsParent(setting, targetNode) && moveType == consts.move.TYPE_INNER) return;
|
|
239833
|
+
var oldParentNode = node.parentTId ? node.getParentNode() : root, targetNodeIsRoot = targetNode === null || targetNode == root;
|
|
239834
|
+
if (targetNodeIsRoot && targetNode === null) targetNode = root;
|
|
239835
|
+
if (targetNodeIsRoot) moveType = consts.move.TYPE_INNER;
|
|
239836
|
+
var targetParentNode = targetNode.parentTId ? targetNode.getParentNode() : root;
|
|
239837
|
+
if (moveType != consts.move.TYPE_PREV && moveType != consts.move.TYPE_NEXT) {
|
|
239838
|
+
moveType = consts.move.TYPE_INNER;
|
|
239839
|
+
}
|
|
239840
|
+
if (moveType == consts.move.TYPE_INNER) {
|
|
239841
|
+
if (targetNodeIsRoot) {
|
|
239842
|
+
node.parentTId = null;
|
|
239843
|
+
} else {
|
|
239844
|
+
if (!data.nodeIsParent(setting, targetNode)) {
|
|
239845
|
+
data.nodeIsParent(setting, targetNode, true);
|
|
239846
|
+
targetNode.open = !!targetNode.open;
|
|
239847
|
+
view.setNodeLineIcos(setting, targetNode);
|
|
239848
|
+
}
|
|
239849
|
+
node.parentTId = targetNode.tId;
|
|
239850
|
+
}
|
|
239851
|
+
}
|
|
239852
|
+
var targetObj, target_ulObj;
|
|
239853
|
+
if (targetNodeIsRoot) {
|
|
239854
|
+
targetObj = setting.treeObj;
|
|
239855
|
+
target_ulObj = targetObj;
|
|
239856
|
+
} else {
|
|
239857
|
+
if (!isSilent && moveType == consts.move.TYPE_INNER) {
|
|
239858
|
+
view.expandCollapseNode(setting, targetNode, true, false);
|
|
239859
|
+
} else if (!isSilent) {
|
|
239860
|
+
view.expandCollapseNode(setting, targetNode.getParentNode(), true, false);
|
|
239861
|
+
}
|
|
239862
|
+
targetObj = $$(targetNode, setting);
|
|
239863
|
+
target_ulObj = $$(targetNode, consts.id.UL, setting);
|
|
239864
|
+
if (!!targetObj.get(0) && !target_ulObj.get(0)) {
|
|
239865
|
+
var ulstr = [];
|
|
239866
|
+
view.makeUlHtml(setting, targetNode, ulstr, "");
|
|
239867
|
+
targetObj.append(ulstr.join(""));
|
|
239868
|
+
}
|
|
239869
|
+
target_ulObj = $$(targetNode, consts.id.UL, setting);
|
|
239870
|
+
}
|
|
239871
|
+
var nodeDom = $$(node, setting);
|
|
239872
|
+
if (!nodeDom.get(0)) {
|
|
239873
|
+
nodeDom = view.appendNodes(setting, node.level, [ node ], null, -1, false, true).join("");
|
|
239874
|
+
} else if (!targetObj.get(0)) {
|
|
239875
|
+
nodeDom.remove();
|
|
239876
|
+
}
|
|
239877
|
+
if (target_ulObj.get(0) && moveType == consts.move.TYPE_INNER) {
|
|
239878
|
+
target_ulObj.append(nodeDom);
|
|
239879
|
+
} else if (targetObj.get(0) && moveType == consts.move.TYPE_PREV) {
|
|
239880
|
+
targetObj.before(nodeDom);
|
|
239881
|
+
} else if (targetObj.get(0) && moveType == consts.move.TYPE_NEXT) {
|
|
239882
|
+
targetObj.after(nodeDom);
|
|
239883
|
+
}
|
|
239884
|
+
var i, l, tmpSrcIndex = -1, tmpTargetIndex = 0, oldNeighbor = null, newNeighbor = null, oldLevel = node.level;
|
|
239885
|
+
var oldChildren = data.nodeChildren(setting, oldParentNode);
|
|
239886
|
+
var targetParentChildren = data.nodeChildren(setting, targetParentNode);
|
|
239887
|
+
var targetChildren = data.nodeChildren(setting, targetNode);
|
|
239888
|
+
if (node.isFirstNode) {
|
|
239889
|
+
tmpSrcIndex = 0;
|
|
239890
|
+
if (oldChildren.length > 1) {
|
|
239891
|
+
oldNeighbor = oldChildren[1];
|
|
239892
|
+
oldNeighbor.isFirstNode = true;
|
|
239893
|
+
}
|
|
239894
|
+
} else if (node.isLastNode) {
|
|
239895
|
+
tmpSrcIndex = oldChildren.length - 1;
|
|
239896
|
+
oldNeighbor = oldChildren[tmpSrcIndex - 1];
|
|
239897
|
+
oldNeighbor.isLastNode = true;
|
|
239898
|
+
} else {
|
|
239899
|
+
for (i = 0, l = oldChildren.length; i < l; i++) {
|
|
239900
|
+
if (oldChildren[i].tId == node.tId) {
|
|
239901
|
+
tmpSrcIndex = i;
|
|
239902
|
+
break;
|
|
239903
|
+
}
|
|
239904
|
+
}
|
|
239905
|
+
}
|
|
239906
|
+
if (tmpSrcIndex >= 0) {
|
|
239907
|
+
oldChildren.splice(tmpSrcIndex, 1);
|
|
239908
|
+
}
|
|
239909
|
+
if (moveType != consts.move.TYPE_INNER) {
|
|
239910
|
+
for (i = 0, l = targetParentChildren.length; i < l; i++) {
|
|
239911
|
+
if (targetParentChildren[i].tId == targetNode.tId) tmpTargetIndex = i;
|
|
239912
|
+
}
|
|
239913
|
+
}
|
|
239914
|
+
if (moveType == consts.move.TYPE_INNER) {
|
|
239915
|
+
if (!targetChildren) {
|
|
239916
|
+
targetChildren = data.nodeChildren(setting, targetNode, []);
|
|
239917
|
+
}
|
|
239918
|
+
if (targetChildren.length > 0) {
|
|
239919
|
+
newNeighbor = targetChildren[targetChildren.length - 1];
|
|
239920
|
+
newNeighbor.isLastNode = false;
|
|
239921
|
+
}
|
|
239922
|
+
targetChildren.splice(targetChildren.length, 0, node);
|
|
239923
|
+
node.isLastNode = true;
|
|
239924
|
+
node.isFirstNode = targetChildren.length == 1;
|
|
239925
|
+
} else if (targetNode.isFirstNode && moveType == consts.move.TYPE_PREV) {
|
|
239926
|
+
targetParentChildren.splice(tmpTargetIndex, 0, node);
|
|
239927
|
+
newNeighbor = targetNode;
|
|
239928
|
+
newNeighbor.isFirstNode = false;
|
|
239929
|
+
node.parentTId = targetNode.parentTId;
|
|
239930
|
+
node.isFirstNode = true;
|
|
239931
|
+
node.isLastNode = false;
|
|
239932
|
+
} else if (targetNode.isLastNode && moveType == consts.move.TYPE_NEXT) {
|
|
239933
|
+
targetParentChildren.splice(tmpTargetIndex + 1, 0, node);
|
|
239934
|
+
newNeighbor = targetNode;
|
|
239935
|
+
newNeighbor.isLastNode = false;
|
|
239936
|
+
node.parentTId = targetNode.parentTId;
|
|
239937
|
+
node.isFirstNode = false;
|
|
239938
|
+
node.isLastNode = true;
|
|
239939
|
+
} else {
|
|
239940
|
+
if (moveType == consts.move.TYPE_PREV) {
|
|
239941
|
+
targetParentChildren.splice(tmpTargetIndex, 0, node);
|
|
239942
|
+
} else {
|
|
239943
|
+
targetParentChildren.splice(tmpTargetIndex + 1, 0, node);
|
|
239944
|
+
}
|
|
239945
|
+
node.parentTId = targetNode.parentTId;
|
|
239946
|
+
node.isFirstNode = false;
|
|
239947
|
+
node.isLastNode = false;
|
|
239948
|
+
}
|
|
239949
|
+
data.fixPIdKeyValue(setting, node);
|
|
239950
|
+
data.setSonNodeLevel(setting, node.getParentNode(), node);
|
|
239951
|
+
view.setNodeLineIcos(setting, node);
|
|
239952
|
+
view.repairNodeLevelClass(setting, node, oldLevel);
|
|
239953
|
+
if (!setting.data.keep.parent && oldChildren.length < 1) {
|
|
239954
|
+
data.nodeIsParent(setting, oldParentNode, false);
|
|
239955
|
+
oldParentNode.open = false;
|
|
239956
|
+
var tmp_ulObj = $$(oldParentNode, consts.id.UL, setting), tmp_switchObj = $$(oldParentNode, consts.id.SWITCH, setting), tmp_icoObj = $$(oldParentNode, consts.id.ICON, setting);
|
|
239957
|
+
view.replaceSwitchClass(oldParentNode, tmp_switchObj, consts.folder.DOCU);
|
|
239958
|
+
view.replaceIcoClass(oldParentNode, tmp_icoObj, consts.folder.DOCU);
|
|
239959
|
+
tmp_ulObj.css("display", "none");
|
|
239960
|
+
} else if (oldNeighbor) {
|
|
239961
|
+
view.setNodeLineIcos(setting, oldNeighbor);
|
|
239962
|
+
}
|
|
239963
|
+
if (newNeighbor) {
|
|
239964
|
+
view.setNodeLineIcos(setting, newNeighbor);
|
|
239965
|
+
}
|
|
239966
|
+
if (!!setting.check && setting.check.enable && view.repairChkClass) {
|
|
239967
|
+
view.repairChkClass(setting, oldParentNode);
|
|
239968
|
+
view.repairParentChkClassWithSelf(setting, oldParentNode);
|
|
239969
|
+
if (oldParentNode != node.parent) view.repairParentChkClassWithSelf(setting, node);
|
|
239970
|
+
}
|
|
239971
|
+
if (!isSilent) {
|
|
239972
|
+
view.expandCollapseParentNode(setting, node.getParentNode(), true, animateFlag);
|
|
239973
|
+
}
|
|
239974
|
+
},
|
|
239975
|
+
removeEditBtn: function(setting, node) {
|
|
239976
|
+
$$(node, consts.id.EDIT, setting).unbind().remove();
|
|
239977
|
+
},
|
|
239978
|
+
removeRemoveBtn: function(setting, node) {
|
|
239979
|
+
$$(node, consts.id.REMOVE, setting).unbind().remove();
|
|
239980
|
+
},
|
|
239981
|
+
removeTreeDom: function(setting, node) {
|
|
239982
|
+
node.isHover = false;
|
|
239983
|
+
view.removeEditBtn(setting, node);
|
|
239984
|
+
view.removeRemoveBtn(setting, node);
|
|
239985
|
+
tools.apply(setting.view.removeHoverDom, [ setting.treeId, node ]);
|
|
239986
|
+
},
|
|
239987
|
+
repairNodeLevelClass: function(setting, node, oldLevel) {
|
|
239988
|
+
if (oldLevel === node.level) return;
|
|
239989
|
+
var liObj = $$(node, setting), aObj = $$(node, consts.id.A, setting), ulObj = $$(node, consts.id.UL, setting), oldClass = consts.className.LEVEL + oldLevel, newClass = consts.className.LEVEL + node.level;
|
|
239990
|
+
liObj.removeClass(oldClass);
|
|
239991
|
+
liObj.addClass(newClass);
|
|
239992
|
+
aObj.removeClass(oldClass);
|
|
239993
|
+
aObj.addClass(newClass);
|
|
239994
|
+
ulObj.removeClass(oldClass);
|
|
239995
|
+
ulObj.addClass(newClass);
|
|
239996
|
+
},
|
|
239997
|
+
selectNodes: function(setting, nodes) {
|
|
239998
|
+
for (var i = 0, l = nodes.length; i < l; i++) {
|
|
239999
|
+
view.selectNode(setting, nodes[i], i > 0);
|
|
240000
|
+
}
|
|
240001
|
+
}
|
|
240002
|
+
}, _z = {
|
|
240003
|
+
tools: _tools,
|
|
240004
|
+
view: _view,
|
|
240005
|
+
event: _event,
|
|
240006
|
+
data: _data
|
|
240007
|
+
};
|
|
240008
|
+
$.extend(true, $.fn.zTree.consts, _consts);
|
|
240009
|
+
$.extend(true, $.fn.zTree._z, _z);
|
|
240010
|
+
var zt = $.fn.zTree, tools = zt._z.tools, consts = zt.consts, view = zt._z.view, data = zt._z.data, event = zt._z.event, $$ = tools.$;
|
|
240011
|
+
data.exSetting(_setting);
|
|
240012
|
+
data.addInitBind(_bindEvent);
|
|
240013
|
+
data.addInitUnBind(_unbindEvent);
|
|
240014
|
+
data.addInitCache(_initCache);
|
|
240015
|
+
data.addInitNode(_initNode);
|
|
240016
|
+
data.addInitProxy(_eventProxy);
|
|
240017
|
+
data.addInitRoot(_initRoot);
|
|
240018
|
+
data.addZTreeTools(_zTreeTools);
|
|
240019
|
+
var _cancelPreSelectedNode = view.cancelPreSelectedNode;
|
|
240020
|
+
view.cancelPreSelectedNode = function(setting, node) {
|
|
240021
|
+
var list = data.getRoot(setting).curSelectedList;
|
|
240022
|
+
for (var i = 0, j = list.length; i < j; i++) {
|
|
240023
|
+
if (!node || node === list[i]) {
|
|
240024
|
+
view.removeTreeDom(setting, list[i]);
|
|
240025
|
+
if (node) break;
|
|
240026
|
+
}
|
|
240027
|
+
}
|
|
240028
|
+
if (_cancelPreSelectedNode) _cancelPreSelectedNode.apply(view, arguments);
|
|
240029
|
+
};
|
|
240030
|
+
var _createNodes = view.createNodes;
|
|
240031
|
+
view.createNodes = function(setting, level, nodes, parentNode, index) {
|
|
240032
|
+
if (_createNodes) {
|
|
240033
|
+
_createNodes.apply(view, arguments);
|
|
240034
|
+
}
|
|
240035
|
+
if (!nodes) return;
|
|
240036
|
+
if (view.repairParentChkClassWithSelf) {
|
|
240037
|
+
view.repairParentChkClassWithSelf(setting, parentNode);
|
|
240038
|
+
}
|
|
240039
|
+
};
|
|
240040
|
+
var _makeNodeUrl = view.makeNodeUrl;
|
|
240041
|
+
view.makeNodeUrl = function(setting, node) {
|
|
240042
|
+
return setting.edit.enable ? null : _makeNodeUrl.apply(view, arguments);
|
|
240043
|
+
};
|
|
240044
|
+
var _removeNode = view.removeNode;
|
|
240045
|
+
view.removeNode = function(setting, node) {
|
|
240046
|
+
var root = data.getRoot(setting);
|
|
240047
|
+
if (root.curEditNode === node) root.curEditNode = null;
|
|
240048
|
+
if (_removeNode) {
|
|
240049
|
+
_removeNode.apply(view, arguments);
|
|
240050
|
+
}
|
|
240051
|
+
};
|
|
240052
|
+
var _selectNode = view.selectNode;
|
|
240053
|
+
view.selectNode = function(setting, node, addFlag) {
|
|
240054
|
+
var root = data.getRoot(setting);
|
|
240055
|
+
if (data.isSelectedNode(setting, node) && root.curEditNode == node && node.editNameFlag) {
|
|
240056
|
+
return false;
|
|
240057
|
+
}
|
|
240058
|
+
if (_selectNode) _selectNode.apply(view, arguments);
|
|
240059
|
+
view.addHoverDom(setting, node);
|
|
240060
|
+
return true;
|
|
240061
|
+
};
|
|
240062
|
+
var _uCanDo = tools.uCanDo;
|
|
240063
|
+
tools.uCanDo = function(setting, e) {
|
|
240064
|
+
var root = data.getRoot(setting);
|
|
240065
|
+
if (e && (tools.eqs(e.type, "mouseover") || tools.eqs(e.type, "mouseout") || tools.eqs(e.type, "mousedown") || tools.eqs(e.type, "mouseup"))) {
|
|
240066
|
+
return true;
|
|
240067
|
+
}
|
|
240068
|
+
if (root.curEditNode) {
|
|
240069
|
+
view.editNodeBlur = false;
|
|
240070
|
+
root.curEditInput.focus();
|
|
240071
|
+
}
|
|
240072
|
+
return !root.curEditNode && (_uCanDo ? _uCanDo.apply(view, arguments) : true);
|
|
240073
|
+
};
|
|
240074
|
+
})(jQuery);
|
|
240075
|
+
|
|
240076
|
+
(function($) {
|
|
240077
|
+
$.fn.zTreeKeyboardNavigationDestroy = function() {};
|
|
240078
|
+
$.fn.zTreeKeyboardNavigation = function(zTree, element, selectedNodes = null, treeicon) {
|
|
240079
|
+
if (typeof element === "string" || element instanceof String) {
|
|
240080
|
+
element = $(element);
|
|
240081
|
+
}
|
|
240082
|
+
var rootNodes = zTree.getNodes();
|
|
240083
|
+
if (!rootNodes) return;
|
|
240084
|
+
var focusSelectedNode = function() {
|
|
240085
|
+
if ((selectedNodes = zTree.getSelectedNodes()) && selectedNodes.length) {
|
|
240086
|
+
$("#" + selectedNodes[0].tId).focus();
|
|
240087
|
+
}
|
|
240088
|
+
};
|
|
240089
|
+
$.fn.zTreeKeyboardNavigationDestroy();
|
|
240090
|
+
$.fn.zTreeKeyboardNavigationDestroy = function() {
|
|
240091
|
+
$(element).off("keydown");
|
|
240092
|
+
};
|
|
240093
|
+
$.fn.changeTreeIcons = function() {
|
|
240094
|
+
let eleClose = $(".app-tree li span.button.switch");
|
|
240095
|
+
$(eleClose).map(((idx, ele) => {
|
|
240096
|
+
$(ele).addClass(treeicon);
|
|
240097
|
+
$(ele).on("click", (function(e) {
|
|
240098
|
+
setTimeout((() => {
|
|
240099
|
+
$(ele).addClass(treeicon);
|
|
240100
|
+
}), 0);
|
|
240101
|
+
}));
|
|
240102
|
+
}));
|
|
240103
|
+
};
|
|
240104
|
+
$(element).on("keydown", (function(e) {
|
|
240105
|
+
var selectedNodes = zTree.getSelectedNodes();
|
|
240106
|
+
var selectedNode = selectedNodes.length ? selectedNodes[0] : null;
|
|
240107
|
+
var processSpace = function() {
|
|
240108
|
+
if (selectedNode && selectedNode.isParent) {
|
|
240109
|
+
zTree.expandNode(selectedNode, selectedNode.open ? false : true, true, true);
|
|
240110
|
+
$.fn.changeTreeIcons();
|
|
240111
|
+
}
|
|
240112
|
+
};
|
|
240113
|
+
var processHome = function() {
|
|
240114
|
+
zTree.selectNode(rootNodes[0], false, true);
|
|
240115
|
+
};
|
|
240116
|
+
var processEnd = function() {
|
|
240117
|
+
var nodes = zTree.transformToArray(rootNodes);
|
|
240118
|
+
zTree.selectNode(nodes[nodes.length - 1]);
|
|
240119
|
+
};
|
|
240120
|
+
var processUp = function() {
|
|
240121
|
+
var priorNode;
|
|
240122
|
+
if (selectedNode) {
|
|
240123
|
+
priorNode = selectedNode.getPreNode();
|
|
240124
|
+
if (!priorNode) return;
|
|
240125
|
+
} else {
|
|
240126
|
+
processEnd();
|
|
240127
|
+
}
|
|
240128
|
+
if (!priorNode) return;
|
|
240129
|
+
zTree.selectNode(priorNode);
|
|
240130
|
+
};
|
|
240131
|
+
var processDown = function() {
|
|
240132
|
+
var nextNode;
|
|
240133
|
+
if (selectedNode) {
|
|
240134
|
+
nextNode = selectedNode.getNextNode();
|
|
240135
|
+
if (!nextNode) return;
|
|
240136
|
+
} else {
|
|
240137
|
+
processHome();
|
|
240138
|
+
}
|
|
240139
|
+
if (!nextNode) return;
|
|
240140
|
+
zTree.selectNode(nextNode);
|
|
240141
|
+
};
|
|
240142
|
+
var processOut = function() {
|
|
240143
|
+
if (!selectedNode) return;
|
|
240144
|
+
var parentNode = selectedNode.getParentNode();
|
|
240145
|
+
var priorNode = selectedNode.getPreNode();
|
|
240146
|
+
if (!parentNode && !priorNode) return;
|
|
240147
|
+
if (priorNode) {
|
|
240148
|
+
if (priorNode.isParent) {
|
|
240149
|
+
while (priorNode) {
|
|
240150
|
+
if (!priorNode.isParent || !priorNode.open || !priorNode.children) break;
|
|
240151
|
+
priorNode = priorNode.children[priorNode.children.length - 1];
|
|
240152
|
+
}
|
|
240153
|
+
zTree.selectNode(priorNode);
|
|
240154
|
+
return;
|
|
240155
|
+
} else {
|
|
240156
|
+
zTree.selectNode(priorNode);
|
|
240157
|
+
return;
|
|
240158
|
+
}
|
|
240159
|
+
}
|
|
240160
|
+
if (parentNode) {
|
|
240161
|
+
zTree.selectNode(parentNode, false, true);
|
|
240162
|
+
}
|
|
240163
|
+
};
|
|
240164
|
+
var processIn = function() {
|
|
240165
|
+
if (!selectedNode) return;
|
|
240166
|
+
if (selectedNode.isParent && selectedNode.open && selectedNode.children) {
|
|
240167
|
+
zTree.selectNode(selectedNode.children[0]);
|
|
240168
|
+
return;
|
|
240169
|
+
}
|
|
240170
|
+
var nextNode = selectedNode.getNextNode();
|
|
240171
|
+
if (nextNode) {
|
|
240172
|
+
zTree.selectNode(nextNode);
|
|
240173
|
+
} else {
|
|
240174
|
+
var node = selectedNode;
|
|
240175
|
+
while (node = node.getParentNode()) {
|
|
240176
|
+
var nextNode = node.getNextNode();
|
|
240177
|
+
if (nextNode) {
|
|
240178
|
+
zTree.selectNode(nextNode);
|
|
240179
|
+
break;
|
|
240180
|
+
}
|
|
240181
|
+
}
|
|
240182
|
+
}
|
|
240183
|
+
};
|
|
240184
|
+
var processLetter = function(keyCode) {
|
|
240185
|
+
if (!Array.from({
|
|
240186
|
+
length: 26
|
|
240187
|
+
}, ((v, i) => i + 65)).includes(keyCode & 95)) return false;
|
|
240188
|
+
var nodes = zTree.transformToArray(rootNodes);
|
|
240189
|
+
nodes = nodes.filter((node => "accesskey" in node && node.accesskey.length && (node.accesskey.charCodeAt(0) & 95) == keyCode));
|
|
240190
|
+
if (!nodes.length) return false;
|
|
240191
|
+
var selectedNodes = zTree.getSelectedNodes();
|
|
240192
|
+
if (!selectedNodes.length) return false;
|
|
240193
|
+
if (selectedNodes[0] == nodes[0]) return false;
|
|
240194
|
+
zTree.selectNode(nodes[0]);
|
|
240195
|
+
return true;
|
|
240196
|
+
};
|
|
240197
|
+
switch (e.keyCode) {
|
|
240198
|
+
case 32:
|
|
240199
|
+
processSpace();
|
|
240200
|
+
return;
|
|
240201
|
+
|
|
240202
|
+
case 36:
|
|
240203
|
+
processHome();
|
|
240204
|
+
break;
|
|
240205
|
+
|
|
240206
|
+
case 35:
|
|
240207
|
+
processEnd();
|
|
240208
|
+
break;
|
|
240209
|
+
|
|
240210
|
+
case 33:
|
|
240211
|
+
break;
|
|
240212
|
+
|
|
240213
|
+
case 34:
|
|
240214
|
+
break;
|
|
240215
|
+
|
|
240216
|
+
case 37:
|
|
240217
|
+
processOut();
|
|
240218
|
+
break;
|
|
240219
|
+
|
|
240220
|
+
case 38:
|
|
240221
|
+
processUp();
|
|
240222
|
+
break;
|
|
240223
|
+
|
|
240224
|
+
case 39:
|
|
240225
|
+
processIn();
|
|
240226
|
+
break;
|
|
240227
|
+
|
|
240228
|
+
case 40:
|
|
240229
|
+
processDown();
|
|
240230
|
+
break;
|
|
240231
|
+
|
|
240232
|
+
default:
|
|
240233
|
+
if (!processLetter(e.keyCode & 95)) return;
|
|
240234
|
+
break;
|
|
240235
|
+
}
|
|
240236
|
+
focusSelectedNode();
|
|
240237
|
+
}));
|
|
240238
|
+
if (selectedNodes && selectedNodes.length) {
|
|
240239
|
+
zTree.selectNode(selectedNodes[0]);
|
|
240240
|
+
focusSelectedNode();
|
|
240241
|
+
} else {
|
|
240242
|
+
$(element).trigger({
|
|
240243
|
+
type: "keydown",
|
|
240244
|
+
which: 36,
|
|
240245
|
+
keyCode: 36
|
|
240246
|
+
});
|
|
240247
|
+
}
|
|
240248
|
+
};
|
|
240249
|
+
})(jQuery);
|