hplus.js 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325
  1. //自定义js
  2. //公共配置
  3. $(document).ready(function () {
  4. // MetsiMenu
  5. $('#side-menu').metisMenu();
  6. // 打开右侧边栏
  7. $('.right-sidebar-toggle').click(function () {
  8. $('#right-sidebar').toggleClass('sidebar-open');
  9. });
  10. // 右侧边栏使用slimscroll
  11. $('.sidebar-container').slimScroll({
  12. height: '100%',
  13. railOpacity: 0.4,
  14. wheelStep: 10
  15. });
  16. // 打开聊天窗口
  17. $('.open-small-chat').click(function () {
  18. $(this).children().toggleClass('fa-comments').toggleClass('fa-remove');
  19. $('.small-chat-box').toggleClass('active');
  20. });
  21. // 聊天窗口使用slimscroll
  22. $('.small-chat-box .content').slimScroll({
  23. height: '234px',
  24. railOpacity: 0.4
  25. });
  26. // Small todo handler
  27. $('.check-link').click(function () {
  28. var button = $(this).find('i');
  29. var label = $(this).next('span');
  30. button.toggleClass('fa-check-square').toggleClass('fa-square-o');
  31. label.toggleClass('todo-completed');
  32. return false;
  33. });
  34. //固定菜单栏
  35. $(function () {
  36. $('.sidebar-collapse').slimScroll({
  37. height: '100%',
  38. railOpacity: 0.9,
  39. alwaysVisible: false
  40. });
  41. });
  42. // 菜单切换
  43. $('.navbar-minimalize').click(function () {
  44. $("body").toggleClass("mini-navbar");
  45. SmoothlyMenu();
  46. });
  47. // 侧边栏高度
  48. function fix_height() {
  49. var heightWithoutNavbar = $("body > #wrapper").height() - 61;
  50. $(".sidebard-panel").css("min-height", heightWithoutNavbar + "px");
  51. }
  52. fix_height();
  53. $(window).bind("load resize click scroll", function () {
  54. if (!$("body").hasClass('body-small')) {
  55. fix_height();
  56. }
  57. });
  58. //侧边栏滚动
  59. $(window).scroll(function () {
  60. if ($(window).scrollTop() > 0 && !$('body').hasClass('fixed-nav')) {
  61. $('#right-sidebar').addClass('sidebar-top');
  62. } else {
  63. $('#right-sidebar').removeClass('sidebar-top');
  64. }
  65. });
  66. $('.full-height-scroll').slimScroll({
  67. height: '100%'
  68. });
  69. $('#side-menu>li').click(function () {
  70. if ($('body').hasClass('mini-navbar')) {
  71. NavToggle();
  72. }
  73. });
  74. $('#side-menu>li li a').click(function () {
  75. if ($(window).width() < 769) {
  76. NavToggle();
  77. }
  78. });
  79. $('.nav-close').click(NavToggle);
  80. //ios浏览器兼容性处理
  81. if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
  82. $('#content-main').css('overflow-y', 'auto');
  83. }
  84. });
  85. $(window).bind("load resize", function () {
  86. if ($(this).width() < 769) {
  87. $('body').addClass('mini-navbar');
  88. $('.navbar-static-side').fadeIn();
  89. }
  90. });
  91. function NavToggle() {
  92. // $('.navbar-minimalize').trigger('click');
  93. $("body").toggleClass("mini-navbar");
  94. SmoothlyMenu();
  95. }
  96. function SmoothlyMenu() {
  97. if (!$('body').hasClass('mini-navbar')) {
  98. $('#side-menu').hide();
  99. setTimeout(
  100. function () {
  101. $('#side-menu').fadeIn(500);
  102. }, 100);
  103. } else if ($('body').hasClass('fixed-sidebar')) {
  104. $('#side-menu').hide();
  105. setTimeout(
  106. function () {
  107. $('#side-menu').fadeIn(500);
  108. }, 300);
  109. } else {
  110. $('#side-menu').removeAttr('style');
  111. }
  112. }
  113. //主题设置
  114. $(function () {
  115. // 顶部菜单固定
  116. $('#fixednavbar').click(function () {
  117. if ($('#fixednavbar').is(':checked')) {
  118. $(".navbar-static-top").removeClass('navbar-static-top').addClass('navbar-fixed-top');
  119. $("body").removeClass('boxed-layout');
  120. $("body").addClass('fixed-nav');
  121. $('#boxedlayout').prop('checked', false);
  122. if (localStorageSupport) {
  123. localStorage.setItem("boxedlayout", 'off');
  124. }
  125. if (localStorageSupport) {
  126. localStorage.setItem("fixednavbar", 'on');
  127. }
  128. } else {
  129. $(".navbar-fixed-top").removeClass('navbar-fixed-top').addClass('navbar-static-top');
  130. $("body").removeClass('fixed-nav');
  131. if (localStorageSupport) {
  132. localStorage.setItem("fixednavbar", 'off');
  133. }
  134. }
  135. });
  136. // 收起左侧菜单
  137. $('#collapsemenu').click(function () {
  138. if ($('#collapsemenu').is(':checked')) {
  139. $("body").addClass('mini-navbar');
  140. SmoothlyMenu();
  141. if (localStorageSupport) {
  142. localStorage.setItem("collapse_menu", 'on');
  143. }
  144. } else {
  145. $("body").removeClass('mini-navbar');
  146. SmoothlyMenu();
  147. if (localStorageSupport) {
  148. localStorage.setItem("collapse_menu", 'off');
  149. }
  150. }
  151. });
  152. // 固定宽度
  153. $('#boxedlayout').click(function () {
  154. if ($('#boxedlayout').is(':checked')) {
  155. $("body").addClass('boxed-layout');
  156. $('#fixednavbar').prop('checked', false);
  157. $(".navbar-fixed-top").removeClass('navbar-fixed-top').addClass('navbar-static-top');
  158. $("body").removeClass('fixed-nav');
  159. if (localStorageSupport) {
  160. localStorage.setItem("fixednavbar", 'off');
  161. }
  162. if (localStorageSupport) {
  163. localStorage.setItem("boxedlayout", 'on');
  164. }
  165. } else {
  166. $("body").removeClass('boxed-layout');
  167. if (localStorageSupport) {
  168. localStorage.setItem("boxedlayout", 'off');
  169. }
  170. }
  171. });
  172. // 默认主题
  173. $('.s-skin-0').click(function () {
  174. $("body").removeClass("skin-1");
  175. $("body").removeClass("skin-2");
  176. $("body").removeClass("skin-3");
  177. return false;
  178. });
  179. // 蓝色主题
  180. $('.s-skin-1').click(function () {
  181. $("body").removeClass("skin-2");
  182. $("body").removeClass("skin-3");
  183. $("body").addClass("skin-1");
  184. return false;
  185. });
  186. // 黄色主题
  187. $('.s-skin-3').click(function () {
  188. $("body").removeClass("skin-1");
  189. $("body").removeClass("skin-2");
  190. $("body").addClass("skin-3");
  191. return false;
  192. });
  193. if (localStorageSupport) {
  194. var collapse = localStorage.getItem("collapse_menu");
  195. var fixednavbar = localStorage.getItem("fixednavbar");
  196. var boxedlayout = localStorage.getItem("boxedlayout");
  197. if (collapse == 'on') {
  198. $('#collapsemenu').prop('checked', 'checked')
  199. }
  200. if (fixednavbar == 'on') {
  201. $('#fixednavbar').prop('checked', 'checked')
  202. }
  203. if (boxedlayout == 'on') {
  204. $('#boxedlayout').prop('checked', 'checked')
  205. }
  206. }
  207. if (localStorageSupport) {
  208. var collapse = localStorage.getItem("collapse_menu");
  209. var fixednavbar = localStorage.getItem("fixednavbar");
  210. var boxedlayout = localStorage.getItem("boxedlayout");
  211. var body = $('body');
  212. if (collapse == 'on') {
  213. if (!body.hasClass('body-small')) {
  214. body.addClass('mini-navbar');
  215. }
  216. }
  217. if (fixednavbar == 'on') {
  218. $(".navbar-static-top").removeClass('navbar-static-top').addClass('navbar-fixed-top');
  219. body.addClass('fixed-nav');
  220. }
  221. if (boxedlayout == 'on') {
  222. body.addClass('boxed-layout');
  223. }
  224. }
  225. notify_init();
  226. config.window.height = window.screen.height * 0.8;
  227. config.window.width = window.screen.width * 0.8;
  228. });
  229. function notify_init(){
  230. // $('#notify_msg content').
  231. var ws = new WebSocket("ws://" + config.ws_path + "/notify");
  232. ws.onmessage = function(evt){
  233. console.log(evt.data);
  234. // 解析获取的推送数据
  235. var obj = JSON.parse(evt.data);
  236. var _type = parseInt(obj.type);
  237. // if(_type == NaN) return false;
  238. var _div = '<div class="left"><div class="author-name">通知 <small class="chat-date">' + obj.pushTime + '</small></div>';
  239. _div += '<div class="chat-message"><br/>' + obj.data;
  240. if(_type == 1){
  241. // 文本消息
  242. // console.log('1');
  243. }
  244. else if(_type == 2){
  245. _div += '<br/><a class="J_menuItem" href="' + obj.url + '">消息处理</a>';
  246. }
  247. else {
  248. return false;
  249. }
  250. _div += '</div></div>';
  251. $('#notify_msg').append(_div);
  252. };
  253. }
  254. //判断浏览器是否支持html5本地存储
  255. function localStorageSupport() {
  256. return (('localStorage' in window) && window['localStorage'] !== null)
  257. }