// ***********************************************************************
// Assembly : OpenAuth.Mvc
// Author : yubaolee
// Created : 10-16-2016
//
// Last Modified By : yubaolee
// Last Modified On : 10-16-2016
// ***********************************************************************
//
// 版权所有(C) 2015
//
// 单击文本框弹出的选择列表,可以多选
// ***********************************************************************
function ParentTreeMultiple(url, name, id) {
var zTreeObj;
var options = {
text: 'Name',
key: 'Id',
parentKey: 'ParentId',
nameDOM: name, //显示的文本框ID,如:"#catetoryName"
idDOM: id //隐藏的文本框,如:"#categoryId"
}
var setting = {
view: { selectedMulti: true },
check: {
enable: true,
chkStyle: "checkbox",
chkboxType: { "Y": "", "N": "" } //去掉勾选时级联
},
data: {
key: {
name: options.text,
title: options.text
},
simpleData: {
enable: true,
idKey: options.key,
pIdKey: options.parentKey,
rootPId: 'null'
}
},
callback: {
onClick: onClick,
onCheck: onCheck
}
};
var showMenu = function () {
$("#menuContent").css({ left: "10px", top: $("#" + options.nameDOM).outerHeight() + "px" }).slideDown("fast");
$("body").bind("mousedown", onBodyDown);
};
var setCheck = function () { //设置初始选中的值
zTreeObj.checkAllNodes(false);
var value = vm.$get(options.idDOM);
if (value == undefined) return;
var nodeids = value.split(",");
$.each(nodeids,
function() {
var node = zTreeObj.getNodeByParam("Id", this, null);
if (node != null) {
zTreeObj.checkNode(node, true, false);
}
});
}
function onClick(e, treeId, treeNode) {
var nodes = zTreeObj.getSelectedNodes();
for (var i = 0, l = nodes.length; i < l; i++) {
vm.$set(options.nameDOM, nodes[i].Name);
vm.$set(options.idDOM, nodes[i].Id);
break;
}
hideMenu();
}
function onCheck(e, treeId, treeNode) {
var nodes = zTreeObj.getCheckedNodes(true);
var ids = nodes.map(function (e) { return e.Id; }).join(",");
var names = nodes.map(function (e) { return e.Name; }).join(",");
vm.$set(options.nameDOM, names);
vm.$set(options.idDOM, ids);
}
function onBodyDown(event) {
if (!(event.target.id == "menuContent" || $(event.target).parents("#menuContent").length > 0)) {
hideMenu();
}
}
function hideMenu() {
$("#menuContent").fadeOut("fast");
$("body").unbind("mousedown", onBodyDown);
}
return {
reload: function () {
var index = layer.load();
$.getJSON(url,
{
page: 1, rows: 10000
},
function (json) {
layer.close(index);
if (json.length == 0) {
vm.$set(options.nameDOM, '');
vm.$set(options.idDOM, '');
return;
}
zTreeObj = $.fn.zTree.init($("#org"), setting, json);
setCheck();
zTreeObj.expandAll(true);
showMenu();
});
}
}
}