define(['jquery', 'toastr', 'form', 'template'], function ($, toastr, Form, Template) { var csmadmin = { /** 渲染钉钉登录二维码 * @usage: * var ddappid = $("#ddappid").val(); var hosturl = $("#hosturl").val(); var url = hosturl+Fast.api.fixurl("csmadmin/csmadminapp/sendddlogintmpcode"); csmadmin.renderDDQrcode(ddappid,url); */ renderDDQrcode:function(ddappid,redirecturl){ requirejs(['https://g.alicdn.com/dingding/dinglogin/0.0.5/ddLogin.js'], function(ddLogin){ var url = encodeURIComponent(redirecturl); var goto = encodeURIComponent('https://oapi.dingtalk.com/connect/oauth2/sns_authorize?appid='+ddappid+'&response_type=code&scope=snsapi_login&state=STATE&redirect_uri='+url); var obj = DDLogin({ id:"login_container", goto: goto, style: "border:none;background-color:#FFFFFF;", width : "365", height: "400" }); var handleMessage = function (event) { var origin = event.origin; console.log("origin", event.origin); if( origin == "https://login.dingtalk.com" ) { // 判断是否来自ddLogin扫码事件。 var loginTmpCode = event.data; // 拿到loginTmpCode后就可以在这里构造跳转链接进行跳转了 console.log("loginTmpCode", loginTmpCode); window.location = 'https://oapi.dingtalk.com/connect/oauth2/sns_authorize?appid='+ddappid+'&response_type=code&scope=snsapi_login&state=STATE&redirect_uri=' + url + '&loginTmpCode=' + loginTmpCode; } }; if (typeof window.addEventListener != 'undefined') { window.addEventListener('message', handleMessage, false); } else if (typeof window.attachEvent != 'undefined') { window.attachEvent('onmessage', handleMessage); } }); }, //修改手机前,发送短信(需验证码确认,以防止被攻击) triggerBtnModifyMobile:function(btnjqstr,mobile,event,sendedfunc){ var that = this; //v1.2.0 修复部分服务器下手机号码登录验证码无法显示的问题 //var captchaimg = Fast.api.cdnurl("/captcha.html"); var captchaimg = Fast.api.fixurl("/index.php?s=/captcha"); var myreg=/^[1][3,4,5,7,8][0-9]{9}$/; if (!myreg.test(mobile)) { Toastr.error("请输入正确的手机号码"); return; } Layer.open({ title: '验证码', content: '\
\ \
\
\ \ \
\ ', yes: function (index, layero) { Fast.api.ajax({ url: Fast.api.fixurl("csmadmin/csmadminapp/sendMobileCodeAjax"), type: "post", data: { mobile: mobile, event: event, captcha:$("#modifymobilecaptcha").val() }, }, function (data, ret) { Toastr.success("短信发送成功!"); $(btnjqstr).text("已发送"); $(btnjqstr).attr("disabled","true"); Layer.close(index); if(sendedfunc){ sendedfunc(mobile); } return false; }, function (data, ret) { Toastr.error(ret.msg); $("#modifymobilecaptchaimg").removeAttr("src").attr('src',captchaimg); return false; }); } }); $("#modifymobilecaptchaimg").click(function(){ $("#modifymobilecaptchaimg").removeAttr("src").attr('src',captchaimg); }); }, //修改邮箱前,发送邮件(需验证码确认,以防止被攻击) triggerBtnModifyEmail:function(btnjqstr,email,event,sendedfunc){ var that = this; //v1.2.0 修复部分服务器下手机号码登录验证码无法显示的问题 //var captchaimg = Fast.api.cdnurl("/captcha.html"); var captchaimg = Fast.api.fixurl("/index.php?s=/captcha"); if(email.indexOf("@") == -1 ){ Toastr.error("请输入正确的邮箱格式"); return; } Layer.open({ title: '验证码', content: '\
\ \
\
\ \ \
\ ', yes: function (index, layero) { Fast.api.ajax({ url: Fast.api.fixurl("csmadmin/csmadminapp/sendEmailCodeAjax"), type: "post", data: { email: email, event: event, captcha:$("#modifyemailcaptcha").val() }, }, function (data, ret) { Toastr.success("邮件发送成功!"); $(btnjqstr).text("已发送"); $(btnjqstr).attr("disabled","true"); Layer.close(index); if(sendedfunc){ sendedfunc(email); } return false; }, function (data, ret) { Toastr.error(ret.msg); $("#modifyemailcaptchaimg").removeAttr("src").attr('src',captchaimg); return false; }); } }); $("#modifyemailcaptchaimg").click(function(){ $("#modifyemailcaptchaimg").removeAttr("src").attr('src',captchaimg); }); }, }; return csmadmin; });