@wavemaker/app-runtime-wm-build 11.4.0-next.24577 → 11.4.0-next.24579
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
|
@@ -199270,6 +199270,7 @@ window.requestAnimationFrame = function() {
|
|
|
199270
199270
|
BaseVariableManager.prototype.httpCall = function(requestParams, variable, params) {
|
|
199271
199271
|
var _this = this;
|
|
199272
199272
|
return new Promise((function(resolve, reject) {
|
|
199273
|
+
requestParams["_source"] = "variable";
|
|
199273
199274
|
variable.httpService.sendCall(requestParams, variable).then((function(response) {
|
|
199274
199275
|
if (response && response.type || response && response.status) {
|
|
199275
199276
|
_this.setRequestTrackId(response, variable);
|
|
@@ -234116,4 +234117,3569 @@ window.requestAnimationFrame = function() {
|
|
|
234116
234117
|
Object.defineProperty(exports, "__esModule", {
|
|
234117
234118
|
value: true
|
|
234118
234119
|
});
|
|
234119
|
-
}));
|
|
234120
|
+
}));
|
|
234121
|
+
|
|
234122
|
+
(function($) {
|
|
234123
|
+
var settings = {}, roots = {}, caches = {}, _consts = {
|
|
234124
|
+
className: {
|
|
234125
|
+
BUTTON: "button",
|
|
234126
|
+
LEVEL: "level",
|
|
234127
|
+
ICO_LOADING: "ico_loading",
|
|
234128
|
+
SWITCH: "switch",
|
|
234129
|
+
NAME: "node_name"
|
|
234130
|
+
},
|
|
234131
|
+
event: {
|
|
234132
|
+
NODECREATED: "ztree_nodeCreated",
|
|
234133
|
+
CLICK: "ztree_click",
|
|
234134
|
+
EXPAND: "ztree_expand",
|
|
234135
|
+
COLLAPSE: "ztree_collapse",
|
|
234136
|
+
ASYNC_SUCCESS: "ztree_async_success",
|
|
234137
|
+
ASYNC_ERROR: "ztree_async_error",
|
|
234138
|
+
REMOVE: "ztree_remove",
|
|
234139
|
+
SELECTED: "ztree_selected",
|
|
234140
|
+
UNSELECTED: "ztree_unselected"
|
|
234141
|
+
},
|
|
234142
|
+
id: {
|
|
234143
|
+
A: "_a",
|
|
234144
|
+
ICON: "_ico",
|
|
234145
|
+
SPAN: "_span",
|
|
234146
|
+
SWITCH: "_switch",
|
|
234147
|
+
UL: "_ul"
|
|
234148
|
+
},
|
|
234149
|
+
line: {
|
|
234150
|
+
ROOT: "root",
|
|
234151
|
+
ROOTS: "roots",
|
|
234152
|
+
CENTER: "center",
|
|
234153
|
+
BOTTOM: "bottom",
|
|
234154
|
+
NOLINE: "noline",
|
|
234155
|
+
LINE: "line"
|
|
234156
|
+
},
|
|
234157
|
+
folder: {
|
|
234158
|
+
OPEN: "open",
|
|
234159
|
+
CLOSE: "close",
|
|
234160
|
+
DOCU: "docu"
|
|
234161
|
+
},
|
|
234162
|
+
node: {
|
|
234163
|
+
CURSELECTED: "curSelectedNode"
|
|
234164
|
+
}
|
|
234165
|
+
}, _setting = {
|
|
234166
|
+
treeId: "",
|
|
234167
|
+
treeObj: null,
|
|
234168
|
+
view: {
|
|
234169
|
+
addDiyDom: null,
|
|
234170
|
+
autoCancelSelected: true,
|
|
234171
|
+
dblClickExpand: true,
|
|
234172
|
+
expandSpeed: "fast",
|
|
234173
|
+
fontCss: {},
|
|
234174
|
+
nodeClasses: {},
|
|
234175
|
+
nameIsHTML: false,
|
|
234176
|
+
selectedMulti: true,
|
|
234177
|
+
showIcon: true,
|
|
234178
|
+
showLine: true,
|
|
234179
|
+
showTitle: true,
|
|
234180
|
+
txtSelectedEnable: false
|
|
234181
|
+
},
|
|
234182
|
+
data: {
|
|
234183
|
+
key: {
|
|
234184
|
+
isParent: "isParent",
|
|
234185
|
+
children: "children",
|
|
234186
|
+
name: "name",
|
|
234187
|
+
title: "",
|
|
234188
|
+
url: "url",
|
|
234189
|
+
icon: "icon"
|
|
234190
|
+
},
|
|
234191
|
+
render: {
|
|
234192
|
+
name: null,
|
|
234193
|
+
title: null
|
|
234194
|
+
},
|
|
234195
|
+
simpleData: {
|
|
234196
|
+
enable: false,
|
|
234197
|
+
idKey: "id",
|
|
234198
|
+
pIdKey: "pId",
|
|
234199
|
+
rootPId: null
|
|
234200
|
+
},
|
|
234201
|
+
keep: {
|
|
234202
|
+
parent: false,
|
|
234203
|
+
leaf: false
|
|
234204
|
+
}
|
|
234205
|
+
},
|
|
234206
|
+
async: {
|
|
234207
|
+
enable: false,
|
|
234208
|
+
contentType: "application/x-www-form-urlencoded",
|
|
234209
|
+
type: "post",
|
|
234210
|
+
dataType: "text",
|
|
234211
|
+
headers: {},
|
|
234212
|
+
xhrFields: {},
|
|
234213
|
+
url: "",
|
|
234214
|
+
autoParam: [],
|
|
234215
|
+
otherParam: [],
|
|
234216
|
+
dataFilter: null
|
|
234217
|
+
},
|
|
234218
|
+
callback: {
|
|
234219
|
+
beforeAsync: null,
|
|
234220
|
+
beforeClick: null,
|
|
234221
|
+
beforeDblClick: null,
|
|
234222
|
+
beforeRightClick: null,
|
|
234223
|
+
beforeMouseDown: null,
|
|
234224
|
+
beforeMouseUp: null,
|
|
234225
|
+
beforeExpand: null,
|
|
234226
|
+
beforeCollapse: null,
|
|
234227
|
+
beforeRemove: null,
|
|
234228
|
+
onAsyncError: null,
|
|
234229
|
+
onAsyncSuccess: null,
|
|
234230
|
+
onNodeCreated: null,
|
|
234231
|
+
onClick: null,
|
|
234232
|
+
onDblClick: null,
|
|
234233
|
+
onRightClick: null,
|
|
234234
|
+
onMouseDown: null,
|
|
234235
|
+
onMouseUp: null,
|
|
234236
|
+
onExpand: null,
|
|
234237
|
+
onCollapse: null,
|
|
234238
|
+
onRemove: null
|
|
234239
|
+
}
|
|
234240
|
+
}, _initRoot = function(setting) {
|
|
234241
|
+
var r = data.getRoot(setting);
|
|
234242
|
+
if (!r) {
|
|
234243
|
+
r = {};
|
|
234244
|
+
data.setRoot(setting, r);
|
|
234245
|
+
}
|
|
234246
|
+
data.nodeChildren(setting, r, []);
|
|
234247
|
+
r.expandTriggerFlag = false;
|
|
234248
|
+
r.curSelectedList = [];
|
|
234249
|
+
r.noSelection = true;
|
|
234250
|
+
r.createdNodes = [];
|
|
234251
|
+
r.zId = 0;
|
|
234252
|
+
r._ver = (new Date).getTime();
|
|
234253
|
+
}, _initCache = function(setting) {
|
|
234254
|
+
var c = data.getCache(setting);
|
|
234255
|
+
if (!c) {
|
|
234256
|
+
c = {};
|
|
234257
|
+
data.setCache(setting, c);
|
|
234258
|
+
}
|
|
234259
|
+
c.nodes = [];
|
|
234260
|
+
c.doms = [];
|
|
234261
|
+
}, _bindEvent = function(setting) {
|
|
234262
|
+
var o = setting.treeObj, c = consts.event;
|
|
234263
|
+
o.bind(c.NODECREATED, (function(event, treeId, node) {
|
|
234264
|
+
tools.apply(setting.callback.onNodeCreated, [ event, treeId, node ]);
|
|
234265
|
+
}));
|
|
234266
|
+
o.bind(c.CLICK, (function(event, srcEvent, treeId, node, clickFlag) {
|
|
234267
|
+
tools.apply(setting.callback.onClick, [ srcEvent, treeId, node, clickFlag ]);
|
|
234268
|
+
}));
|
|
234269
|
+
o.bind(c.EXPAND, (function(event, treeId, node) {
|
|
234270
|
+
tools.apply(setting.callback.onExpand, [ event, treeId, node ]);
|
|
234271
|
+
}));
|
|
234272
|
+
o.bind(c.COLLAPSE, (function(event, treeId, node) {
|
|
234273
|
+
tools.apply(setting.callback.onCollapse, [ event, treeId, node ]);
|
|
234274
|
+
}));
|
|
234275
|
+
o.bind(c.ASYNC_SUCCESS, (function(event, treeId, node, msg) {
|
|
234276
|
+
tools.apply(setting.callback.onAsyncSuccess, [ event, treeId, node, msg ]);
|
|
234277
|
+
}));
|
|
234278
|
+
o.bind(c.ASYNC_ERROR, (function(event, treeId, node, XMLHttpRequest, textStatus, errorThrown) {
|
|
234279
|
+
tools.apply(setting.callback.onAsyncError, [ event, treeId, node, XMLHttpRequest, textStatus, errorThrown ]);
|
|
234280
|
+
}));
|
|
234281
|
+
o.bind(c.REMOVE, (function(event, treeId, treeNode) {
|
|
234282
|
+
tools.apply(setting.callback.onRemove, [ event, treeId, treeNode ]);
|
|
234283
|
+
}));
|
|
234284
|
+
o.bind(c.SELECTED, (function(event, treeId, node) {
|
|
234285
|
+
tools.apply(setting.callback.onSelected, [ treeId, node ]);
|
|
234286
|
+
}));
|
|
234287
|
+
o.bind(c.UNSELECTED, (function(event, treeId, node) {
|
|
234288
|
+
tools.apply(setting.callback.onUnSelected, [ treeId, node ]);
|
|
234289
|
+
}));
|
|
234290
|
+
}, _unbindEvent = function(setting) {
|
|
234291
|
+
var o = setting.treeObj, c = consts.event;
|
|
234292
|
+
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);
|
|
234293
|
+
}, _eventProxy = function(event) {
|
|
234294
|
+
var target = event.target, setting = data.getSetting(event.data.treeId), tId = "", node = null, nodeEventType = "", treeEventType = "", nodeEventCallback = null, treeEventCallback = null, tmp = null;
|
|
234295
|
+
if (tools.eqs(event.type, "mousedown")) {
|
|
234296
|
+
treeEventType = "mousedown";
|
|
234297
|
+
} else if (tools.eqs(event.type, "mouseup")) {
|
|
234298
|
+
treeEventType = "mouseup";
|
|
234299
|
+
} else if (tools.eqs(event.type, "contextmenu")) {
|
|
234300
|
+
treeEventType = "contextmenu";
|
|
234301
|
+
} else if (tools.eqs(event.type, "click")) {
|
|
234302
|
+
if (tools.eqs(target.tagName, "span") && target.getAttribute("treeNode" + consts.id.SWITCH) !== null) {
|
|
234303
|
+
tId = tools.getNodeMainDom(target).id;
|
|
234304
|
+
nodeEventType = "switchNode";
|
|
234305
|
+
} else {
|
|
234306
|
+
tmp = tools.getMDom(setting, target, [ {
|
|
234307
|
+
tagName: "a",
|
|
234308
|
+
attrName: "treeNode" + consts.id.A
|
|
234309
|
+
} ]);
|
|
234310
|
+
if (tmp) {
|
|
234311
|
+
tId = tools.getNodeMainDom(tmp).id;
|
|
234312
|
+
nodeEventType = "clickNode";
|
|
234313
|
+
}
|
|
234314
|
+
}
|
|
234315
|
+
} else if (tools.eqs(event.type, "dblclick")) {
|
|
234316
|
+
treeEventType = "dblclick";
|
|
234317
|
+
tmp = tools.getMDom(setting, target, [ {
|
|
234318
|
+
tagName: "a",
|
|
234319
|
+
attrName: "treeNode" + consts.id.A
|
|
234320
|
+
} ]);
|
|
234321
|
+
if (tmp) {
|
|
234322
|
+
tId = tools.getNodeMainDom(tmp).id;
|
|
234323
|
+
nodeEventType = "switchNode";
|
|
234324
|
+
}
|
|
234325
|
+
}
|
|
234326
|
+
if (treeEventType.length > 0 && tId.length == 0) {
|
|
234327
|
+
tmp = tools.getMDom(setting, target, [ {
|
|
234328
|
+
tagName: "a",
|
|
234329
|
+
attrName: "treeNode" + consts.id.A
|
|
234330
|
+
} ]);
|
|
234331
|
+
if (tmp) {
|
|
234332
|
+
tId = tools.getNodeMainDom(tmp).id;
|
|
234333
|
+
}
|
|
234334
|
+
}
|
|
234335
|
+
if (tId.length > 0) {
|
|
234336
|
+
node = data.getNodeCache(setting, tId);
|
|
234337
|
+
switch (nodeEventType) {
|
|
234338
|
+
case "switchNode":
|
|
234339
|
+
var isParent = data.nodeIsParent(setting, node);
|
|
234340
|
+
if (!isParent) {
|
|
234341
|
+
nodeEventType = "";
|
|
234342
|
+
} else if (tools.eqs(event.type, "click") || tools.eqs(event.type, "dblclick") && tools.apply(setting.view.dblClickExpand, [ setting.treeId, node ], setting.view.dblClickExpand)) {
|
|
234343
|
+
nodeEventCallback = handler.onSwitchNode;
|
|
234344
|
+
} else {
|
|
234345
|
+
nodeEventType = "";
|
|
234346
|
+
}
|
|
234347
|
+
break;
|
|
234348
|
+
|
|
234349
|
+
case "clickNode":
|
|
234350
|
+
nodeEventCallback = handler.onClickNode;
|
|
234351
|
+
break;
|
|
234352
|
+
}
|
|
234353
|
+
}
|
|
234354
|
+
switch (treeEventType) {
|
|
234355
|
+
case "mousedown":
|
|
234356
|
+
treeEventCallback = handler.onZTreeMousedown;
|
|
234357
|
+
break;
|
|
234358
|
+
|
|
234359
|
+
case "mouseup":
|
|
234360
|
+
treeEventCallback = handler.onZTreeMouseup;
|
|
234361
|
+
break;
|
|
234362
|
+
|
|
234363
|
+
case "dblclick":
|
|
234364
|
+
treeEventCallback = handler.onZTreeDblclick;
|
|
234365
|
+
break;
|
|
234366
|
+
|
|
234367
|
+
case "contextmenu":
|
|
234368
|
+
treeEventCallback = handler.onZTreeContextmenu;
|
|
234369
|
+
break;
|
|
234370
|
+
}
|
|
234371
|
+
var proxyResult = {
|
|
234372
|
+
stop: false,
|
|
234373
|
+
node: node,
|
|
234374
|
+
nodeEventType: nodeEventType,
|
|
234375
|
+
nodeEventCallback: nodeEventCallback,
|
|
234376
|
+
treeEventType: treeEventType,
|
|
234377
|
+
treeEventCallback: treeEventCallback
|
|
234378
|
+
};
|
|
234379
|
+
return proxyResult;
|
|
234380
|
+
}, _initNode = function(setting, level, n, parentNode, isFirstNode, isLastNode, openFlag) {
|
|
234381
|
+
if (!n) return;
|
|
234382
|
+
var r = data.getRoot(setting), children = data.nodeChildren(setting, n);
|
|
234383
|
+
n.level = level;
|
|
234384
|
+
n.tId = setting.treeId + "_" + ++r.zId;
|
|
234385
|
+
n.parentTId = parentNode ? parentNode.tId : null;
|
|
234386
|
+
n.open = typeof n.open == "string" ? tools.eqs(n.open, "true") : !!n.open;
|
|
234387
|
+
var isParent = data.nodeIsParent(setting, n);
|
|
234388
|
+
if (tools.isArray(children)) {
|
|
234389
|
+
data.nodeIsParent(setting, n, true);
|
|
234390
|
+
n.zAsync = true;
|
|
234391
|
+
} else {
|
|
234392
|
+
isParent = data.nodeIsParent(setting, n, isParent);
|
|
234393
|
+
n.open = isParent && !setting.async.enable ? n.open : false;
|
|
234394
|
+
n.zAsync = !isParent;
|
|
234395
|
+
}
|
|
234396
|
+
n.isFirstNode = isFirstNode;
|
|
234397
|
+
n.isLastNode = isLastNode;
|
|
234398
|
+
n.getParentNode = function() {
|
|
234399
|
+
return data.getNodeCache(setting, n.parentTId);
|
|
234400
|
+
};
|
|
234401
|
+
n.getPreNode = function() {
|
|
234402
|
+
return data.getPreNode(setting, n);
|
|
234403
|
+
};
|
|
234404
|
+
n.getNextNode = function() {
|
|
234405
|
+
return data.getNextNode(setting, n);
|
|
234406
|
+
};
|
|
234407
|
+
n.getIndex = function() {
|
|
234408
|
+
return data.getNodeIndex(setting, n);
|
|
234409
|
+
};
|
|
234410
|
+
n.getPath = function() {
|
|
234411
|
+
return data.getNodePath(setting, n);
|
|
234412
|
+
};
|
|
234413
|
+
n.isAjaxing = false;
|
|
234414
|
+
data.fixPIdKeyValue(setting, n);
|
|
234415
|
+
}, _init = {
|
|
234416
|
+
bind: [ _bindEvent ],
|
|
234417
|
+
unbind: [ _unbindEvent ],
|
|
234418
|
+
caches: [ _initCache ],
|
|
234419
|
+
nodes: [ _initNode ],
|
|
234420
|
+
proxys: [ _eventProxy ],
|
|
234421
|
+
roots: [ _initRoot ],
|
|
234422
|
+
beforeA: [],
|
|
234423
|
+
afterA: [],
|
|
234424
|
+
innerBeforeA: [],
|
|
234425
|
+
innerAfterA: [],
|
|
234426
|
+
zTreeTools: []
|
|
234427
|
+
}, data = {
|
|
234428
|
+
addNodeCache: function(setting, node) {
|
|
234429
|
+
data.getCache(setting).nodes[data.getNodeCacheId(node.tId)] = node;
|
|
234430
|
+
},
|
|
234431
|
+
getNodeCacheId: function(tId) {
|
|
234432
|
+
return tId.substring(tId.lastIndexOf("_") + 1);
|
|
234433
|
+
},
|
|
234434
|
+
addAfterA: function(afterA) {
|
|
234435
|
+
_init.afterA.push(afterA);
|
|
234436
|
+
},
|
|
234437
|
+
addBeforeA: function(beforeA) {
|
|
234438
|
+
_init.beforeA.push(beforeA);
|
|
234439
|
+
},
|
|
234440
|
+
addInnerAfterA: function(innerAfterA) {
|
|
234441
|
+
_init.innerAfterA.push(innerAfterA);
|
|
234442
|
+
},
|
|
234443
|
+
addInnerBeforeA: function(innerBeforeA) {
|
|
234444
|
+
_init.innerBeforeA.push(innerBeforeA);
|
|
234445
|
+
},
|
|
234446
|
+
addInitBind: function(bindEvent) {
|
|
234447
|
+
_init.bind.push(bindEvent);
|
|
234448
|
+
},
|
|
234449
|
+
addInitUnBind: function(unbindEvent) {
|
|
234450
|
+
_init.unbind.push(unbindEvent);
|
|
234451
|
+
},
|
|
234452
|
+
addInitCache: function(initCache) {
|
|
234453
|
+
_init.caches.push(initCache);
|
|
234454
|
+
},
|
|
234455
|
+
addInitNode: function(initNode) {
|
|
234456
|
+
_init.nodes.push(initNode);
|
|
234457
|
+
},
|
|
234458
|
+
addInitProxy: function(initProxy, isFirst) {
|
|
234459
|
+
if (!!isFirst) {
|
|
234460
|
+
_init.proxys.splice(0, 0, initProxy);
|
|
234461
|
+
} else {
|
|
234462
|
+
_init.proxys.push(initProxy);
|
|
234463
|
+
}
|
|
234464
|
+
},
|
|
234465
|
+
addInitRoot: function(initRoot) {
|
|
234466
|
+
_init.roots.push(initRoot);
|
|
234467
|
+
},
|
|
234468
|
+
addNodesData: function(setting, parentNode, index, nodes) {
|
|
234469
|
+
var children = data.nodeChildren(setting, parentNode), params;
|
|
234470
|
+
if (!children) {
|
|
234471
|
+
children = data.nodeChildren(setting, parentNode, []);
|
|
234472
|
+
index = -1;
|
|
234473
|
+
} else if (index >= children.length) {
|
|
234474
|
+
index = -1;
|
|
234475
|
+
}
|
|
234476
|
+
if (children.length > 0 && index === 0) {
|
|
234477
|
+
children[0].isFirstNode = false;
|
|
234478
|
+
view.setNodeLineIcos(setting, children[0]);
|
|
234479
|
+
} else if (children.length > 0 && index < 0) {
|
|
234480
|
+
children[children.length - 1].isLastNode = false;
|
|
234481
|
+
view.setNodeLineIcos(setting, children[children.length - 1]);
|
|
234482
|
+
}
|
|
234483
|
+
data.nodeIsParent(setting, parentNode, true);
|
|
234484
|
+
if (index < 0) {
|
|
234485
|
+
data.nodeChildren(setting, parentNode, children.concat(nodes));
|
|
234486
|
+
} else {
|
|
234487
|
+
params = [ index, 0 ].concat(nodes);
|
|
234488
|
+
children.splice.apply(children, params);
|
|
234489
|
+
}
|
|
234490
|
+
},
|
|
234491
|
+
addSelectedNode: function(setting, node) {
|
|
234492
|
+
var root = data.getRoot(setting);
|
|
234493
|
+
if (!data.isSelectedNode(setting, node)) {
|
|
234494
|
+
root.curSelectedList.push(node);
|
|
234495
|
+
}
|
|
234496
|
+
},
|
|
234497
|
+
addCreatedNode: function(setting, node) {
|
|
234498
|
+
if (!!setting.callback.onNodeCreated || !!setting.view.addDiyDom) {
|
|
234499
|
+
var root = data.getRoot(setting);
|
|
234500
|
+
root.createdNodes.push(node);
|
|
234501
|
+
}
|
|
234502
|
+
},
|
|
234503
|
+
addZTreeTools: function(zTreeTools) {
|
|
234504
|
+
_init.zTreeTools.push(zTreeTools);
|
|
234505
|
+
},
|
|
234506
|
+
exSetting: function(s) {
|
|
234507
|
+
$.extend(true, _setting, s);
|
|
234508
|
+
},
|
|
234509
|
+
fixPIdKeyValue: function(setting, node) {
|
|
234510
|
+
if (setting.data.simpleData.enable) {
|
|
234511
|
+
node[setting.data.simpleData.pIdKey] = node.parentTId ? node.getParentNode()[setting.data.simpleData.idKey] : setting.data.simpleData.rootPId;
|
|
234512
|
+
}
|
|
234513
|
+
},
|
|
234514
|
+
getAfterA: function(setting, node, array) {
|
|
234515
|
+
for (var i = 0, j = _init.afterA.length; i < j; i++) {
|
|
234516
|
+
_init.afterA[i].apply(this, arguments);
|
|
234517
|
+
}
|
|
234518
|
+
},
|
|
234519
|
+
getBeforeA: function(setting, node, array) {
|
|
234520
|
+
for (var i = 0, j = _init.beforeA.length; i < j; i++) {
|
|
234521
|
+
_init.beforeA[i].apply(this, arguments);
|
|
234522
|
+
}
|
|
234523
|
+
},
|
|
234524
|
+
getInnerAfterA: function(setting, node, array) {
|
|
234525
|
+
for (var i = 0, j = _init.innerAfterA.length; i < j; i++) {
|
|
234526
|
+
_init.innerAfterA[i].apply(this, arguments);
|
|
234527
|
+
}
|
|
234528
|
+
},
|
|
234529
|
+
getInnerBeforeA: function(setting, node, array) {
|
|
234530
|
+
for (var i = 0, j = _init.innerBeforeA.length; i < j; i++) {
|
|
234531
|
+
_init.innerBeforeA[i].apply(this, arguments);
|
|
234532
|
+
}
|
|
234533
|
+
},
|
|
234534
|
+
getCache: function(setting) {
|
|
234535
|
+
return caches[setting.treeId];
|
|
234536
|
+
},
|
|
234537
|
+
getNodeIndex: function(setting, node) {
|
|
234538
|
+
if (!node) return null;
|
|
234539
|
+
var p = node.parentTId ? node.getParentNode() : data.getRoot(setting), children = data.nodeChildren(setting, p);
|
|
234540
|
+
for (var i = 0, l = children.length - 1; i <= l; i++) {
|
|
234541
|
+
if (children[i] === node) {
|
|
234542
|
+
return i;
|
|
234543
|
+
}
|
|
234544
|
+
}
|
|
234545
|
+
return -1;
|
|
234546
|
+
},
|
|
234547
|
+
getNextNode: function(setting, node) {
|
|
234548
|
+
if (!node) return null;
|
|
234549
|
+
var p = node.parentTId ? node.getParentNode() : data.getRoot(setting), children = data.nodeChildren(setting, p);
|
|
234550
|
+
for (var i = 0, l = children.length - 1; i <= l; i++) {
|
|
234551
|
+
if (children[i] === node) {
|
|
234552
|
+
return i == l ? null : children[i + 1];
|
|
234553
|
+
}
|
|
234554
|
+
}
|
|
234555
|
+
return null;
|
|
234556
|
+
},
|
|
234557
|
+
getNodeByParam: function(setting, nodes, key, value) {
|
|
234558
|
+
if (!nodes || !key) return null;
|
|
234559
|
+
for (var i = 0, l = nodes.length; i < l; i++) {
|
|
234560
|
+
var node = nodes[i];
|
|
234561
|
+
if (node[key] == value) {
|
|
234562
|
+
return nodes[i];
|
|
234563
|
+
}
|
|
234564
|
+
var children = data.nodeChildren(setting, node);
|
|
234565
|
+
var tmp = data.getNodeByParam(setting, children, key, value);
|
|
234566
|
+
if (tmp) return tmp;
|
|
234567
|
+
}
|
|
234568
|
+
return null;
|
|
234569
|
+
},
|
|
234570
|
+
getNodeCache: function(setting, tId) {
|
|
234571
|
+
if (!tId) return null;
|
|
234572
|
+
var n = caches[setting.treeId].nodes[data.getNodeCacheId(tId)];
|
|
234573
|
+
return n ? n : null;
|
|
234574
|
+
},
|
|
234575
|
+
getNodePath: function(setting, node) {
|
|
234576
|
+
if (!node) return null;
|
|
234577
|
+
var path;
|
|
234578
|
+
if (node.parentTId) {
|
|
234579
|
+
path = node.getParentNode().getPath();
|
|
234580
|
+
} else {
|
|
234581
|
+
path = [];
|
|
234582
|
+
}
|
|
234583
|
+
if (path) {
|
|
234584
|
+
path.push(node);
|
|
234585
|
+
}
|
|
234586
|
+
return path;
|
|
234587
|
+
},
|
|
234588
|
+
getNodes: function(setting) {
|
|
234589
|
+
return data.nodeChildren(setting, data.getRoot(setting));
|
|
234590
|
+
},
|
|
234591
|
+
getNodesByParam: function(setting, nodes, key, value) {
|
|
234592
|
+
if (!nodes || !key) return [];
|
|
234593
|
+
var result = [];
|
|
234594
|
+
for (var i = 0, l = nodes.length; i < l; i++) {
|
|
234595
|
+
var node = nodes[i];
|
|
234596
|
+
if (node[key] == value) {
|
|
234597
|
+
result.push(node);
|
|
234598
|
+
}
|
|
234599
|
+
var children = data.nodeChildren(setting, node);
|
|
234600
|
+
result = result.concat(data.getNodesByParam(setting, children, key, value));
|
|
234601
|
+
}
|
|
234602
|
+
return result;
|
|
234603
|
+
},
|
|
234604
|
+
getNodesByParamFuzzy: function(setting, nodes, key, value) {
|
|
234605
|
+
if (!nodes || !key) return [];
|
|
234606
|
+
var result = [];
|
|
234607
|
+
value = value.toLowerCase();
|
|
234608
|
+
for (var i = 0, l = nodes.length; i < l; i++) {
|
|
234609
|
+
var node = nodes[i];
|
|
234610
|
+
if (typeof node[key] == "string" && nodes[i][key].toLowerCase().indexOf(value) > -1) {
|
|
234611
|
+
result.push(node);
|
|
234612
|
+
}
|
|
234613
|
+
var children = data.nodeChildren(setting, node);
|
|
234614
|
+
result = result.concat(data.getNodesByParamFuzzy(setting, children, key, value));
|
|
234615
|
+
}
|
|
234616
|
+
return result;
|
|
234617
|
+
},
|
|
234618
|
+
getNodesByFilter: function(setting, nodes, filter, isSingle, invokeParam) {
|
|
234619
|
+
if (!nodes) return isSingle ? null : [];
|
|
234620
|
+
var result = isSingle ? null : [];
|
|
234621
|
+
for (var i = 0, l = nodes.length; i < l; i++) {
|
|
234622
|
+
var node = nodes[i];
|
|
234623
|
+
if (tools.apply(filter, [ node, invokeParam ], false)) {
|
|
234624
|
+
if (isSingle) {
|
|
234625
|
+
return node;
|
|
234626
|
+
}
|
|
234627
|
+
result.push(node);
|
|
234628
|
+
}
|
|
234629
|
+
var children = data.nodeChildren(setting, node);
|
|
234630
|
+
var tmpResult = data.getNodesByFilter(setting, children, filter, isSingle, invokeParam);
|
|
234631
|
+
if (isSingle && !!tmpResult) {
|
|
234632
|
+
return tmpResult;
|
|
234633
|
+
}
|
|
234634
|
+
result = isSingle ? tmpResult : result.concat(tmpResult);
|
|
234635
|
+
}
|
|
234636
|
+
return result;
|
|
234637
|
+
},
|
|
234638
|
+
getPreNode: function(setting, node) {
|
|
234639
|
+
if (!node) return null;
|
|
234640
|
+
var p = node.parentTId ? node.getParentNode() : data.getRoot(setting), children = data.nodeChildren(setting, p);
|
|
234641
|
+
for (var i = 0, l = children.length; i < l; i++) {
|
|
234642
|
+
if (children[i] === node) {
|
|
234643
|
+
return i == 0 ? null : children[i - 1];
|
|
234644
|
+
}
|
|
234645
|
+
}
|
|
234646
|
+
return null;
|
|
234647
|
+
},
|
|
234648
|
+
getRoot: function(setting) {
|
|
234649
|
+
return setting ? roots[setting.treeId] : null;
|
|
234650
|
+
},
|
|
234651
|
+
getRoots: function() {
|
|
234652
|
+
return roots;
|
|
234653
|
+
},
|
|
234654
|
+
getSetting: function(treeId) {
|
|
234655
|
+
return settings[treeId];
|
|
234656
|
+
},
|
|
234657
|
+
getSettings: function() {
|
|
234658
|
+
return settings;
|
|
234659
|
+
},
|
|
234660
|
+
getZTreeTools: function(treeId) {
|
|
234661
|
+
var r = this.getRoot(this.getSetting(treeId));
|
|
234662
|
+
return r ? r.treeTools : null;
|
|
234663
|
+
},
|
|
234664
|
+
initCache: function(setting) {
|
|
234665
|
+
for (var i = 0, j = _init.caches.length; i < j; i++) {
|
|
234666
|
+
_init.caches[i].apply(this, arguments);
|
|
234667
|
+
}
|
|
234668
|
+
},
|
|
234669
|
+
initNode: function(setting, level, node, parentNode, preNode, nextNode) {
|
|
234670
|
+
for (var i = 0, j = _init.nodes.length; i < j; i++) {
|
|
234671
|
+
_init.nodes[i].apply(this, arguments);
|
|
234672
|
+
}
|
|
234673
|
+
},
|
|
234674
|
+
initRoot: function(setting) {
|
|
234675
|
+
for (var i = 0, j = _init.roots.length; i < j; i++) {
|
|
234676
|
+
_init.roots[i].apply(this, arguments);
|
|
234677
|
+
}
|
|
234678
|
+
},
|
|
234679
|
+
isSelectedNode: function(setting, node) {
|
|
234680
|
+
var root = data.getRoot(setting);
|
|
234681
|
+
for (var i = 0, j = root.curSelectedList.length; i < j; i++) {
|
|
234682
|
+
if (node === root.curSelectedList[i]) return true;
|
|
234683
|
+
}
|
|
234684
|
+
return false;
|
|
234685
|
+
},
|
|
234686
|
+
nodeChildren: function(setting, node, newChildren) {
|
|
234687
|
+
if (!node) {
|
|
234688
|
+
return null;
|
|
234689
|
+
}
|
|
234690
|
+
var key = setting.data.key.children;
|
|
234691
|
+
if (typeof newChildren !== "undefined") {
|
|
234692
|
+
node[key] = newChildren;
|
|
234693
|
+
}
|
|
234694
|
+
return node[key];
|
|
234695
|
+
},
|
|
234696
|
+
nodeIsParent: function(setting, node, newIsParent) {
|
|
234697
|
+
if (!node) {
|
|
234698
|
+
return false;
|
|
234699
|
+
}
|
|
234700
|
+
var key = setting.data.key.isParent;
|
|
234701
|
+
if (typeof newIsParent !== "undefined") {
|
|
234702
|
+
if (typeof newIsParent === "string") {
|
|
234703
|
+
newIsParent = tools.eqs(newIsParent, "true");
|
|
234704
|
+
}
|
|
234705
|
+
newIsParent = !!newIsParent;
|
|
234706
|
+
node[key] = newIsParent;
|
|
234707
|
+
} else if (typeof node[key] == "string") {
|
|
234708
|
+
node[key] = tools.eqs(node[key], "true");
|
|
234709
|
+
} else {
|
|
234710
|
+
node[key] = !!node[key];
|
|
234711
|
+
}
|
|
234712
|
+
return node[key];
|
|
234713
|
+
},
|
|
234714
|
+
nodeName: function(setting, node, newName) {
|
|
234715
|
+
var key = setting.data.key.name;
|
|
234716
|
+
if (typeof newName !== "undefined") {
|
|
234717
|
+
node[key] = newName;
|
|
234718
|
+
}
|
|
234719
|
+
var rawName = "" + node[key];
|
|
234720
|
+
if (typeof setting.data.render.name === "function") {
|
|
234721
|
+
return setting.data.render.name.call(this, rawName, node);
|
|
234722
|
+
}
|
|
234723
|
+
return rawName;
|
|
234724
|
+
},
|
|
234725
|
+
nodeTitle: function(setting, node) {
|
|
234726
|
+
var t = setting.data.key.title === "" ? setting.data.key.name : setting.data.key.title;
|
|
234727
|
+
var rawTitle = "" + node[t];
|
|
234728
|
+
if (typeof setting.data.render.title === "function") {
|
|
234729
|
+
return setting.data.render.title.call(this, rawTitle, node);
|
|
234730
|
+
}
|
|
234731
|
+
return rawTitle;
|
|
234732
|
+
},
|
|
234733
|
+
removeNodeCache: function(setting, node) {
|
|
234734
|
+
var children = data.nodeChildren(setting, node);
|
|
234735
|
+
if (children) {
|
|
234736
|
+
for (var i = 0, l = children.length; i < l; i++) {
|
|
234737
|
+
data.removeNodeCache(setting, children[i]);
|
|
234738
|
+
}
|
|
234739
|
+
}
|
|
234740
|
+
data.getCache(setting).nodes[data.getNodeCacheId(node.tId)] = null;
|
|
234741
|
+
},
|
|
234742
|
+
removeSelectedNode: function(setting, node) {
|
|
234743
|
+
var root = data.getRoot(setting);
|
|
234744
|
+
for (var i = 0, j = root.curSelectedList.length; i < j; i++) {
|
|
234745
|
+
if (node === root.curSelectedList[i] || !data.getNodeCache(setting, root.curSelectedList[i].tId)) {
|
|
234746
|
+
root.curSelectedList.splice(i, 1);
|
|
234747
|
+
setting.treeObj.trigger(consts.event.UNSELECTED, [ setting.treeId, node ]);
|
|
234748
|
+
i--;
|
|
234749
|
+
j--;
|
|
234750
|
+
}
|
|
234751
|
+
}
|
|
234752
|
+
},
|
|
234753
|
+
setCache: function(setting, cache) {
|
|
234754
|
+
caches[setting.treeId] = cache;
|
|
234755
|
+
},
|
|
234756
|
+
setRoot: function(setting, root) {
|
|
234757
|
+
roots[setting.treeId] = root;
|
|
234758
|
+
},
|
|
234759
|
+
setZTreeTools: function(setting, zTreeTools) {
|
|
234760
|
+
for (var i = 0, j = _init.zTreeTools.length; i < j; i++) {
|
|
234761
|
+
_init.zTreeTools[i].apply(this, arguments);
|
|
234762
|
+
}
|
|
234763
|
+
},
|
|
234764
|
+
transformToArrayFormat: function(setting, nodes) {
|
|
234765
|
+
if (!nodes) return [];
|
|
234766
|
+
var r = [];
|
|
234767
|
+
if (tools.isArray(nodes)) {
|
|
234768
|
+
for (var i = 0, l = nodes.length; i < l; i++) {
|
|
234769
|
+
var node = nodes[i];
|
|
234770
|
+
_do(node);
|
|
234771
|
+
}
|
|
234772
|
+
} else {
|
|
234773
|
+
_do(nodes);
|
|
234774
|
+
}
|
|
234775
|
+
return r;
|
|
234776
|
+
function _do(_node) {
|
|
234777
|
+
r.push(_node);
|
|
234778
|
+
var children = data.nodeChildren(setting, _node);
|
|
234779
|
+
if (children) {
|
|
234780
|
+
r = r.concat(data.transformToArrayFormat(setting, children));
|
|
234781
|
+
}
|
|
234782
|
+
}
|
|
234783
|
+
},
|
|
234784
|
+
transformTozTreeFormat: function(setting, sNodes) {
|
|
234785
|
+
var i, l, key = setting.data.simpleData.idKey, parentKey = setting.data.simpleData.pIdKey;
|
|
234786
|
+
if (!key || key == "" || !sNodes) return [];
|
|
234787
|
+
if (tools.isArray(sNodes)) {
|
|
234788
|
+
var r = [];
|
|
234789
|
+
var tmpMap = {};
|
|
234790
|
+
for (i = 0, l = sNodes.length; i < l; i++) {
|
|
234791
|
+
tmpMap[sNodes[i][key]] = sNodes[i];
|
|
234792
|
+
}
|
|
234793
|
+
for (i = 0, l = sNodes.length; i < l; i++) {
|
|
234794
|
+
var p = tmpMap[sNodes[i][parentKey]];
|
|
234795
|
+
if (p && sNodes[i][key] != sNodes[i][parentKey]) {
|
|
234796
|
+
var children = data.nodeChildren(setting, p);
|
|
234797
|
+
if (!children) {
|
|
234798
|
+
children = data.nodeChildren(setting, p, []);
|
|
234799
|
+
}
|
|
234800
|
+
children.push(sNodes[i]);
|
|
234801
|
+
} else {
|
|
234802
|
+
r.push(sNodes[i]);
|
|
234803
|
+
}
|
|
234804
|
+
}
|
|
234805
|
+
return r;
|
|
234806
|
+
} else {
|
|
234807
|
+
return [ sNodes ];
|
|
234808
|
+
}
|
|
234809
|
+
}
|
|
234810
|
+
}, event = {
|
|
234811
|
+
bindEvent: function(setting) {
|
|
234812
|
+
for (var i = 0, j = _init.bind.length; i < j; i++) {
|
|
234813
|
+
_init.bind[i].apply(this, arguments);
|
|
234814
|
+
}
|
|
234815
|
+
},
|
|
234816
|
+
unbindEvent: function(setting) {
|
|
234817
|
+
for (var i = 0, j = _init.unbind.length; i < j; i++) {
|
|
234818
|
+
_init.unbind[i].apply(this, arguments);
|
|
234819
|
+
}
|
|
234820
|
+
},
|
|
234821
|
+
bindTree: function(setting) {
|
|
234822
|
+
var eventParam = {
|
|
234823
|
+
treeId: setting.treeId
|
|
234824
|
+
}, o = setting.treeObj;
|
|
234825
|
+
if (!setting.view.txtSelectedEnable) {
|
|
234826
|
+
o.bind("selectstart", handler.onSelectStart).css({
|
|
234827
|
+
"-moz-user-select": "-moz-none"
|
|
234828
|
+
});
|
|
234829
|
+
}
|
|
234830
|
+
o.bind("click", eventParam, event.proxy);
|
|
234831
|
+
o.bind("dblclick", eventParam, event.proxy);
|
|
234832
|
+
o.bind("mouseover", eventParam, event.proxy);
|
|
234833
|
+
o.bind("mouseout", eventParam, event.proxy);
|
|
234834
|
+
o.bind("mousedown", eventParam, event.proxy);
|
|
234835
|
+
o.bind("mouseup", eventParam, event.proxy);
|
|
234836
|
+
o.bind("contextmenu", eventParam, event.proxy);
|
|
234837
|
+
},
|
|
234838
|
+
unbindTree: function(setting) {
|
|
234839
|
+
var o = setting.treeObj;
|
|
234840
|
+
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);
|
|
234841
|
+
},
|
|
234842
|
+
doProxy: function(e) {
|
|
234843
|
+
var results = [];
|
|
234844
|
+
for (var i = 0, j = _init.proxys.length; i < j; i++) {
|
|
234845
|
+
var proxyResult = _init.proxys[i].apply(this, arguments);
|
|
234846
|
+
results.push(proxyResult);
|
|
234847
|
+
if (proxyResult.stop) {
|
|
234848
|
+
break;
|
|
234849
|
+
}
|
|
234850
|
+
}
|
|
234851
|
+
return results;
|
|
234852
|
+
},
|
|
234853
|
+
proxy: function(e) {
|
|
234854
|
+
var setting = data.getSetting(e.data.treeId);
|
|
234855
|
+
if (!tools.uCanDo(setting, e)) return true;
|
|
234856
|
+
var results = event.doProxy(e), r = true, x = false;
|
|
234857
|
+
for (var i = 0, l = results.length; i < l; i++) {
|
|
234858
|
+
var proxyResult = results[i];
|
|
234859
|
+
if (proxyResult.nodeEventCallback) {
|
|
234860
|
+
x = true;
|
|
234861
|
+
r = proxyResult.nodeEventCallback.apply(proxyResult, [ e, proxyResult.node ]) && r;
|
|
234862
|
+
}
|
|
234863
|
+
if (proxyResult.treeEventCallback) {
|
|
234864
|
+
x = true;
|
|
234865
|
+
r = proxyResult.treeEventCallback.apply(proxyResult, [ e, proxyResult.node ]) && r;
|
|
234866
|
+
}
|
|
234867
|
+
}
|
|
234868
|
+
return r;
|
|
234869
|
+
}
|
|
234870
|
+
}, handler = {
|
|
234871
|
+
onSwitchNode: function(event, node) {
|
|
234872
|
+
var setting = data.getSetting(event.data.treeId);
|
|
234873
|
+
if (node.open) {
|
|
234874
|
+
if (tools.apply(setting.callback.beforeCollapse, [ setting.treeId, node ], true) == false) return true;
|
|
234875
|
+
data.getRoot(setting).expandTriggerFlag = true;
|
|
234876
|
+
view.switchNode(setting, node);
|
|
234877
|
+
} else {
|
|
234878
|
+
if (tools.apply(setting.callback.beforeExpand, [ setting.treeId, node ], true) == false) return true;
|
|
234879
|
+
data.getRoot(setting).expandTriggerFlag = true;
|
|
234880
|
+
view.switchNode(setting, node);
|
|
234881
|
+
}
|
|
234882
|
+
return true;
|
|
234883
|
+
},
|
|
234884
|
+
onClickNode: function(event, node) {
|
|
234885
|
+
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;
|
|
234886
|
+
if (tools.apply(setting.callback.beforeClick, [ setting.treeId, node, clickFlag ], true) == false) return true;
|
|
234887
|
+
if (clickFlag === 0) {
|
|
234888
|
+
view.cancelPreSelectedNode(setting, node);
|
|
234889
|
+
} else {
|
|
234890
|
+
view.selectNode(setting, node, clickFlag === 2);
|
|
234891
|
+
}
|
|
234892
|
+
setting.treeObj.trigger(consts.event.CLICK, [ event, setting.treeId, node, clickFlag ]);
|
|
234893
|
+
return true;
|
|
234894
|
+
},
|
|
234895
|
+
onZTreeMousedown: function(event, node) {
|
|
234896
|
+
var setting = data.getSetting(event.data.treeId);
|
|
234897
|
+
if (tools.apply(setting.callback.beforeMouseDown, [ setting.treeId, node ], true)) {
|
|
234898
|
+
tools.apply(setting.callback.onMouseDown, [ event, setting.treeId, node ]);
|
|
234899
|
+
}
|
|
234900
|
+
return true;
|
|
234901
|
+
},
|
|
234902
|
+
onZTreeMouseup: function(event, node) {
|
|
234903
|
+
var setting = data.getSetting(event.data.treeId);
|
|
234904
|
+
if (tools.apply(setting.callback.beforeMouseUp, [ setting.treeId, node ], true)) {
|
|
234905
|
+
tools.apply(setting.callback.onMouseUp, [ event, setting.treeId, node ]);
|
|
234906
|
+
}
|
|
234907
|
+
return true;
|
|
234908
|
+
},
|
|
234909
|
+
onZTreeDblclick: function(event, node) {
|
|
234910
|
+
var setting = data.getSetting(event.data.treeId);
|
|
234911
|
+
if (tools.apply(setting.callback.beforeDblClick, [ setting.treeId, node ], true)) {
|
|
234912
|
+
tools.apply(setting.callback.onDblClick, [ event, setting.treeId, node ]);
|
|
234913
|
+
}
|
|
234914
|
+
return true;
|
|
234915
|
+
},
|
|
234916
|
+
onZTreeContextmenu: function(event, node) {
|
|
234917
|
+
var setting = data.getSetting(event.data.treeId);
|
|
234918
|
+
if (tools.apply(setting.callback.beforeRightClick, [ setting.treeId, node ], true)) {
|
|
234919
|
+
tools.apply(setting.callback.onRightClick, [ event, setting.treeId, node ]);
|
|
234920
|
+
}
|
|
234921
|
+
return typeof setting.callback.onRightClick != "function";
|
|
234922
|
+
},
|
|
234923
|
+
onSelectStart: function(e) {
|
|
234924
|
+
var n = e.originalEvent.srcElement.nodeName.toLowerCase();
|
|
234925
|
+
return n === "input" || n === "textarea";
|
|
234926
|
+
}
|
|
234927
|
+
}, tools = {
|
|
234928
|
+
apply: function(fun, param, defaultValue) {
|
|
234929
|
+
if (typeof fun == "function") {
|
|
234930
|
+
return fun.apply(zt, param ? param : []);
|
|
234931
|
+
}
|
|
234932
|
+
return defaultValue;
|
|
234933
|
+
},
|
|
234934
|
+
canAsync: function(setting, node) {
|
|
234935
|
+
var children = data.nodeChildren(setting, node);
|
|
234936
|
+
var isParent = data.nodeIsParent(setting, node);
|
|
234937
|
+
return setting.async.enable && node && isParent && !(node.zAsync || children && children.length > 0);
|
|
234938
|
+
},
|
|
234939
|
+
clone: function(obj) {
|
|
234940
|
+
if (obj === null) return null;
|
|
234941
|
+
var o = tools.isArray(obj) ? [] : {};
|
|
234942
|
+
for (var i in obj) {
|
|
234943
|
+
o[i] = obj[i] instanceof Date ? new Date(obj[i].getTime()) : typeof obj[i] === "object" ? tools.clone(obj[i]) : obj[i];
|
|
234944
|
+
}
|
|
234945
|
+
return o;
|
|
234946
|
+
},
|
|
234947
|
+
eqs: function(str1, str2) {
|
|
234948
|
+
return str1.toLowerCase() === str2.toLowerCase();
|
|
234949
|
+
},
|
|
234950
|
+
isArray: function(arr) {
|
|
234951
|
+
return Object.prototype.toString.apply(arr) === "[object Array]";
|
|
234952
|
+
},
|
|
234953
|
+
isElement: function(o) {
|
|
234954
|
+
return typeof HTMLElement === "object" ? o instanceof HTMLElement : o && typeof o === "object" && o !== null && o.nodeType === 1 && typeof o.nodeName === "string";
|
|
234955
|
+
},
|
|
234956
|
+
$: function(node, exp, setting) {
|
|
234957
|
+
if (!!exp && typeof exp != "string") {
|
|
234958
|
+
setting = exp;
|
|
234959
|
+
exp = "";
|
|
234960
|
+
}
|
|
234961
|
+
if (typeof node == "string") {
|
|
234962
|
+
return $(node, setting ? setting.treeObj.get(0).ownerDocument : null);
|
|
234963
|
+
} else {
|
|
234964
|
+
return $("#" + node.tId + exp, setting ? setting.treeObj : null);
|
|
234965
|
+
}
|
|
234966
|
+
},
|
|
234967
|
+
getMDom: function(setting, curDom, targetExpr) {
|
|
234968
|
+
if (!curDom) return null;
|
|
234969
|
+
while (curDom && curDom.id !== setting.treeId) {
|
|
234970
|
+
for (var i = 0, l = targetExpr.length; curDom.tagName && i < l; i++) {
|
|
234971
|
+
if (tools.eqs(curDom.tagName, targetExpr[i].tagName) && curDom.getAttribute(targetExpr[i].attrName) !== null) {
|
|
234972
|
+
return curDom;
|
|
234973
|
+
}
|
|
234974
|
+
}
|
|
234975
|
+
curDom = curDom.parentNode;
|
|
234976
|
+
}
|
|
234977
|
+
return null;
|
|
234978
|
+
},
|
|
234979
|
+
getNodeMainDom: function(target) {
|
|
234980
|
+
return $(target).parent("li").get(0) || $(target).parentsUntil("li").parent().get(0);
|
|
234981
|
+
},
|
|
234982
|
+
isChildOrSelf: function(dom, parentId) {
|
|
234983
|
+
return $(dom).closest("#" + parentId).length > 0;
|
|
234984
|
+
},
|
|
234985
|
+
uCanDo: function(setting, e) {
|
|
234986
|
+
return true;
|
|
234987
|
+
}
|
|
234988
|
+
}, view = {
|
|
234989
|
+
addNodes: function(setting, parentNode, index, newNodes, isSilent) {
|
|
234990
|
+
var isParent = data.nodeIsParent(setting, parentNode);
|
|
234991
|
+
if (setting.data.keep.leaf && parentNode && !isParent) {
|
|
234992
|
+
return;
|
|
234993
|
+
}
|
|
234994
|
+
if (!tools.isArray(newNodes)) {
|
|
234995
|
+
newNodes = [ newNodes ];
|
|
234996
|
+
}
|
|
234997
|
+
if (setting.data.simpleData.enable) {
|
|
234998
|
+
newNodes = data.transformTozTreeFormat(setting, newNodes);
|
|
234999
|
+
}
|
|
235000
|
+
if (parentNode) {
|
|
235001
|
+
var target_switchObj = $$(parentNode, consts.id.SWITCH, setting), target_icoObj = $$(parentNode, consts.id.ICON, setting), target_ulObj = $$(parentNode, consts.id.UL, setting);
|
|
235002
|
+
if (!parentNode.open) {
|
|
235003
|
+
view.replaceSwitchClass(parentNode, target_switchObj, consts.folder.CLOSE);
|
|
235004
|
+
view.replaceIcoClass(parentNode, target_icoObj, consts.folder.CLOSE);
|
|
235005
|
+
parentNode.open = false;
|
|
235006
|
+
target_ulObj.css({
|
|
235007
|
+
display: "none"
|
|
235008
|
+
});
|
|
235009
|
+
}
|
|
235010
|
+
data.addNodesData(setting, parentNode, index, newNodes);
|
|
235011
|
+
view.createNodes(setting, parentNode.level + 1, newNodes, parentNode, index);
|
|
235012
|
+
if (!isSilent) {
|
|
235013
|
+
view.expandCollapseParentNode(setting, parentNode, true);
|
|
235014
|
+
}
|
|
235015
|
+
} else {
|
|
235016
|
+
data.addNodesData(setting, data.getRoot(setting), index, newNodes);
|
|
235017
|
+
view.createNodes(setting, 0, newNodes, null, index);
|
|
235018
|
+
}
|
|
235019
|
+
},
|
|
235020
|
+
appendNodes: function(setting, level, nodes, parentNode, index, initFlag, openFlag) {
|
|
235021
|
+
if (!nodes) return [];
|
|
235022
|
+
var html = [];
|
|
235023
|
+
var tmpPNode = parentNode ? parentNode : data.getRoot(setting), tmpPChild = data.nodeChildren(setting, tmpPNode), isFirstNode, isLastNode;
|
|
235024
|
+
if (!tmpPChild || index >= tmpPChild.length - nodes.length) {
|
|
235025
|
+
index = -1;
|
|
235026
|
+
}
|
|
235027
|
+
for (var i = 0, l = nodes.length; i < l; i++) {
|
|
235028
|
+
var node = nodes[i];
|
|
235029
|
+
if (initFlag) {
|
|
235030
|
+
isFirstNode = (index === 0 || tmpPChild.length == nodes.length) && i == 0;
|
|
235031
|
+
isLastNode = index < 0 && i == nodes.length - 1;
|
|
235032
|
+
data.initNode(setting, level, node, parentNode, isFirstNode, isLastNode, openFlag);
|
|
235033
|
+
data.addNodeCache(setting, node);
|
|
235034
|
+
}
|
|
235035
|
+
var isParent = data.nodeIsParent(setting, node);
|
|
235036
|
+
var childHtml = [];
|
|
235037
|
+
var children = data.nodeChildren(setting, node);
|
|
235038
|
+
if (children && children.length > 0) {
|
|
235039
|
+
childHtml = view.appendNodes(setting, level + 1, children, node, -1, initFlag, openFlag && node.open);
|
|
235040
|
+
}
|
|
235041
|
+
if (openFlag) {
|
|
235042
|
+
view.makeDOMNodeMainBefore(html, setting, node);
|
|
235043
|
+
view.makeDOMNodeLine(html, setting, node);
|
|
235044
|
+
data.getBeforeA(setting, node, html);
|
|
235045
|
+
view.makeDOMNodeNameBefore(html, setting, node);
|
|
235046
|
+
data.getInnerBeforeA(setting, node, html);
|
|
235047
|
+
view.makeDOMNodeIcon(html, setting, node);
|
|
235048
|
+
data.getInnerAfterA(setting, node, html);
|
|
235049
|
+
view.makeDOMNodeNameAfter(html, setting, node);
|
|
235050
|
+
data.getAfterA(setting, node, html);
|
|
235051
|
+
if (isParent && node.open) {
|
|
235052
|
+
view.makeUlHtml(setting, node, html, childHtml.join(""));
|
|
235053
|
+
}
|
|
235054
|
+
view.makeDOMNodeMainAfter(html, setting, node);
|
|
235055
|
+
data.addCreatedNode(setting, node);
|
|
235056
|
+
}
|
|
235057
|
+
}
|
|
235058
|
+
return html;
|
|
235059
|
+
},
|
|
235060
|
+
appendParentULDom: function(setting, node) {
|
|
235061
|
+
var html = [], nObj = $$(node, setting);
|
|
235062
|
+
if (!nObj.get(0) && !!node.parentTId) {
|
|
235063
|
+
view.appendParentULDom(setting, node.getParentNode());
|
|
235064
|
+
nObj = $$(node, setting);
|
|
235065
|
+
}
|
|
235066
|
+
var ulObj = $$(node, consts.id.UL, setting);
|
|
235067
|
+
if (ulObj.get(0)) {
|
|
235068
|
+
ulObj.remove();
|
|
235069
|
+
}
|
|
235070
|
+
var children = data.nodeChildren(setting, node), childHtml = view.appendNodes(setting, node.level + 1, children, node, -1, false, true);
|
|
235071
|
+
view.makeUlHtml(setting, node, html, childHtml.join(""));
|
|
235072
|
+
nObj.append(html.join(""));
|
|
235073
|
+
},
|
|
235074
|
+
asyncNode: function(setting, node, isSilent, callback) {
|
|
235075
|
+
var i, l;
|
|
235076
|
+
var isParent = data.nodeIsParent(setting, node);
|
|
235077
|
+
if (node && !isParent) {
|
|
235078
|
+
tools.apply(callback);
|
|
235079
|
+
return false;
|
|
235080
|
+
} else if (node && node.isAjaxing) {
|
|
235081
|
+
return false;
|
|
235082
|
+
} else if (tools.apply(setting.callback.beforeAsync, [ setting.treeId, node ], true) == false) {
|
|
235083
|
+
tools.apply(callback);
|
|
235084
|
+
return false;
|
|
235085
|
+
}
|
|
235086
|
+
if (node) {
|
|
235087
|
+
node.isAjaxing = true;
|
|
235088
|
+
var icoObj = $$(node, consts.id.ICON, setting);
|
|
235089
|
+
icoObj.attr({
|
|
235090
|
+
style: "",
|
|
235091
|
+
class: consts.className.BUTTON + " " + consts.className.ICO_LOADING
|
|
235092
|
+
});
|
|
235093
|
+
}
|
|
235094
|
+
var tmpParam = {};
|
|
235095
|
+
var autoParam = tools.apply(setting.async.autoParam, [ setting.treeId, node ], setting.async.autoParam);
|
|
235096
|
+
for (i = 0, l = autoParam.length; node && i < l; i++) {
|
|
235097
|
+
var pKey = autoParam[i].split("="), spKey = pKey;
|
|
235098
|
+
if (pKey.length > 1) {
|
|
235099
|
+
spKey = pKey[1];
|
|
235100
|
+
pKey = pKey[0];
|
|
235101
|
+
}
|
|
235102
|
+
tmpParam[spKey] = node[pKey];
|
|
235103
|
+
}
|
|
235104
|
+
var otherParam = tools.apply(setting.async.otherParam, [ setting.treeId, node ], setting.async.otherParam);
|
|
235105
|
+
if (tools.isArray(otherParam)) {
|
|
235106
|
+
for (i = 0, l = otherParam.length; i < l; i += 2) {
|
|
235107
|
+
tmpParam[otherParam[i]] = otherParam[i + 1];
|
|
235108
|
+
}
|
|
235109
|
+
} else {
|
|
235110
|
+
for (var p in otherParam) {
|
|
235111
|
+
tmpParam[p] = otherParam[p];
|
|
235112
|
+
}
|
|
235113
|
+
}
|
|
235114
|
+
var _tmpV = data.getRoot(setting)._ver;
|
|
235115
|
+
$.ajax({
|
|
235116
|
+
contentType: setting.async.contentType,
|
|
235117
|
+
cache: false,
|
|
235118
|
+
type: setting.async.type,
|
|
235119
|
+
url: tools.apply(setting.async.url, [ setting.treeId, node ], setting.async.url),
|
|
235120
|
+
data: setting.async.contentType.indexOf("application/json") > -1 ? JSON.stringify(tmpParam) : tmpParam,
|
|
235121
|
+
dataType: setting.async.dataType,
|
|
235122
|
+
headers: setting.async.headers,
|
|
235123
|
+
xhrFields: setting.async.xhrFields,
|
|
235124
|
+
success: function(msg) {
|
|
235125
|
+
if (_tmpV != data.getRoot(setting)._ver) {
|
|
235126
|
+
return;
|
|
235127
|
+
}
|
|
235128
|
+
var newNodes = [];
|
|
235129
|
+
try {
|
|
235130
|
+
if (!msg || msg.length == 0) {
|
|
235131
|
+
newNodes = [];
|
|
235132
|
+
} else if (typeof msg == "string") {
|
|
235133
|
+
newNodes = eval("(" + msg + ")");
|
|
235134
|
+
} else {
|
|
235135
|
+
newNodes = msg;
|
|
235136
|
+
}
|
|
235137
|
+
} catch (err) {
|
|
235138
|
+
newNodes = msg;
|
|
235139
|
+
}
|
|
235140
|
+
if (node) {
|
|
235141
|
+
node.isAjaxing = null;
|
|
235142
|
+
node.zAsync = true;
|
|
235143
|
+
}
|
|
235144
|
+
view.setNodeLineIcos(setting, node);
|
|
235145
|
+
if (newNodes && newNodes !== "") {
|
|
235146
|
+
newNodes = tools.apply(setting.async.dataFilter, [ setting.treeId, node, newNodes ], newNodes);
|
|
235147
|
+
view.addNodes(setting, node, -1, !!newNodes ? tools.clone(newNodes) : [], !!isSilent);
|
|
235148
|
+
} else {
|
|
235149
|
+
view.addNodes(setting, node, -1, [], !!isSilent);
|
|
235150
|
+
}
|
|
235151
|
+
setting.treeObj.trigger(consts.event.ASYNC_SUCCESS, [ setting.treeId, node, msg ]);
|
|
235152
|
+
tools.apply(callback);
|
|
235153
|
+
},
|
|
235154
|
+
error: function(XMLHttpRequest, textStatus, errorThrown) {
|
|
235155
|
+
if (_tmpV != data.getRoot(setting)._ver) {
|
|
235156
|
+
return;
|
|
235157
|
+
}
|
|
235158
|
+
if (node) node.isAjaxing = null;
|
|
235159
|
+
view.setNodeLineIcos(setting, node);
|
|
235160
|
+
setting.treeObj.trigger(consts.event.ASYNC_ERROR, [ setting.treeId, node, XMLHttpRequest, textStatus, errorThrown ]);
|
|
235161
|
+
}
|
|
235162
|
+
});
|
|
235163
|
+
return true;
|
|
235164
|
+
},
|
|
235165
|
+
cancelPreSelectedNode: function(setting, node, excludeNode) {
|
|
235166
|
+
var list = data.getRoot(setting).curSelectedList, i, n;
|
|
235167
|
+
for (i = list.length - 1; i >= 0; i--) {
|
|
235168
|
+
n = list[i];
|
|
235169
|
+
if (node === n || !node && (!excludeNode || excludeNode !== n)) {
|
|
235170
|
+
$$(n, consts.id.A, setting).removeClass(consts.node.CURSELECTED);
|
|
235171
|
+
if (node) {
|
|
235172
|
+
data.removeSelectedNode(setting, node);
|
|
235173
|
+
break;
|
|
235174
|
+
} else {
|
|
235175
|
+
list.splice(i, 1);
|
|
235176
|
+
setting.treeObj.trigger(consts.event.UNSELECTED, [ setting.treeId, n ]);
|
|
235177
|
+
}
|
|
235178
|
+
}
|
|
235179
|
+
}
|
|
235180
|
+
},
|
|
235181
|
+
createNodeCallback: function(setting) {
|
|
235182
|
+
if (!!setting.callback.onNodeCreated || !!setting.view.addDiyDom) {
|
|
235183
|
+
var root = data.getRoot(setting);
|
|
235184
|
+
while (root.createdNodes.length > 0) {
|
|
235185
|
+
var node = root.createdNodes.shift();
|
|
235186
|
+
tools.apply(setting.view.addDiyDom, [ setting.treeId, node ]);
|
|
235187
|
+
if (!!setting.callback.onNodeCreated) {
|
|
235188
|
+
setting.treeObj.trigger(consts.event.NODECREATED, [ setting.treeId, node ]);
|
|
235189
|
+
}
|
|
235190
|
+
}
|
|
235191
|
+
}
|
|
235192
|
+
},
|
|
235193
|
+
createNodes: function(setting, level, nodes, parentNode, index) {
|
|
235194
|
+
if (!nodes || nodes.length == 0) return;
|
|
235195
|
+
var root = data.getRoot(setting), openFlag = !parentNode || parentNode.open || !!$$(data.nodeChildren(setting, parentNode)[0], setting).get(0);
|
|
235196
|
+
root.createdNodes = [];
|
|
235197
|
+
var zTreeHtml = view.appendNodes(setting, level, nodes, parentNode, index, true, openFlag), parentObj, nextObj;
|
|
235198
|
+
if (!parentNode) {
|
|
235199
|
+
parentObj = setting.treeObj;
|
|
235200
|
+
} else {
|
|
235201
|
+
var ulObj = $$(parentNode, consts.id.UL, setting);
|
|
235202
|
+
if (ulObj.get(0)) {
|
|
235203
|
+
parentObj = ulObj;
|
|
235204
|
+
}
|
|
235205
|
+
}
|
|
235206
|
+
if (parentObj) {
|
|
235207
|
+
if (index >= 0) {
|
|
235208
|
+
nextObj = parentObj.children()[index];
|
|
235209
|
+
}
|
|
235210
|
+
if (index >= 0 && nextObj) {
|
|
235211
|
+
$(nextObj).before(zTreeHtml.join(""));
|
|
235212
|
+
} else {
|
|
235213
|
+
parentObj.append(zTreeHtml.join(""));
|
|
235214
|
+
}
|
|
235215
|
+
}
|
|
235216
|
+
view.createNodeCallback(setting);
|
|
235217
|
+
},
|
|
235218
|
+
destroy: function(setting) {
|
|
235219
|
+
if (!setting) return;
|
|
235220
|
+
data.initCache(setting);
|
|
235221
|
+
data.initRoot(setting);
|
|
235222
|
+
event.unbindTree(setting);
|
|
235223
|
+
event.unbindEvent(setting);
|
|
235224
|
+
setting.treeObj.empty();
|
|
235225
|
+
delete settings[setting.treeId];
|
|
235226
|
+
},
|
|
235227
|
+
expandCollapseNode: function(setting, node, expandFlag, animateFlag, callback) {
|
|
235228
|
+
var root = data.getRoot(setting);
|
|
235229
|
+
var tmpCb, _callback;
|
|
235230
|
+
if (!node) {
|
|
235231
|
+
tools.apply(callback, []);
|
|
235232
|
+
return;
|
|
235233
|
+
}
|
|
235234
|
+
var children = data.nodeChildren(setting, node);
|
|
235235
|
+
var isParent = data.nodeIsParent(setting, node);
|
|
235236
|
+
if (root.expandTriggerFlag) {
|
|
235237
|
+
_callback = callback;
|
|
235238
|
+
tmpCb = function() {
|
|
235239
|
+
if (_callback) _callback();
|
|
235240
|
+
if (node.open) {
|
|
235241
|
+
setting.treeObj.trigger(consts.event.EXPAND, [ setting.treeId, node ]);
|
|
235242
|
+
} else {
|
|
235243
|
+
setting.treeObj.trigger(consts.event.COLLAPSE, [ setting.treeId, node ]);
|
|
235244
|
+
}
|
|
235245
|
+
};
|
|
235246
|
+
callback = tmpCb;
|
|
235247
|
+
root.expandTriggerFlag = false;
|
|
235248
|
+
}
|
|
235249
|
+
if (!node.open && isParent && (!$$(node, consts.id.UL, setting).get(0) || children && children.length > 0 && !$$(children[0], setting).get(0))) {
|
|
235250
|
+
view.appendParentULDom(setting, node);
|
|
235251
|
+
view.createNodeCallback(setting);
|
|
235252
|
+
}
|
|
235253
|
+
if (node.open == expandFlag) {
|
|
235254
|
+
tools.apply(callback, []);
|
|
235255
|
+
return;
|
|
235256
|
+
}
|
|
235257
|
+
var ulObj = $$(node, consts.id.UL, setting), switchObj = $$(node, consts.id.SWITCH, setting), icoObj = $$(node, consts.id.ICON, setting);
|
|
235258
|
+
if (isParent) {
|
|
235259
|
+
node.open = !node.open;
|
|
235260
|
+
if (node.iconOpen && node.iconClose) {
|
|
235261
|
+
icoObj.attr("style", view.makeNodeIcoStyle(setting, node));
|
|
235262
|
+
}
|
|
235263
|
+
if (node.open) {
|
|
235264
|
+
view.replaceSwitchClass(node, switchObj, consts.folder.OPEN);
|
|
235265
|
+
view.replaceIcoClass(node, icoObj, consts.folder.OPEN);
|
|
235266
|
+
if (animateFlag == false || setting.view.expandSpeed == "") {
|
|
235267
|
+
ulObj.show();
|
|
235268
|
+
tools.apply(callback, []);
|
|
235269
|
+
} else {
|
|
235270
|
+
if (children && children.length > 0) {
|
|
235271
|
+
ulObj.slideDown(setting.view.expandSpeed, callback);
|
|
235272
|
+
} else {
|
|
235273
|
+
ulObj.show();
|
|
235274
|
+
tools.apply(callback, []);
|
|
235275
|
+
}
|
|
235276
|
+
}
|
|
235277
|
+
} else {
|
|
235278
|
+
view.replaceSwitchClass(node, switchObj, consts.folder.CLOSE);
|
|
235279
|
+
view.replaceIcoClass(node, icoObj, consts.folder.CLOSE);
|
|
235280
|
+
if (animateFlag == false || setting.view.expandSpeed == "" || !(children && children.length > 0)) {
|
|
235281
|
+
ulObj.hide();
|
|
235282
|
+
tools.apply(callback, []);
|
|
235283
|
+
} else {
|
|
235284
|
+
ulObj.slideUp(setting.view.expandSpeed, callback);
|
|
235285
|
+
}
|
|
235286
|
+
}
|
|
235287
|
+
} else {
|
|
235288
|
+
tools.apply(callback, []);
|
|
235289
|
+
}
|
|
235290
|
+
},
|
|
235291
|
+
expandCollapseParentNode: function(setting, node, expandFlag, animateFlag, callback) {
|
|
235292
|
+
if (!node) return;
|
|
235293
|
+
if (!node.parentTId) {
|
|
235294
|
+
view.expandCollapseNode(setting, node, expandFlag, animateFlag, callback);
|
|
235295
|
+
return;
|
|
235296
|
+
} else {
|
|
235297
|
+
view.expandCollapseNode(setting, node, expandFlag, animateFlag);
|
|
235298
|
+
}
|
|
235299
|
+
if (node.parentTId) {
|
|
235300
|
+
view.expandCollapseParentNode(setting, node.getParentNode(), expandFlag, animateFlag, callback);
|
|
235301
|
+
}
|
|
235302
|
+
},
|
|
235303
|
+
expandCollapseSonNode: function(setting, node, expandFlag, animateFlag, callback) {
|
|
235304
|
+
var root = data.getRoot(setting), treeNodes = node ? data.nodeChildren(setting, node) : data.nodeChildren(setting, root), selfAnimateSign = node ? false : animateFlag, expandTriggerFlag = data.getRoot(setting).expandTriggerFlag;
|
|
235305
|
+
data.getRoot(setting).expandTriggerFlag = false;
|
|
235306
|
+
if (treeNodes) {
|
|
235307
|
+
for (var i = 0, l = treeNodes.length; i < l; i++) {
|
|
235308
|
+
if (treeNodes[i]) view.expandCollapseSonNode(setting, treeNodes[i], expandFlag, selfAnimateSign);
|
|
235309
|
+
}
|
|
235310
|
+
}
|
|
235311
|
+
data.getRoot(setting).expandTriggerFlag = expandTriggerFlag;
|
|
235312
|
+
view.expandCollapseNode(setting, node, expandFlag, animateFlag, callback);
|
|
235313
|
+
},
|
|
235314
|
+
isSelectedNode: function(setting, node) {
|
|
235315
|
+
if (!node) {
|
|
235316
|
+
return false;
|
|
235317
|
+
}
|
|
235318
|
+
var list = data.getRoot(setting).curSelectedList, i;
|
|
235319
|
+
for (i = list.length - 1; i >= 0; i--) {
|
|
235320
|
+
if (node === list[i]) {
|
|
235321
|
+
return true;
|
|
235322
|
+
}
|
|
235323
|
+
}
|
|
235324
|
+
return false;
|
|
235325
|
+
},
|
|
235326
|
+
makeDOMNodeIcon: function(html, setting, node) {
|
|
235327
|
+
var nameStr = data.nodeName(setting, node), name = setting.view.nameIsHTML ? nameStr : nameStr.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
|
|
235328
|
+
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>");
|
|
235329
|
+
},
|
|
235330
|
+
makeDOMNodeLine: function(html, setting, node) {
|
|
235331
|
+
html.push("<span id='", node.tId, consts.id.SWITCH, "' title='' class='", view.makeNodeLineClass(setting, node), "' treeNode", consts.id.SWITCH, "></span>");
|
|
235332
|
+
},
|
|
235333
|
+
makeDOMNodeMainAfter: function(html, setting, node) {
|
|
235334
|
+
html.push("</li>");
|
|
235335
|
+
},
|
|
235336
|
+
makeDOMNodeMainBefore: function(html, setting, node) {
|
|
235337
|
+
html.push("<li id='", node.tId, "' class='", consts.className.LEVEL, node.level, "' tabindex='0' hidefocus='true' treenode>");
|
|
235338
|
+
},
|
|
235339
|
+
makeDOMNodeNameAfter: function(html, setting, node) {
|
|
235340
|
+
html.push("</a>");
|
|
235341
|
+
},
|
|
235342
|
+
makeDOMNodeNameBefore: function(html, setting, node) {
|
|
235343
|
+
var title = data.nodeTitle(setting, node), url = view.makeNodeUrl(setting, node), fontcss = view.makeNodeFontCss(setting, node), nodeClasses = view.makeNodeClasses(setting, node), fontStyle = [];
|
|
235344
|
+
for (var f in fontcss) {
|
|
235345
|
+
fontStyle.push(f, ":", fontcss[f], ";");
|
|
235346
|
+
}
|
|
235347
|
+
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(""), "'");
|
|
235348
|
+
if (tools.apply(setting.view.showTitle, [ setting.treeId, node ], setting.view.showTitle) && title) {
|
|
235349
|
+
html.push("title='", title.replace(/'/g, "'").replace(/</g, "<").replace(/>/g, ">"), "'");
|
|
235350
|
+
}
|
|
235351
|
+
html.push(">");
|
|
235352
|
+
},
|
|
235353
|
+
makeNodeFontCss: function(setting, node) {
|
|
235354
|
+
var fontCss = tools.apply(setting.view.fontCss, [ setting.treeId, node ], setting.view.fontCss);
|
|
235355
|
+
return fontCss && typeof fontCss != "function" ? fontCss : {};
|
|
235356
|
+
},
|
|
235357
|
+
makeNodeClasses: function(setting, node) {
|
|
235358
|
+
var classes = tools.apply(setting.view.nodeClasses, [ setting.treeId, node ], setting.view.nodeClasses);
|
|
235359
|
+
return classes && typeof classes !== "function" ? classes : {
|
|
235360
|
+
add: [],
|
|
235361
|
+
remove: []
|
|
235362
|
+
};
|
|
235363
|
+
},
|
|
235364
|
+
makeNodeIcoClass: function(setting, node) {
|
|
235365
|
+
var icoCss = [ "ico" ];
|
|
235366
|
+
if (!node.isAjaxing) {
|
|
235367
|
+
var isParent = data.nodeIsParent(setting, node);
|
|
235368
|
+
icoCss[0] = (node.iconSkin ? node.iconSkin + "_" : "") + icoCss[0];
|
|
235369
|
+
if (isParent) {
|
|
235370
|
+
icoCss.push(node.open ? consts.folder.OPEN : consts.folder.CLOSE);
|
|
235371
|
+
} else {
|
|
235372
|
+
icoCss.push(consts.folder.DOCU);
|
|
235373
|
+
}
|
|
235374
|
+
}
|
|
235375
|
+
return consts.className.BUTTON + " " + icoCss.join("_");
|
|
235376
|
+
},
|
|
235377
|
+
makeNodeIcoStyle: function(setting, node) {
|
|
235378
|
+
var icoStyle = [];
|
|
235379
|
+
if (!node.isAjaxing) {
|
|
235380
|
+
var isParent = data.nodeIsParent(setting, node);
|
|
235381
|
+
var icon = isParent && node.iconOpen && node.iconClose ? node.open ? node.iconOpen : node.iconClose : node[setting.data.key.icon];
|
|
235382
|
+
if (icon) icoStyle.push("background:url(", icon, ") 0 0 no-repeat;");
|
|
235383
|
+
if (setting.view.showIcon == false || !tools.apply(setting.view.showIcon, [ setting.treeId, node ], true)) {
|
|
235384
|
+
icoStyle.push("display:none;");
|
|
235385
|
+
}
|
|
235386
|
+
}
|
|
235387
|
+
return icoStyle.join("");
|
|
235388
|
+
},
|
|
235389
|
+
makeNodeLineClass: function(setting, node) {
|
|
235390
|
+
var lineClass = [];
|
|
235391
|
+
if (setting.view.showLine) {
|
|
235392
|
+
if (node.level == 0 && node.isFirstNode && node.isLastNode) {
|
|
235393
|
+
lineClass.push(consts.line.ROOT);
|
|
235394
|
+
} else if (node.level == 0 && node.isFirstNode) {
|
|
235395
|
+
lineClass.push(consts.line.ROOTS);
|
|
235396
|
+
} else if (node.isLastNode) {
|
|
235397
|
+
lineClass.push(consts.line.BOTTOM);
|
|
235398
|
+
} else {
|
|
235399
|
+
lineClass.push(consts.line.CENTER);
|
|
235400
|
+
}
|
|
235401
|
+
} else {
|
|
235402
|
+
lineClass.push(consts.line.NOLINE);
|
|
235403
|
+
}
|
|
235404
|
+
if (data.nodeIsParent(setting, node)) {
|
|
235405
|
+
lineClass.push(node.open ? consts.folder.OPEN : consts.folder.CLOSE);
|
|
235406
|
+
} else {
|
|
235407
|
+
lineClass.push(consts.folder.DOCU);
|
|
235408
|
+
}
|
|
235409
|
+
return view.makeNodeLineClassEx(node) + lineClass.join("_");
|
|
235410
|
+
},
|
|
235411
|
+
makeNodeLineClassEx: function(node) {
|
|
235412
|
+
return consts.className.BUTTON + " " + consts.className.LEVEL + node.level + " " + consts.className.SWITCH + " ";
|
|
235413
|
+
},
|
|
235414
|
+
makeNodeTarget: function(node) {
|
|
235415
|
+
return node.target || "_blank";
|
|
235416
|
+
},
|
|
235417
|
+
makeNodeUrl: function(setting, node) {
|
|
235418
|
+
var urlKey = setting.data.key.url;
|
|
235419
|
+
return node[urlKey] ? node[urlKey] : null;
|
|
235420
|
+
},
|
|
235421
|
+
makeUlHtml: function(setting, node, html, content) {
|
|
235422
|
+
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", "'>");
|
|
235423
|
+
html.push(content);
|
|
235424
|
+
html.push("</ul>");
|
|
235425
|
+
},
|
|
235426
|
+
makeUlLineClass: function(setting, node) {
|
|
235427
|
+
return setting.view.showLine && !node.isLastNode ? consts.line.LINE : "";
|
|
235428
|
+
},
|
|
235429
|
+
removeChildNodes: function(setting, node) {
|
|
235430
|
+
if (!node) return;
|
|
235431
|
+
var nodes = data.nodeChildren(setting, node);
|
|
235432
|
+
if (!nodes) return;
|
|
235433
|
+
for (var i = 0, l = nodes.length; i < l; i++) {
|
|
235434
|
+
data.removeNodeCache(setting, nodes[i]);
|
|
235435
|
+
}
|
|
235436
|
+
data.removeSelectedNode(setting);
|
|
235437
|
+
delete node[setting.data.key.children];
|
|
235438
|
+
if (!setting.data.keep.parent) {
|
|
235439
|
+
data.nodeIsParent(setting, node, false);
|
|
235440
|
+
node.open = false;
|
|
235441
|
+
var tmp_switchObj = $$(node, consts.id.SWITCH, setting), tmp_icoObj = $$(node, consts.id.ICON, setting);
|
|
235442
|
+
view.replaceSwitchClass(node, tmp_switchObj, consts.folder.DOCU);
|
|
235443
|
+
view.replaceIcoClass(node, tmp_icoObj, consts.folder.DOCU);
|
|
235444
|
+
$$(node, consts.id.UL, setting).remove();
|
|
235445
|
+
} else {
|
|
235446
|
+
$$(node, consts.id.UL, setting).empty();
|
|
235447
|
+
}
|
|
235448
|
+
},
|
|
235449
|
+
scrollIntoView: function(setting, dom) {
|
|
235450
|
+
if (!dom) {
|
|
235451
|
+
return;
|
|
235452
|
+
}
|
|
235453
|
+
if (typeof Element === "undefined" || typeof HTMLElement === "undefined") {
|
|
235454
|
+
var contRect = setting.treeObj.get(0).getBoundingClientRect(), findMeRect = dom.getBoundingClientRect();
|
|
235455
|
+
if (findMeRect.top < contRect.top || findMeRect.bottom > contRect.bottom || findMeRect.right > contRect.right || findMeRect.left < contRect.left) {
|
|
235456
|
+
dom.scrollIntoView();
|
|
235457
|
+
}
|
|
235458
|
+
return;
|
|
235459
|
+
}
|
|
235460
|
+
if (!Element.prototype.scrollIntoViewIfNeeded) {
|
|
235461
|
+
Element.prototype.scrollIntoViewIfNeeded = function(centerIfNeeded) {
|
|
235462
|
+
"use strict";
|
|
235463
|
+
function makeRange(start, length) {
|
|
235464
|
+
return {
|
|
235465
|
+
start: start,
|
|
235466
|
+
length: length,
|
|
235467
|
+
end: start + length
|
|
235468
|
+
};
|
|
235469
|
+
}
|
|
235470
|
+
function coverRange(inner, outer) {
|
|
235471
|
+
if (false === centerIfNeeded || outer.start < inner.end && inner.start < outer.end) {
|
|
235472
|
+
return Math.max(inner.end - outer.length, Math.min(outer.start, inner.start));
|
|
235473
|
+
}
|
|
235474
|
+
return (inner.start + inner.end - outer.length) / 2;
|
|
235475
|
+
}
|
|
235476
|
+
function makePoint(x, y) {
|
|
235477
|
+
return {
|
|
235478
|
+
x: x,
|
|
235479
|
+
y: y,
|
|
235480
|
+
translate: function translate(dX, dY) {
|
|
235481
|
+
return makePoint(x + dX, y + dY);
|
|
235482
|
+
}
|
|
235483
|
+
};
|
|
235484
|
+
}
|
|
235485
|
+
function absolute(elem, pt) {
|
|
235486
|
+
while (elem) {
|
|
235487
|
+
pt = pt.translate(elem.offsetLeft, elem.offsetTop);
|
|
235488
|
+
elem = elem.offsetParent;
|
|
235489
|
+
}
|
|
235490
|
+
return pt;
|
|
235491
|
+
}
|
|
235492
|
+
var target = absolute(this, makePoint(0, 0)), extent = makePoint(this.offsetWidth, this.offsetHeight), elem = this.parentNode, origin;
|
|
235493
|
+
while (elem instanceof HTMLElement) {
|
|
235494
|
+
origin = absolute(elem, makePoint(elem.clientLeft, elem.clientTop));
|
|
235495
|
+
elem.scrollLeft = coverRange(makeRange(target.x - origin.x, extent.x), makeRange(elem.scrollLeft, elem.clientWidth));
|
|
235496
|
+
elem.scrollTop = coverRange(makeRange(target.y - origin.y, extent.y), makeRange(elem.scrollTop, elem.clientHeight));
|
|
235497
|
+
target = target.translate(-elem.scrollLeft, -elem.scrollTop);
|
|
235498
|
+
elem = elem.parentNode;
|
|
235499
|
+
}
|
|
235500
|
+
};
|
|
235501
|
+
}
|
|
235502
|
+
dom.scrollIntoViewIfNeeded();
|
|
235503
|
+
},
|
|
235504
|
+
setFirstNode: function(setting, parentNode) {
|
|
235505
|
+
var children = data.nodeChildren(setting, parentNode);
|
|
235506
|
+
if (children.length > 0) {
|
|
235507
|
+
children[0].isFirstNode = true;
|
|
235508
|
+
}
|
|
235509
|
+
},
|
|
235510
|
+
setLastNode: function(setting, parentNode) {
|
|
235511
|
+
var children = data.nodeChildren(setting, parentNode);
|
|
235512
|
+
if (children.length > 0) {
|
|
235513
|
+
children[children.length - 1].isLastNode = true;
|
|
235514
|
+
}
|
|
235515
|
+
},
|
|
235516
|
+
removeNode: function(setting, node) {
|
|
235517
|
+
var root = data.getRoot(setting), parentNode = node.parentTId ? node.getParentNode() : root;
|
|
235518
|
+
node.isFirstNode = false;
|
|
235519
|
+
node.isLastNode = false;
|
|
235520
|
+
node.getPreNode = function() {
|
|
235521
|
+
return null;
|
|
235522
|
+
};
|
|
235523
|
+
node.getNextNode = function() {
|
|
235524
|
+
return null;
|
|
235525
|
+
};
|
|
235526
|
+
if (!data.getNodeCache(setting, node.tId)) {
|
|
235527
|
+
return;
|
|
235528
|
+
}
|
|
235529
|
+
$$(node, setting).remove();
|
|
235530
|
+
data.removeNodeCache(setting, node);
|
|
235531
|
+
data.removeSelectedNode(setting, node);
|
|
235532
|
+
var children = data.nodeChildren(setting, parentNode);
|
|
235533
|
+
for (var i = 0, l = children.length; i < l; i++) {
|
|
235534
|
+
if (children[i].tId == node.tId) {
|
|
235535
|
+
children.splice(i, 1);
|
|
235536
|
+
break;
|
|
235537
|
+
}
|
|
235538
|
+
}
|
|
235539
|
+
view.setFirstNode(setting, parentNode);
|
|
235540
|
+
view.setLastNode(setting, parentNode);
|
|
235541
|
+
var tmp_ulObj, tmp_switchObj, tmp_icoObj, childLength = children.length;
|
|
235542
|
+
if (!setting.data.keep.parent && childLength == 0) {
|
|
235543
|
+
data.nodeIsParent(setting, parentNode, false);
|
|
235544
|
+
parentNode.open = false;
|
|
235545
|
+
delete parentNode[setting.data.key.children];
|
|
235546
|
+
tmp_ulObj = $$(parentNode, consts.id.UL, setting);
|
|
235547
|
+
tmp_switchObj = $$(parentNode, consts.id.SWITCH, setting);
|
|
235548
|
+
tmp_icoObj = $$(parentNode, consts.id.ICON, setting);
|
|
235549
|
+
view.replaceSwitchClass(parentNode, tmp_switchObj, consts.folder.DOCU);
|
|
235550
|
+
view.replaceIcoClass(parentNode, tmp_icoObj, consts.folder.DOCU);
|
|
235551
|
+
tmp_ulObj.css("display", "none");
|
|
235552
|
+
} else if (setting.view.showLine && childLength > 0) {
|
|
235553
|
+
var newLast = children[childLength - 1];
|
|
235554
|
+
tmp_ulObj = $$(newLast, consts.id.UL, setting);
|
|
235555
|
+
tmp_switchObj = $$(newLast, consts.id.SWITCH, setting);
|
|
235556
|
+
tmp_icoObj = $$(newLast, consts.id.ICON, setting);
|
|
235557
|
+
if (parentNode == root) {
|
|
235558
|
+
if (children.length == 1) {
|
|
235559
|
+
view.replaceSwitchClass(newLast, tmp_switchObj, consts.line.ROOT);
|
|
235560
|
+
} else {
|
|
235561
|
+
var tmp_first_switchObj = $$(children[0], consts.id.SWITCH, setting);
|
|
235562
|
+
view.replaceSwitchClass(children[0], tmp_first_switchObj, consts.line.ROOTS);
|
|
235563
|
+
view.replaceSwitchClass(newLast, tmp_switchObj, consts.line.BOTTOM);
|
|
235564
|
+
}
|
|
235565
|
+
} else {
|
|
235566
|
+
view.replaceSwitchClass(newLast, tmp_switchObj, consts.line.BOTTOM);
|
|
235567
|
+
}
|
|
235568
|
+
tmp_ulObj.removeClass(consts.line.LINE);
|
|
235569
|
+
}
|
|
235570
|
+
},
|
|
235571
|
+
replaceIcoClass: function(node, obj, newName) {
|
|
235572
|
+
if (!obj || node.isAjaxing) return;
|
|
235573
|
+
var tmpName = obj.attr("class");
|
|
235574
|
+
if (tmpName == undefined) return;
|
|
235575
|
+
var tmpList = tmpName.split("_");
|
|
235576
|
+
switch (newName) {
|
|
235577
|
+
case consts.folder.OPEN:
|
|
235578
|
+
case consts.folder.CLOSE:
|
|
235579
|
+
case consts.folder.DOCU:
|
|
235580
|
+
tmpList[tmpList.length - 1] = newName;
|
|
235581
|
+
break;
|
|
235582
|
+
}
|
|
235583
|
+
obj.attr("class", tmpList.join("_"));
|
|
235584
|
+
},
|
|
235585
|
+
replaceSwitchClass: function(node, obj, newName) {
|
|
235586
|
+
if (!obj) return;
|
|
235587
|
+
var tmpName = obj.attr("class");
|
|
235588
|
+
if (tmpName == undefined) return;
|
|
235589
|
+
var tmpList = tmpName.split("_");
|
|
235590
|
+
switch (newName) {
|
|
235591
|
+
case consts.line.ROOT:
|
|
235592
|
+
case consts.line.ROOTS:
|
|
235593
|
+
case consts.line.CENTER:
|
|
235594
|
+
case consts.line.BOTTOM:
|
|
235595
|
+
case consts.line.NOLINE:
|
|
235596
|
+
tmpList[0] = view.makeNodeLineClassEx(node) + newName;
|
|
235597
|
+
break;
|
|
235598
|
+
|
|
235599
|
+
case consts.folder.OPEN:
|
|
235600
|
+
case consts.folder.CLOSE:
|
|
235601
|
+
case consts.folder.DOCU:
|
|
235602
|
+
tmpList[1] = newName;
|
|
235603
|
+
break;
|
|
235604
|
+
}
|
|
235605
|
+
obj.attr("class", tmpList.join("_"));
|
|
235606
|
+
if (newName !== consts.folder.DOCU) {
|
|
235607
|
+
obj.removeAttr("disabled");
|
|
235608
|
+
} else {
|
|
235609
|
+
obj.attr("disabled", "disabled");
|
|
235610
|
+
}
|
|
235611
|
+
},
|
|
235612
|
+
selectNode: function(setting, node, addFlag) {
|
|
235613
|
+
if (!addFlag) {
|
|
235614
|
+
view.cancelPreSelectedNode(setting, null, node);
|
|
235615
|
+
}
|
|
235616
|
+
$$(node, consts.id.A, setting).addClass(consts.node.CURSELECTED);
|
|
235617
|
+
data.addSelectedNode(setting, node);
|
|
235618
|
+
setting.treeObj.trigger(consts.event.SELECTED, [ setting.treeId, node ]);
|
|
235619
|
+
},
|
|
235620
|
+
setNodeFontCss: function(setting, treeNode) {
|
|
235621
|
+
var aObj = $$(treeNode, consts.id.A, setting), fontCss = view.makeNodeFontCss(setting, treeNode);
|
|
235622
|
+
if (fontCss) {
|
|
235623
|
+
aObj.css(fontCss);
|
|
235624
|
+
}
|
|
235625
|
+
},
|
|
235626
|
+
setNodeClasses: function(setting, treeNode) {
|
|
235627
|
+
var aObj = $$(treeNode, consts.id.A, setting), classes = view.makeNodeClasses(setting, treeNode);
|
|
235628
|
+
if ("add" in classes && classes.add.length) {
|
|
235629
|
+
aObj.addClass(classes.add.join(" "));
|
|
235630
|
+
}
|
|
235631
|
+
if ("remove" in classes && classes.remove.length) {
|
|
235632
|
+
aObj.removeClass(classes.remove.join(" "));
|
|
235633
|
+
}
|
|
235634
|
+
},
|
|
235635
|
+
setNodeLineIcos: function(setting, node) {
|
|
235636
|
+
if (!node) return;
|
|
235637
|
+
var switchObj = $$(node, consts.id.SWITCH, setting), ulObj = $$(node, consts.id.UL, setting), icoObj = $$(node, consts.id.ICON, setting), ulLine = view.makeUlLineClass(setting, node);
|
|
235638
|
+
if (ulLine.length == 0) {
|
|
235639
|
+
ulObj.removeClass(consts.line.LINE);
|
|
235640
|
+
} else {
|
|
235641
|
+
ulObj.addClass(ulLine);
|
|
235642
|
+
}
|
|
235643
|
+
switchObj.attr("class", view.makeNodeLineClass(setting, node));
|
|
235644
|
+
if (data.nodeIsParent(setting, node)) {
|
|
235645
|
+
switchObj.removeAttr("disabled");
|
|
235646
|
+
} else {
|
|
235647
|
+
switchObj.attr("disabled", "disabled");
|
|
235648
|
+
}
|
|
235649
|
+
icoObj.removeAttr("style");
|
|
235650
|
+
icoObj.attr("style", view.makeNodeIcoStyle(setting, node));
|
|
235651
|
+
icoObj.attr("class", view.makeNodeIcoClass(setting, node));
|
|
235652
|
+
},
|
|
235653
|
+
setNodeName: function(setting, node) {
|
|
235654
|
+
var title = data.nodeTitle(setting, node), nObj = $$(node, consts.id.SPAN, setting);
|
|
235655
|
+
nObj.empty();
|
|
235656
|
+
if (setting.view.nameIsHTML) {
|
|
235657
|
+
nObj.html(data.nodeName(setting, node));
|
|
235658
|
+
} else {
|
|
235659
|
+
nObj.text(data.nodeName(setting, node));
|
|
235660
|
+
}
|
|
235661
|
+
if (tools.apply(setting.view.showTitle, [ setting.treeId, node ], setting.view.showTitle)) {
|
|
235662
|
+
var aObj = $$(node, consts.id.A, setting);
|
|
235663
|
+
aObj.attr("title", !title ? "" : title);
|
|
235664
|
+
}
|
|
235665
|
+
},
|
|
235666
|
+
setNodeTarget: function(setting, node) {
|
|
235667
|
+
var aObj = $$(node, consts.id.A, setting);
|
|
235668
|
+
aObj.attr("target", view.makeNodeTarget(node));
|
|
235669
|
+
},
|
|
235670
|
+
setNodeUrl: function(setting, node) {
|
|
235671
|
+
var aObj = $$(node, consts.id.A, setting), url = view.makeNodeUrl(setting, node);
|
|
235672
|
+
if (url == null || url.length == 0) {
|
|
235673
|
+
aObj.removeAttr("href");
|
|
235674
|
+
} else {
|
|
235675
|
+
aObj.attr("href", url);
|
|
235676
|
+
}
|
|
235677
|
+
},
|
|
235678
|
+
switchNode: function(setting, node) {
|
|
235679
|
+
if (node.open || !tools.canAsync(setting, node)) {
|
|
235680
|
+
view.expandCollapseNode(setting, node, !node.open);
|
|
235681
|
+
} else if (setting.async.enable) {
|
|
235682
|
+
if (!view.asyncNode(setting, node)) {
|
|
235683
|
+
view.expandCollapseNode(setting, node, !node.open);
|
|
235684
|
+
return;
|
|
235685
|
+
}
|
|
235686
|
+
} else if (node) {
|
|
235687
|
+
view.expandCollapseNode(setting, node, !node.open);
|
|
235688
|
+
}
|
|
235689
|
+
}
|
|
235690
|
+
};
|
|
235691
|
+
$.fn.zTree = {
|
|
235692
|
+
consts: _consts,
|
|
235693
|
+
_z: {
|
|
235694
|
+
tools: tools,
|
|
235695
|
+
view: view,
|
|
235696
|
+
event: event,
|
|
235697
|
+
data: data
|
|
235698
|
+
},
|
|
235699
|
+
getZTreeObj: function(treeId) {
|
|
235700
|
+
var o = data.getZTreeTools(treeId);
|
|
235701
|
+
return o ? o : null;
|
|
235702
|
+
},
|
|
235703
|
+
destroy: function(treeId) {
|
|
235704
|
+
if (!!treeId && treeId.length > 0) {
|
|
235705
|
+
view.destroy(data.getSetting(treeId));
|
|
235706
|
+
} else {
|
|
235707
|
+
for (var s in settings) {
|
|
235708
|
+
view.destroy(settings[s]);
|
|
235709
|
+
}
|
|
235710
|
+
}
|
|
235711
|
+
},
|
|
235712
|
+
init: function(obj, zSetting, zNodes) {
|
|
235713
|
+
var setting = tools.clone(_setting);
|
|
235714
|
+
$.extend(true, setting, zSetting);
|
|
235715
|
+
setting.treeId = obj.attr("id");
|
|
235716
|
+
setting.treeObj = obj;
|
|
235717
|
+
setting.treeObj.empty();
|
|
235718
|
+
settings[setting.treeId] = setting;
|
|
235719
|
+
if (typeof document.body.style.maxHeight === "undefined") {
|
|
235720
|
+
setting.view.expandSpeed = "";
|
|
235721
|
+
}
|
|
235722
|
+
data.initRoot(setting);
|
|
235723
|
+
var root = data.getRoot(setting);
|
|
235724
|
+
zNodes = zNodes ? tools.clone(tools.isArray(zNodes) ? zNodes : [ zNodes ]) : [];
|
|
235725
|
+
if (setting.data.simpleData.enable) {
|
|
235726
|
+
data.nodeChildren(setting, root, data.transformTozTreeFormat(setting, zNodes));
|
|
235727
|
+
} else {
|
|
235728
|
+
data.nodeChildren(setting, root, zNodes);
|
|
235729
|
+
}
|
|
235730
|
+
data.initCache(setting);
|
|
235731
|
+
event.unbindTree(setting);
|
|
235732
|
+
event.bindTree(setting);
|
|
235733
|
+
event.unbindEvent(setting);
|
|
235734
|
+
event.bindEvent(setting);
|
|
235735
|
+
var zTreeTools = {
|
|
235736
|
+
setting: setting,
|
|
235737
|
+
addNodes: function(parentNode, index, newNodes, isSilent) {
|
|
235738
|
+
if (!parentNode) parentNode = null;
|
|
235739
|
+
var isParent = data.nodeIsParent(setting, parentNode);
|
|
235740
|
+
if (parentNode && !isParent && setting.data.keep.leaf) return null;
|
|
235741
|
+
var i = parseInt(index, 10);
|
|
235742
|
+
if (isNaN(i)) {
|
|
235743
|
+
isSilent = !!newNodes;
|
|
235744
|
+
newNodes = index;
|
|
235745
|
+
index = -1;
|
|
235746
|
+
} else {
|
|
235747
|
+
index = i;
|
|
235748
|
+
}
|
|
235749
|
+
if (!newNodes) return null;
|
|
235750
|
+
var xNewNodes = tools.clone(tools.isArray(newNodes) ? newNodes : [ newNodes ]);
|
|
235751
|
+
function addCallback() {
|
|
235752
|
+
view.addNodes(setting, parentNode, index, xNewNodes, isSilent == true);
|
|
235753
|
+
}
|
|
235754
|
+
if (tools.canAsync(setting, parentNode)) {
|
|
235755
|
+
view.asyncNode(setting, parentNode, isSilent, addCallback);
|
|
235756
|
+
} else {
|
|
235757
|
+
addCallback();
|
|
235758
|
+
}
|
|
235759
|
+
return xNewNodes;
|
|
235760
|
+
},
|
|
235761
|
+
cancelSelectedNode: function(node) {
|
|
235762
|
+
view.cancelPreSelectedNode(setting, node);
|
|
235763
|
+
},
|
|
235764
|
+
destroy: function() {
|
|
235765
|
+
view.destroy(setting);
|
|
235766
|
+
},
|
|
235767
|
+
expandAll: function(expandFlag) {
|
|
235768
|
+
expandFlag = !!expandFlag;
|
|
235769
|
+
view.expandCollapseSonNode(setting, null, expandFlag, true);
|
|
235770
|
+
return expandFlag;
|
|
235771
|
+
},
|
|
235772
|
+
expandNode: function(node, expandFlag, sonSign, focus, callbackFlag) {
|
|
235773
|
+
if (!node || !data.nodeIsParent(setting, node)) return null;
|
|
235774
|
+
if (expandFlag !== true && expandFlag !== false) {
|
|
235775
|
+
expandFlag = !node.open;
|
|
235776
|
+
}
|
|
235777
|
+
callbackFlag = !!callbackFlag;
|
|
235778
|
+
if (callbackFlag && expandFlag && tools.apply(setting.callback.beforeExpand, [ setting.treeId, node ], true) == false) {
|
|
235779
|
+
return null;
|
|
235780
|
+
} else if (callbackFlag && !expandFlag && tools.apply(setting.callback.beforeCollapse, [ setting.treeId, node ], true) == false) {
|
|
235781
|
+
return null;
|
|
235782
|
+
}
|
|
235783
|
+
if (expandFlag && node.parentTId) {
|
|
235784
|
+
view.expandCollapseParentNode(setting, node.getParentNode(), expandFlag, false);
|
|
235785
|
+
}
|
|
235786
|
+
if (expandFlag === node.open && !sonSign) {
|
|
235787
|
+
return null;
|
|
235788
|
+
}
|
|
235789
|
+
data.getRoot(setting).expandTriggerFlag = callbackFlag;
|
|
235790
|
+
if (!tools.canAsync(setting, node) && sonSign) {
|
|
235791
|
+
view.expandCollapseSonNode(setting, node, expandFlag, true, showNodeFocus);
|
|
235792
|
+
} else {
|
|
235793
|
+
node.open = !expandFlag;
|
|
235794
|
+
view.switchNode(this.setting, node);
|
|
235795
|
+
showNodeFocus();
|
|
235796
|
+
}
|
|
235797
|
+
return expandFlag;
|
|
235798
|
+
function showNodeFocus() {
|
|
235799
|
+
var a = $$(node, consts.id.A, setting).get(0);
|
|
235800
|
+
if (a && focus !== false) {
|
|
235801
|
+
view.scrollIntoView(setting, a);
|
|
235802
|
+
}
|
|
235803
|
+
}
|
|
235804
|
+
},
|
|
235805
|
+
getNodes: function() {
|
|
235806
|
+
return data.getNodes(setting);
|
|
235807
|
+
},
|
|
235808
|
+
getNodeByParam: function(key, value, parentNode) {
|
|
235809
|
+
if (!key) return null;
|
|
235810
|
+
return data.getNodeByParam(setting, parentNode ? data.nodeChildren(setting, parentNode) : data.getNodes(setting), key, value);
|
|
235811
|
+
},
|
|
235812
|
+
getNodeByTId: function(tId) {
|
|
235813
|
+
return data.getNodeCache(setting, tId);
|
|
235814
|
+
},
|
|
235815
|
+
getNodesByParam: function(key, value, parentNode) {
|
|
235816
|
+
if (!key) return null;
|
|
235817
|
+
return data.getNodesByParam(setting, parentNode ? data.nodeChildren(setting, parentNode) : data.getNodes(setting), key, value);
|
|
235818
|
+
},
|
|
235819
|
+
getNodesByParamFuzzy: function(key, value, parentNode) {
|
|
235820
|
+
if (!key) return null;
|
|
235821
|
+
return data.getNodesByParamFuzzy(setting, parentNode ? data.nodeChildren(setting, parentNode) : data.getNodes(setting), key, value);
|
|
235822
|
+
},
|
|
235823
|
+
getNodesByFilter: function(filter, isSingle, parentNode, invokeParam) {
|
|
235824
|
+
isSingle = !!isSingle;
|
|
235825
|
+
if (!filter || typeof filter != "function") return isSingle ? null : [];
|
|
235826
|
+
return data.getNodesByFilter(setting, parentNode ? data.nodeChildren(setting, parentNode) : data.getNodes(setting), filter, isSingle, invokeParam);
|
|
235827
|
+
},
|
|
235828
|
+
getNodeIndex: function(node) {
|
|
235829
|
+
if (!node) return null;
|
|
235830
|
+
var parentNode = node.parentTId ? node.getParentNode() : data.getRoot(setting);
|
|
235831
|
+
var children = data.nodeChildren(setting, parentNode);
|
|
235832
|
+
for (var i = 0, l = children.length; i < l; i++) {
|
|
235833
|
+
if (children[i] == node) return i;
|
|
235834
|
+
}
|
|
235835
|
+
return -1;
|
|
235836
|
+
},
|
|
235837
|
+
getSelectedNodes: function() {
|
|
235838
|
+
var r = [], list = data.getRoot(setting).curSelectedList;
|
|
235839
|
+
for (var i = 0, l = list.length; i < l; i++) {
|
|
235840
|
+
r.push(list[i]);
|
|
235841
|
+
}
|
|
235842
|
+
return r;
|
|
235843
|
+
},
|
|
235844
|
+
isSelectedNode: function(node) {
|
|
235845
|
+
return data.isSelectedNode(setting, node);
|
|
235846
|
+
},
|
|
235847
|
+
reAsyncChildNodesPromise: function(parentNode, reloadType, isSilent) {
|
|
235848
|
+
var promise = new Promise((function(resolve, reject) {
|
|
235849
|
+
try {
|
|
235850
|
+
zTreeTools.reAsyncChildNodes(parentNode, reloadType, isSilent, (function() {
|
|
235851
|
+
resolve(parentNode);
|
|
235852
|
+
}));
|
|
235853
|
+
} catch (e) {
|
|
235854
|
+
reject(e);
|
|
235855
|
+
}
|
|
235856
|
+
}));
|
|
235857
|
+
return promise;
|
|
235858
|
+
},
|
|
235859
|
+
reAsyncChildNodes: function(parentNode, reloadType, isSilent, callback) {
|
|
235860
|
+
if (!this.setting.async.enable) return;
|
|
235861
|
+
var isRoot = !parentNode;
|
|
235862
|
+
if (isRoot) {
|
|
235863
|
+
parentNode = data.getRoot(setting);
|
|
235864
|
+
}
|
|
235865
|
+
if (reloadType == "refresh") {
|
|
235866
|
+
var children = data.nodeChildren(setting, parentNode);
|
|
235867
|
+
for (var i = 0, l = children ? children.length : 0; i < l; i++) {
|
|
235868
|
+
data.removeNodeCache(setting, children[i]);
|
|
235869
|
+
}
|
|
235870
|
+
data.removeSelectedNode(setting);
|
|
235871
|
+
data.nodeChildren(setting, parentNode, []);
|
|
235872
|
+
if (isRoot) {
|
|
235873
|
+
this.setting.treeObj.empty();
|
|
235874
|
+
} else {
|
|
235875
|
+
var ulObj = $$(parentNode, consts.id.UL, setting);
|
|
235876
|
+
ulObj.empty();
|
|
235877
|
+
}
|
|
235878
|
+
}
|
|
235879
|
+
view.asyncNode(this.setting, isRoot ? null : parentNode, !!isSilent, callback);
|
|
235880
|
+
},
|
|
235881
|
+
refresh: function() {
|
|
235882
|
+
this.setting.treeObj.empty();
|
|
235883
|
+
var root = data.getRoot(setting), nodes = data.nodeChildren(setting, root);
|
|
235884
|
+
data.initRoot(setting);
|
|
235885
|
+
data.nodeChildren(setting, root, nodes);
|
|
235886
|
+
data.initCache(setting);
|
|
235887
|
+
view.createNodes(setting, 0, data.nodeChildren(setting, root), null, -1);
|
|
235888
|
+
},
|
|
235889
|
+
removeChildNodes: function(node) {
|
|
235890
|
+
if (!node) return null;
|
|
235891
|
+
var nodes = data.nodeChildren(setting, node);
|
|
235892
|
+
view.removeChildNodes(setting, node);
|
|
235893
|
+
return nodes ? nodes : null;
|
|
235894
|
+
},
|
|
235895
|
+
removeNode: function(node, callbackFlag) {
|
|
235896
|
+
if (!node) return;
|
|
235897
|
+
callbackFlag = !!callbackFlag;
|
|
235898
|
+
if (callbackFlag && tools.apply(setting.callback.beforeRemove, [ setting.treeId, node ], true) == false) return;
|
|
235899
|
+
view.removeNode(setting, node);
|
|
235900
|
+
if (callbackFlag) {
|
|
235901
|
+
this.setting.treeObj.trigger(consts.event.REMOVE, [ setting.treeId, node ]);
|
|
235902
|
+
}
|
|
235903
|
+
},
|
|
235904
|
+
selectNode: function(node, addFlag, isSilent) {
|
|
235905
|
+
if (!node) return;
|
|
235906
|
+
if (tools.uCanDo(setting)) {
|
|
235907
|
+
addFlag = setting.view.selectedMulti && addFlag;
|
|
235908
|
+
if (node.parentTId) {
|
|
235909
|
+
view.expandCollapseParentNode(setting, node.getParentNode(), true, false, showNodeFocus);
|
|
235910
|
+
} else if (!isSilent) {
|
|
235911
|
+
try {
|
|
235912
|
+
$$(node, setting).focus().blur();
|
|
235913
|
+
} catch (e) {}
|
|
235914
|
+
}
|
|
235915
|
+
view.selectNode(setting, node, addFlag);
|
|
235916
|
+
}
|
|
235917
|
+
function showNodeFocus() {
|
|
235918
|
+
if (isSilent) {
|
|
235919
|
+
return;
|
|
235920
|
+
}
|
|
235921
|
+
var a = $$(node, setting).get(0);
|
|
235922
|
+
view.scrollIntoView(setting, a);
|
|
235923
|
+
}
|
|
235924
|
+
},
|
|
235925
|
+
transformTozTreeNodes: function(simpleNodes) {
|
|
235926
|
+
return data.transformTozTreeFormat(setting, simpleNodes);
|
|
235927
|
+
},
|
|
235928
|
+
transformToArray: function(nodes) {
|
|
235929
|
+
return data.transformToArrayFormat(setting, nodes);
|
|
235930
|
+
},
|
|
235931
|
+
updateNode: function(node, checkTypeFlag) {
|
|
235932
|
+
if (!node) return;
|
|
235933
|
+
var nObj = $$(node, setting);
|
|
235934
|
+
if (nObj.get(0) && tools.uCanDo(setting)) {
|
|
235935
|
+
view.setNodeName(setting, node);
|
|
235936
|
+
view.setNodeTarget(setting, node);
|
|
235937
|
+
view.setNodeUrl(setting, node);
|
|
235938
|
+
view.setNodeLineIcos(setting, node);
|
|
235939
|
+
view.setNodeFontCss(setting, node);
|
|
235940
|
+
view.setNodeClasses(setting, node);
|
|
235941
|
+
}
|
|
235942
|
+
}
|
|
235943
|
+
};
|
|
235944
|
+
root.treeTools = zTreeTools;
|
|
235945
|
+
data.setZTreeTools(setting, zTreeTools);
|
|
235946
|
+
var children = data.nodeChildren(setting, root);
|
|
235947
|
+
if (children && children.length > 0) {
|
|
235948
|
+
view.createNodes(setting, 0, children, null, -1);
|
|
235949
|
+
} else if (setting.async.enable && setting.async.url && setting.async.url !== "") {
|
|
235950
|
+
view.asyncNode(setting);
|
|
235951
|
+
}
|
|
235952
|
+
return zTreeTools;
|
|
235953
|
+
}
|
|
235954
|
+
};
|
|
235955
|
+
var zt = $.fn.zTree, $$ = tools.$, consts = zt.consts;
|
|
235956
|
+
})(jQuery);
|
|
235957
|
+
|
|
235958
|
+
(function($) {
|
|
235959
|
+
var _consts = {
|
|
235960
|
+
event: {
|
|
235961
|
+
CHECK: "ztree_check"
|
|
235962
|
+
},
|
|
235963
|
+
id: {
|
|
235964
|
+
CHECK: "_check"
|
|
235965
|
+
},
|
|
235966
|
+
checkbox: {
|
|
235967
|
+
STYLE: "checkbox",
|
|
235968
|
+
DEFAULT: "chk",
|
|
235969
|
+
DISABLED: "disable",
|
|
235970
|
+
FALSE: "false",
|
|
235971
|
+
TRUE: "true",
|
|
235972
|
+
FULL: "full",
|
|
235973
|
+
PART: "part",
|
|
235974
|
+
FOCUS: "focus"
|
|
235975
|
+
},
|
|
235976
|
+
radio: {
|
|
235977
|
+
STYLE: "radio",
|
|
235978
|
+
TYPE_ALL: "all",
|
|
235979
|
+
TYPE_LEVEL: "level"
|
|
235980
|
+
}
|
|
235981
|
+
}, _setting = {
|
|
235982
|
+
check: {
|
|
235983
|
+
enable: false,
|
|
235984
|
+
autoCheckTrigger: false,
|
|
235985
|
+
chkStyle: _consts.checkbox.STYLE,
|
|
235986
|
+
nocheckInherit: false,
|
|
235987
|
+
chkDisabledInherit: false,
|
|
235988
|
+
radioType: _consts.radio.TYPE_LEVEL,
|
|
235989
|
+
chkboxType: {
|
|
235990
|
+
Y: "ps",
|
|
235991
|
+
N: "ps"
|
|
235992
|
+
}
|
|
235993
|
+
},
|
|
235994
|
+
data: {
|
|
235995
|
+
key: {
|
|
235996
|
+
checked: "checked"
|
|
235997
|
+
}
|
|
235998
|
+
},
|
|
235999
|
+
callback: {
|
|
236000
|
+
beforeCheck: null,
|
|
236001
|
+
onCheck: null
|
|
236002
|
+
}
|
|
236003
|
+
}, _initRoot = function(setting) {
|
|
236004
|
+
var r = data.getRoot(setting);
|
|
236005
|
+
r.radioCheckedList = [];
|
|
236006
|
+
}, _initCache = function(treeId) {}, _bindEvent = function(setting) {
|
|
236007
|
+
var o = setting.treeObj, c = consts.event;
|
|
236008
|
+
o.bind(c.CHECK, (function(event, srcEvent, treeId, node) {
|
|
236009
|
+
event.srcEvent = srcEvent;
|
|
236010
|
+
tools.apply(setting.callback.onCheck, [ event, treeId, node ]);
|
|
236011
|
+
}));
|
|
236012
|
+
}, _unbindEvent = function(setting) {
|
|
236013
|
+
var o = setting.treeObj, c = consts.event;
|
|
236014
|
+
o.unbind(c.CHECK);
|
|
236015
|
+
}, _eventProxy = function(e) {
|
|
236016
|
+
var target = e.target, setting = data.getSetting(e.data.treeId), tId = "", node = null, nodeEventType = "", treeEventType = "", nodeEventCallback = null, treeEventCallback = null;
|
|
236017
|
+
if (tools.eqs(e.type, "mouseover")) {
|
|
236018
|
+
if (setting.check.enable && tools.eqs(target.tagName, "span") && target.getAttribute("treeNode" + consts.id.CHECK) !== null) {
|
|
236019
|
+
tId = tools.getNodeMainDom(target).id;
|
|
236020
|
+
nodeEventType = "mouseoverCheck";
|
|
236021
|
+
}
|
|
236022
|
+
} else if (tools.eqs(e.type, "mouseout")) {
|
|
236023
|
+
if (setting.check.enable && tools.eqs(target.tagName, "span") && target.getAttribute("treeNode" + consts.id.CHECK) !== null) {
|
|
236024
|
+
tId = tools.getNodeMainDom(target).id;
|
|
236025
|
+
nodeEventType = "mouseoutCheck";
|
|
236026
|
+
}
|
|
236027
|
+
} else if (tools.eqs(e.type, "click")) {
|
|
236028
|
+
if (setting.check.enable && tools.eqs(target.tagName, "span") && target.getAttribute("treeNode" + consts.id.CHECK) !== null) {
|
|
236029
|
+
tId = tools.getNodeMainDom(target).id;
|
|
236030
|
+
nodeEventType = "checkNode";
|
|
236031
|
+
}
|
|
236032
|
+
}
|
|
236033
|
+
if (tId.length > 0) {
|
|
236034
|
+
node = data.getNodeCache(setting, tId);
|
|
236035
|
+
switch (nodeEventType) {
|
|
236036
|
+
case "checkNode":
|
|
236037
|
+
nodeEventCallback = _handler.onCheckNode;
|
|
236038
|
+
break;
|
|
236039
|
+
|
|
236040
|
+
case "mouseoverCheck":
|
|
236041
|
+
nodeEventCallback = _handler.onMouseoverCheck;
|
|
236042
|
+
break;
|
|
236043
|
+
|
|
236044
|
+
case "mouseoutCheck":
|
|
236045
|
+
nodeEventCallback = _handler.onMouseoutCheck;
|
|
236046
|
+
break;
|
|
236047
|
+
}
|
|
236048
|
+
}
|
|
236049
|
+
var proxyResult = {
|
|
236050
|
+
stop: nodeEventType === "checkNode",
|
|
236051
|
+
node: node,
|
|
236052
|
+
nodeEventType: nodeEventType,
|
|
236053
|
+
nodeEventCallback: nodeEventCallback,
|
|
236054
|
+
treeEventType: treeEventType,
|
|
236055
|
+
treeEventCallback: treeEventCallback
|
|
236056
|
+
};
|
|
236057
|
+
return proxyResult;
|
|
236058
|
+
}, _initNode = function(setting, level, n, parentNode, isFirstNode, isLastNode, openFlag) {
|
|
236059
|
+
if (!n) return;
|
|
236060
|
+
var checked = data.nodeChecked(setting, n);
|
|
236061
|
+
n.checkedOld = checked;
|
|
236062
|
+
if (typeof n.nocheck == "string") n.nocheck = tools.eqs(n.nocheck, "true");
|
|
236063
|
+
n.nocheck = !!n.nocheck || setting.check.nocheckInherit && parentNode && !!parentNode.nocheck;
|
|
236064
|
+
if (typeof n.chkDisabled == "string") n.chkDisabled = tools.eqs(n.chkDisabled, "true");
|
|
236065
|
+
n.chkDisabled = !!n.chkDisabled || setting.check.chkDisabledInherit && parentNode && !!parentNode.chkDisabled;
|
|
236066
|
+
if (typeof n.halfCheck == "string") n.halfCheck = tools.eqs(n.halfCheck, "true");
|
|
236067
|
+
n.halfCheck = !!n.halfCheck;
|
|
236068
|
+
n.check_Child_State = -1;
|
|
236069
|
+
n.check_Focus = false;
|
|
236070
|
+
n.getCheckStatus = function() {
|
|
236071
|
+
return data.getCheckStatus(setting, n);
|
|
236072
|
+
};
|
|
236073
|
+
if (setting.check.chkStyle == consts.radio.STYLE && setting.check.radioType == consts.radio.TYPE_ALL && checked) {
|
|
236074
|
+
var r = data.getRoot(setting);
|
|
236075
|
+
r.radioCheckedList.push(n);
|
|
236076
|
+
}
|
|
236077
|
+
}, _beforeA = function(setting, node, html) {
|
|
236078
|
+
if (setting.check.enable) {
|
|
236079
|
+
data.makeChkFlag(setting, node);
|
|
236080
|
+
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>");
|
|
236081
|
+
}
|
|
236082
|
+
}, _zTreeTools = function(setting, zTreeTools) {
|
|
236083
|
+
zTreeTools.checkNode = function(node, checked, checkTypeFlag, callbackFlag) {
|
|
236084
|
+
var nodeChecked = data.nodeChecked(setting, node);
|
|
236085
|
+
if (node.chkDisabled === true) return;
|
|
236086
|
+
if (checked !== true && checked !== false) {
|
|
236087
|
+
checked = !nodeChecked;
|
|
236088
|
+
}
|
|
236089
|
+
callbackFlag = !!callbackFlag;
|
|
236090
|
+
if (nodeChecked === checked && !checkTypeFlag) {
|
|
236091
|
+
return;
|
|
236092
|
+
} else if (callbackFlag && tools.apply(this.setting.callback.beforeCheck, [ this.setting.treeId, node ], true) == false) {
|
|
236093
|
+
return;
|
|
236094
|
+
}
|
|
236095
|
+
if (tools.uCanDo(this.setting) && this.setting.check.enable && node.nocheck !== true) {
|
|
236096
|
+
data.nodeChecked(setting, node, checked);
|
|
236097
|
+
var checkObj = $$(node, consts.id.CHECK, this.setting);
|
|
236098
|
+
if (checkTypeFlag || this.setting.check.chkStyle === consts.radio.STYLE) view.checkNodeRelation(this.setting, node);
|
|
236099
|
+
view.setChkClass(this.setting, checkObj, node);
|
|
236100
|
+
view.repairParentChkClassWithSelf(this.setting, node);
|
|
236101
|
+
if (callbackFlag) {
|
|
236102
|
+
this.setting.treeObj.trigger(consts.event.CHECK, [ null, this.setting.treeId, node ]);
|
|
236103
|
+
}
|
|
236104
|
+
}
|
|
236105
|
+
};
|
|
236106
|
+
zTreeTools.checkAllNodes = function(checked) {
|
|
236107
|
+
view.repairAllChk(this.setting, !!checked);
|
|
236108
|
+
};
|
|
236109
|
+
zTreeTools.getCheckedNodes = function(checked) {
|
|
236110
|
+
checked = checked !== false;
|
|
236111
|
+
var children = data.nodeChildren(setting, data.getRoot(this.setting));
|
|
236112
|
+
return data.getTreeCheckedNodes(this.setting, children, checked);
|
|
236113
|
+
};
|
|
236114
|
+
zTreeTools.getChangeCheckedNodes = function() {
|
|
236115
|
+
var children = data.nodeChildren(setting, data.getRoot(this.setting));
|
|
236116
|
+
return data.getTreeChangeCheckedNodes(this.setting, children);
|
|
236117
|
+
};
|
|
236118
|
+
zTreeTools.setChkDisabled = function(node, disabled, inheritParent, inheritChildren) {
|
|
236119
|
+
disabled = !!disabled;
|
|
236120
|
+
inheritParent = !!inheritParent;
|
|
236121
|
+
inheritChildren = !!inheritChildren;
|
|
236122
|
+
view.repairSonChkDisabled(this.setting, node, disabled, inheritChildren);
|
|
236123
|
+
view.repairParentChkDisabled(this.setting, node.getParentNode(), disabled, inheritParent);
|
|
236124
|
+
};
|
|
236125
|
+
var _updateNode = zTreeTools.updateNode;
|
|
236126
|
+
zTreeTools.updateNode = function(node, checkTypeFlag) {
|
|
236127
|
+
if (_updateNode) _updateNode.apply(zTreeTools, arguments);
|
|
236128
|
+
if (!node || !this.setting.check.enable) return;
|
|
236129
|
+
var nObj = $$(node, this.setting);
|
|
236130
|
+
if (nObj.get(0) && tools.uCanDo(this.setting)) {
|
|
236131
|
+
var checkObj = $$(node, consts.id.CHECK, this.setting);
|
|
236132
|
+
if (checkTypeFlag == true || this.setting.check.chkStyle === consts.radio.STYLE) view.checkNodeRelation(this.setting, node);
|
|
236133
|
+
view.setChkClass(this.setting, checkObj, node);
|
|
236134
|
+
view.repairParentChkClassWithSelf(this.setting, node);
|
|
236135
|
+
}
|
|
236136
|
+
};
|
|
236137
|
+
}, _data = {
|
|
236138
|
+
getRadioCheckedList: function(setting) {
|
|
236139
|
+
var checkedList = data.getRoot(setting).radioCheckedList;
|
|
236140
|
+
for (var i = 0, j = checkedList.length; i < j; i++) {
|
|
236141
|
+
if (!data.getNodeCache(setting, checkedList[i].tId)) {
|
|
236142
|
+
checkedList.splice(i, 1);
|
|
236143
|
+
i--;
|
|
236144
|
+
j--;
|
|
236145
|
+
}
|
|
236146
|
+
}
|
|
236147
|
+
return checkedList;
|
|
236148
|
+
},
|
|
236149
|
+
getCheckStatus: function(setting, node) {
|
|
236150
|
+
if (!setting.check.enable || node.nocheck || node.chkDisabled) return null;
|
|
236151
|
+
var checked = data.nodeChecked(setting, node), r = {
|
|
236152
|
+
checked: checked,
|
|
236153
|
+
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
|
|
236154
|
+
};
|
|
236155
|
+
return r;
|
|
236156
|
+
},
|
|
236157
|
+
getTreeCheckedNodes: function(setting, nodes, checked, results) {
|
|
236158
|
+
if (!nodes) return [];
|
|
236159
|
+
var onlyOne = checked && setting.check.chkStyle == consts.radio.STYLE && setting.check.radioType == consts.radio.TYPE_ALL;
|
|
236160
|
+
results = !results ? [] : results;
|
|
236161
|
+
for (var i = 0, l = nodes.length; i < l; i++) {
|
|
236162
|
+
var node = nodes[i];
|
|
236163
|
+
var children = data.nodeChildren(setting, node);
|
|
236164
|
+
var nodeChecked = data.nodeChecked(setting, node);
|
|
236165
|
+
if (node.nocheck !== true && node.chkDisabled !== true && nodeChecked == checked) {
|
|
236166
|
+
results.push(node);
|
|
236167
|
+
if (onlyOne) {
|
|
236168
|
+
break;
|
|
236169
|
+
}
|
|
236170
|
+
}
|
|
236171
|
+
data.getTreeCheckedNodes(setting, children, checked, results);
|
|
236172
|
+
if (onlyOne && results.length > 0) {
|
|
236173
|
+
break;
|
|
236174
|
+
}
|
|
236175
|
+
}
|
|
236176
|
+
return results;
|
|
236177
|
+
},
|
|
236178
|
+
getTreeChangeCheckedNodes: function(setting, nodes, results) {
|
|
236179
|
+
if (!nodes) return [];
|
|
236180
|
+
results = !results ? [] : results;
|
|
236181
|
+
for (var i = 0, l = nodes.length; i < l; i++) {
|
|
236182
|
+
var node = nodes[i];
|
|
236183
|
+
var children = data.nodeChildren(setting, node);
|
|
236184
|
+
var nodeChecked = data.nodeChecked(setting, node);
|
|
236185
|
+
if (node.nocheck !== true && node.chkDisabled !== true && nodeChecked != node.checkedOld) {
|
|
236186
|
+
results.push(node);
|
|
236187
|
+
}
|
|
236188
|
+
data.getTreeChangeCheckedNodes(setting, children, results);
|
|
236189
|
+
}
|
|
236190
|
+
return results;
|
|
236191
|
+
},
|
|
236192
|
+
makeChkFlag: function(setting, node) {
|
|
236193
|
+
if (!node) return;
|
|
236194
|
+
var chkFlag = -1;
|
|
236195
|
+
var children = data.nodeChildren(setting, node);
|
|
236196
|
+
if (children) {
|
|
236197
|
+
for (var i = 0, l = children.length; i < l; i++) {
|
|
236198
|
+
var cNode = children[i];
|
|
236199
|
+
var nodeChecked = data.nodeChecked(setting, cNode);
|
|
236200
|
+
var tmp = -1;
|
|
236201
|
+
if (setting.check.chkStyle == consts.radio.STYLE) {
|
|
236202
|
+
if (cNode.nocheck === true || cNode.chkDisabled === true) {
|
|
236203
|
+
tmp = cNode.check_Child_State;
|
|
236204
|
+
} else if (cNode.halfCheck === true) {
|
|
236205
|
+
tmp = 2;
|
|
236206
|
+
} else if (nodeChecked) {
|
|
236207
|
+
tmp = 2;
|
|
236208
|
+
} else {
|
|
236209
|
+
tmp = cNode.check_Child_State > 0 ? 2 : 0;
|
|
236210
|
+
}
|
|
236211
|
+
if (tmp == 2) {
|
|
236212
|
+
chkFlag = 2;
|
|
236213
|
+
break;
|
|
236214
|
+
} else if (tmp == 0) {
|
|
236215
|
+
chkFlag = 0;
|
|
236216
|
+
}
|
|
236217
|
+
} else if (setting.check.chkStyle == consts.checkbox.STYLE) {
|
|
236218
|
+
if (cNode.nocheck === true || cNode.chkDisabled === true) {
|
|
236219
|
+
tmp = cNode.check_Child_State;
|
|
236220
|
+
} else if (cNode.halfCheck === true) {
|
|
236221
|
+
tmp = 1;
|
|
236222
|
+
} else if (nodeChecked) {
|
|
236223
|
+
tmp = cNode.check_Child_State === -1 || cNode.check_Child_State === 2 ? 2 : 1;
|
|
236224
|
+
} else {
|
|
236225
|
+
tmp = cNode.check_Child_State > 0 ? 1 : 0;
|
|
236226
|
+
}
|
|
236227
|
+
if (tmp === 1) {
|
|
236228
|
+
chkFlag = 1;
|
|
236229
|
+
break;
|
|
236230
|
+
} else if (tmp === 2 && chkFlag > -1 && i > 0 && tmp !== chkFlag) {
|
|
236231
|
+
chkFlag = 1;
|
|
236232
|
+
break;
|
|
236233
|
+
} else if (chkFlag === 2 && tmp > -1 && tmp < 2) {
|
|
236234
|
+
chkFlag = 1;
|
|
236235
|
+
break;
|
|
236236
|
+
} else if (tmp > -1) {
|
|
236237
|
+
chkFlag = tmp;
|
|
236238
|
+
}
|
|
236239
|
+
}
|
|
236240
|
+
}
|
|
236241
|
+
}
|
|
236242
|
+
node.check_Child_State = chkFlag;
|
|
236243
|
+
}
|
|
236244
|
+
}, _event = {}, _handler = {
|
|
236245
|
+
onCheckNode: function(event, node) {
|
|
236246
|
+
if (node.chkDisabled === true) return false;
|
|
236247
|
+
var setting = data.getSetting(event.data.treeId);
|
|
236248
|
+
if (tools.apply(setting.callback.beforeCheck, [ setting.treeId, node ], true) == false) return true;
|
|
236249
|
+
var nodeChecked = data.nodeChecked(setting, node);
|
|
236250
|
+
data.nodeChecked(setting, node, !nodeChecked);
|
|
236251
|
+
view.checkNodeRelation(setting, node);
|
|
236252
|
+
var checkObj = $$(node, consts.id.CHECK, setting);
|
|
236253
|
+
view.setChkClass(setting, checkObj, node);
|
|
236254
|
+
view.repairParentChkClassWithSelf(setting, node);
|
|
236255
|
+
setting.treeObj.trigger(consts.event.CHECK, [ event, setting.treeId, node ]);
|
|
236256
|
+
return true;
|
|
236257
|
+
},
|
|
236258
|
+
onMouseoverCheck: function(event, node) {
|
|
236259
|
+
if (node.chkDisabled === true) return false;
|
|
236260
|
+
var setting = data.getSetting(event.data.treeId), checkObj = $$(node, consts.id.CHECK, setting);
|
|
236261
|
+
node.check_Focus = true;
|
|
236262
|
+
view.setChkClass(setting, checkObj, node);
|
|
236263
|
+
return true;
|
|
236264
|
+
},
|
|
236265
|
+
onMouseoutCheck: function(event, node) {
|
|
236266
|
+
if (node.chkDisabled === true) return false;
|
|
236267
|
+
var setting = data.getSetting(event.data.treeId), checkObj = $$(node, consts.id.CHECK, setting);
|
|
236268
|
+
node.check_Focus = false;
|
|
236269
|
+
view.setChkClass(setting, checkObj, node);
|
|
236270
|
+
return true;
|
|
236271
|
+
}
|
|
236272
|
+
}, _tools = {}, _view = {
|
|
236273
|
+
checkNodeRelation: function(setting, node) {
|
|
236274
|
+
var pNode, i, l, r = consts.radio;
|
|
236275
|
+
var nodeChecked = data.nodeChecked(setting, node);
|
|
236276
|
+
if (setting.check.chkStyle == r.STYLE) {
|
|
236277
|
+
var checkedList = data.getRadioCheckedList(setting);
|
|
236278
|
+
if (nodeChecked) {
|
|
236279
|
+
if (setting.check.radioType == r.TYPE_ALL) {
|
|
236280
|
+
for (i = checkedList.length - 1; i >= 0; i--) {
|
|
236281
|
+
pNode = checkedList[i];
|
|
236282
|
+
var pNodeChecked = data.nodeChecked(setting, pNode);
|
|
236283
|
+
if (pNodeChecked && pNode != node) {
|
|
236284
|
+
data.nodeChecked(setting, pNode, false);
|
|
236285
|
+
checkedList.splice(i, 1);
|
|
236286
|
+
view.setChkClass(setting, $$(pNode, consts.id.CHECK, setting), pNode);
|
|
236287
|
+
if (pNode.parentTId != node.parentTId) {
|
|
236288
|
+
view.repairParentChkClassWithSelf(setting, pNode);
|
|
236289
|
+
}
|
|
236290
|
+
}
|
|
236291
|
+
}
|
|
236292
|
+
checkedList.push(node);
|
|
236293
|
+
} else {
|
|
236294
|
+
var parentNode = node.parentTId ? node.getParentNode() : data.getRoot(setting);
|
|
236295
|
+
var children = data.nodeChildren(setting, parentNode);
|
|
236296
|
+
for (i = 0, l = children.length; i < l; i++) {
|
|
236297
|
+
pNode = children[i];
|
|
236298
|
+
var pNodeChecked = data.nodeChecked(setting, pNode);
|
|
236299
|
+
if (pNodeChecked && pNode != node) {
|
|
236300
|
+
data.nodeChecked(setting, pNode, false);
|
|
236301
|
+
view.setChkClass(setting, $$(pNode, consts.id.CHECK, setting), pNode);
|
|
236302
|
+
}
|
|
236303
|
+
}
|
|
236304
|
+
}
|
|
236305
|
+
} else if (setting.check.radioType == r.TYPE_ALL) {
|
|
236306
|
+
for (i = 0, l = checkedList.length; i < l; i++) {
|
|
236307
|
+
if (node == checkedList[i]) {
|
|
236308
|
+
checkedList.splice(i, 1);
|
|
236309
|
+
break;
|
|
236310
|
+
}
|
|
236311
|
+
}
|
|
236312
|
+
}
|
|
236313
|
+
} else {
|
|
236314
|
+
var children = data.nodeChildren(setting, node);
|
|
236315
|
+
if (nodeChecked && (!children || children.length == 0 || setting.check.chkboxType.Y.indexOf("s") > -1)) {
|
|
236316
|
+
view.setSonNodeCheckBox(setting, node, true);
|
|
236317
|
+
}
|
|
236318
|
+
if (!nodeChecked && (!children || children.length == 0 || setting.check.chkboxType.N.indexOf("s") > -1)) {
|
|
236319
|
+
view.setSonNodeCheckBox(setting, node, false);
|
|
236320
|
+
}
|
|
236321
|
+
if (nodeChecked && setting.check.chkboxType.Y.indexOf("p") > -1) {
|
|
236322
|
+
view.setParentNodeCheckBox(setting, node, true);
|
|
236323
|
+
}
|
|
236324
|
+
if (!nodeChecked && setting.check.chkboxType.N.indexOf("p") > -1) {
|
|
236325
|
+
view.setParentNodeCheckBox(setting, node, false);
|
|
236326
|
+
}
|
|
236327
|
+
}
|
|
236328
|
+
},
|
|
236329
|
+
makeChkClass: function(setting, node) {
|
|
236330
|
+
var c = consts.checkbox, r = consts.radio, fullStyle = "";
|
|
236331
|
+
var nodeChecked = data.nodeChecked(setting, node);
|
|
236332
|
+
if (node.chkDisabled === true) {
|
|
236333
|
+
fullStyle = c.DISABLED;
|
|
236334
|
+
} else if (node.halfCheck) {
|
|
236335
|
+
fullStyle = c.PART;
|
|
236336
|
+
} else if (setting.check.chkStyle == r.STYLE) {
|
|
236337
|
+
fullStyle = node.check_Child_State < 1 ? c.FULL : c.PART;
|
|
236338
|
+
} else {
|
|
236339
|
+
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;
|
|
236340
|
+
}
|
|
236341
|
+
var chkName = setting.check.chkStyle + "_" + (nodeChecked ? c.TRUE : c.FALSE) + "_" + fullStyle;
|
|
236342
|
+
chkName = node.check_Focus && node.chkDisabled !== true ? chkName + "_" + c.FOCUS : chkName;
|
|
236343
|
+
return consts.className.BUTTON + " " + c.DEFAULT + " " + chkName;
|
|
236344
|
+
},
|
|
236345
|
+
repairAllChk: function(setting, checked) {
|
|
236346
|
+
if (setting.check.enable && setting.check.chkStyle === consts.checkbox.STYLE) {
|
|
236347
|
+
var root = data.getRoot(setting);
|
|
236348
|
+
var children = data.nodeChildren(setting, root);
|
|
236349
|
+
for (var i = 0, l = children.length; i < l; i++) {
|
|
236350
|
+
var node = children[i];
|
|
236351
|
+
if (node.nocheck !== true && node.chkDisabled !== true) {
|
|
236352
|
+
data.nodeChecked(setting, node, checked);
|
|
236353
|
+
}
|
|
236354
|
+
view.setSonNodeCheckBox(setting, node, checked);
|
|
236355
|
+
}
|
|
236356
|
+
}
|
|
236357
|
+
},
|
|
236358
|
+
repairChkClass: function(setting, node) {
|
|
236359
|
+
if (!node) return;
|
|
236360
|
+
data.makeChkFlag(setting, node);
|
|
236361
|
+
if (node.nocheck !== true) {
|
|
236362
|
+
var checkObj = $$(node, consts.id.CHECK, setting);
|
|
236363
|
+
view.setChkClass(setting, checkObj, node);
|
|
236364
|
+
}
|
|
236365
|
+
},
|
|
236366
|
+
repairParentChkClass: function(setting, node) {
|
|
236367
|
+
if (!node || !node.parentTId) return;
|
|
236368
|
+
var pNode = node.getParentNode();
|
|
236369
|
+
view.repairChkClass(setting, pNode);
|
|
236370
|
+
view.repairParentChkClass(setting, pNode);
|
|
236371
|
+
},
|
|
236372
|
+
repairParentChkClassWithSelf: function(setting, node) {
|
|
236373
|
+
if (!node) return;
|
|
236374
|
+
var children = data.nodeChildren(setting, node);
|
|
236375
|
+
if (children && children.length > 0) {
|
|
236376
|
+
view.repairParentChkClass(setting, children[0]);
|
|
236377
|
+
} else {
|
|
236378
|
+
view.repairParentChkClass(setting, node);
|
|
236379
|
+
}
|
|
236380
|
+
},
|
|
236381
|
+
repairSonChkDisabled: function(setting, node, chkDisabled, inherit) {
|
|
236382
|
+
if (!node) return;
|
|
236383
|
+
if (node.chkDisabled != chkDisabled) {
|
|
236384
|
+
node.chkDisabled = chkDisabled;
|
|
236385
|
+
}
|
|
236386
|
+
view.repairChkClass(setting, node);
|
|
236387
|
+
var children = data.nodeChildren(setting, node);
|
|
236388
|
+
if (children && inherit) {
|
|
236389
|
+
for (var i = 0, l = children.length; i < l; i++) {
|
|
236390
|
+
var sNode = children[i];
|
|
236391
|
+
view.repairSonChkDisabled(setting, sNode, chkDisabled, inherit);
|
|
236392
|
+
}
|
|
236393
|
+
}
|
|
236394
|
+
},
|
|
236395
|
+
repairParentChkDisabled: function(setting, node, chkDisabled, inherit) {
|
|
236396
|
+
if (!node) return;
|
|
236397
|
+
if (node.chkDisabled != chkDisabled && inherit) {
|
|
236398
|
+
node.chkDisabled = chkDisabled;
|
|
236399
|
+
}
|
|
236400
|
+
view.repairChkClass(setting, node);
|
|
236401
|
+
view.repairParentChkDisabled(setting, node.getParentNode(), chkDisabled, inherit);
|
|
236402
|
+
},
|
|
236403
|
+
setChkClass: function(setting, obj, node) {
|
|
236404
|
+
if (!obj) return;
|
|
236405
|
+
if (node.nocheck === true) {
|
|
236406
|
+
obj.hide();
|
|
236407
|
+
} else {
|
|
236408
|
+
obj.show();
|
|
236409
|
+
}
|
|
236410
|
+
obj.attr("class", view.makeChkClass(setting, node));
|
|
236411
|
+
},
|
|
236412
|
+
setParentNodeCheckBox: function(setting, node, value, srcNode) {
|
|
236413
|
+
var checkObj = $$(node, consts.id.CHECK, setting);
|
|
236414
|
+
if (!srcNode) srcNode = node;
|
|
236415
|
+
data.makeChkFlag(setting, node);
|
|
236416
|
+
if (node.nocheck !== true && node.chkDisabled !== true) {
|
|
236417
|
+
data.nodeChecked(setting, node, value);
|
|
236418
|
+
view.setChkClass(setting, checkObj, node);
|
|
236419
|
+
if (setting.check.autoCheckTrigger && node != srcNode) {
|
|
236420
|
+
setting.treeObj.trigger(consts.event.CHECK, [ null, setting.treeId, node ]);
|
|
236421
|
+
}
|
|
236422
|
+
}
|
|
236423
|
+
if (node.parentTId) {
|
|
236424
|
+
var pSign = true;
|
|
236425
|
+
if (!value) {
|
|
236426
|
+
var pNodes = data.nodeChildren(setting, node.getParentNode());
|
|
236427
|
+
for (var i = 0, l = pNodes.length; i < l; i++) {
|
|
236428
|
+
var pNode = pNodes[i];
|
|
236429
|
+
var nodeChecked = data.nodeChecked(setting, pNode);
|
|
236430
|
+
if (pNode.nocheck !== true && pNode.chkDisabled !== true && nodeChecked || (pNode.nocheck === true || pNode.chkDisabled === true) && pNode.check_Child_State > 0) {
|
|
236431
|
+
pSign = false;
|
|
236432
|
+
break;
|
|
236433
|
+
}
|
|
236434
|
+
}
|
|
236435
|
+
}
|
|
236436
|
+
if (pSign) {
|
|
236437
|
+
view.setParentNodeCheckBox(setting, node.getParentNode(), value, srcNode);
|
|
236438
|
+
}
|
|
236439
|
+
}
|
|
236440
|
+
},
|
|
236441
|
+
setSonNodeCheckBox: function(setting, node, value, srcNode) {
|
|
236442
|
+
if (!node) return;
|
|
236443
|
+
var checkObj = $$(node, consts.id.CHECK, setting);
|
|
236444
|
+
if (!srcNode) srcNode = node;
|
|
236445
|
+
var hasDisable = false;
|
|
236446
|
+
var children = data.nodeChildren(setting, node);
|
|
236447
|
+
if (children) {
|
|
236448
|
+
for (var i = 0, l = children.length; i < l; i++) {
|
|
236449
|
+
var sNode = children[i];
|
|
236450
|
+
view.setSonNodeCheckBox(setting, sNode, value, srcNode);
|
|
236451
|
+
if (sNode.chkDisabled === true) hasDisable = true;
|
|
236452
|
+
}
|
|
236453
|
+
}
|
|
236454
|
+
if (node != data.getRoot(setting) && node.chkDisabled !== true) {
|
|
236455
|
+
if (hasDisable && node.nocheck !== true) {
|
|
236456
|
+
data.makeChkFlag(setting, node);
|
|
236457
|
+
}
|
|
236458
|
+
if (node.nocheck !== true && node.chkDisabled !== true) {
|
|
236459
|
+
data.nodeChecked(setting, node, value);
|
|
236460
|
+
if (!hasDisable) node.check_Child_State = children && children.length > 0 ? value ? 2 : 0 : -1;
|
|
236461
|
+
} else {
|
|
236462
|
+
node.check_Child_State = -1;
|
|
236463
|
+
}
|
|
236464
|
+
view.setChkClass(setting, checkObj, node);
|
|
236465
|
+
if (setting.check.autoCheckTrigger && node != srcNode && node.nocheck !== true && node.chkDisabled !== true) {
|
|
236466
|
+
setting.treeObj.trigger(consts.event.CHECK, [ null, setting.treeId, node ]);
|
|
236467
|
+
}
|
|
236468
|
+
}
|
|
236469
|
+
}
|
|
236470
|
+
}, _z = {
|
|
236471
|
+
tools: _tools,
|
|
236472
|
+
view: _view,
|
|
236473
|
+
event: _event,
|
|
236474
|
+
data: _data
|
|
236475
|
+
};
|
|
236476
|
+
$.extend(true, $.fn.zTree.consts, _consts);
|
|
236477
|
+
$.extend(true, $.fn.zTree._z, _z);
|
|
236478
|
+
var zt = $.fn.zTree, tools = zt._z.tools, consts = zt.consts, view = zt._z.view, data = zt._z.data, event = zt._z.event, $$ = tools.$;
|
|
236479
|
+
data.nodeChecked = function(setting, node, newChecked) {
|
|
236480
|
+
if (!node) {
|
|
236481
|
+
return false;
|
|
236482
|
+
}
|
|
236483
|
+
var key = setting.data.key.checked;
|
|
236484
|
+
if (typeof newChecked !== "undefined") {
|
|
236485
|
+
if (typeof newChecked === "string") {
|
|
236486
|
+
newChecked = tools.eqs(newChecked, "true");
|
|
236487
|
+
}
|
|
236488
|
+
newChecked = !!newChecked;
|
|
236489
|
+
node[key] = newChecked;
|
|
236490
|
+
} else if (typeof node[key] == "string") {
|
|
236491
|
+
node[key] = tools.eqs(node[key], "true");
|
|
236492
|
+
} else {
|
|
236493
|
+
node[key] = !!node[key];
|
|
236494
|
+
}
|
|
236495
|
+
return node[key];
|
|
236496
|
+
};
|
|
236497
|
+
data.exSetting(_setting);
|
|
236498
|
+
data.addInitBind(_bindEvent);
|
|
236499
|
+
data.addInitUnBind(_unbindEvent);
|
|
236500
|
+
data.addInitCache(_initCache);
|
|
236501
|
+
data.addInitNode(_initNode);
|
|
236502
|
+
data.addInitProxy(_eventProxy, true);
|
|
236503
|
+
data.addInitRoot(_initRoot);
|
|
236504
|
+
data.addBeforeA(_beforeA);
|
|
236505
|
+
data.addZTreeTools(_zTreeTools);
|
|
236506
|
+
var _createNodes = view.createNodes;
|
|
236507
|
+
view.createNodes = function(setting, level, nodes, parentNode, index) {
|
|
236508
|
+
if (_createNodes) _createNodes.apply(view, arguments);
|
|
236509
|
+
if (!nodes) return;
|
|
236510
|
+
view.repairParentChkClassWithSelf(setting, parentNode);
|
|
236511
|
+
};
|
|
236512
|
+
var _removeNode = view.removeNode;
|
|
236513
|
+
view.removeNode = function(setting, node) {
|
|
236514
|
+
var parentNode = node.getParentNode();
|
|
236515
|
+
if (_removeNode) _removeNode.apply(view, arguments);
|
|
236516
|
+
if (!node || !parentNode) return;
|
|
236517
|
+
view.repairChkClass(setting, parentNode);
|
|
236518
|
+
view.repairParentChkClass(setting, parentNode);
|
|
236519
|
+
};
|
|
236520
|
+
var _appendNodes = view.appendNodes;
|
|
236521
|
+
view.appendNodes = function(setting, level, nodes, parentNode, index, initFlag, openFlag) {
|
|
236522
|
+
var html = "";
|
|
236523
|
+
if (_appendNodes) {
|
|
236524
|
+
html = _appendNodes.apply(view, arguments);
|
|
236525
|
+
}
|
|
236526
|
+
if (parentNode) {
|
|
236527
|
+
data.makeChkFlag(setting, parentNode);
|
|
236528
|
+
}
|
|
236529
|
+
return html;
|
|
236530
|
+
};
|
|
236531
|
+
})(jQuery);
|
|
236532
|
+
|
|
236533
|
+
(function($) {
|
|
236534
|
+
var _consts = {
|
|
236535
|
+
event: {
|
|
236536
|
+
DRAG: "ztree_drag",
|
|
236537
|
+
DROP: "ztree_drop",
|
|
236538
|
+
RENAME: "ztree_rename",
|
|
236539
|
+
DRAGMOVE: "ztree_dragmove"
|
|
236540
|
+
},
|
|
236541
|
+
id: {
|
|
236542
|
+
EDIT: "_edit",
|
|
236543
|
+
INPUT: "_input",
|
|
236544
|
+
REMOVE: "_remove"
|
|
236545
|
+
},
|
|
236546
|
+
move: {
|
|
236547
|
+
TYPE_INNER: "inner",
|
|
236548
|
+
TYPE_PREV: "prev",
|
|
236549
|
+
TYPE_NEXT: "next"
|
|
236550
|
+
},
|
|
236551
|
+
node: {
|
|
236552
|
+
CURSELECTED_EDIT: "curSelectedNode_Edit",
|
|
236553
|
+
TMPTARGET_TREE: "tmpTargetzTree",
|
|
236554
|
+
TMPTARGET_NODE: "tmpTargetNode"
|
|
236555
|
+
}
|
|
236556
|
+
}, _setting = {
|
|
236557
|
+
edit: {
|
|
236558
|
+
enable: false,
|
|
236559
|
+
editNameSelectAll: false,
|
|
236560
|
+
showRemoveBtn: true,
|
|
236561
|
+
showRenameBtn: true,
|
|
236562
|
+
removeTitle: "remove",
|
|
236563
|
+
renameTitle: "rename",
|
|
236564
|
+
drag: {
|
|
236565
|
+
autoExpandTrigger: false,
|
|
236566
|
+
isCopy: true,
|
|
236567
|
+
isMove: true,
|
|
236568
|
+
prev: true,
|
|
236569
|
+
next: true,
|
|
236570
|
+
inner: true,
|
|
236571
|
+
minMoveSize: 5,
|
|
236572
|
+
borderMax: 10,
|
|
236573
|
+
borderMin: -5,
|
|
236574
|
+
maxShowNodeNum: 5,
|
|
236575
|
+
autoOpenTime: 500
|
|
236576
|
+
}
|
|
236577
|
+
},
|
|
236578
|
+
view: {
|
|
236579
|
+
addHoverDom: null,
|
|
236580
|
+
removeHoverDom: null
|
|
236581
|
+
},
|
|
236582
|
+
callback: {
|
|
236583
|
+
beforeDrag: null,
|
|
236584
|
+
beforeDragOpen: null,
|
|
236585
|
+
beforeDrop: null,
|
|
236586
|
+
beforeEditName: null,
|
|
236587
|
+
beforeRename: null,
|
|
236588
|
+
onDrag: null,
|
|
236589
|
+
onDragMove: null,
|
|
236590
|
+
onDrop: null,
|
|
236591
|
+
onRename: null
|
|
236592
|
+
}
|
|
236593
|
+
}, _initRoot = function(setting) {
|
|
236594
|
+
var r = data.getRoot(setting), rs = data.getRoots();
|
|
236595
|
+
r.curEditNode = null;
|
|
236596
|
+
r.curEditInput = null;
|
|
236597
|
+
r.curHoverNode = null;
|
|
236598
|
+
r.dragFlag = 0;
|
|
236599
|
+
r.dragNodeShowBefore = [];
|
|
236600
|
+
r.dragMaskList = new Array;
|
|
236601
|
+
rs.showHoverDom = true;
|
|
236602
|
+
}, _initCache = function(treeId) {}, _bindEvent = function(setting) {
|
|
236603
|
+
var o = setting.treeObj;
|
|
236604
|
+
var c = consts.event;
|
|
236605
|
+
o.bind(c.RENAME, (function(event, treeId, treeNode, isCancel) {
|
|
236606
|
+
tools.apply(setting.callback.onRename, [ event, treeId, treeNode, isCancel ]);
|
|
236607
|
+
}));
|
|
236608
|
+
o.bind(c.DRAG, (function(event, srcEvent, treeId, treeNodes) {
|
|
236609
|
+
tools.apply(setting.callback.onDrag, [ srcEvent, treeId, treeNodes ]);
|
|
236610
|
+
}));
|
|
236611
|
+
o.bind(c.DRAGMOVE, (function(event, srcEvent, treeId, treeNodes) {
|
|
236612
|
+
tools.apply(setting.callback.onDragMove, [ srcEvent, treeId, treeNodes ]);
|
|
236613
|
+
}));
|
|
236614
|
+
o.bind(c.DROP, (function(event, srcEvent, treeId, treeNodes, targetNode, moveType, isCopy) {
|
|
236615
|
+
tools.apply(setting.callback.onDrop, [ srcEvent, treeId, treeNodes, targetNode, moveType, isCopy ]);
|
|
236616
|
+
}));
|
|
236617
|
+
}, _unbindEvent = function(setting) {
|
|
236618
|
+
var o = setting.treeObj;
|
|
236619
|
+
var c = consts.event;
|
|
236620
|
+
o.unbind(c.RENAME);
|
|
236621
|
+
o.unbind(c.DRAG);
|
|
236622
|
+
o.unbind(c.DRAGMOVE);
|
|
236623
|
+
o.unbind(c.DROP);
|
|
236624
|
+
}, _eventProxy = function(e) {
|
|
236625
|
+
var target = e.target, setting = data.getSetting(e.data.treeId), relatedTarget = e.relatedTarget, tId = "", node = null, nodeEventType = "", treeEventType = "", nodeEventCallback = null, treeEventCallback = null, tmp = null;
|
|
236626
|
+
if (tools.eqs(e.type, "mouseover")) {
|
|
236627
|
+
tmp = tools.getMDom(setting, target, [ {
|
|
236628
|
+
tagName: "a",
|
|
236629
|
+
attrName: "treeNode" + consts.id.A
|
|
236630
|
+
} ]);
|
|
236631
|
+
if (tmp) {
|
|
236632
|
+
tId = tools.getNodeMainDom(tmp).id;
|
|
236633
|
+
nodeEventType = "hoverOverNode";
|
|
236634
|
+
}
|
|
236635
|
+
} else if (tools.eqs(e.type, "mouseout")) {
|
|
236636
|
+
tmp = tools.getMDom(setting, relatedTarget, [ {
|
|
236637
|
+
tagName: "a",
|
|
236638
|
+
attrName: "treeNode" + consts.id.A
|
|
236639
|
+
} ]);
|
|
236640
|
+
if (!tmp) {
|
|
236641
|
+
tId = "remove";
|
|
236642
|
+
nodeEventType = "hoverOutNode";
|
|
236643
|
+
}
|
|
236644
|
+
} else if (tools.eqs(e.type, "mousedown")) {
|
|
236645
|
+
tmp = tools.getMDom(setting, target, [ {
|
|
236646
|
+
tagName: "a",
|
|
236647
|
+
attrName: "treeNode" + consts.id.A
|
|
236648
|
+
} ]);
|
|
236649
|
+
if (tmp) {
|
|
236650
|
+
tId = tools.getNodeMainDom(tmp).id;
|
|
236651
|
+
nodeEventType = "mousedownNode";
|
|
236652
|
+
}
|
|
236653
|
+
}
|
|
236654
|
+
if (tId.length > 0) {
|
|
236655
|
+
node = data.getNodeCache(setting, tId);
|
|
236656
|
+
switch (nodeEventType) {
|
|
236657
|
+
case "mousedownNode":
|
|
236658
|
+
nodeEventCallback = _handler.onMousedownNode;
|
|
236659
|
+
break;
|
|
236660
|
+
|
|
236661
|
+
case "hoverOverNode":
|
|
236662
|
+
nodeEventCallback = _handler.onHoverOverNode;
|
|
236663
|
+
break;
|
|
236664
|
+
|
|
236665
|
+
case "hoverOutNode":
|
|
236666
|
+
nodeEventCallback = _handler.onHoverOutNode;
|
|
236667
|
+
break;
|
|
236668
|
+
}
|
|
236669
|
+
}
|
|
236670
|
+
var proxyResult = {
|
|
236671
|
+
stop: false,
|
|
236672
|
+
node: node,
|
|
236673
|
+
nodeEventType: nodeEventType,
|
|
236674
|
+
nodeEventCallback: nodeEventCallback,
|
|
236675
|
+
treeEventType: treeEventType,
|
|
236676
|
+
treeEventCallback: treeEventCallback
|
|
236677
|
+
};
|
|
236678
|
+
return proxyResult;
|
|
236679
|
+
}, _initNode = function(setting, level, n, parentNode, isFirstNode, isLastNode, openFlag) {
|
|
236680
|
+
if (!n) return;
|
|
236681
|
+
n.isHover = false;
|
|
236682
|
+
n.editNameFlag = false;
|
|
236683
|
+
}, _zTreeTools = function(setting, zTreeTools) {
|
|
236684
|
+
zTreeTools.cancelEditName = function(newName) {
|
|
236685
|
+
var root = data.getRoot(this.setting);
|
|
236686
|
+
if (!root.curEditNode) return;
|
|
236687
|
+
view.cancelCurEditNode(this.setting, newName ? newName : null, true);
|
|
236688
|
+
};
|
|
236689
|
+
zTreeTools.copyNode = function(targetNode, node, moveType, isSilent) {
|
|
236690
|
+
if (!node) return null;
|
|
236691
|
+
var isParent = data.nodeIsParent(setting, targetNode);
|
|
236692
|
+
if (targetNode && !isParent && this.setting.data.keep.leaf && moveType === consts.move.TYPE_INNER) return null;
|
|
236693
|
+
var _this = this, newNode = tools.clone(node);
|
|
236694
|
+
if (!targetNode) {
|
|
236695
|
+
targetNode = null;
|
|
236696
|
+
moveType = consts.move.TYPE_INNER;
|
|
236697
|
+
}
|
|
236698
|
+
if (moveType == consts.move.TYPE_INNER) {
|
|
236699
|
+
function copyCallback() {
|
|
236700
|
+
view.addNodes(_this.setting, targetNode, -1, [ newNode ], isSilent);
|
|
236701
|
+
}
|
|
236702
|
+
if (tools.canAsync(this.setting, targetNode)) {
|
|
236703
|
+
view.asyncNode(this.setting, targetNode, isSilent, copyCallback);
|
|
236704
|
+
} else {
|
|
236705
|
+
copyCallback();
|
|
236706
|
+
}
|
|
236707
|
+
} else {
|
|
236708
|
+
view.addNodes(this.setting, targetNode.parentNode, -1, [ newNode ], isSilent);
|
|
236709
|
+
view.moveNode(this.setting, targetNode, newNode, moveType, false, isSilent);
|
|
236710
|
+
}
|
|
236711
|
+
return newNode;
|
|
236712
|
+
};
|
|
236713
|
+
zTreeTools.editName = function(node) {
|
|
236714
|
+
if (!node || !node.tId || node !== data.getNodeCache(this.setting, node.tId)) return;
|
|
236715
|
+
if (node.parentTId) view.expandCollapseParentNode(this.setting, node.getParentNode(), true);
|
|
236716
|
+
view.editNode(this.setting, node);
|
|
236717
|
+
};
|
|
236718
|
+
zTreeTools.moveNode = function(targetNode, node, moveType, isSilent) {
|
|
236719
|
+
if (!node) return node;
|
|
236720
|
+
var isParent = data.nodeIsParent(setting, targetNode);
|
|
236721
|
+
if (targetNode && !isParent && this.setting.data.keep.leaf && moveType === consts.move.TYPE_INNER) {
|
|
236722
|
+
return null;
|
|
236723
|
+
} else if (targetNode && (node.parentTId == targetNode.tId && moveType == consts.move.TYPE_INNER || $$(node, this.setting).find("#" + targetNode.tId).length > 0)) {
|
|
236724
|
+
return null;
|
|
236725
|
+
} else if (!targetNode) {
|
|
236726
|
+
targetNode = null;
|
|
236727
|
+
}
|
|
236728
|
+
var _this = this;
|
|
236729
|
+
function moveCallback() {
|
|
236730
|
+
view.moveNode(_this.setting, targetNode, node, moveType, false, isSilent);
|
|
236731
|
+
}
|
|
236732
|
+
if (tools.canAsync(this.setting, targetNode) && moveType === consts.move.TYPE_INNER) {
|
|
236733
|
+
view.asyncNode(this.setting, targetNode, isSilent, moveCallback);
|
|
236734
|
+
} else {
|
|
236735
|
+
moveCallback();
|
|
236736
|
+
}
|
|
236737
|
+
return node;
|
|
236738
|
+
};
|
|
236739
|
+
zTreeTools.setEditable = function(editable) {
|
|
236740
|
+
this.setting.edit.enable = editable;
|
|
236741
|
+
return this.refresh();
|
|
236742
|
+
};
|
|
236743
|
+
}, _data = {
|
|
236744
|
+
setSonNodeLevel: function(setting, parentNode, node) {
|
|
236745
|
+
if (!node) return;
|
|
236746
|
+
var children = data.nodeChildren(setting, node);
|
|
236747
|
+
var oldLevel = node.level;
|
|
236748
|
+
node.level = parentNode ? parentNode.level + 1 : 0;
|
|
236749
|
+
view.repairNodeLevelClass(setting, node, oldLevel);
|
|
236750
|
+
if (!children) return;
|
|
236751
|
+
for (var i = 0, l = children.length; i < l; i++) {
|
|
236752
|
+
if (children[i]) data.setSonNodeLevel(setting, node, children[i]);
|
|
236753
|
+
}
|
|
236754
|
+
}
|
|
236755
|
+
}, _event = {}, _handler = {
|
|
236756
|
+
onHoverOverNode: function(event, node) {
|
|
236757
|
+
var setting = data.getSetting(event.data.treeId), root = data.getRoot(setting);
|
|
236758
|
+
if (root.curHoverNode != node) {
|
|
236759
|
+
_handler.onHoverOutNode(event);
|
|
236760
|
+
}
|
|
236761
|
+
root.curHoverNode = node;
|
|
236762
|
+
view.addHoverDom(setting, node);
|
|
236763
|
+
},
|
|
236764
|
+
onHoverOutNode: function(event, node) {
|
|
236765
|
+
var setting = data.getSetting(event.data.treeId), root = data.getRoot(setting);
|
|
236766
|
+
if (root.curHoverNode && !data.isSelectedNode(setting, root.curHoverNode)) {
|
|
236767
|
+
view.removeTreeDom(setting, root.curHoverNode);
|
|
236768
|
+
root.curHoverNode = null;
|
|
236769
|
+
}
|
|
236770
|
+
},
|
|
236771
|
+
onMousedownNode: function(eventMouseDown, _node) {
|
|
236772
|
+
var i, l, setting = data.getSetting(eventMouseDown.data.treeId), root = data.getRoot(setting), roots = data.getRoots();
|
|
236773
|
+
if (eventMouseDown.button == 2 || !setting.edit.enable || !setting.edit.drag.isCopy && !setting.edit.drag.isMove) return true;
|
|
236774
|
+
var target = eventMouseDown.target, _nodes = data.getRoot(setting).curSelectedList, nodes = [];
|
|
236775
|
+
if (!data.isSelectedNode(setting, _node)) {
|
|
236776
|
+
nodes = [ _node ];
|
|
236777
|
+
} else {
|
|
236778
|
+
for (i = 0, l = _nodes.length; i < l; i++) {
|
|
236779
|
+
if (_nodes[i].editNameFlag && tools.eqs(target.tagName, "input") && target.getAttribute("treeNode" + consts.id.INPUT) !== null) {
|
|
236780
|
+
return true;
|
|
236781
|
+
}
|
|
236782
|
+
nodes.push(_nodes[i]);
|
|
236783
|
+
if (nodes[0].parentTId !== _nodes[i].parentTId) {
|
|
236784
|
+
nodes = [ _node ];
|
|
236785
|
+
break;
|
|
236786
|
+
}
|
|
236787
|
+
}
|
|
236788
|
+
}
|
|
236789
|
+
view.editNodeBlur = true;
|
|
236790
|
+
view.cancelCurEditNode(setting);
|
|
236791
|
+
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();
|
|
236792
|
+
if (tools.uCanDo(setting)) {
|
|
236793
|
+
doc.bind("mousemove", _docMouseMove);
|
|
236794
|
+
}
|
|
236795
|
+
function _docMouseMove(event) {
|
|
236796
|
+
if (root.dragFlag == 0 && Math.abs(mouseDownX - event.clientX) < setting.edit.drag.minMoveSize && Math.abs(mouseDownY - event.clientY) < setting.edit.drag.minMoveSize) {
|
|
236797
|
+
return true;
|
|
236798
|
+
}
|
|
236799
|
+
var i, l, tmpNode, tmpDom, tmpNodes;
|
|
236800
|
+
body.css("cursor", "pointer");
|
|
236801
|
+
if (root.dragFlag == 0) {
|
|
236802
|
+
if (tools.apply(setting.callback.beforeDrag, [ setting.treeId, nodes ], true) == false) {
|
|
236803
|
+
_docMouseUp(event);
|
|
236804
|
+
return true;
|
|
236805
|
+
}
|
|
236806
|
+
for (i = 0, l = nodes.length; i < l; i++) {
|
|
236807
|
+
if (i == 0) {
|
|
236808
|
+
root.dragNodeShowBefore = [];
|
|
236809
|
+
}
|
|
236810
|
+
tmpNode = nodes[i];
|
|
236811
|
+
if (data.nodeIsParent(setting, tmpNode) && tmpNode.open) {
|
|
236812
|
+
view.expandCollapseNode(setting, tmpNode, !tmpNode.open);
|
|
236813
|
+
root.dragNodeShowBefore[tmpNode.tId] = true;
|
|
236814
|
+
} else {
|
|
236815
|
+
root.dragNodeShowBefore[tmpNode.tId] = false;
|
|
236816
|
+
}
|
|
236817
|
+
}
|
|
236818
|
+
root.dragFlag = 1;
|
|
236819
|
+
roots.showHoverDom = false;
|
|
236820
|
+
tools.showIfameMask(setting, true);
|
|
236821
|
+
var isOrder = true, lastIndex = -1;
|
|
236822
|
+
if (nodes.length > 1) {
|
|
236823
|
+
var pNodes = nodes[0].parentTId ? data.nodeChildren(setting, nodes[0].getParentNode()) : data.getNodes(setting);
|
|
236824
|
+
tmpNodes = [];
|
|
236825
|
+
for (i = 0, l = pNodes.length; i < l; i++) {
|
|
236826
|
+
if (root.dragNodeShowBefore[pNodes[i].tId] !== undefined) {
|
|
236827
|
+
if (isOrder && lastIndex > -1 && lastIndex + 1 !== i) {
|
|
236828
|
+
isOrder = false;
|
|
236829
|
+
}
|
|
236830
|
+
tmpNodes.push(pNodes[i]);
|
|
236831
|
+
lastIndex = i;
|
|
236832
|
+
}
|
|
236833
|
+
if (nodes.length === tmpNodes.length) {
|
|
236834
|
+
nodes = tmpNodes;
|
|
236835
|
+
break;
|
|
236836
|
+
}
|
|
236837
|
+
}
|
|
236838
|
+
}
|
|
236839
|
+
if (isOrder) {
|
|
236840
|
+
preNode = nodes[0].getPreNode();
|
|
236841
|
+
nextNode = nodes[nodes.length - 1].getNextNode();
|
|
236842
|
+
}
|
|
236843
|
+
curNode = $$("<ul class='zTreeDragUL'></ul>", setting);
|
|
236844
|
+
for (i = 0, l = nodes.length; i < l; i++) {
|
|
236845
|
+
tmpNode = nodes[i];
|
|
236846
|
+
tmpNode.editNameFlag = false;
|
|
236847
|
+
view.selectNode(setting, tmpNode, i > 0);
|
|
236848
|
+
view.removeTreeDom(setting, tmpNode);
|
|
236849
|
+
if (i > setting.edit.drag.maxShowNodeNum - 1) {
|
|
236850
|
+
continue;
|
|
236851
|
+
}
|
|
236852
|
+
tmpDom = $$("<li id='" + tmpNode.tId + "_tmp'></li>", setting);
|
|
236853
|
+
tmpDom.append($$(tmpNode, consts.id.A, setting).clone());
|
|
236854
|
+
tmpDom.css("padding", "0");
|
|
236855
|
+
tmpDom.children("#" + tmpNode.tId + consts.id.A).removeClass(consts.node.CURSELECTED);
|
|
236856
|
+
curNode.append(tmpDom);
|
|
236857
|
+
if (i == setting.edit.drag.maxShowNodeNum - 1) {
|
|
236858
|
+
tmpDom = $$("<li id='" + tmpNode.tId + "_moretmp'><a> ... </a></li>", setting);
|
|
236859
|
+
curNode.append(tmpDom);
|
|
236860
|
+
}
|
|
236861
|
+
}
|
|
236862
|
+
curNode.attr("id", nodes[0].tId + consts.id.UL + "_tmp");
|
|
236863
|
+
curNode.addClass(setting.treeObj.attr("class"));
|
|
236864
|
+
curNode.appendTo(body);
|
|
236865
|
+
tmpArrow = $$("<span class='tmpzTreeMove_arrow'></span>", setting);
|
|
236866
|
+
tmpArrow.attr("id", "zTreeMove_arrow_tmp");
|
|
236867
|
+
tmpArrow.appendTo(body);
|
|
236868
|
+
setting.treeObj.trigger(consts.event.DRAG, [ event, setting.treeId, nodes ]);
|
|
236869
|
+
}
|
|
236870
|
+
if (root.dragFlag == 1) {
|
|
236871
|
+
if (tmpTarget && tmpArrow.attr("id") == event.target.id && tmpTargetNodeId && event.clientX + doc.scrollLeft() + 2 > $("#" + tmpTargetNodeId + consts.id.A, tmpTarget).offset().left) {
|
|
236872
|
+
var xT = $("#" + tmpTargetNodeId + consts.id.A, tmpTarget);
|
|
236873
|
+
event.target = xT.length > 0 ? xT.get(0) : event.target;
|
|
236874
|
+
} else if (tmpTarget) {
|
|
236875
|
+
tmpTarget.removeClass(consts.node.TMPTARGET_TREE);
|
|
236876
|
+
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);
|
|
236877
|
+
}
|
|
236878
|
+
tmpTarget = null;
|
|
236879
|
+
tmpTargetNodeId = null;
|
|
236880
|
+
isOtherTree = false;
|
|
236881
|
+
targetSetting = setting;
|
|
236882
|
+
var settings = data.getSettings();
|
|
236883
|
+
for (var s in settings) {
|
|
236884
|
+
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)) {
|
|
236885
|
+
isOtherTree = true;
|
|
236886
|
+
targetSetting = settings[s];
|
|
236887
|
+
}
|
|
236888
|
+
}
|
|
236889
|
+
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;
|
|
236890
|
+
if (event.target && tools.isChildOrSelf(event.target, targetSetting.treeId)) {
|
|
236891
|
+
var targetObj = event.target;
|
|
236892
|
+
while (targetObj && targetObj.tagName && !tools.eqs(targetObj.tagName, "li") && targetObj.id != targetSetting.treeId) {
|
|
236893
|
+
targetObj = targetObj.parentNode;
|
|
236894
|
+
}
|
|
236895
|
+
var canMove = true;
|
|
236896
|
+
for (i = 0, l = nodes.length; i < l; i++) {
|
|
236897
|
+
tmpNode = nodes[i];
|
|
236898
|
+
if (targetObj.id === tmpNode.tId) {
|
|
236899
|
+
canMove = false;
|
|
236900
|
+
break;
|
|
236901
|
+
} else if ($$(tmpNode, setting).find("#" + targetObj.id).length > 0) {
|
|
236902
|
+
canMove = false;
|
|
236903
|
+
break;
|
|
236904
|
+
}
|
|
236905
|
+
}
|
|
236906
|
+
if (canMove && event.target && tools.isChildOrSelf(event.target, targetObj.id + consts.id.A)) {
|
|
236907
|
+
tmpTarget = $(targetObj);
|
|
236908
|
+
tmpTargetNodeId = targetObj.id;
|
|
236909
|
+
}
|
|
236910
|
+
}
|
|
236911
|
+
tmpNode = nodes[0];
|
|
236912
|
+
if (isTreeInner && tools.isChildOrSelf(event.target, targetSetting.treeId)) {
|
|
236913
|
+
if (!tmpTarget && (event.target.id == targetSetting.treeId || isTreeTop || isTreeBottom || isTreeLeft || isTreeRight) && (isOtherTree || !isOtherTree && tmpNode.parentTId)) {
|
|
236914
|
+
tmpTarget = targetSetting.treeObj;
|
|
236915
|
+
}
|
|
236916
|
+
if (isTop) {
|
|
236917
|
+
targetSetting.treeObj.scrollTop(targetSetting.treeObj.scrollTop() - 10);
|
|
236918
|
+
} else if (isBottom) {
|
|
236919
|
+
targetSetting.treeObj.scrollTop(targetSetting.treeObj.scrollTop() + 10);
|
|
236920
|
+
}
|
|
236921
|
+
if (isLeft) {
|
|
236922
|
+
targetSetting.treeObj.scrollLeft(targetSetting.treeObj.scrollLeft() - 10);
|
|
236923
|
+
} else if (isRight) {
|
|
236924
|
+
targetSetting.treeObj.scrollLeft(targetSetting.treeObj.scrollLeft() + 10);
|
|
236925
|
+
}
|
|
236926
|
+
if (tmpTarget && tmpTarget != targetSetting.treeObj && tmpTarget.offset().left < targetSetting.treeObj.offset().left) {
|
|
236927
|
+
targetSetting.treeObj.scrollLeft(targetSetting.treeObj.scrollLeft() + tmpTarget.offset().left - targetSetting.treeObj.offset().left);
|
|
236928
|
+
}
|
|
236929
|
+
}
|
|
236930
|
+
curNode.css({
|
|
236931
|
+
top: event.clientY + docScrollTop + 3 + "px",
|
|
236932
|
+
left: event.clientX + docScrollLeft + 3 + "px"
|
|
236933
|
+
});
|
|
236934
|
+
var dX = 0;
|
|
236935
|
+
var dY = 0;
|
|
236936
|
+
if (tmpTarget && tmpTarget.attr("id") != targetSetting.treeId) {
|
|
236937
|
+
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);
|
|
236938
|
+
function clearMove() {
|
|
236939
|
+
tmpTarget = null;
|
|
236940
|
+
tmpTargetNodeId = "";
|
|
236941
|
+
moveType = consts.move.TYPE_INNER;
|
|
236942
|
+
tmpArrow.css({
|
|
236943
|
+
display: "none"
|
|
236944
|
+
});
|
|
236945
|
+
if (window.zTreeMoveTimer) {
|
|
236946
|
+
clearTimeout(window.zTreeMoveTimer);
|
|
236947
|
+
window.zTreeMoveTargetNodeTId = null;
|
|
236948
|
+
}
|
|
236949
|
+
}
|
|
236950
|
+
if (!canPrev && !canNext && !canInner) {
|
|
236951
|
+
clearMove();
|
|
236952
|
+
} else {
|
|
236953
|
+
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();
|
|
236954
|
+
if ((prevPercent == 1 || dY_percent <= prevPercent && dY_percent >= -.2) && canPrev) {
|
|
236955
|
+
dX = 1 - tmpArrow.width();
|
|
236956
|
+
dY = tmpTop - tmpArrow.height() / 2;
|
|
236957
|
+
moveType = consts.move.TYPE_PREV;
|
|
236958
|
+
} else if ((nextPercent == 0 || dY_percent >= nextPercent && dY_percent <= 1.2) && canNext) {
|
|
236959
|
+
dX = 1 - tmpArrow.width();
|
|
236960
|
+
dY = tmpNextA == null || data.nodeIsParent(setting, tmpTargetNode) && tmpTargetNode.open ? tmpTop + tmpTargetA.height() - tmpArrow.height() / 2 : tmpNextA.offset().top - tmpArrow.height() / 2;
|
|
236961
|
+
moveType = consts.move.TYPE_NEXT;
|
|
236962
|
+
} else if (canInner) {
|
|
236963
|
+
dX = 5 - tmpArrow.width();
|
|
236964
|
+
dY = tmpTop;
|
|
236965
|
+
moveType = consts.move.TYPE_INNER;
|
|
236966
|
+
} else {
|
|
236967
|
+
clearMove();
|
|
236968
|
+
}
|
|
236969
|
+
if (tmpTarget) {
|
|
236970
|
+
tmpArrow.css({
|
|
236971
|
+
display: "block",
|
|
236972
|
+
top: dY + "px",
|
|
236973
|
+
left: tmpLeft + dX + "px"
|
|
236974
|
+
});
|
|
236975
|
+
tmpTargetA.addClass(consts.node.TMPTARGET_NODE + "_" + moveType);
|
|
236976
|
+
if (preTmpTargetNodeId != tmpTargetNodeId || preTmpMoveType != moveType) {
|
|
236977
|
+
startTime = (new Date).getTime();
|
|
236978
|
+
}
|
|
236979
|
+
if (tmpTargetNode && data.nodeIsParent(setting, tmpTargetNode) && moveType == consts.move.TYPE_INNER) {
|
|
236980
|
+
var startTimer = true;
|
|
236981
|
+
if (window.zTreeMoveTimer && window.zTreeMoveTargetNodeTId !== tmpTargetNode.tId) {
|
|
236982
|
+
clearTimeout(window.zTreeMoveTimer);
|
|
236983
|
+
window.zTreeMoveTargetNodeTId = null;
|
|
236984
|
+
} else if (window.zTreeMoveTimer && window.zTreeMoveTargetNodeTId === tmpTargetNode.tId) {
|
|
236985
|
+
startTimer = false;
|
|
236986
|
+
}
|
|
236987
|
+
if (startTimer) {
|
|
236988
|
+
window.zTreeMoveTimer = setTimeout((function() {
|
|
236989
|
+
if (moveType != consts.move.TYPE_INNER) return;
|
|
236990
|
+
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)) {
|
|
236991
|
+
view.switchNode(targetSetting, tmpTargetNode);
|
|
236992
|
+
if (targetSetting.edit.drag.autoExpandTrigger) {
|
|
236993
|
+
targetSetting.treeObj.trigger(consts.event.EXPAND, [ targetSetting.treeId, tmpTargetNode ]);
|
|
236994
|
+
}
|
|
236995
|
+
}
|
|
236996
|
+
}), targetSetting.edit.drag.autoOpenTime + 50);
|
|
236997
|
+
window.zTreeMoveTargetNodeTId = tmpTargetNode.tId;
|
|
236998
|
+
}
|
|
236999
|
+
}
|
|
237000
|
+
}
|
|
237001
|
+
}
|
|
237002
|
+
} else {
|
|
237003
|
+
moveType = consts.move.TYPE_INNER;
|
|
237004
|
+
if (tmpTarget && tools.apply(targetSetting.edit.drag.inner, [ targetSetting.treeId, nodes, null ], !!targetSetting.edit.drag.inner)) {
|
|
237005
|
+
tmpTarget.addClass(consts.node.TMPTARGET_TREE);
|
|
237006
|
+
} else {
|
|
237007
|
+
tmpTarget = null;
|
|
237008
|
+
}
|
|
237009
|
+
tmpArrow.css({
|
|
237010
|
+
display: "none"
|
|
237011
|
+
});
|
|
237012
|
+
if (window.zTreeMoveTimer) {
|
|
237013
|
+
clearTimeout(window.zTreeMoveTimer);
|
|
237014
|
+
window.zTreeMoveTargetNodeTId = null;
|
|
237015
|
+
}
|
|
237016
|
+
}
|
|
237017
|
+
preTmpTargetNodeId = tmpTargetNodeId;
|
|
237018
|
+
preTmpMoveType = moveType;
|
|
237019
|
+
setting.treeObj.trigger(consts.event.DRAGMOVE, [ event, setting.treeId, nodes ]);
|
|
237020
|
+
}
|
|
237021
|
+
return false;
|
|
237022
|
+
}
|
|
237023
|
+
doc.bind("mouseup", _docMouseUp);
|
|
237024
|
+
function _docMouseUp(event) {
|
|
237025
|
+
if (window.zTreeMoveTimer) {
|
|
237026
|
+
clearTimeout(window.zTreeMoveTimer);
|
|
237027
|
+
window.zTreeMoveTargetNodeTId = null;
|
|
237028
|
+
}
|
|
237029
|
+
preTmpTargetNodeId = null;
|
|
237030
|
+
preTmpMoveType = null;
|
|
237031
|
+
doc.unbind("mousemove", _docMouseMove);
|
|
237032
|
+
doc.unbind("mouseup", _docMouseUp);
|
|
237033
|
+
doc.unbind("selectstart", _docSelect);
|
|
237034
|
+
body.css("cursor", "");
|
|
237035
|
+
if (tmpTarget) {
|
|
237036
|
+
tmpTarget.removeClass(consts.node.TMPTARGET_TREE);
|
|
237037
|
+
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);
|
|
237038
|
+
}
|
|
237039
|
+
tools.showIfameMask(setting, false);
|
|
237040
|
+
roots.showHoverDom = true;
|
|
237041
|
+
if (root.dragFlag == 0) return;
|
|
237042
|
+
root.dragFlag = 0;
|
|
237043
|
+
var i, l, tmpNode;
|
|
237044
|
+
for (i = 0, l = nodes.length; i < l; i++) {
|
|
237045
|
+
tmpNode = nodes[i];
|
|
237046
|
+
if (data.nodeIsParent(setting, tmpNode) && root.dragNodeShowBefore[tmpNode.tId] && !tmpNode.open) {
|
|
237047
|
+
view.expandCollapseNode(setting, tmpNode, !tmpNode.open);
|
|
237048
|
+
delete root.dragNodeShowBefore[tmpNode.tId];
|
|
237049
|
+
}
|
|
237050
|
+
}
|
|
237051
|
+
if (curNode) curNode.remove();
|
|
237052
|
+
if (tmpArrow) tmpArrow.remove();
|
|
237053
|
+
var isCopy = (event.ctrlKey || event.metaKey) && setting.edit.drag.isMove && setting.edit.drag.isCopy || !setting.edit.drag.isMove && setting.edit.drag.isCopy;
|
|
237054
|
+
if (!isCopy && tmpTarget && tmpTargetNodeId && nodes[0].parentTId && tmpTargetNodeId == nodes[0].parentTId && moveType == consts.move.TYPE_INNER) {
|
|
237055
|
+
tmpTarget = null;
|
|
237056
|
+
}
|
|
237057
|
+
if (tmpTarget) {
|
|
237058
|
+
var dragTargetNode = tmpTargetNodeId == null ? null : data.getNodeCache(targetSetting, tmpTargetNodeId);
|
|
237059
|
+
if (tools.apply(setting.callback.beforeDrop, [ targetSetting.treeId, nodes, dragTargetNode, moveType, isCopy ], true) == false) {
|
|
237060
|
+
view.selectNodes(sourceSetting, nodes);
|
|
237061
|
+
return;
|
|
237062
|
+
}
|
|
237063
|
+
var newNodes = isCopy ? tools.clone(nodes) : nodes;
|
|
237064
|
+
function dropCallback() {
|
|
237065
|
+
if (isOtherTree) {
|
|
237066
|
+
if (!isCopy) {
|
|
237067
|
+
for (var i = 0, l = nodes.length; i < l; i++) {
|
|
237068
|
+
view.removeNode(setting, nodes[i]);
|
|
237069
|
+
}
|
|
237070
|
+
}
|
|
237071
|
+
if (moveType == consts.move.TYPE_INNER) {
|
|
237072
|
+
view.addNodes(targetSetting, dragTargetNode, -1, newNodes);
|
|
237073
|
+
} else {
|
|
237074
|
+
view.addNodes(targetSetting, dragTargetNode.getParentNode(), moveType == consts.move.TYPE_PREV ? dragTargetNode.getIndex() : dragTargetNode.getIndex() + 1, newNodes);
|
|
237075
|
+
}
|
|
237076
|
+
} else {
|
|
237077
|
+
if (isCopy && moveType == consts.move.TYPE_INNER) {
|
|
237078
|
+
view.addNodes(targetSetting, dragTargetNode, -1, newNodes);
|
|
237079
|
+
} else if (isCopy) {
|
|
237080
|
+
view.addNodes(targetSetting, dragTargetNode.getParentNode(), moveType == consts.move.TYPE_PREV ? dragTargetNode.getIndex() : dragTargetNode.getIndex() + 1, newNodes);
|
|
237081
|
+
} else {
|
|
237082
|
+
if (moveType != consts.move.TYPE_NEXT) {
|
|
237083
|
+
for (i = 0, l = newNodes.length; i < l; i++) {
|
|
237084
|
+
view.moveNode(targetSetting, dragTargetNode, newNodes[i], moveType, false);
|
|
237085
|
+
}
|
|
237086
|
+
} else {
|
|
237087
|
+
for (i = -1, l = newNodes.length - 1; i < l; l--) {
|
|
237088
|
+
view.moveNode(targetSetting, dragTargetNode, newNodes[l], moveType, false);
|
|
237089
|
+
}
|
|
237090
|
+
}
|
|
237091
|
+
}
|
|
237092
|
+
}
|
|
237093
|
+
view.selectNodes(targetSetting, newNodes);
|
|
237094
|
+
var a = $$(newNodes[0], setting).get(0);
|
|
237095
|
+
view.scrollIntoView(setting, a);
|
|
237096
|
+
setting.treeObj.trigger(consts.event.DROP, [ event, targetSetting.treeId, newNodes, dragTargetNode, moveType, isCopy ]);
|
|
237097
|
+
}
|
|
237098
|
+
if (moveType == consts.move.TYPE_INNER && tools.canAsync(targetSetting, dragTargetNode)) {
|
|
237099
|
+
view.asyncNode(targetSetting, dragTargetNode, false, dropCallback);
|
|
237100
|
+
} else {
|
|
237101
|
+
dropCallback();
|
|
237102
|
+
}
|
|
237103
|
+
} else {
|
|
237104
|
+
view.selectNodes(sourceSetting, nodes);
|
|
237105
|
+
setting.treeObj.trigger(consts.event.DROP, [ event, setting.treeId, nodes, null, null, null ]);
|
|
237106
|
+
}
|
|
237107
|
+
}
|
|
237108
|
+
doc.bind("selectstart", _docSelect);
|
|
237109
|
+
function _docSelect() {
|
|
237110
|
+
return false;
|
|
237111
|
+
}
|
|
237112
|
+
return true;
|
|
237113
|
+
}
|
|
237114
|
+
}, _tools = {
|
|
237115
|
+
getAbs: function(obj) {
|
|
237116
|
+
var oRect = obj.getBoundingClientRect(), scrollTop = document.body.scrollTop + document.documentElement.scrollTop, scrollLeft = document.body.scrollLeft + document.documentElement.scrollLeft;
|
|
237117
|
+
return [ oRect.left + scrollLeft, oRect.top + scrollTop ];
|
|
237118
|
+
},
|
|
237119
|
+
inputFocus: function(inputObj) {
|
|
237120
|
+
if (inputObj.get(0)) {
|
|
237121
|
+
inputObj.focus();
|
|
237122
|
+
tools.setCursorPosition(inputObj.get(0), inputObj.val().length);
|
|
237123
|
+
}
|
|
237124
|
+
},
|
|
237125
|
+
inputSelect: function(inputObj) {
|
|
237126
|
+
if (inputObj.get(0)) {
|
|
237127
|
+
inputObj.focus();
|
|
237128
|
+
inputObj.select();
|
|
237129
|
+
}
|
|
237130
|
+
},
|
|
237131
|
+
setCursorPosition: function(obj, pos) {
|
|
237132
|
+
if (obj.setSelectionRange) {
|
|
237133
|
+
obj.focus();
|
|
237134
|
+
obj.setSelectionRange(pos, pos);
|
|
237135
|
+
} else if (obj.createTextRange) {
|
|
237136
|
+
var range = obj.createTextRange();
|
|
237137
|
+
range.collapse(true);
|
|
237138
|
+
range.moveEnd("character", pos);
|
|
237139
|
+
range.moveStart("character", pos);
|
|
237140
|
+
range.select();
|
|
237141
|
+
}
|
|
237142
|
+
},
|
|
237143
|
+
showIfameMask: function(setting, showSign) {
|
|
237144
|
+
var root = data.getRoot(setting);
|
|
237145
|
+
while (root.dragMaskList.length > 0) {
|
|
237146
|
+
root.dragMaskList[0].remove();
|
|
237147
|
+
root.dragMaskList.shift();
|
|
237148
|
+
}
|
|
237149
|
+
if (showSign) {
|
|
237150
|
+
var iframeList = $$("iframe", setting);
|
|
237151
|
+
for (var i = 0, l = iframeList.length; i < l; i++) {
|
|
237152
|
+
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);
|
|
237153
|
+
dragMask.appendTo($$("body", setting));
|
|
237154
|
+
root.dragMaskList.push(dragMask);
|
|
237155
|
+
}
|
|
237156
|
+
}
|
|
237157
|
+
}
|
|
237158
|
+
}, _view = {
|
|
237159
|
+
addEditBtn: function(setting, node) {
|
|
237160
|
+
if (node.editNameFlag || $$(node, consts.id.EDIT, setting).length > 0) {
|
|
237161
|
+
return;
|
|
237162
|
+
}
|
|
237163
|
+
if (!tools.apply(setting.edit.showRenameBtn, [ setting.treeId, node ], setting.edit.showRenameBtn)) {
|
|
237164
|
+
return;
|
|
237165
|
+
}
|
|
237166
|
+
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>";
|
|
237167
|
+
aObj.append(editStr);
|
|
237168
|
+
$$(node, consts.id.EDIT, setting).bind("click", (function() {
|
|
237169
|
+
if (!tools.uCanDo(setting) || tools.apply(setting.callback.beforeEditName, [ setting.treeId, node ], true) == false) return false;
|
|
237170
|
+
view.editNode(setting, node);
|
|
237171
|
+
return false;
|
|
237172
|
+
})).show();
|
|
237173
|
+
},
|
|
237174
|
+
addRemoveBtn: function(setting, node) {
|
|
237175
|
+
if (node.editNameFlag || $$(node, consts.id.REMOVE, setting).length > 0) {
|
|
237176
|
+
return;
|
|
237177
|
+
}
|
|
237178
|
+
if (!tools.apply(setting.edit.showRemoveBtn, [ setting.treeId, node ], setting.edit.showRemoveBtn)) {
|
|
237179
|
+
return;
|
|
237180
|
+
}
|
|
237181
|
+
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>";
|
|
237182
|
+
aObj.append(removeStr);
|
|
237183
|
+
$$(node, consts.id.REMOVE, setting).bind("click", (function() {
|
|
237184
|
+
if (!tools.uCanDo(setting) || tools.apply(setting.callback.beforeRemove, [ setting.treeId, node ], true) == false) return false;
|
|
237185
|
+
view.removeNode(setting, node);
|
|
237186
|
+
setting.treeObj.trigger(consts.event.REMOVE, [ setting.treeId, node ]);
|
|
237187
|
+
return false;
|
|
237188
|
+
})).bind("mousedown", (function(eventMouseDown) {
|
|
237189
|
+
return true;
|
|
237190
|
+
})).show();
|
|
237191
|
+
},
|
|
237192
|
+
addHoverDom: function(setting, node) {
|
|
237193
|
+
if (data.getRoots().showHoverDom) {
|
|
237194
|
+
node.isHover = true;
|
|
237195
|
+
if (setting.edit.enable) {
|
|
237196
|
+
view.addEditBtn(setting, node);
|
|
237197
|
+
view.addRemoveBtn(setting, node);
|
|
237198
|
+
}
|
|
237199
|
+
tools.apply(setting.view.addHoverDom, [ setting.treeId, node ]);
|
|
237200
|
+
}
|
|
237201
|
+
},
|
|
237202
|
+
cancelCurEditNode: function(setting, forceName, isCancel) {
|
|
237203
|
+
var root = data.getRoot(setting), node = root.curEditNode;
|
|
237204
|
+
if (node) {
|
|
237205
|
+
var inputObj = root.curEditInput, newName = forceName ? forceName : isCancel ? data.nodeName(setting, node) : inputObj.val();
|
|
237206
|
+
if (tools.apply(setting.callback.beforeRename, [ setting.treeId, node, newName, isCancel ], true) === false) {
|
|
237207
|
+
return false;
|
|
237208
|
+
}
|
|
237209
|
+
data.nodeName(setting, node, newName);
|
|
237210
|
+
var aObj = $$(node, consts.id.A, setting);
|
|
237211
|
+
aObj.removeClass(consts.node.CURSELECTED_EDIT);
|
|
237212
|
+
inputObj.unbind();
|
|
237213
|
+
view.setNodeName(setting, node);
|
|
237214
|
+
node.editNameFlag = false;
|
|
237215
|
+
root.curEditNode = null;
|
|
237216
|
+
root.curEditInput = null;
|
|
237217
|
+
view.selectNode(setting, node, false);
|
|
237218
|
+
setting.treeObj.trigger(consts.event.RENAME, [ setting.treeId, node, isCancel ]);
|
|
237219
|
+
}
|
|
237220
|
+
root.noSelection = true;
|
|
237221
|
+
return true;
|
|
237222
|
+
},
|
|
237223
|
+
editNode: function(setting, node) {
|
|
237224
|
+
var root = data.getRoot(setting);
|
|
237225
|
+
view.editNodeBlur = false;
|
|
237226
|
+
if (data.isSelectedNode(setting, node) && root.curEditNode == node && node.editNameFlag) {
|
|
237227
|
+
setTimeout((function() {
|
|
237228
|
+
tools.inputFocus(root.curEditInput);
|
|
237229
|
+
}), 0);
|
|
237230
|
+
return;
|
|
237231
|
+
}
|
|
237232
|
+
node.editNameFlag = true;
|
|
237233
|
+
view.removeTreeDom(setting, node);
|
|
237234
|
+
view.cancelCurEditNode(setting);
|
|
237235
|
+
view.selectNode(setting, node, false);
|
|
237236
|
+
$$(node, consts.id.SPAN, setting).html("<input type=text class='rename' id='" + node.tId + consts.id.INPUT + "' treeNode" + consts.id.INPUT + " >");
|
|
237237
|
+
var inputObj = $$(node, consts.id.INPUT, setting);
|
|
237238
|
+
inputObj.attr("value", data.nodeName(setting, node));
|
|
237239
|
+
if (setting.edit.editNameSelectAll) {
|
|
237240
|
+
tools.inputSelect(inputObj);
|
|
237241
|
+
} else {
|
|
237242
|
+
tools.inputFocus(inputObj);
|
|
237243
|
+
}
|
|
237244
|
+
inputObj.bind("blur", (function(event) {
|
|
237245
|
+
if (!view.editNodeBlur) {
|
|
237246
|
+
view.cancelCurEditNode(setting);
|
|
237247
|
+
}
|
|
237248
|
+
})).bind("keydown", (function(event) {
|
|
237249
|
+
if (event.keyCode == "13") {
|
|
237250
|
+
view.editNodeBlur = true;
|
|
237251
|
+
view.cancelCurEditNode(setting);
|
|
237252
|
+
} else if (event.keyCode == "27") {
|
|
237253
|
+
view.cancelCurEditNode(setting, null, true);
|
|
237254
|
+
}
|
|
237255
|
+
})).bind("click", (function(event) {
|
|
237256
|
+
return false;
|
|
237257
|
+
})).bind("dblclick", (function(event) {
|
|
237258
|
+
return false;
|
|
237259
|
+
}));
|
|
237260
|
+
$$(node, consts.id.A, setting).addClass(consts.node.CURSELECTED_EDIT);
|
|
237261
|
+
root.curEditInput = inputObj;
|
|
237262
|
+
root.noSelection = false;
|
|
237263
|
+
root.curEditNode = node;
|
|
237264
|
+
},
|
|
237265
|
+
moveNode: function(setting, targetNode, node, moveType, animateFlag, isSilent) {
|
|
237266
|
+
var root = data.getRoot(setting);
|
|
237267
|
+
if (targetNode == node) return;
|
|
237268
|
+
if (setting.data.keep.leaf && targetNode && !data.nodeIsParent(setting, targetNode) && moveType == consts.move.TYPE_INNER) return;
|
|
237269
|
+
var oldParentNode = node.parentTId ? node.getParentNode() : root, targetNodeIsRoot = targetNode === null || targetNode == root;
|
|
237270
|
+
if (targetNodeIsRoot && targetNode === null) targetNode = root;
|
|
237271
|
+
if (targetNodeIsRoot) moveType = consts.move.TYPE_INNER;
|
|
237272
|
+
var targetParentNode = targetNode.parentTId ? targetNode.getParentNode() : root;
|
|
237273
|
+
if (moveType != consts.move.TYPE_PREV && moveType != consts.move.TYPE_NEXT) {
|
|
237274
|
+
moveType = consts.move.TYPE_INNER;
|
|
237275
|
+
}
|
|
237276
|
+
if (moveType == consts.move.TYPE_INNER) {
|
|
237277
|
+
if (targetNodeIsRoot) {
|
|
237278
|
+
node.parentTId = null;
|
|
237279
|
+
} else {
|
|
237280
|
+
if (!data.nodeIsParent(setting, targetNode)) {
|
|
237281
|
+
data.nodeIsParent(setting, targetNode, true);
|
|
237282
|
+
targetNode.open = !!targetNode.open;
|
|
237283
|
+
view.setNodeLineIcos(setting, targetNode);
|
|
237284
|
+
}
|
|
237285
|
+
node.parentTId = targetNode.tId;
|
|
237286
|
+
}
|
|
237287
|
+
}
|
|
237288
|
+
var targetObj, target_ulObj;
|
|
237289
|
+
if (targetNodeIsRoot) {
|
|
237290
|
+
targetObj = setting.treeObj;
|
|
237291
|
+
target_ulObj = targetObj;
|
|
237292
|
+
} else {
|
|
237293
|
+
if (!isSilent && moveType == consts.move.TYPE_INNER) {
|
|
237294
|
+
view.expandCollapseNode(setting, targetNode, true, false);
|
|
237295
|
+
} else if (!isSilent) {
|
|
237296
|
+
view.expandCollapseNode(setting, targetNode.getParentNode(), true, false);
|
|
237297
|
+
}
|
|
237298
|
+
targetObj = $$(targetNode, setting);
|
|
237299
|
+
target_ulObj = $$(targetNode, consts.id.UL, setting);
|
|
237300
|
+
if (!!targetObj.get(0) && !target_ulObj.get(0)) {
|
|
237301
|
+
var ulstr = [];
|
|
237302
|
+
view.makeUlHtml(setting, targetNode, ulstr, "");
|
|
237303
|
+
targetObj.append(ulstr.join(""));
|
|
237304
|
+
}
|
|
237305
|
+
target_ulObj = $$(targetNode, consts.id.UL, setting);
|
|
237306
|
+
}
|
|
237307
|
+
var nodeDom = $$(node, setting);
|
|
237308
|
+
if (!nodeDom.get(0)) {
|
|
237309
|
+
nodeDom = view.appendNodes(setting, node.level, [ node ], null, -1, false, true).join("");
|
|
237310
|
+
} else if (!targetObj.get(0)) {
|
|
237311
|
+
nodeDom.remove();
|
|
237312
|
+
}
|
|
237313
|
+
if (target_ulObj.get(0) && moveType == consts.move.TYPE_INNER) {
|
|
237314
|
+
target_ulObj.append(nodeDom);
|
|
237315
|
+
} else if (targetObj.get(0) && moveType == consts.move.TYPE_PREV) {
|
|
237316
|
+
targetObj.before(nodeDom);
|
|
237317
|
+
} else if (targetObj.get(0) && moveType == consts.move.TYPE_NEXT) {
|
|
237318
|
+
targetObj.after(nodeDom);
|
|
237319
|
+
}
|
|
237320
|
+
var i, l, tmpSrcIndex = -1, tmpTargetIndex = 0, oldNeighbor = null, newNeighbor = null, oldLevel = node.level;
|
|
237321
|
+
var oldChildren = data.nodeChildren(setting, oldParentNode);
|
|
237322
|
+
var targetParentChildren = data.nodeChildren(setting, targetParentNode);
|
|
237323
|
+
var targetChildren = data.nodeChildren(setting, targetNode);
|
|
237324
|
+
if (node.isFirstNode) {
|
|
237325
|
+
tmpSrcIndex = 0;
|
|
237326
|
+
if (oldChildren.length > 1) {
|
|
237327
|
+
oldNeighbor = oldChildren[1];
|
|
237328
|
+
oldNeighbor.isFirstNode = true;
|
|
237329
|
+
}
|
|
237330
|
+
} else if (node.isLastNode) {
|
|
237331
|
+
tmpSrcIndex = oldChildren.length - 1;
|
|
237332
|
+
oldNeighbor = oldChildren[tmpSrcIndex - 1];
|
|
237333
|
+
oldNeighbor.isLastNode = true;
|
|
237334
|
+
} else {
|
|
237335
|
+
for (i = 0, l = oldChildren.length; i < l; i++) {
|
|
237336
|
+
if (oldChildren[i].tId == node.tId) {
|
|
237337
|
+
tmpSrcIndex = i;
|
|
237338
|
+
break;
|
|
237339
|
+
}
|
|
237340
|
+
}
|
|
237341
|
+
}
|
|
237342
|
+
if (tmpSrcIndex >= 0) {
|
|
237343
|
+
oldChildren.splice(tmpSrcIndex, 1);
|
|
237344
|
+
}
|
|
237345
|
+
if (moveType != consts.move.TYPE_INNER) {
|
|
237346
|
+
for (i = 0, l = targetParentChildren.length; i < l; i++) {
|
|
237347
|
+
if (targetParentChildren[i].tId == targetNode.tId) tmpTargetIndex = i;
|
|
237348
|
+
}
|
|
237349
|
+
}
|
|
237350
|
+
if (moveType == consts.move.TYPE_INNER) {
|
|
237351
|
+
if (!targetChildren) {
|
|
237352
|
+
targetChildren = data.nodeChildren(setting, targetNode, []);
|
|
237353
|
+
}
|
|
237354
|
+
if (targetChildren.length > 0) {
|
|
237355
|
+
newNeighbor = targetChildren[targetChildren.length - 1];
|
|
237356
|
+
newNeighbor.isLastNode = false;
|
|
237357
|
+
}
|
|
237358
|
+
targetChildren.splice(targetChildren.length, 0, node);
|
|
237359
|
+
node.isLastNode = true;
|
|
237360
|
+
node.isFirstNode = targetChildren.length == 1;
|
|
237361
|
+
} else if (targetNode.isFirstNode && moveType == consts.move.TYPE_PREV) {
|
|
237362
|
+
targetParentChildren.splice(tmpTargetIndex, 0, node);
|
|
237363
|
+
newNeighbor = targetNode;
|
|
237364
|
+
newNeighbor.isFirstNode = false;
|
|
237365
|
+
node.parentTId = targetNode.parentTId;
|
|
237366
|
+
node.isFirstNode = true;
|
|
237367
|
+
node.isLastNode = false;
|
|
237368
|
+
} else if (targetNode.isLastNode && moveType == consts.move.TYPE_NEXT) {
|
|
237369
|
+
targetParentChildren.splice(tmpTargetIndex + 1, 0, node);
|
|
237370
|
+
newNeighbor = targetNode;
|
|
237371
|
+
newNeighbor.isLastNode = false;
|
|
237372
|
+
node.parentTId = targetNode.parentTId;
|
|
237373
|
+
node.isFirstNode = false;
|
|
237374
|
+
node.isLastNode = true;
|
|
237375
|
+
} else {
|
|
237376
|
+
if (moveType == consts.move.TYPE_PREV) {
|
|
237377
|
+
targetParentChildren.splice(tmpTargetIndex, 0, node);
|
|
237378
|
+
} else {
|
|
237379
|
+
targetParentChildren.splice(tmpTargetIndex + 1, 0, node);
|
|
237380
|
+
}
|
|
237381
|
+
node.parentTId = targetNode.parentTId;
|
|
237382
|
+
node.isFirstNode = false;
|
|
237383
|
+
node.isLastNode = false;
|
|
237384
|
+
}
|
|
237385
|
+
data.fixPIdKeyValue(setting, node);
|
|
237386
|
+
data.setSonNodeLevel(setting, node.getParentNode(), node);
|
|
237387
|
+
view.setNodeLineIcos(setting, node);
|
|
237388
|
+
view.repairNodeLevelClass(setting, node, oldLevel);
|
|
237389
|
+
if (!setting.data.keep.parent && oldChildren.length < 1) {
|
|
237390
|
+
data.nodeIsParent(setting, oldParentNode, false);
|
|
237391
|
+
oldParentNode.open = false;
|
|
237392
|
+
var tmp_ulObj = $$(oldParentNode, consts.id.UL, setting), tmp_switchObj = $$(oldParentNode, consts.id.SWITCH, setting), tmp_icoObj = $$(oldParentNode, consts.id.ICON, setting);
|
|
237393
|
+
view.replaceSwitchClass(oldParentNode, tmp_switchObj, consts.folder.DOCU);
|
|
237394
|
+
view.replaceIcoClass(oldParentNode, tmp_icoObj, consts.folder.DOCU);
|
|
237395
|
+
tmp_ulObj.css("display", "none");
|
|
237396
|
+
} else if (oldNeighbor) {
|
|
237397
|
+
view.setNodeLineIcos(setting, oldNeighbor);
|
|
237398
|
+
}
|
|
237399
|
+
if (newNeighbor) {
|
|
237400
|
+
view.setNodeLineIcos(setting, newNeighbor);
|
|
237401
|
+
}
|
|
237402
|
+
if (!!setting.check && setting.check.enable && view.repairChkClass) {
|
|
237403
|
+
view.repairChkClass(setting, oldParentNode);
|
|
237404
|
+
view.repairParentChkClassWithSelf(setting, oldParentNode);
|
|
237405
|
+
if (oldParentNode != node.parent) view.repairParentChkClassWithSelf(setting, node);
|
|
237406
|
+
}
|
|
237407
|
+
if (!isSilent) {
|
|
237408
|
+
view.expandCollapseParentNode(setting, node.getParentNode(), true, animateFlag);
|
|
237409
|
+
}
|
|
237410
|
+
},
|
|
237411
|
+
removeEditBtn: function(setting, node) {
|
|
237412
|
+
$$(node, consts.id.EDIT, setting).unbind().remove();
|
|
237413
|
+
},
|
|
237414
|
+
removeRemoveBtn: function(setting, node) {
|
|
237415
|
+
$$(node, consts.id.REMOVE, setting).unbind().remove();
|
|
237416
|
+
},
|
|
237417
|
+
removeTreeDom: function(setting, node) {
|
|
237418
|
+
node.isHover = false;
|
|
237419
|
+
view.removeEditBtn(setting, node);
|
|
237420
|
+
view.removeRemoveBtn(setting, node);
|
|
237421
|
+
tools.apply(setting.view.removeHoverDom, [ setting.treeId, node ]);
|
|
237422
|
+
},
|
|
237423
|
+
repairNodeLevelClass: function(setting, node, oldLevel) {
|
|
237424
|
+
if (oldLevel === node.level) return;
|
|
237425
|
+
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;
|
|
237426
|
+
liObj.removeClass(oldClass);
|
|
237427
|
+
liObj.addClass(newClass);
|
|
237428
|
+
aObj.removeClass(oldClass);
|
|
237429
|
+
aObj.addClass(newClass);
|
|
237430
|
+
ulObj.removeClass(oldClass);
|
|
237431
|
+
ulObj.addClass(newClass);
|
|
237432
|
+
},
|
|
237433
|
+
selectNodes: function(setting, nodes) {
|
|
237434
|
+
for (var i = 0, l = nodes.length; i < l; i++) {
|
|
237435
|
+
view.selectNode(setting, nodes[i], i > 0);
|
|
237436
|
+
}
|
|
237437
|
+
}
|
|
237438
|
+
}, _z = {
|
|
237439
|
+
tools: _tools,
|
|
237440
|
+
view: _view,
|
|
237441
|
+
event: _event,
|
|
237442
|
+
data: _data
|
|
237443
|
+
};
|
|
237444
|
+
$.extend(true, $.fn.zTree.consts, _consts);
|
|
237445
|
+
$.extend(true, $.fn.zTree._z, _z);
|
|
237446
|
+
var zt = $.fn.zTree, tools = zt._z.tools, consts = zt.consts, view = zt._z.view, data = zt._z.data, event = zt._z.event, $$ = tools.$;
|
|
237447
|
+
data.exSetting(_setting);
|
|
237448
|
+
data.addInitBind(_bindEvent);
|
|
237449
|
+
data.addInitUnBind(_unbindEvent);
|
|
237450
|
+
data.addInitCache(_initCache);
|
|
237451
|
+
data.addInitNode(_initNode);
|
|
237452
|
+
data.addInitProxy(_eventProxy);
|
|
237453
|
+
data.addInitRoot(_initRoot);
|
|
237454
|
+
data.addZTreeTools(_zTreeTools);
|
|
237455
|
+
var _cancelPreSelectedNode = view.cancelPreSelectedNode;
|
|
237456
|
+
view.cancelPreSelectedNode = function(setting, node) {
|
|
237457
|
+
var list = data.getRoot(setting).curSelectedList;
|
|
237458
|
+
for (var i = 0, j = list.length; i < j; i++) {
|
|
237459
|
+
if (!node || node === list[i]) {
|
|
237460
|
+
view.removeTreeDom(setting, list[i]);
|
|
237461
|
+
if (node) break;
|
|
237462
|
+
}
|
|
237463
|
+
}
|
|
237464
|
+
if (_cancelPreSelectedNode) _cancelPreSelectedNode.apply(view, arguments);
|
|
237465
|
+
};
|
|
237466
|
+
var _createNodes = view.createNodes;
|
|
237467
|
+
view.createNodes = function(setting, level, nodes, parentNode, index) {
|
|
237468
|
+
if (_createNodes) {
|
|
237469
|
+
_createNodes.apply(view, arguments);
|
|
237470
|
+
}
|
|
237471
|
+
if (!nodes) return;
|
|
237472
|
+
if (view.repairParentChkClassWithSelf) {
|
|
237473
|
+
view.repairParentChkClassWithSelf(setting, parentNode);
|
|
237474
|
+
}
|
|
237475
|
+
};
|
|
237476
|
+
var _makeNodeUrl = view.makeNodeUrl;
|
|
237477
|
+
view.makeNodeUrl = function(setting, node) {
|
|
237478
|
+
return setting.edit.enable ? null : _makeNodeUrl.apply(view, arguments);
|
|
237479
|
+
};
|
|
237480
|
+
var _removeNode = view.removeNode;
|
|
237481
|
+
view.removeNode = function(setting, node) {
|
|
237482
|
+
var root = data.getRoot(setting);
|
|
237483
|
+
if (root.curEditNode === node) root.curEditNode = null;
|
|
237484
|
+
if (_removeNode) {
|
|
237485
|
+
_removeNode.apply(view, arguments);
|
|
237486
|
+
}
|
|
237487
|
+
};
|
|
237488
|
+
var _selectNode = view.selectNode;
|
|
237489
|
+
view.selectNode = function(setting, node, addFlag) {
|
|
237490
|
+
var root = data.getRoot(setting);
|
|
237491
|
+
if (data.isSelectedNode(setting, node) && root.curEditNode == node && node.editNameFlag) {
|
|
237492
|
+
return false;
|
|
237493
|
+
}
|
|
237494
|
+
if (_selectNode) _selectNode.apply(view, arguments);
|
|
237495
|
+
view.addHoverDom(setting, node);
|
|
237496
|
+
return true;
|
|
237497
|
+
};
|
|
237498
|
+
var _uCanDo = tools.uCanDo;
|
|
237499
|
+
tools.uCanDo = function(setting, e) {
|
|
237500
|
+
var root = data.getRoot(setting);
|
|
237501
|
+
if (e && (tools.eqs(e.type, "mouseover") || tools.eqs(e.type, "mouseout") || tools.eqs(e.type, "mousedown") || tools.eqs(e.type, "mouseup"))) {
|
|
237502
|
+
return true;
|
|
237503
|
+
}
|
|
237504
|
+
if (root.curEditNode) {
|
|
237505
|
+
view.editNodeBlur = false;
|
|
237506
|
+
root.curEditInput.focus();
|
|
237507
|
+
}
|
|
237508
|
+
return !root.curEditNode && (_uCanDo ? _uCanDo.apply(view, arguments) : true);
|
|
237509
|
+
};
|
|
237510
|
+
})(jQuery);
|
|
237511
|
+
|
|
237512
|
+
(function($) {
|
|
237513
|
+
$.fn.zTreeKeyboardNavigationDestroy = function() {};
|
|
237514
|
+
$.fn.zTreeKeyboardNavigation = function(zTree, element, selectedNodes = null, treeicon) {
|
|
237515
|
+
if (typeof element === "string" || element instanceof String) {
|
|
237516
|
+
element = $(element);
|
|
237517
|
+
}
|
|
237518
|
+
var rootNodes = zTree.getNodes();
|
|
237519
|
+
if (!rootNodes) return;
|
|
237520
|
+
var focusSelectedNode = function() {
|
|
237521
|
+
if ((selectedNodes = zTree.getSelectedNodes()) && selectedNodes.length) {
|
|
237522
|
+
$("#" + selectedNodes[0].tId).focus();
|
|
237523
|
+
}
|
|
237524
|
+
};
|
|
237525
|
+
$.fn.zTreeKeyboardNavigationDestroy();
|
|
237526
|
+
$.fn.zTreeKeyboardNavigationDestroy = function() {
|
|
237527
|
+
$(element).off("keydown");
|
|
237528
|
+
};
|
|
237529
|
+
$.fn.changeTreeIcons = function() {
|
|
237530
|
+
let eleClose = $(".app-tree li span.button.switch");
|
|
237531
|
+
$(eleClose).map(((idx, ele) => {
|
|
237532
|
+
$(ele).addClass(treeicon);
|
|
237533
|
+
$(ele).on("click", (function(e) {
|
|
237534
|
+
setTimeout((() => {
|
|
237535
|
+
$(ele).addClass(treeicon);
|
|
237536
|
+
}), 0);
|
|
237537
|
+
}));
|
|
237538
|
+
}));
|
|
237539
|
+
};
|
|
237540
|
+
$(element).on("keydown", (function(e) {
|
|
237541
|
+
var selectedNodes = zTree.getSelectedNodes();
|
|
237542
|
+
var selectedNode = selectedNodes.length ? selectedNodes[0] : null;
|
|
237543
|
+
var processSpace = function() {
|
|
237544
|
+
if (selectedNode && selectedNode.isParent) {
|
|
237545
|
+
zTree.expandNode(selectedNode, selectedNode.open ? false : true, true, true);
|
|
237546
|
+
$.fn.changeTreeIcons();
|
|
237547
|
+
}
|
|
237548
|
+
};
|
|
237549
|
+
var processHome = function() {
|
|
237550
|
+
zTree.selectNode(rootNodes[0], false, true);
|
|
237551
|
+
};
|
|
237552
|
+
var processEnd = function() {
|
|
237553
|
+
var nodes = zTree.transformToArray(rootNodes);
|
|
237554
|
+
zTree.selectNode(nodes[nodes.length - 1]);
|
|
237555
|
+
};
|
|
237556
|
+
var processUp = function() {
|
|
237557
|
+
var priorNode;
|
|
237558
|
+
if (selectedNode) {
|
|
237559
|
+
priorNode = selectedNode.getPreNode();
|
|
237560
|
+
if (!priorNode) return;
|
|
237561
|
+
} else {
|
|
237562
|
+
processEnd();
|
|
237563
|
+
}
|
|
237564
|
+
if (!priorNode) return;
|
|
237565
|
+
zTree.selectNode(priorNode);
|
|
237566
|
+
};
|
|
237567
|
+
var processDown = function() {
|
|
237568
|
+
var nextNode;
|
|
237569
|
+
if (selectedNode) {
|
|
237570
|
+
nextNode = selectedNode.getNextNode();
|
|
237571
|
+
if (!nextNode) return;
|
|
237572
|
+
} else {
|
|
237573
|
+
processHome();
|
|
237574
|
+
}
|
|
237575
|
+
if (!nextNode) return;
|
|
237576
|
+
zTree.selectNode(nextNode);
|
|
237577
|
+
};
|
|
237578
|
+
var processOut = function() {
|
|
237579
|
+
if (!selectedNode) return;
|
|
237580
|
+
var parentNode = selectedNode.getParentNode();
|
|
237581
|
+
var priorNode = selectedNode.getPreNode();
|
|
237582
|
+
if (!parentNode && !priorNode) return;
|
|
237583
|
+
if (priorNode) {
|
|
237584
|
+
if (priorNode.isParent) {
|
|
237585
|
+
while (priorNode) {
|
|
237586
|
+
if (!priorNode.isParent || !priorNode.open || !priorNode.children) break;
|
|
237587
|
+
priorNode = priorNode.children[priorNode.children.length - 1];
|
|
237588
|
+
}
|
|
237589
|
+
zTree.selectNode(priorNode);
|
|
237590
|
+
return;
|
|
237591
|
+
} else {
|
|
237592
|
+
zTree.selectNode(priorNode);
|
|
237593
|
+
return;
|
|
237594
|
+
}
|
|
237595
|
+
}
|
|
237596
|
+
if (parentNode) {
|
|
237597
|
+
zTree.selectNode(parentNode, false, true);
|
|
237598
|
+
}
|
|
237599
|
+
};
|
|
237600
|
+
var processIn = function() {
|
|
237601
|
+
if (!selectedNode) return;
|
|
237602
|
+
if (selectedNode.isParent && selectedNode.open && selectedNode.children) {
|
|
237603
|
+
zTree.selectNode(selectedNode.children[0]);
|
|
237604
|
+
return;
|
|
237605
|
+
}
|
|
237606
|
+
var nextNode = selectedNode.getNextNode();
|
|
237607
|
+
if (nextNode) {
|
|
237608
|
+
zTree.selectNode(nextNode);
|
|
237609
|
+
} else {
|
|
237610
|
+
var node = selectedNode;
|
|
237611
|
+
while (node = node.getParentNode()) {
|
|
237612
|
+
var nextNode = node.getNextNode();
|
|
237613
|
+
if (nextNode) {
|
|
237614
|
+
zTree.selectNode(nextNode);
|
|
237615
|
+
break;
|
|
237616
|
+
}
|
|
237617
|
+
}
|
|
237618
|
+
}
|
|
237619
|
+
};
|
|
237620
|
+
var processLetter = function(keyCode) {
|
|
237621
|
+
if (!Array.from({
|
|
237622
|
+
length: 26
|
|
237623
|
+
}, ((v, i) => i + 65)).includes(keyCode & 95)) return false;
|
|
237624
|
+
var nodes = zTree.transformToArray(rootNodes);
|
|
237625
|
+
nodes = nodes.filter((node => "accesskey" in node && node.accesskey.length && (node.accesskey.charCodeAt(0) & 95) == keyCode));
|
|
237626
|
+
if (!nodes.length) return false;
|
|
237627
|
+
var selectedNodes = zTree.getSelectedNodes();
|
|
237628
|
+
if (!selectedNodes.length) return false;
|
|
237629
|
+
if (selectedNodes[0] == nodes[0]) return false;
|
|
237630
|
+
zTree.selectNode(nodes[0]);
|
|
237631
|
+
return true;
|
|
237632
|
+
};
|
|
237633
|
+
switch (e.keyCode) {
|
|
237634
|
+
case 32:
|
|
237635
|
+
processSpace();
|
|
237636
|
+
return;
|
|
237637
|
+
|
|
237638
|
+
case 36:
|
|
237639
|
+
processHome();
|
|
237640
|
+
break;
|
|
237641
|
+
|
|
237642
|
+
case 35:
|
|
237643
|
+
processEnd();
|
|
237644
|
+
break;
|
|
237645
|
+
|
|
237646
|
+
case 33:
|
|
237647
|
+
break;
|
|
237648
|
+
|
|
237649
|
+
case 34:
|
|
237650
|
+
break;
|
|
237651
|
+
|
|
237652
|
+
case 37:
|
|
237653
|
+
processOut();
|
|
237654
|
+
break;
|
|
237655
|
+
|
|
237656
|
+
case 38:
|
|
237657
|
+
processUp();
|
|
237658
|
+
break;
|
|
237659
|
+
|
|
237660
|
+
case 39:
|
|
237661
|
+
processIn();
|
|
237662
|
+
break;
|
|
237663
|
+
|
|
237664
|
+
case 40:
|
|
237665
|
+
processDown();
|
|
237666
|
+
break;
|
|
237667
|
+
|
|
237668
|
+
default:
|
|
237669
|
+
if (!processLetter(e.keyCode & 95)) return;
|
|
237670
|
+
break;
|
|
237671
|
+
}
|
|
237672
|
+
focusSelectedNode();
|
|
237673
|
+
}));
|
|
237674
|
+
if (selectedNodes && selectedNodes.length) {
|
|
237675
|
+
zTree.selectNode(selectedNodes[0]);
|
|
237676
|
+
focusSelectedNode();
|
|
237677
|
+
} else {
|
|
237678
|
+
$(element).trigger({
|
|
237679
|
+
type: "keydown",
|
|
237680
|
+
which: 36,
|
|
237681
|
+
keyCode: 36
|
|
237682
|
+
});
|
|
237683
|
+
}
|
|
237684
|
+
};
|
|
237685
|
+
})(jQuery);
|