admin.js 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334
  1. /**
  2. * 全局js
  3. * @Author MrLiu
  4. */
  5. layui.use(['layer','jquery','form','carousel','element','upload'],function(){
  6. var layer = layui.layer;//弹出层组件
  7. var form = layui.form;//表单组件
  8. var element = layui.element;
  9. var carousel = layui.carousel;//轮播组件
  10. var $ = layui.jquery;//jquery
  11. var upload = layui.upload;// 文件上传组件
  12. var error = "错误~";
  13. // 初始化页面
  14. // msg("LeoAdmin 欢迎你");
  15. // 初始化提示消息
  16. function msg(str,icon,offset){
  17. str = str == null ? "没有内容" : str;
  18. offset = offset == null ? "20px" : offset;
  19. if(icon == null || icon == ""){
  20. return layer.msg(str,{offset:offset});
  21. }else{
  22. return layer.msg(str,{icon:icon},{offset:offset});
  23. }
  24. }
  25. // 控制台输出方法
  26. function l(object,alias){
  27. var agmlen = arguments.length;
  28. true === alias ? layer.closeAll() : alias ;
  29. for(var i = 0;i < agmlen;i++){
  30. console.log("[type => "+typeof arguments[i]+",content => "+arguments[i]+"]");
  31. }
  32. }
  33. // 删除节点
  34. function remove_dom(object){
  35. var agmlen = arguments.length;
  36. for (var i = 0; i < agmlen; i++) {
  37. if(typeof arguments[i] == "object" && arguments[i] != "undefined"){
  38. arguments[i].remove();
  39. }
  40. }
  41. }
  42. // 阻止冒泡事件
  43. function stopPropagation(e) {
  44. var ev = e || window.event;
  45. if (ev.stopPropagation) {
  46. ev.stopPropagation();
  47. } else if (window.event) {
  48. window.event.cancelBubble = true;//兼容IE
  49. }
  50. };
  51. // 自定义绑定事件方法
  52. function bf(dom,fn,type,child) {
  53. if(typeof dom == 'object' && dom != 'undefined'){
  54. type = type == null ? "click" : type;
  55. if(child != "" && child != 'object'){
  56. return dom.on(type,child,fn);
  57. } else {
  58. return dom.on(type,fn);
  59. }
  60. }
  61. };
  62. // 遮罩层
  63. function shade(dom,load){
  64. if(load == true){
  65. var shade = "<div class=\"tpl-shade\" style=\"display: block;\"><div><i class=\"fa fa-star-o shade-load\"></i></div></div>";
  66. }else{
  67. var shade = "<div class=\"tpl-shade\" style=\"display: block;\"></div>";
  68. }
  69. return dom.append(shade);
  70. };
  71. // 播放视频处理
  72. function do_play(src,dom){
  73. var html = "";
  74. html += "<div class=\"tpl-layer\"><div class=\"tpl-layer-content\">";
  75. html += "<a href=\"javscript:;\" class=\"video-close\" id=\"close\">x</a>";
  76. html += "<video controls>";
  77. html += "<source src=\""+src+"\" type=\"video/mp4\">";
  78. html += "您的浏览器不支持 HTML5 video 标签。";
  79. html += "</video></div></div>";
  80. dom.append(html);
  81. return true;
  82. }
  83. bf($(".test1"),function(){
  84. l("???是傻子");
  85. },"click");
  86. // 收放导航列表
  87. bf($(".switch-list"),function(){
  88. var ans = "";
  89. if($(this).children("i").hasClass("fa-hand-o-left")){
  90. $(this).children("i").removeClass("fa-hand-o-left");
  91. $(this).children("i").addClass("fa-hand-o-right");
  92. }else{
  93. $(this).children("i").removeClass("fa-hand-o-right");
  94. $(this).children("i").addClass("fa-hand-o-left");
  95. }
  96. if ($(".tm-tpl").hasClass("small-item")){
  97. $(".tm-tpl").removeClass("small-item");
  98. ans = 2;
  99. } else {
  100. $(".tm-tpl").addClass("small-item");
  101. ans = 1;
  102. }
  103. // 保持操作状态
  104. $.ajax({
  105. url:"../index/view",
  106. type:"post",
  107. datatype:"json",
  108. data:{
  109. left_item:ans
  110. },
  111. success:function(data){
  112. l(data);
  113. }
  114. })
  115. });
  116. // 刷新页面
  117. bf($(".refresh"),function(){
  118. window.location.reload();
  119. });
  120. // 呼出右侧列表
  121. bf($(".dashboard,.user"),function(e){
  122. var bar = $(this).attr("tag");
  123. if($(".right-bar").hasClass(bar)){
  124. remove_dom($(".right-bar").find($(".tpl-shade")));
  125. if ($("."+bar).css("right") == "-1500px"){
  126. $(".right-bar").css("right","-1500px");
  127. $("."+bar).css("right",0);
  128. $(".tpl-body").css("overflow","hidden");
  129. } else {
  130. $("."+bar).css("right","-1500px");
  131. $(".tpl-body").css("overflow","auto");
  132. }
  133. // shade($("."+bar).find(".right-bar-fluid"),true);
  134. stopPropagation(e);
  135. }else{
  136. msg("配置的tag目标为空");
  137. }
  138. });
  139. bf($(".right-bar"),function(e){
  140. stopPropagation(e);
  141. });
  142. // 页面的点击冒泡
  143. bf($(document),function(){
  144. $(".right-bar").css("right","-1500px");
  145. })
  146. // 点击更换页面主题
  147. bf($("#style-list"),function(e){
  148. var style = $(this).attr("data-style");
  149. var styleName = $(".tm-tpl").attr("style-name");
  150. $(".tm-tpl").removeClass(styleName);
  151. $(".tm-tpl").attr("style-name",style);
  152. $(".tm-tpl").addClass(style);
  153. $.ajax({ //使用服务器端session保存操作
  154. url:"../index/view",
  155. type:"post",
  156. datatype:"json",
  157. data:{
  158. stylename:style // 传递到后台,用session保存即可
  159. },
  160. success:function(data){
  161. l(data);
  162. }
  163. });
  164. stopPropagation(e);
  165. },"click","li");
  166. // 退出登录
  167. bf($(".logout"),function(){
  168. msg("退出成功");
  169. $.ajax({
  170. url:"../user/logout",
  171. type:"post",
  172. success:function(data){
  173. window.location.href = "../user/login";
  174. }
  175. })
  176. })
  177. // 轮播图实例
  178. carousel.render({
  179. elem: '#carousel_1',
  180. width: '100%', //设置容器宽度
  181. arrow: 'always' //始终显示箭头 详细请参考layui文档
  182. });
  183. // 点击播放
  184. bf($(".play"),function(){
  185. do_play($(this).attr("data-src"),$(".tm-tpl"));//获取视频地址,弹出窗口准备播放
  186. });
  187. // 关闭播放
  188. bf($(".tm-tpl"),function(){
  189. // l(this);
  190. remove_dom($(".tpl-layer"),$(".tpl-shade"));//删除播放窗口和遮罩层
  191. },"click","#close");
  192. // 左侧工具栏
  193. bf($(".sidebar-footer a"),function(){
  194. var title = $(this).attr("data-title");
  195. var tips = $(".tm-tpl").hasClass("small-item") ? 2 : 1;
  196. layer.tips(title,$(this),{tips:tips});
  197. },"mouseover");
  198. // 卡片提示
  199. bf($(".tpl-icon-tips"),function(){
  200. var title = $(this).attr("data-title");
  201. layer.tips(title,$(this),{tips:1});
  202. });
  203. bf($(".user-tips a"),function(){
  204. var tip = $(this).attr("data-tips");
  205. layer.tips(tip,$(this),{tips:1});
  206. })
  207. // 通用的返回上一页方法
  208. bf($(".back"),function(){
  209. window.history.back();
  210. });
  211. // 删除权限规则
  212. bf($(".auth_delete"),function(){
  213. var id = $(this).parent().attr("data-id"),tag = $(this);
  214. layer.load(1);
  215. $.ajax({
  216. url:"../auth/delete",
  217. type:"post",
  218. data:{
  219. del_id:id
  220. },
  221. success:function(data){
  222. layer.closeAll("loading");
  223. if(data.status == 1){
  224. window.location.reload();
  225. }
  226. msg(data.msg);
  227. },
  228. error:function(){
  229. layer.closeAll("loading");
  230. l(error);
  231. }
  232. })
  233. });
  234. // 删除权限组
  235. bf($(".delrule"),function(){
  236. var id = $(this).parent().attr("data-id"),tag = $(this);
  237. layer.load(1);
  238. $.ajax({
  239. url:"../auth/delrule",
  240. type:"post",
  241. data:{
  242. delid:id
  243. },
  244. success:function(data){
  245. layer.closeAll("loading");
  246. if(data.status == 1){
  247. remove_dom(tag.parent().parent());
  248. }
  249. msg(data.msg);
  250. },
  251. error:function(){
  252. layer.closeAll("loading");
  253. msg(error);
  254. }
  255. })
  256. });
  257. bf($(".update-password"),function(){
  258. $(this).hide();
  259. $(".dit-update-password").show();
  260. $(this).parent().children("input[name='password']").removeAttr("disabled");
  261. $(this).parent().children("input[name='password']").attr("required","");
  262. $(".pwd1").find("input[name='password1']").removeAttr("disabled");
  263. $(".pwd1").find("input[name='password1']").attr("required","");
  264. $(this).parent().children("input[name='password']").removeClass("layui-disabled");
  265. $(".pwd1").show();
  266. });
  267. bf($(".dit-update-password"),function(){
  268. $(this).hide();
  269. $(".update-password").show();
  270. $(".pwd1").find("input[name='password1']").attr("disabled","");
  271. $(this).parent().children("input[name='password']").attr("disabled","");
  272. $(this).parent().children("input[name='password']").val("");
  273. $(this).parent().children("input[name='password']").addClass("layui-disabled");
  274. $(".pwd1").find("input[name='password1']").removeAttr("required");
  275. $(this).parent().children("input[name='password']").removeAttr("required");
  276. $(".pwd1").hide();
  277. });
  278. // 删除用户
  279. bf($(".delete-user"),function(){
  280. var id = $(this).parent().attr("data-id"),tag = $(this);
  281. $.ajax({
  282. url:"../auth/delete_user",
  283. type:"post",
  284. datatype:"json",
  285. data:{
  286. id:id
  287. },
  288. success:function(data){
  289. layer.closeAll("loading");
  290. if(data.status == 1){
  291. remove_dom(tag.parent().parent());
  292. }
  293. msg(data.msg);
  294. },
  295. error:function(){
  296. layer.closeAll("loading");
  297. }
  298. })
  299. });
  300. var old_img = null;
  301. bf($(".user-upload"),function(){
  302. old_img = "";
  303. old_img += $(this).attr("src");
  304. });
  305. var userImg = upload.render({
  306. elem: '.user-upload', //绑定元素
  307. url: '../upload/user_upload', //上传接口
  308. accept: 'file',
  309. exts: 'jpg|png|jpeg|gif', //只允许上传压缩文件
  310. choose: function(obj){
  311. shade($(".user-bar").find(".right-bar-fluid"),true);
  312. },
  313. done: function(res){
  314. $(".user-upload").attr("src",res.data);
  315. $.ajax({
  316. url: '../user/save_img', //上传接口
  317. type:"post",
  318. datatype:"json",
  319. data:{
  320. img:res.data,
  321. old_img:old_img
  322. },
  323. success:function(data){
  324. remove_dom($(".right-bar").find($(".tpl-shade")));
  325. }
  326. })
  327. }
  328. });
  329. })