_zTree.js 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. layui.define(['jquery', 'layer', 'util', 'uParas', 'admin', 'zTree'], function (exports) {
  2. var $ = layui.$,
  3. uParas = layui.uParas,
  4. admin = layui.admin;
  5. var _g = {
  6. _init: function (setting) {
  7. _g._init(setting.url,
  8. setting.idKey,
  9. setting.pIdKey,
  10. setting.dataName,
  11. setting.dataId,
  12. setting.ifPid,
  13. setting.ul,
  14. setting.insTb,
  15. setting.menuContent_,
  16. setting.inputName,
  17. setting.inputId
  18. )
  19. },
  20. /**
  21. *
  22. * @param url 访问地址
  23. * @param ul ul 渲染地址
  24. * @param idKey 子主键
  25. * @param pIdKey 夫关系
  26. * @param dataName 数据name
  27. * @param dataId 数据id
  28. * @param ifPid 是否选择父id (默认选择)
  29. * @param insTb 外部参数
  30. * @param menuContent 样式
  31. * @param inputName
  32. * @param inputId
  33. * @private
  34. */
  35. _init: function (url, idKey, pIdKey, dataName, dataId, ifPid, ul, insTb, menuContent, inputName, inputId, defVal) {
  36. var dn, di, name, id;
  37. dn = dataName;
  38. di = dataId;
  39. if (ul == undefined) {
  40. ul = 'wzTree';
  41. }
  42. if (inputName == undefined) {
  43. name = dataName;
  44. } else {
  45. name = inputName;
  46. }
  47. if (inputId == undefined) {
  48. id = di;
  49. } else {
  50. id = inputId;
  51. }
  52. if (ifPid == undefined || ifPid === 0) {
  53. ifPid = 0;
  54. } else {
  55. ifPid = 1;
  56. }
  57. if (menuContent == undefined) {
  58. menuContent = "menuContent";
  59. }
  60. var obj = new Object();
  61. if (ifPid === 0) {
  62. obj.onClick = onClick;
  63. } else {
  64. obj.onClick = onClick;
  65. obj.beforeClick = zTreeBeforeClick
  66. }
  67. var setting = {
  68. check: {
  69. enable: false,
  70. chkboxType: {"Y": "", "N": ""}
  71. },
  72. view: {
  73. dblClickExpand: false
  74. },
  75. data: {
  76. simpleData: {
  77. enable: true,
  78. idKey: idKey,
  79. pIdKey: pIdKey,
  80. rootPId: null
  81. },
  82. key: {
  83. name: dataName
  84. }
  85. },
  86. callback: obj
  87. };
  88. function zTreeBeforeClick(treeId, treeNode, clickFlag) {
  89. return !treeNode.isParent;
  90. };
  91. /**
  92. * ztree 文本下拉
  93. */
  94. $.getJSON(uParas.baseUrl + url, {}, function (res) {
  95. if (res.data.length > 0) {
  96. $.fn.zTree.init($('#' + ul + ''), setting, res.data);
  97. $.fn.zTree.getZTreeObj(ul).expandAll(true);
  98. if (defVal !== undefined && defVal !== null && defVal !== "") {
  99. $.each(res.data, function (i, field) {
  100. if (field[dataId] == defVal) {
  101. $("#" + name + "").val(field[dataName]);
  102. $("#" + id + "").val(field[dataId]);
  103. return false;
  104. } else if (field[dataId] === defVal) {
  105. $("#" + name + "").val(field[dataName]);
  106. $("#" + id + "").val(field[dataId]);
  107. return false;
  108. }
  109. });
  110. }
  111. layer.closeAll('loading');
  112. }
  113. });
  114. function onClick(event, treeId, treeNode, clickFlag) {
  115. var zTree = $.fn.zTree.getZTreeObj(ul),
  116. nodes = zTree.getSelectedNodes(),
  117. v = "", idlist = "";
  118. for (var i = 0, l = nodes.length; i < l; i++) {
  119. v += nodes[i][dn] + ",";
  120. idlist += nodes[i][di] + ",";
  121. }
  122. if (v.length > 0) {
  123. v = v.substring(0, v.length - 1);
  124. idlist = idlist.substring(0, idlist.length - 1);
  125. }
  126. //隐藏 赋值
  127. var cityObj = $("#" + name + "");
  128. if (cityObj.val() == v) {
  129. $("#" + id + "").focus();
  130. $("#" + id + "").attr("value", "");
  131. $("#" + id + "").blur();
  132. $("#" + name + "").val('');
  133. } else {
  134. $("#" + name + "").val(v);
  135. $("#" + id + "").focus();
  136. $("#" + id + "").attr("value", idlist);
  137. $("#" + id + "").blur();
  138. }
  139. //文本赋值
  140. var groupId = idlist;
  141. if (groupId != "-1") {
  142. var Obj = new Object();
  143. Obj.gId = groupId;
  144. Obj.groupId = groupId;
  145. Obj.cId = treeNode.companyOrOrgId;
  146. if (insTb != null && insTb != undefined) {
  147. insTb.reload({where: Obj});
  148. }
  149. }
  150. hideMenu();
  151. }
  152. function hideMenu() {
  153. $("#" + menuContent + "").fadeOut("fast");
  154. $("body").unbind("mousedown", onBodyDown);
  155. }
  156. $("#" + name + "").click(function () {
  157. $("#" + menuContent + "").slideDown("fast");
  158. $("body").bind("mousedown", onBodyDown);
  159. });
  160. function onBodyDown(event) {
  161. if (!(event.target.id === name || event.target.id === "" + menuContent + "" || $(event.target).parents("#" + menuContent + "").length > 0)) {
  162. hideMenu();
  163. }
  164. }
  165. }, _initx: function (url, ul,onClick) {
  166. var setting = {
  167. data: {
  168. simpleData: {
  169. enable: true,
  170. }
  171. }, callback: {
  172. // beforeClick: beforeClick,
  173. onClick: onClick
  174. }
  175. };
  176. $.getJSON(uParas.baseUrl + url, {}, function (res) {
  177. if (res.data.length > 0) {
  178. $.fn.zTree.init($('#' + ul + ''), setting, res.data);
  179. $.fn.zTree.getZTreeObj(ul).expandAll(true);
  180. layer.closeAll('loading');
  181. }
  182. });
  183. // function beforeClick(treeId, treeNode, clickFlag) {
  184. // className = (className === "dark" ? "" : "dark");
  185. // showLog("[ " + getTime() + " beforeClick ]&nbsp;&nbsp;" + treeNode.name);
  186. // return (treeNode.click != false);
  187. // }
  188. // function onClick(event, treeId, treeNode, clickFlag) {
  189. // console.log(1);
  190. // showLog("[ " + getTime() + " onClick ]&nbsp;&nbsp;clickFlag = " + clickFlag + " (" + (clickFlag === 1 ? "single selected" : (clickFlag === 0 ? "<b>cancel selected</b>" : "<b>multi selected</b>")) + ")");
  191. // }
  192. }
  193. }
  194. exports("_zTree", _g);
  195. });