Index.js 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339
  1. /*
  2. * 描 述:顶部菜单皮肤
  3. */
  4. var bootstrap = function ($, learun) {
  5. "use strict";
  6. // 菜单操作
  7. var meuns = {
  8. init: function () {
  9. this.newload();
  10. //this.load();
  11. this.bind();
  12. },
  13. newload: function () {
  14. var modulesTree = learun.clientdata.get(['modulesTree']);
  15. var AuthorizeUser = learun.clientdata.get(['useracl']);
  16. // 第一级菜单
  17. var parentId = 'Web';
  18. var modules = modulesTree[parentId] || [];
  19. var $firstmenus = $('<ul class="lr-first-menu-list"></ul>');
  20. var loginInfo = learun.clientdata.get(['userinfo']);
  21. if (!(JSON.stringify(AuthorizeUser) == "{}")) {
  22. sessionStorage.setItem('CurrentWarehouse', AuthorizeUser.authWarehouses.WarehouseList[0].id);
  23. }
  24. for (var i = 0, l = modules.length; i < l; i++) {
  25. var item = modules[i];
  26. //if (item.F_NO == 'Web_DevelopmentM') {
  27. // if (loginInfo.LOGINUSER.UserType != 1) {
  28. // continue;
  29. // }
  30. //}
  31. //if (item.F_NO == 'Web_SystemM' ) {
  32. // if (loginInfo.LOGINUSER.UserType != 1 && loginInfo.LOGINUSER.UserType != 2) {
  33. // continue;
  34. // }
  35. //}
  36. if (loginInfo.LOGINUSER.UserType == 4) {
  37. if (!AuthorizeUser[item.Code]) {
  38. continue;
  39. }
  40. }
  41. //if (item.F_NO == 'Web_ACLM') {
  42. // if (loginInfo.LOGINUSER.UserType == 4) {
  43. // continue;
  44. // }
  45. //}
  46. if (item.IsMenu == 1) {
  47. var $firstMenuItem = $('<li></li>');
  48. if (!!item.Memo) {
  49. $firstMenuItem.attr('title', item.Memo);
  50. }
  51. var menuItemHtml = '<a id="' + item.Code + '" href="javascript:void(0);" class="lr-menu-item">';
  52. menuItemHtml += '<i class="' + item.Icon + ' lr-menu-item-icon"></i>';
  53. menuItemHtml += '<span class="lr-menu-item-text">' + item.Name + '</span>';
  54. menuItemHtml += '</a>';
  55. $firstMenuItem.append(menuItemHtml);
  56. // 第二级菜单
  57. var secondModules = modulesTree[item.Code] || [];
  58. var $secondMenus = $('<ul class="lr-second-menu-list"></ul>');
  59. var secondMenuHad = false;
  60. for (var j = 0, sl = secondModules.length; j < sl; j++) {
  61. var secondItem = secondModules[j];
  62. if (loginInfo.LOGINUSER.UserType == 4) {
  63. if (!AuthorizeUser[secondItem.Code]) {
  64. continue;
  65. }
  66. }
  67. if (secondItem.IsMenu == 1) {
  68. secondMenuHad = true;
  69. var $secondMenuItem = $('<li></li>');
  70. if (!!secondItem.Memo) {
  71. $secondMenuItem.attr('title', secondItem.Memo);
  72. }
  73. var secondItemHtml = '<a id="' + secondItem.Code + '" href="javascript:void(0);" class="lr-menu-item" >';
  74. secondItemHtml += '<i class="' + secondItem.Icon + ' lr-menu-item-icon"></i>';
  75. secondItemHtml += '<span class="lr-menu-item-text">' + secondItem.Name + '</span>';
  76. secondItemHtml += '</a>';
  77. $secondMenuItem.append(secondItemHtml);
  78. // 第三级菜单
  79. var threeModules = modulesTree[secondItem.Code] || [];
  80. var $threeMenus = $('<ul class="lr-three-menu-list"></ul>');
  81. var threeMenuHad = false;
  82. for (var m = 0, tl = threeModules.length; m < tl; m++) {
  83. var threeItem = threeModules[m];
  84. if (threeItem.IsMenu == 1) {
  85. threeMenuHad = true;
  86. var $threeMenuItem = $('<li></li>');
  87. $threeMenuItem.attr('title', threeItem.Name);
  88. var threeItemHtml = '<a id="' + threeItem.Code + '" href="javascript:void(0);" class="lr-menu-item" >';
  89. threeItemHtml += '<i class="' + threeItem.Icon + ' lr-menu-item-icon"></i>';
  90. threeItemHtml += '<span class="lr-menu-item-text">' + threeItem.Name + '</span>';
  91. threeItemHtml += '</a>';
  92. $threeMenuItem.append(threeItemHtml);
  93. $threeMenus.append($threeMenuItem);
  94. }
  95. }
  96. if (threeMenuHad) {
  97. $secondMenuItem.addClass('lr-meun-had');
  98. $secondMenuItem.find('a').addClass('open').append('<span class="lr-menu-item-arrow"><i class="fa fa-angle-left"></i></span>');
  99. $secondMenuItem.append($threeMenus);
  100. }
  101. $secondMenus.append($secondMenuItem);
  102. }
  103. }
  104. if (secondMenuHad) {
  105. $secondMenus.attr('data-value', item.Code);
  106. $('#lr_second_menu_wrap').append($secondMenus);
  107. }
  108. $firstmenus.append($firstMenuItem);
  109. }
  110. }
  111. $('#lr_frame_menu').html($firstmenus);
  112. // 语言包翻译
  113. $('.lr-menu-item-text').each(function () {
  114. var $this = $(this);
  115. var text = $this.text();
  116. learun.language.get(text, function (_text) {
  117. $this.text(_text);
  118. $this.parent().parent().attr('title', _text);
  119. });
  120. });
  121. },
  122. load: function () {
  123. debugger;
  124. var modulesTree = learun.clientdata.get(['modulesTree']);
  125. var AuthorizeUser = learun.clientdata.get(['useracl']);
  126. // 第一级菜单
  127. var parentId = 'Web';
  128. var modules = modulesTree[parentId] || [];
  129. var $firstmenus = $('<ul class="lr-first-menu-list"></ul>');
  130. var loginInfo = learun.clientdata.get(['userinfo']);
  131. for (var i = 0, l = modules.length; i < l; i++) {
  132. var item = modules[i];
  133. //if (item.F_NO == 'Web_DevelopmentM') {
  134. // if (loginInfo.LOGINUSER.UserType != 1) {
  135. // continue;
  136. // }
  137. //}
  138. //if (item.F_NO == 'Web_SystemM' ) {
  139. // if (loginInfo.LOGINUSER.UserType != 1 && loginInfo.LOGINUSER.UserType != 2) {
  140. // continue;
  141. // }
  142. //}
  143. if (loginInfo.LOGINUSER.UserType == 4) {
  144. if (!AuthorizeUser[item.F_NO]) {
  145. continue;
  146. }
  147. }
  148. //if (item.F_NO == 'Web_ACLM') {
  149. // if (loginInfo.LOGINUSER.UserType == 4) {
  150. // continue;
  151. // }
  152. //}
  153. if (item.F_ISMENU == 1) {
  154. var $firstMenuItem = $('<li></li>');
  155. if (!!item.F_MEMO) {
  156. $firstMenuItem.attr('title', item.F_MEMO);
  157. }
  158. var menuItemHtml = '<a id="' + item.F_NO + '" href="javascript:void(0);" class="lr-menu-item">';
  159. menuItemHtml += '<i class="' + item.F_ICON + ' lr-menu-item-icon"></i>';
  160. menuItemHtml += '<span class="lr-menu-item-text">' + item.F_NAME + '</span>';
  161. menuItemHtml += '</a>';
  162. $firstMenuItem.append(menuItemHtml);
  163. // 第二级菜单
  164. var secondModules = modulesTree[item.F_NO] || [];
  165. var $secondMenus = $('<ul class="lr-second-menu-list"></ul>');
  166. var secondMenuHad = false;
  167. for (var j = 0, sl = secondModules.length; j < sl; j++) {
  168. var secondItem = secondModules[j];
  169. if (loginInfo.LOGINUSER.UserType == 4) {
  170. if (!AuthorizeUser[secondItem.F_NO]) {
  171. continue;
  172. }
  173. }
  174. if (secondItem.F_ISMENU == 1) {
  175. secondMenuHad = true;
  176. var $secondMenuItem = $('<li></li>');
  177. if (!!secondItem.F_MEMO) {
  178. $secondMenuItem.attr('title', secondItem.F_MEMO);
  179. }
  180. var secondItemHtml = '<a id="' + secondItem.F_NO + '" href="javascript:void(0);" class="lr-menu-item" >';
  181. secondItemHtml += '<i class="' + secondItem.F_ICON + ' lr-menu-item-icon"></i>';
  182. secondItemHtml += '<span class="lr-menu-item-text">' + secondItem.F_NAME + '</span>';
  183. secondItemHtml += '</a>';
  184. $secondMenuItem.append(secondItemHtml);
  185. // 第三级菜单
  186. var threeModules = modulesTree[secondItem.F_NO] || [];
  187. var $threeMenus = $('<ul class="lr-three-menu-list"></ul>');
  188. var threeMenuHad = false;
  189. for (var m = 0, tl = threeModules.length; m < tl; m++) {
  190. var threeItem = threeModules[m];
  191. if (threeItem.F_ISMENU == 1) {
  192. threeMenuHad = true;
  193. var $threeMenuItem = $('<li></li>');
  194. $threeMenuItem.attr('title', threeItem.F_NAME);
  195. var threeItemHtml = '<a id="' + threeItem.F_NO + '" href="javascript:void(0);" class="lr-menu-item" >';
  196. threeItemHtml += '<i class="' + threeItem.F_ICON + ' lr-menu-item-icon"></i>';
  197. threeItemHtml += '<span class="lr-menu-item-text">' + threeItem.F_NAME + '</span>';
  198. threeItemHtml += '</a>';
  199. $threeMenuItem.append(threeItemHtml);
  200. $threeMenus.append($threeMenuItem);
  201. }
  202. }
  203. if (threeMenuHad) {
  204. $secondMenuItem.addClass('lr-meun-had');
  205. $secondMenuItem.find('a').addClass('open').append('<span class="lr-menu-item-arrow"><i class="fa fa-angle-left"></i></span>');
  206. $secondMenuItem.append($threeMenus);
  207. }
  208. $secondMenus.append($secondMenuItem);
  209. }
  210. }
  211. if (secondMenuHad) {
  212. $secondMenus.attr('data-value', item.F_NO);
  213. $('#lr_second_menu_wrap').append($secondMenus);
  214. }
  215. $firstmenus.append($firstMenuItem);
  216. }
  217. }
  218. $('#lr_frame_menu').html($firstmenus);
  219. // 语言包翻译
  220. $('.lr-menu-item-text').each(function () {
  221. var $this = $(this);
  222. var text = $this.text();
  223. learun.language.get(text, function (_text) {
  224. $this.text(_text);
  225. $this.parent().parent().attr('title', _text);
  226. });
  227. });
  228. },
  229. bind: function () {
  230. $("#lr_frame_menu").lrscroll();
  231. $("#lr_second_menu_wrap").lrscroll();
  232. var w = 0;
  233. var width = $('.lr-first-menu-list').children().each(function () {
  234. w += $(this).outerWidth();
  235. });
  236. $('.lr-first-menu-list').css({ 'width': w });
  237. $('.lr-first-menu-list').parent().css({ 'width': w });
  238. // 添加点击事件
  239. $('#lr_frame_menu .lr-menu-item').on('click', function () {
  240. var $obj = $(this);
  241. var id = $obj.attr('id');
  242. var _module = learun.clientdata.get(['modulesMap', id]);
  243. switch (_module.Target) { //_module.F_TARGET
  244. case 1:// 窗口
  245. if (learun.validator.isNotNull(_module.URLAddr).code) {//_module.F_URLADDR
  246. learun.frameTab.open(_module);
  247. }
  248. else {
  249. }
  250. break;
  251. case 2:
  252. if (!$obj.hasClass('active')) {
  253. $('#lr_frame_menu .active').removeClass('active');
  254. $obj.addClass('active');
  255. $obj.parent().addClass('active');
  256. var $subMenu = $('#lr_second_menu_wrap');
  257. $subMenu.find('.lr-second-menu-list').hide();
  258. $subMenu.find('.lr-second-menu-list[data-value="' + id + '"]').show();
  259. }
  260. break;
  261. }
  262. });
  263. // 添加点击事件
  264. $('#lr_second_menu_wrap .lr-menu-item').on('click', function () {
  265. var $obj = $(this);
  266. var id = $obj.attr('id');
  267. var _module = learun.clientdata.get(['modulesMap', id]);
  268. switch (_module.Target) { //_module.F_TARGET
  269. case 1:// 窗口
  270. if (learun.validator.isNotNull(_module.URLAddr).code) {//_module.F_URLADDR
  271. if (_module.IsShared == 0) {
  272. var curr = sessionStorage.getItem('CurrentWarehouse');
  273. if (_module.URLAddr.indexOf(curr) < 0) {
  274. _module.URLAddr = '/' + curr + _module.URLAddr.replace('/HJManager', '');
  275. }
  276. }
  277. learun.frameTab.open(_module);
  278. }
  279. else {
  280. }
  281. break;
  282. case 2:// 打开子菜单
  283. var $ul = $obj.next();
  284. if ($ul.is(':visible')) {
  285. $ul.slideUp(500, function () {
  286. $obj.removeClass('open');
  287. });
  288. }
  289. else {
  290. $ul.slideDown(300, function () {
  291. $obj.addClass('open');
  292. });
  293. }
  294. break;
  295. }
  296. });
  297. $('.lr-first-menu-list>li').eq(0).find('a').trigger('click');
  298. $('#lr_frame_menu_btn').on('click', function () {
  299. var $body = $('body');
  300. if ($body.hasClass('lr-menu-closed')) {
  301. $body.removeClass('lr-menu-closed');
  302. }
  303. else {
  304. $body.addClass('lr-menu-closed');
  305. }
  306. });
  307. $('#lr_second_menu_wrap a').hover(function () {
  308. if ($('body').hasClass('lr-menu-closed')) {
  309. var id = $(this).attr('id');
  310. var text = $('#' + id + '>span').text();
  311. layer.tips(text, $(this));
  312. }
  313. }, function () {
  314. if ($('body').hasClass('lr-menu-closed')) {
  315. layer.closeAll('tips');
  316. }
  317. });
  318. }
  319. };
  320. meuns.init();
  321. };