var parentTopHeight;
var broswerFlag;
var sigleSelectionSetting = {
view: {
dblClickExpand: false,
selectedMulti: false
},
data: {
simpleData: {
enable: true
}
},
callback: {
onClick: zTreeSelectItemClick
}
};
var multiNoGroupSelectionSetting = {
view: {
selectedMulti: true,
showIcon: false,
showLine: false
},
check: {
enable: true,
chkboxType: {
Y: "",
N: ""
}
},
data: {
simpleData: {
enable: true
}
},
callback: {
onClick: zTreeSelectItemClick
}
};
var multiTreeSelectionSetting = {
view: {
selectedMulti: false
},
check: {
enable: true,
chkboxType: {
Y: "",
N: ""
}
},
data: {
simpleData: {
enable: true
}
},
callback: {
onClick: zTreeSelectItemClick
}
};
var multiTreeSelectionSetting2 = {
view: {
selectedMulti: false
},
check: {
enable: true,
chkboxType: {
Y: "ps",
N: "ps"
}
},
data: {
simpleData: {
enable: true
}
},
callback: {
onClick: zTreeSelectItemClick
}
};
jQuery.fn.extend({
selectTreeRender: function (a) {
return this.each(function () {
$(this).html("");
new jQuery.SelectTreeBox(this, a)
})
},
selectTreeAddItem: function (a) {
this.each(function () {
var b = $(this).data("data");
var c = "treeNodes";
if ($(this).attr("dataRoot")) {
c = $(this).attr("dataRoot")
}
b[c].push(a);
$(this).data("data", b);
$(this).html("");
new jQuery.SelectTreeBox(this)
})
},
selectTreeRemoveItem: function (a) {
this.each(function () {
var b = $(this).data("data");
var c = -1;
var d = "treeNodes";
if ($(this).attr("dataRoot")) {
d = $(this).attr("dataRoot")
}
$.each(b[d], function (e, f) {
if (f.id.toString() == a) {
c = e
}
});
if (c != -1) {
b[d].splice(c, 1)
}
$(this).data("data", b);
$(this).html("");
new jQuery.SelectTreeBox(this)
})
}
});
var depth = 500;
var selectTree_id = 1;
jQuery.SelectTreeBox = function (F, H) {
var o = {};
o.inputClass = o.inputClass || "selectbox";
o.containerClass = o.containerClass || "selectbox-tree";
o.hoverClass = o.hoverClass || "current";
o.currentClass = o.selectedClass || "selected";
o.debug = o.debug || false;
selectTree_id++;
var g = "请选择";
var k = "0_input";
var w = "0_button";
var u = false;
var I = $(F);
I.addClass("mainCon");
if (I.attr("prompt") != null) {
g = I.attr("prompt")
}
var f = t(o);
var c = $('
');
c.attr("id", "selectTree" + selectTree_id + "_tree");
var v = G(o);
var p = D(o);
var s;
s = $("");
var a = false;
if (I.attr("multiMode") != null) {
if (I.attr("multiMode") == "true" || I.attr("multiMode") == true) {
a = true;
s.addClass("selBtnMuiti");
if (I.attr("noGroup") == "true" || I.attr("noGroup") == true) {
c.addClass("noGroupZtree")
} else {
c.addClass("multiSelectZtree")
}
} else {
a = false
}
}
if (I.attr("disabled") == "disabled" || I.attr("disabled") == "true" || I.attr("disabled") == true) {
s.attr("disabled", true);
if (a == true) {
s.addClass("selBtn_disabledMuiti")
} else {
s.addClass("selBtn_disabled")
}
v.addClass("selectbox_disabled")
}
s.attr("id", "selectTree" + selectTree_id + "_button");
var m = 135;
if (I.attr("selWidth") != null) {
m = Number(I.attr("selWidth")) - 22
}
v.width(m);
var L = $('');
L.find("td").eq(0).append(v);
L.find("td").eq(1).append(s);
I.append(L);
I.append(f);
I.append(p);
f.append(c);
var C = "";
if (I.attr("selectedValue")) {
C = I.attr("selectedValue")
}
var q = false;
if (I.attr("editable") != null) {
if (I.attr("editable") == "true") {
q = true
} else {
q = false
}
}
f.hide();
var z = "treeNodes";
if (I.attr("dataRoot")) {
z = I.attr("dataRoot")
}
var n = I.attr("params");
var A;
if (n) {
try {
A = JSON.parse(n)
} catch (K) {
A = "";
alert("树形下拉框参数格式有误!(提示:json数据的属性和名称必须以双引号包围)")
}
} else {
A = ""
}
var d = "";
var E = I.attr("url");
var x = I.attr("data");
var l = I.data("data");
if (l) {
B(l)
} else {
if (x) {
try {
d = JSON.parse(x)
} catch (K) {
d = "";
alert("树形下拉框参数格式有误!(提示:放在标签中的json数据的属性和名称必须以双引号包围)")
}
I.data("data", d);
B(d)
} else {
if (E) {
$.ajax({
url: I.attr("url"),
dataType: "json",
data: A,
error: function () {
alert("树形下拉框数据源出错,请检查url路径")
},
success: function (e) {
I.data("data", e);
d = e;
B(e)
}
})
}
}
}
if (!q) {
v.css({
cursor: "pointer"
});
v.click(function (e) {
k = $(e.target).attr("id");
y();
depth++;
I.css({
zIndex: depth
});
if (f.attr("hasfocus") == 0) {
r()
} else {
b()
}
})
} else {
v.css({
cursor: "text"
});
v.change(function () {
I.attr("editValue", $(this).val());
p.val($(this).val())
})
}
s.click(function (e) {
w = $(e.target).attr("id");
y();
depth++;
I.css({
zIndex: depth
});
if (f.attr("hasfocus") == 0) {
r()
} else {
b()
}
});
function y() {
f.css({
overflowY: "visible",
overflowX: "visible"
});
f.width("");
var e = 200;
if (parentTopHeight > 0) {
var N = window.top.document.documentElement.clientHeight;
e = N - parentTopHeight - parentBottomHeight - I.offset().top - 30
} else {
e = window.document.documentElement.clientHeight - (I.offset().top - $(window).scrollTop()) - 30
}
var P;
if (!I.attr("boxWidth")) {
P = f.width()
}
f.css({
overflowY: "auto",
overflowX: "hidden"
});
if (!I.attr("boxWidth")) {
f.width(P)
} else {
f.width(Number(I.attr("boxWidth")))
}
var O = 0;
if (I.attr("boxHeight")) {
O = Number(I.attr("boxHeight"))
}
if (O != 0) {
f.height(O);
if (I.attr("openDirection") == "top") {
f.css({
top: -O
})
} else {
if (I.attr("openDirection") == "bottom") {
f.css({
top: 24
})
} else {
if (e < O) {
if (I.offset().top > O) {
f.css({
top: -O
})
} else {
if (e < 100 && I.offset().top > e && I.offset().top > 100) {
f.css({
top: -O
})
} else {
f.css({
top: 24
})
}
}
} else {
f.css({
top: 24
})
}
}
}
} else {
if (I.attr("openDirection") == "top") {
if (I.offset().top > f.height()) {
f.css({
top: -f.height()
})
} else {
f.height($mainCon.offset().top);
f.css({
top: -$mainCon.offset().top
})
}
} else {
if (I.attr("openDirection") == "bottom") {
if (e < f.height()) {
f.css({
top: 24
});
f.height(e)
} else {
f.css({
top: 24
})
}
} else {
if (e < f.height()) {
if (I.offset().top > f.height()) {
f.css({
top: -f.height()
})
} else {
if (e < 100 && I.offset().top > e && I.offset().top > 100) {
f.height(I.offset().top);
f.css({
top: -I.offset().top
})
} else {
f.css({
top: 24
});
f.height(e)
}
}
} else {
f.css({
top: 24
})
}
}
}
}
if (!I.attr("boxWidth")) {
if (f.width() < m + 24) {
f.width(m + 24)
}
}
}
function i() {
var e = $("");
e.addClass("mainCon");
return e
}
function t(e) {
var N = $("");
N.attr("id", "selectTree" + selectTree_id + "_container");
N.addClass(e.containerClass);
N.attr("hasfocus", 0);
return N
}
function G(N) {
var e = document.createElement("input");
var P = $(e);
P.attr("id", "selectTree" + selectTree_id + "_input");
P.attr("type", "text");
P.addClass(N.inputClass);
P.attr("autocomplete", "off");
var O = false;
if (I.attr("editable") != null) {
if (I.attr("editable") == "true") {
O = true
} else {
O = false
}
}
if (!O) {
P.attr("readonly", "readonly")
} else {
P.attr("readonly", false)
}
if (I.attr("disabled") == "disabled" || I.attr("disabled") == "true" || I.attr("disabled") == true) {
P.attr("disabled", true);
P.addClass("inputDisabled")
}
return P
}
function D(N) {
var e = document.createElement("input");
var O = $(e);
O.attr("type", "hidden");
if (I.attr("name") != null) {
O.attr("name", I.attr("name"))
}
return O
}
function j(N, e) {
I.attr("relText", N);
I.attr("relValue", e);
p.val(e);
v.val(N);
if (q == "true" || q == true) {
I.attr("editValue", v.val());
p.val(v.val())
}
I.focus();
return true
}
function B(N) {
if (!N) {
return
}
if (a == true) {
if (C == "") {
v.val(g);
I.attr("relText", g);
I.attr("relValue", "");
p.val("")
} else {
var V = C.split(",");
var Q = "";
for (var S = 0; S < V.length; S++) {
for (var R = 0; R < N[z].length; R++) {
if (N[z][R].id.toString() == V[S]) {
N[z][R].checked = true;
Q = Q + N[z][R].name + ",";
continue
}
}
}
if (Q.length > 0) {
Q = Q.substring(0, Q.length - 1)
}
j(Q, C);
v.attr("title", Q);
try {
enableTooltips()
} catch (U) {}
}
if (I.attr("noGroup") == "true" || I.attr("noGroup") == true) {
if (H) {
$.fn.zTree.init(c, H, N[z])
} else {
$.fn.zTree.init(c, multiNoGroupSelectionSetting, N[z])
}
} else {
if (I.attr("allSelectable") == "true" || I.attr("allSelectable") == true) {
if (H) {
$.fn.zTree.init(c, H, N[z])
} else {
$.fn.zTree.init(c, multiTreeSelectionSetting2, N[z])
}
} else {
if (H) {
$.fn.zTree.init(c, H, N[z])
} else {
$.fn.zTree.init(c, multiTreeSelectionSetting, N[z])
}
}
}
} else {
if (H) {
$.fn.zTree.init(c, H, N[z])
} else {
$.fn.zTree.init(c, sigleSelectionSetting, N[z])
}
if (C == "") {
v.val(g);
I.attr("relText", g);
I.attr("relValue", "");
p.val("")
} else {
I.attr("relValue", C);
p.val(C);
var O = $.fn.zTree.getZTreeObj(c.attr("id"));
var P = O.transformToArray(O.getNodes());
for (var T = 0; T < P.length; T++) {
if (P[T].id.toString() == C) {
O.selectNode(P[T]);
I.attr("relText", P[T].name);
v.val(P[T].name)
}
}
}
}
if (q == true) {
if (C == "") {
I.attr("editValue", g)
} else {
I.attr("editValue", I.attr("relText"))
}
}
}
function b() {
f.attr("hasfocus", 0);
f.hide();
$("body").unbind("mousedown", J);
if (a == true) {
var O = $.fn.zTree.getZTreeObj(c.attr("id"));
if (O) {
var N = O.getCheckedNodes(true);
var R = "";
var Q = "";
for (var P = 0; P < N.length; P++) {
if (I.attr("exceptParent") == "true" || I.attr("exceptParent") == true) {
if (N[P].isParent) {
continue
}
}
R = R + N[P].name + ",";
Q = Q + N[P].id + ","
}
if (R.length > 0) {
R = R.substring(0, R.length - 1)
}
if (Q.length > 0) {
Q = Q.substring(0, Q.length - 1)
}
if (R == "") {
R = g
}
j(R, Q);
if (R == g) {
v.attr("title", " ")
} else {
v.attr("title", R)
}
try {
enableTooltips()
} catch (S) {}
}
}
try {
I.trigger("change")
} catch (S) {}
}
function r() {
f.attr("hasfocus", 1);
depth++;
I.css({
zIndex: depth
});
f.show();
$("body").bind("mousedown", J)
}
function J(e) {
if (f.attr("hasfocus") == 0) {} else {
if ($(e.target).attr("id") == k || $(e.target).attr("id") == w || $(e.target).parent().attr("class") == "ztree" || $(e.target).attr("class") == "ztree" || $(e.target).parents(".ztree").length > 0 || $(e.target).attr("class") == "selectbox-tree") {
if ($(e.target).parents(".ztree").length > 0) {
setTimeout(function () {
y()
}, 500)
}
} else {
b()
}
}
}
function h() {
return I.val()
}
function M() {
return v.val()
}
};
function getPosition(b, c) {
for (var a = 0; a < c.length; a++) {
if (b == c[a]) {
return a;
break
}
}
}
String.prototype.trim = function () {
return this.replace(/(^\s*)|(\s*$)/g, "")
};
function zTreeSelectItemClick(b, d, i) {
var c = $("#" + d).parents(".selectTree");
var a = $("#" + d).parents(".mainCon").find('input[type="hidden"]');
var h = $.fn.zTree.getZTreeObj(d);
if (c.attr("multiMode") == "true" || c.attr("multiMode") == true) {
if (i.clickExpand == true || i.clickExpand == "true") {
if (c.attr("allSelectable") == "true" || c.attr("allSelectable") == true) {
h.checkNode(i, "", true);
h.expandNode(i, true)
} else {
h.expandNode(i)
}
} else {
h.checkNode(i)
}
} else {
if (i.clickExpand == true || i.clickExpand == "true") {
h.expandNode(i)
} else {
var g;
g = $("#" + d).parents(".mainCon").find("input[class*=selectbox]");
g.val(i.name);
c.attr("relText", i.name);
c.attr("relValue", i.id);
a.val(i.id);
if (c.attr("editable") == "true" || c.attr("editable") == true) {
c.attr("editValue", g.val());
a.val(g.val())
}
c.focus();
var j = $("#" + d).parents(".mainCon").find("div[class=selectbox-tree]");
j.hide();
j.attr("hasfocus", 0);
try {
c.trigger("change")
} catch (f) {}
}
}
}
function zTreeSelectAddItem(e, c, g, d) {
var b = $.fn.zTree.getZTreeObj(e.find("ul").eq(0).attr("id"));
var a = b.transformToArray(b.getNodes());
for (var f = 0; f < a.length; f++) {
if (a[f].id == c) {
b.addNodes(a[f], {
id: g,
pId: a[f].id,
name: d
})
}
}
}
function zTreeSelectRemoveItem(c, e) {
var b = $.fn.zTree.getZTreeObj(c.find("ul").eq(0).attr("id"));
var a = b.transformToArray(b.getNodes());
for (var d = 0; d < a.length; d++) {
if (a[d].id == e) {
b.removeNode(a[d])
}
}
};