csmadmin.js 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. define(['jquery', 'toastr', 'form', 'template'], function ($, toastr, Form, Template) {
  2. var csmadmin = {
  3. /** 渲染钉钉登录二维码
  4. * @usage:
  5. * var ddappid = $("#ddappid").val();
  6. var hosturl = $("#hosturl").val();
  7. var url = hosturl+Fast.api.fixurl("csmadmin/csmadminapp/sendddlogintmpcode");
  8. csmadmin.renderDDQrcode(ddappid,url);
  9. */
  10. renderDDQrcode:function(ddappid,redirecturl){
  11. requirejs(['https://g.alicdn.com/dingding/dinglogin/0.0.5/ddLogin.js'], function(ddLogin){
  12. var url = encodeURIComponent(redirecturl);
  13. var goto = encodeURIComponent('https://oapi.dingtalk.com/connect/oauth2/sns_authorize?appid='+ddappid+'&response_type=code&scope=snsapi_login&state=STATE&redirect_uri='+url);
  14. var obj = DDLogin({
  15. id:"login_container",
  16. goto: goto,
  17. style: "border:none;background-color:#FFFFFF;",
  18. width : "365",
  19. height: "400"
  20. });
  21. var handleMessage = function (event) {
  22. var origin = event.origin;
  23. console.log("origin", event.origin);
  24. if( origin == "https://login.dingtalk.com" ) { // 判断是否来自ddLogin扫码事件。
  25. var loginTmpCode = event.data; // 拿到loginTmpCode后就可以在这里构造跳转链接进行跳转了
  26. console.log("loginTmpCode", loginTmpCode);
  27. 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;
  28. }
  29. };
  30. if (typeof window.addEventListener != 'undefined') {
  31. window.addEventListener('message', handleMessage, false);
  32. } else if (typeof window.attachEvent != 'undefined') {
  33. window.attachEvent('onmessage', handleMessage);
  34. }
  35. });
  36. },
  37. //修改手机前,发送短信(需验证码确认,以防止被攻击)
  38. triggerBtnModifyMobile:function(btnjqstr,mobile,event,sendedfunc){
  39. var that = this;
  40. //v1.2.0 修复部分服务器下手机号码登录验证码无法显示的问题
  41. //var captchaimg = Fast.api.cdnurl("/captcha.html");
  42. var captchaimg = Fast.api.fixurl("/index.php?s=/captcha");
  43. var myreg=/^[1][3,4,5,7,8][0-9]{9}$/;
  44. if (!myreg.test(mobile)) {
  45. Toastr.error("请输入正确的手机号码");
  46. return;
  47. }
  48. Layer.open({
  49. title: '验证码',
  50. content: '\
  51. <div class="form-group">\
  52. <img id="modifymobilecaptchaimg" src="'+captchaimg+'"/>\
  53. </div>\
  54. <div class="form-group">\
  55. <label class="control-label" for="account">请填写图片中内容</label>\
  56. <input class="form-control" id="modifymobilecaptcha" name="modifymobilecaptcha" type="text"/>\
  57. </div>\
  58. ',
  59. yes: function (index, layero) {
  60. Fast.api.ajax({
  61. url: Fast.api.fixurl("csmadmin/csmadminapp/sendMobileCodeAjax"),
  62. type: "post",
  63. data: {
  64. mobile: mobile,
  65. event: event,
  66. captcha:$("#modifymobilecaptcha").val()
  67. },
  68. }, function (data, ret) {
  69. Toastr.success("短信发送成功!");
  70. $(btnjqstr).text("已发送");
  71. $(btnjqstr).attr("disabled","true");
  72. Layer.close(index);
  73. if(sendedfunc){
  74. sendedfunc(mobile);
  75. }
  76. return false;
  77. }, function (data, ret) {
  78. Toastr.error(ret.msg);
  79. $("#modifymobilecaptchaimg").removeAttr("src").attr('src',captchaimg);
  80. return false;
  81. });
  82. }
  83. });
  84. $("#modifymobilecaptchaimg").click(function(){
  85. $("#modifymobilecaptchaimg").removeAttr("src").attr('src',captchaimg);
  86. });
  87. },
  88. //修改邮箱前,发送邮件(需验证码确认,以防止被攻击)
  89. triggerBtnModifyEmail:function(btnjqstr,email,event,sendedfunc){
  90. var that = this;
  91. //v1.2.0 修复部分服务器下手机号码登录验证码无法显示的问题
  92. //var captchaimg = Fast.api.cdnurl("/captcha.html");
  93. var captchaimg = Fast.api.fixurl("/index.php?s=/captcha");
  94. if(email.indexOf("@") == -1 ){
  95. Toastr.error("请输入正确的邮箱格式");
  96. return;
  97. }
  98. Layer.open({
  99. title: '验证码',
  100. content: '\
  101. <div class="form-group">\
  102. <img id="modifyemailcaptchaimg" src="'+captchaimg+'"/>\
  103. </div>\
  104. <div class="form-group">\
  105. <label class="control-label" for="account">请填写图片中内容</label>\
  106. <input class="form-control" id="modifyemailcaptcha" name="modifyemailcaptcha" type="text"/>\
  107. </div>\
  108. ',
  109. yes: function (index, layero) {
  110. Fast.api.ajax({
  111. url: Fast.api.fixurl("csmadmin/csmadminapp/sendEmailCodeAjax"), type: "post",
  112. data: {
  113. email: email,
  114. event: event,
  115. captcha:$("#modifyemailcaptcha").val()
  116. },
  117. }, function (data, ret) {
  118. Toastr.success("邮件发送成功!");
  119. $(btnjqstr).text("已发送");
  120. $(btnjqstr).attr("disabled","true");
  121. Layer.close(index);
  122. if(sendedfunc){
  123. sendedfunc(email);
  124. }
  125. return false;
  126. }, function (data, ret) {
  127. Toastr.error(ret.msg);
  128. $("#modifyemailcaptchaimg").removeAttr("src").attr('src',captchaimg);
  129. return false;
  130. });
  131. }
  132. });
  133. $("#modifyemailcaptchaimg").click(function(){
  134. $("#modifyemailcaptchaimg").removeAttr("src").attr('src',captchaimg);
  135. });
  136. },
  137. };
  138. return csmadmin;
  139. });