funbar.js 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. $(function() {
  2. require(['util'], function(util) {
  3. var funbaredit = false;
  4. var edithtml = '<span class="editdel"><span class="edit">编辑</span> <span class="del">删除</span></span>';
  5. var funbarstatus = util.cookie.get('funbar');
  6. if (funbarstatus && funbarstatus > 0) {
  7. $(".funbar").addClass("active")
  8. }
  9. $(".funbar-toggle").unbind('click').click(function() {
  10. $(".funbar").toggleClass('active');
  11. if ($('.funbar').hasClass('active')) {
  12. util.cookie.set('funbar', 1)
  13. } else {
  14. util.cookie.set('funbar', 0)
  15. }
  16. });
  17. $(".funbar .edit-btn").unbind('click').click(function() {
  18. $(".fb-footer .default").hide();
  19. $(".fb-footer .complete").show();
  20. $(".funbar").data('edit', 1).addClass('edit');
  21. $(".page-gotop.style2").addClass('edit');
  22. funbaredit = true;
  23. require(['jquery.ui'], function() {
  24. $("#funbar-btns").sortable({
  25. containment: 'parent'
  26. })
  27. })
  28. });
  29. $(document).on('mouseover', '.funbar .fb-inner nav', function() {
  30. if (funbaredit) {
  31. if ($(this).find('.editdel').length <= 0) {
  32. $(this).append(edithtml)
  33. } else {
  34. $(this).find('.editdel').show()
  35. }
  36. }
  37. });
  38. $(document).on('mouseleave', '.funbar .fb-inner nav', function() {
  39. $(this).find('.editdel').hide()
  40. });
  41. $(".funbar .save-btn").unbind('click').click(function() {
  42. $(".fb-footer .complete").hide();
  43. $(".fb-footer .default").show();
  44. $(".funbar").data('edit', 0).removeClass('edit');
  45. $(".page-gotop.style2").removeClass('edit');
  46. funbaredit = false;
  47. $("#funbar-btns").sortable('destroy');
  48. saveFun()
  49. });
  50. $(document).on('click', '.funbar .fb-inner nav .edit', function() {
  51. if (funbaredit) {
  52. var nav = $(this).closest('nav');
  53. var text = nav.find('span').eq(0).text();
  54. var color = rgb2hex(nav.css('color'));
  55. if (color == '#ffffff') {
  56. color = '#666666'
  57. }
  58. var bold = nav.css('font-weight');
  59. if (bold == 'bold') {
  60. $("#modal-funbar").find('#menubold1').prop('checked', true);
  61. $("#modal-funbar").find('#menubold0').removeAttr('checked')
  62. } else {
  63. $("#modal-funbar").find('#menubold0').prop('checked', true);
  64. $("#modal-funbar").find('#menubold1').removeAttr('checked')
  65. }
  66. var link = nav.data('href');
  67. if ($.trim(link) == '') {
  68. link = thisUrl()
  69. }
  70. $("#modal-funbar").find('#menuname').val(text);
  71. $("#modal-funbar").find('#menucolor').val(color);
  72. $("#modal-funbar").find('#menulink').val(link);
  73. nav.addClass('active');
  74. $("#modal-funbar .modal-header h3").text("编辑快捷导航");
  75. $("#modal-funbar").modal({
  76. backdrop: 'static',
  77. keyboard: false
  78. })
  79. }
  80. });
  81. $(document).on('click', '.funbar .fb-inner nav .del', function() {
  82. if (funbaredit) {
  83. var _this = $(this);
  84. tip.confirm("确定删除吗? 删除后点击保存才生效哦~", function() {
  85. _this.closest("nav").remove()
  86. })
  87. }
  88. });
  89. $("#modal-funbar .close-modal").unbind('click').click(function() {
  90. var modal = $(this).closest('#modal-funbar');
  91. var text = modal.find('#menuname').val();
  92. var color = modal.find('#menucolor').val();
  93. var link = modal.find('#menulink').val();
  94. var bold = modal.find("input[name='bold']:checked").val();
  95. if ($.trim(text) == '') {
  96. modal.find('#menuname').focus();
  97. tip.msgbox.err("请填写导航名称!");
  98. return false
  99. }
  100. if ($.trim(link) == '') {
  101. link = thisUrl()
  102. }
  103. if (bold && bold > 0) {
  104. var style = {
  105. 'font-weight': 'bold'
  106. }
  107. } else {
  108. var style = {
  109. 'font-weight': 'normal'
  110. }
  111. }
  112. if (color != '#666666') {
  113. style.color = color
  114. }
  115. if ($(".funbar .fb-inner nav.active").length > 0) {
  116. $(".funbar .fb-inner nav.active").css(style).data('href', link).find("span").eq(0).text(text);
  117. $(".funbar .fb-inner nav").removeClass('active')
  118. } else {
  119. var _html = '<nav data-href="' + link + '" style="';
  120. if (color != '#666666') {
  121. _html += 'color: ' + color + "; "
  122. }
  123. if (bold && bold > 0) {
  124. _html += 'font-weight: bold; '
  125. } else {
  126. _html += 'font-weight: normal; '
  127. }
  128. _html += '"><span>' + text + '</span></nav>';
  129. $("#funbar-btns").append(_html)
  130. }
  131. });
  132. $("#modal-funbar .close-modal2").unbind('click').click(function() {
  133. $(".funbar .fb-inner nav.active").removeClass('active')
  134. });
  135. $(document).on('click', '.funbar .fb-inner nav', function() {
  136. if (!funbaredit) {
  137. var href = $(this).data('href');
  138. if (href) {
  139. location.href = href
  140. }
  141. }
  142. });
  143. $(".add-btn").unbind('click').click(function() {
  144. $("#modal-funbar .modal-header h3").text("添加快捷导航");
  145. $("#modal-funbar").find('#menuname').val('');
  146. $("#modal-funbar").find('#menucolor').val('#666666');
  147. $("#modal-funbar").find('#menulink').val(thisUrl());
  148. $("#modal-funbar").modal({
  149. backdrop: 'static',
  150. keyboard: false
  151. })
  152. });
  153. $("#funsearch").keyup(function() {
  154. var kw = $(this).val();
  155. if (kw) {
  156. $("#funbar-btns nav").each(function() {
  157. var _kw = $(this).find('span').eq(0).text();
  158. if (_kw.indexOf(kw) >= 0) {
  159. $(this).show()
  160. } else {
  161. $(this).hide()
  162. }
  163. })
  164. } else {
  165. $("#funbar-btns nav").show()
  166. }
  167. });
  168. if ($(".funbar.style2").length > 0) {
  169. var funbarTop = $(".funbar.style2").css('top').replace('px', '');
  170. $(window).bind('scroll resize load', function() {
  171. var top = $(window).scrollTop();
  172. var top = top + parseInt(funbarTop);
  173. $(".funbar.style2").animate({
  174. 'top': top + 'px'
  175. }, 13)
  176. })
  177. }
  178. });
  179. function rgb2hex(rgb) {
  180. rgb = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
  181. function hex(x) {
  182. return ("0" + parseInt(x).toString(16)).slice(-2)
  183. }
  184. return "#" + hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3])
  185. }
  186. function saveFun() {
  187. var fundata = [];
  188. $("#funbar-btns nav").each(function() {
  189. var _href = $(this).data('href');
  190. var _text = $(this).find('span').eq(0).text();
  191. var _color = rgb2hex($(this).css('color'));
  192. if (_color == '#666666') {
  193. _color = ''
  194. }
  195. var _bold = 0;
  196. if ($(this).css('font-weight') == 'bold') {
  197. _bold = 1
  198. }
  199. fundata.push({
  200. 'href': _href,
  201. 'text': _text,
  202. 'color': _color,
  203. 'bold': _bold,
  204. })
  205. });
  206. $.post(biz.url('sysset/funbar'), {
  207. funbardata: fundata
  208. }, function(ret) {
  209. if (ret.status == 1) {
  210. tip.msgbox.suc("保存成功!")
  211. } else {
  212. tip.msgbox.err("保存失败请重试!")
  213. }
  214. }, 'json')
  215. }
  216. function thisUrl() {
  217. var str = location.protocol + "//" + location.hostname + "/web/";
  218. var url = window.location + '';
  219. return url.replace(str, "./")
  220. }
  221. });