define(['fast', 'template', 'moment'], function (Fast, Template, Moment) { var Frontend = { api: Fast.api, init: function () { var si = {}; //发送验证码 $(document).on("click", ".btn-captcha", function (e) { var type = $(this).data("type") ? $(this).data("type") : 'mobile'; var btn = this; Frontend.api.sendcaptcha = function (btn, type, data, callback) { $(btn).addClass("disabled", true).text("发送中..."); Frontend.api.ajax({url: $(btn).data("url"), data: data}, function (data, ret) { clearInterval(si[type]); var seconds = 60; si[type] = setInterval(function () { seconds--; if (seconds <= 0) { clearInterval(si); $(btn).removeClass("disabled").text("发送验证码"); } else { $(btn).addClass("disabled").text(seconds + "秒后可再次发送"); } }, 1000); if (typeof callback == 'function') { callback.call(this, data, ret); } }, function () { $(btn).removeClass("disabled").text('发送验证码'); }); }; if (['mobile', 'email'].indexOf(type) > -1) { var element = $(this).data("input-id") ? $("#" + $(this).data("input-id")) : $("input[name='" + type + "']", $(this).closest("form")); var text = type === 'email' ? '邮箱' : '手机号码'; if (element.val() === "") { Layer.msg(text + "不能为空!"); element.focus(); return false; } else if (type === 'mobile' && !element.val().match(/^1[3-9]\d{9}$/)) { Layer.msg("请输入正确的" + text + "!"); element.focus(); return false; } else if (type === 'email' && !element.val().match(/^[\w\+\-]+(\.[\w\+\-]+)*@[a-z\d\-]+(\.[a-z\d\-]+)*\.([a-z]{2,4})$/)) { Layer.msg("请输入正确的" + text + "!"); element.focus(); return false; } element.isValid(function (v) { if (v) { var data = {event: $(btn).data("event")}; data[type] = element.val(); Frontend.api.sendcaptcha(btn, type, data); } else { Layer.msg("请确认已经输入了正确的" + text + "!"); } }); } else { var data = {event: $(btn).data("event")}; Frontend.api.sendcaptcha(btn, type, data, function (data, ret) { Layer.open({title: false, area: ["400px", "430px"], content: "
扫一扫关注公众号获取验证码
", type: 1}); }); } return false; }); //tooltip和popover if (!('ontouchstart' in document.documentElement)) { $('body').tooltip({selector: '[data-toggle="tooltip"]'}); } $('body').popover({selector: '[data-toggle="popover"]'}); // 手机端左右滑动切换菜单栏 if ('ontouchstart' in document.documentElement) { var startX, startY, moveEndX, moveEndY, relativeX, relativeY, element; element = $('body', document); element.on("touchstart", function (e) { startX = e.originalEvent.changedTouches[0].pageX; startY = e.originalEvent.changedTouches[0].pageY; }); element.on("touchend", function (e) { moveEndX = e.originalEvent.changedTouches[0].pageX; moveEndY = e.originalEvent.changedTouches[0].pageY; relativeX = moveEndX - startX; relativeY = moveEndY - startY; // 判断标准 //右滑 if (relativeX > 45) { if ((Math.abs(relativeX) - Math.abs(relativeY)) > 50) { element.addClass("sidebar-open"); } } //左滑 else if (relativeX < -45) { if ((Math.abs(relativeX) - Math.abs(relativeY)) > 50) { element.removeClass("sidebar-open"); } } }); } $(document).on("click", ".sidebar-toggle", function () { $("body").toggleClass("sidebar-open"); }); } }; Frontend.api = $.extend(Fast.api, Frontend.api); //将Template渲染至全局,以便于在子框架中调用 window.Template = Template; //将Moment渲染至全局,以便于在子框架中调用 window.Moment = Moment; //将Frontend渲染至全局,以便于在子框架中调用 window.Frontend = Frontend; Frontend.init(); return Frontend; });