layui.define(['jquery', 'layer', 'util', 'uParas', 'admin', 'zTree'], function (exports) { var $ = layui.$, uParas = layui.uParas, admin = layui.admin; var _g = { _init: function (setting) { _g._init(setting.url, setting.idKey, setting.pIdKey, setting.dataName, setting.dataId, setting.ifPid, setting.ul, setting.insTb, setting.menuContent_, setting.inputName, setting.inputId ) }, /** * * @param url 访问地址 * @param ul ul 渲染地址 * @param idKey 子主键 * @param pIdKey 夫关系 * @param dataName 数据name * @param dataId 数据id * @param ifPid 是否选择父id (默认选择) * @param insTb 外部参数 * @param menuContent 样式 * @param inputName * @param inputId * @private */ _init: function (url, idKey, pIdKey, dataName, dataId, ifPid, ul, insTb, menuContent, inputName, inputId, defVal) { var dn, di, name, id; dn = dataName; di = dataId; if (ul == undefined) { ul = 'wzTree'; } if (inputName == undefined) { name = dataName; } else { name = inputName; } if (inputId == undefined) { id = di; } else { id = inputId; } if (ifPid == undefined || ifPid === 0) { ifPid = 0; } else { ifPid = 1; } if (menuContent == undefined) { menuContent = "menuContent"; } var obj = new Object(); if (ifPid === 0) { obj.onClick = onClick; } else { obj.onClick = onClick; obj.beforeClick = zTreeBeforeClick } var setting = { check: { enable: false, chkboxType: {"Y": "", "N": ""} }, view: { dblClickExpand: false }, data: { simpleData: { enable: true, idKey: idKey, pIdKey: pIdKey, rootPId: null }, key: { name: dataName } }, callback: obj }; function zTreeBeforeClick(treeId, treeNode, clickFlag) { return !treeNode.isParent; }; /** * ztree 文本下拉 */ $.getJSON(uParas.baseUrl + url, {}, function (res) { if (res.data.length > 0) { $.fn.zTree.init($('#' + ul + ''), setting, res.data); $.fn.zTree.getZTreeObj(ul).expandAll(true); if (defVal !== undefined && defVal !== null && defVal !== "") { $.each(res.data, function (i, field) { if (field[dataId] == defVal) { $("#" + name + "").val(field[dataName]); $("#" + id + "").val(field[dataId]); return false; } else if (field[dataId] === defVal) { $("#" + name + "").val(field[dataName]); $("#" + id + "").val(field[dataId]); return false; } }); } layer.closeAll('loading'); } }); function onClick(event, treeId, treeNode, clickFlag) { var zTree = $.fn.zTree.getZTreeObj(ul), nodes = zTree.getSelectedNodes(), v = "", idlist = ""; for (var i = 0, l = nodes.length; i < l; i++) { v += nodes[i][dn] + ","; idlist += nodes[i][di] + ","; } if (v.length > 0) { v = v.substring(0, v.length - 1); idlist = idlist.substring(0, idlist.length - 1); } //隐藏 赋值 var cityObj = $("#" + name + ""); if (cityObj.val() == v) { $("#" + id + "").focus(); $("#" + id + "").attr("value", ""); $("#" + id + "").blur(); $("#" + name + "").val(''); } else { $("#" + name + "").val(v); $("#" + id + "").focus(); $("#" + id + "").attr("value", idlist); $("#" + id + "").blur(); } //文本赋值 var groupId = idlist; if (groupId != "-1") { var Obj = new Object(); Obj.gId = groupId; Obj.groupId = groupId; Obj.cId = treeNode.companyOrOrgId; if (insTb != null && insTb != undefined) { insTb.reload({where: Obj}); } } hideMenu(); } function hideMenu() { $("#" + menuContent + "").fadeOut("fast"); $("body").unbind("mousedown", onBodyDown); } $("#" + name + "").click(function () { $("#" + menuContent + "").slideDown("fast"); $("body").bind("mousedown", onBodyDown); }); function onBodyDown(event) { if (!(event.target.id === name || event.target.id === "" + menuContent + "" || $(event.target).parents("#" + menuContent + "").length > 0)) { hideMenu(); } } }, _initx: function (url, ul,onClick) { var setting = { data: { simpleData: { enable: true, } }, callback: { // beforeClick: beforeClick, onClick: onClick } }; $.getJSON(uParas.baseUrl + url, {}, function (res) { if (res.data.length > 0) { $.fn.zTree.init($('#' + ul + ''), setting, res.data); $.fn.zTree.getZTreeObj(ul).expandAll(true); layer.closeAll('loading'); } }); // function beforeClick(treeId, treeNode, clickFlag) { // className = (className === "dark" ? "" : "dark"); // showLog("[ " + getTime() + " beforeClick ]  " + treeNode.name); // return (treeNode.click != false); // } // function onClick(event, treeId, treeNode, clickFlag) { // console.log(1); // showLog("[ " + getTime() + " onClick ]  clickFlag = " + clickFlag + " (" + (clickFlag === 1 ? "single selected" : (clickFlag === 0 ? "cancel selected" : "multi selected")) + ")"); // } } } exports("_zTree", _g); });