index.js 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287
  1. $(function () {
  2. //隐藏角色上的提示红点
  3. $('#role-name-num').hide();
  4. function doSearch(text) {
  5. $('#menutree').tree('search', text);
  6. }
  7. App.init(function () {
  8. document.onkeydown = function (event) {
  9. if (event.ctrlKey && event.keyCode === 191) {
  10. console.log($(document.activeElement));
  11. }
  12. };
  13. $('#body').layout();
  14. $('#treesearch').searchbox({
  15. prompt: '搜索',
  16. searcher: doSearch,
  17. icons: [
  18. {
  19. iconCls: 'icon-clear',
  20. handler: function (e) {
  21. $(e.data.target).textbox('clear').textbox('textbox').focus();
  22. doSearch('');
  23. }
  24. }]
  25. });
  26. $('.easyui-menubutton').menubutton();
  27. $('#menutree').tree({
  28. url: '/app/whepi/mock/menu.json', //api('/menu_tree'),
  29. onDblClick: function (node) {
  30. var $this = $(this);
  31. if (!$this.tree('isLeaf', node.target)) {
  32. $this.tree(node.state === 'closed' ? 'expand' : 'collapse', node.target);
  33. }
  34. },
  35. onSelect: function () {
  36. return false;
  37. },
  38. onClick: function (node) {
  39. var href = node.href;
  40. if ($.trim(href)) {
  41. App.addTab({title: node.text, url: node.href, id: node.id, iconCls: node.iconCls});
  42. }
  43. },
  44. onLoadSuccess: function (node, data) {
  45. }
  46. });
  47. $('#mm').menu({
  48. onClick: function (item) {
  49. App.tabMenuOprate(this, item.name);
  50. }
  51. });
  52. $('#tt').tabs({
  53. onContextMenu: function (e, title, index) {
  54. e.preventDefault();
  55. if (index >= 0) {
  56. $('#mm').menu('show', {
  57. left: e.pageX,
  58. top: e.pageY
  59. }).data("tabTitle", title);
  60. }
  61. },
  62. onSelect: function (title, index) {
  63. if (index >= 0) {
  64. var node = $('#tt').tabs('getTab', index).panel('options').node;
  65. if (node && node.id) {
  66. window.location.hash = $.param(node);
  67. node = $('#menutree').tree('find', node.id);
  68. $('#menutree').tree('select', node.target).tree('expandTo', node.target).tree('scrollTo', node.target);
  69. }
  70. }
  71. },
  72. onBeforeClose: function (title, index) {
  73. var tab = $('#tt').tabs('getSelected');
  74. var curTabIndex = $('#tt').tabs('getTabIndex', tab);
  75. if (index === curTabIndex) {
  76. window.location.hash = '';
  77. }
  78. }
  79. });
  80. });
  81. });
  82. var App = {
  83. init: function (success) {
  84. $.yvan.ajax({
  85. url: api("/api/me"),
  86. method: 'get',
  87. loadingMask: false,
  88. success: function (data) {
  89. if (!$.trim(data.data.userId)) {
  90. top.window.location.href = jumpApi(YJYDLOGINURL);
  91. return;
  92. }
  93. $('#user-name').html(data.data.staffName);
  94. success();
  95. $("#loading").remove();
  96. },
  97. error: function () {
  98. top.window.location.href = jumpApi(YJYDLOGINURL);
  99. }
  100. });
  101. },
  102. //打开Tab窗口
  103. addTab: function (params) {
  104. var $tt = $('#tt');
  105. if ($tt.tabs('exists', params.title)) {
  106. $tt.tabs('select', params.title);
  107. return;
  108. }
  109. var lastMenuClickTime = $.cookie("menuClickTime");
  110. var nowTime = new Date().getTime();
  111. if ((nowTime - lastMenuClickTime) < 500) {
  112. $.yvan.msg('操作过快,请稍后重试');
  113. return;
  114. }
  115. var id = $.yvan.createId('t');
  116. var iframe;
  117. if (params.url.slice(-3) === '.js') {
  118. iframe = $('<div></div>');
  119. iframe.progress();
  120. } else {
  121. iframe = '<iframe src="' + params.url +
  122. '" scrolling="auto" frameborder="0" style="width:100%;height:100%;"></iframe>';
  123. }
  124. $tt.tabs('add', {
  125. id: id,
  126. title: params.title,
  127. closable: true,
  128. iconCls: $.trim(params.iconCls) ? params.iconCls + ' fa-lg' : 'fa fa-file-text-o',
  129. content: iframe,
  130. border: params.border || true,
  131. fit: true,
  132. node: {
  133. url: params.url,
  134. title: params.title,
  135. id: params.id
  136. }
  137. });
  138. if ($.type(iframe) !== 'string') {
  139. seajs.use([params.url], function (powerOpt) {
  140. if ($.type(powerOpt) === 'function') {
  141. powerOpt = powerOpt();
  142. }
  143. console.log(powerOpt);
  144. $.extend(powerOpt, {
  145. class: 'bizWindow'
  146. });
  147. iframe.parent().power(powerOpt);
  148. iframe.progress('close');
  149. });
  150. }
  151. },
  152. closeMe: function () {
  153. var $tt = $('#tt');
  154. var tab = $tt.tabs('getSelected');
  155. var index = $tt.tabs('getTabIndex', tab);
  156. $tt.tabs("close", index);
  157. },
  158. // Tab菜单操作
  159. tabMenuOprate: function (menu, type) {
  160. var $tt = $('#tt');
  161. var allTabs = $tt.tabs('tabs');
  162. var allTabtitle = [];
  163. $.each(allTabs, function (i, n) {
  164. var opt = $(n).panel('options');
  165. if (opt.closable)
  166. allTabtitle.push(opt.title);
  167. });
  168. var curTabTitle = $(menu).data("tabTitle");
  169. var curTabIndex = $tt.tabs("getTabIndex", $tt.tabs("getTab", curTabTitle));
  170. switch (type) {
  171. case "1": //关闭当前
  172. $tt.tabs("close", curTabTitle);
  173. break;
  174. case "2": //全部关闭
  175. for (var i = 0; i < allTabtitle.length; i++) {
  176. $tt.tabs('close', allTabtitle[i]);
  177. }
  178. break;
  179. case "3": //除此之外全部关闭
  180. for (var i = 0; i < allTabtitle.length; i++) {
  181. if (curTabTitle != allTabtitle[i])
  182. $tt.tabs('close', allTabtitle[i]);
  183. }
  184. $tt.tabs('select', curTabTitle);
  185. $tt.tabs('scrollBy', 0);
  186. break;
  187. case "4": //当前侧面右边
  188. for (var i = curTabIndex; i < allTabtitle.length; i++) {
  189. $tt.tabs('close', allTabtitle[i]);
  190. }
  191. $tt.tabs('select', curTabTitle);
  192. break;
  193. case "5": //当前侧面左边
  194. for (var i = 0; i < curTabIndex - 1; i++) {
  195. $tt.tabs('close', allTabtitle[i]);
  196. }
  197. $tt.tabs('select', curTabTitle);
  198. break;
  199. case "6": //刷新
  200. var currentTab = $tt.tabs('getSelected');
  201. var opts = $.data(currentTab[0], 'panel').options;
  202. if (opts.iframe) {
  203. var currentIframe = currentTab.find('iframe')[0];
  204. currentIframe.contentWindow.location.href = currentIframe.src;
  205. } else {
  206. $(currentTab[0]).panel('refresh');
  207. }
  208. break;
  209. case "7": //在新窗口打开
  210. var refresh_tab = $tt.tabs('getSelected');
  211. var refresh_iframe = refresh_tab.find('iframe')[0];
  212. window.open(refresh_iframe.src);
  213. break;
  214. }
  215. },
  216. //退出登录
  217. logout: function () {
  218. $.cookie('auth', null);
  219. top.window.location.href = jumpApi(YJYDLOGINURL);
  220. },
  221. //修改密码
  222. resetPWD: function () {
  223. var me = this;
  224. seajs.use('/user/resetPWD', function (opt) {
  225. $.yvan.showDialog(me, opt());
  226. });
  227. },
  228. //全屏显示
  229. onFullScreen: function () {
  230. //头部全屏显示
  231. var text = $('.full-screen span').text();
  232. if (text === "全屏显示") {
  233. var el = document.documentElement;
  234. var rfs = el.requestFullScreen || el.webkitRequestFullScreen;
  235. if (typeof rfs !== "undefined" && rfs) {
  236. rfs.call(el);
  237. } else if (typeof window.ActiveXObject !== "undefined") {
  238. var wscript = new ActiveXObject("WScript.Shell");
  239. if (wscript != null) {
  240. wscript.SendKeys("{F11}");
  241. }
  242. } else if (el.msRequestFullscreen) {
  243. el.msRequestFullscreen();
  244. } else if (el.oRequestFullscreen) {
  245. el.oRequestFullscreen();
  246. } else {
  247. $.yvan.msg('浏览器不支持全屏调用!请更换浏览器或按F11键切换全屏!');
  248. }
  249. $('.full-screen span').text('退出全屏');
  250. } else {
  251. var el = document;
  252. var cfs = el.cancelFullScreen || el.webkitCancelFullScreen || el.exitFullScreen;
  253. if (typeof cfs !== "undefined" && cfs) {
  254. cfs.call(el);
  255. } else if (typeof window.ActiveXObject !== "undefined") {
  256. var wscript = new ActiveXObject("WScript.Shell");
  257. if (wscript != null) {
  258. wscript.SendKeys("{F11}");
  259. }
  260. } else if (el.msExitFullscreen) {
  261. el.msExitFullscreen();
  262. } else if (el.oRequestFullscreen) {
  263. el.oCancelFullScreen();
  264. } else {
  265. $.yvan.msg('浏览器不支持全屏调用!请更换浏览器或按F11键切换全屏!');
  266. }
  267. $('.full-screen span').text('全屏显示');
  268. }
  269. }
  270. };