login.js 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. const $ = require('jquery');
  2. require("../css/reset.less")
  3. require("../css/login.less")
  4. require("./modal.js")
  5. const { api } = require('./api.js')
  6. const { post, setCookie, delCookie, getUrlArgObject, toast } = require('../js/utils.js');
  7. const md5 = require('js-md5');
  8. const hideLogo = getUrlArgObject("hideLg");
  9. const otherLogo = getUrlArgObject("adLg");
  10. let type
  11. $(function () {
  12. getHospitalMark()
  13. getSecurityCode();
  14. if (hideLogo || otherLogo) {
  15. $(".copy-right").text("");
  16. }
  17. delCookie('accessToken')
  18. $(document).keyup(function (event) {
  19. if (event.keyCode == 13) {
  20. sureLogin()
  21. }
  22. });
  23. });
  24. //获取验证码
  25. function getSecurityCode() {
  26. $.ajax({
  27. url:api.getCaptcha,
  28. method:'get',
  29. contentType:'image/png',
  30. dataType:'blob',
  31. success:function(res){
  32. const data = res.data;console.log(221)
  33. const qrUrl = window.URL.createObjectURL(new Blob(data));
  34. const img = document.createElement("img");
  35. img.src = qrUrl;
  36. img.onload=function(){
  37. window.URL.revokeObjectURL(qrUrl)
  38. }
  39. const imgDiv = document.getElementById("codeImg");
  40. imgDiv.appendChild(img);
  41. },
  42. error:function(res){
  43. //console.log(error)
  44. const data = res.data;
  45. const qrUrl = window.URL.createObjectURL(new Blob(data));
  46. const img = document.createElement("img");
  47. img.src = qrUrl;
  48. img.onload=function(){
  49. window.URL.revokeObjectURL(qrUrl)
  50. }
  51. const imgDiv = document.getElementById("codeImg");
  52. imgDiv.appendChild(img);
  53. }
  54. })
  55. }
  56. function getHospitalMark() {
  57. localStorage.removeItem('accessToken')
  58. post(api.getHospitalMark).then((res) => {
  59. const data = res.data;
  60. if (data.code == 0) {
  61. type = parseInt(data.data)
  62. if (parseInt(data.data) == 1) { //湘雅三院登录样式
  63. str = '<div class="bg2">'
  64. str += '<div class="login-info">'
  65. str += '<div class="info-perPub">'
  66. str += ' <p> 用户名:</p>'
  67. str += '<div class="info-iptWrap">'
  68. str += '<input type="text" placeholder="请输入用户名" id="username" value="" autocomplete="off">'
  69. str += '</div></div>'
  70. str += '<div class="info-perPub">'
  71. str += ' <p> 密码:</p>'
  72. str += '<div class="info-iptWrap">'
  73. str += '<input type="text" placeholder="请输入密码" id="password" value="" autocomplete="off">'
  74. str += '</div></div>'
  75. str += '<p class="waring"></p><div class="sureLogin">登录</div></div>'
  76. $('.login').html(str)
  77. } else { //通用版样式
  78. str = '<div class="bg fl"><p class="title">AI病案质控平台</p></div>'
  79. str += '<div class="message fr"><div class="inner"><p class="welcome">欢迎使用!</p>'
  80. str += '<div class="perPub">'
  81. str += ' <p> 用户名:</p>'
  82. str += '<div class="iptWrap">'
  83. str += '<input type="text" placeholder="请输入用户名" id="username" value="" autocomplete="off">'
  84. str += '</div></div><br>'
  85. str += '<div class="perPub">'
  86. str += ' <p> 密码:</p>'
  87. str += '<div class="iptWrap">'
  88. str += '<input type="text" placeholder="请输入密码" id="password" value="" autocomplete="off">'
  89. str += '</div></div><br>'
  90. str += '<div class="perPub">'
  91. str += ' <p> 验证码:</p>'
  92. str += '<div class="iptWrap security-code">'
  93. str += '<input type="text" placeholder="请输入验证码" id="code" value="" autocomplete="off">'
  94. str += '<div id="codeImg" class="code-img"></div>'
  95. str += '<a href="changeCode">换一张</a>'
  96. str += '</div></div>'
  97. str += '<p class="waring"></p><div class="sureLogin">登录</div></div><div class="copy-right">由杭州朗通信息技术有限公司提供技术支持</div></div>',
  98. $('.login').html(str)
  99. }
  100. $(".sureLogin").click(() => {
  101. sureLogin()
  102. })
  103. $("#password").focus(function () {
  104. $(this).attr("type", "password")
  105. })
  106. $(".iptWrap input").focus(function () {
  107. $(this).parent().addClass('inputFocus')
  108. })
  109. $(".iptWrap input").blur(function () {
  110. $(this).parent().removeClass('inputFocus')
  111. })
  112. $("body").on('input', '#username,#password', function () {
  113. if ($(this).val().trim() != '') {
  114. $(".login .waring").html('')
  115. }
  116. })
  117. }
  118. }).catch(() => {
  119. })
  120. }
  121. function sureLogin() {
  122. localStorage.removeItem('accessToken')
  123. $(".login .waring").html('')
  124. let username = $("#username").val().trim();
  125. let password = $("#password").val().trim();
  126. if (!username) {
  127. if(type == 1){
  128. toast("请输入用户名!");
  129. }else{
  130. $(".login .waring").css('visibility', 'visible').html('请输入用户名')
  131. }
  132. return
  133. } else if (!password) {
  134. if (type == 1) {
  135. toast("请输入密码!");
  136. } else {
  137. $(".login .waring").css('visibility', 'visible').html('请输入密码')
  138. }
  139. return
  140. }
  141. $.alerModal({ type: "loading" });
  142. post(api.getJwt, {
  143. username: username,
  144. password: password
  145. }).then((res) => {
  146. const data = res.data;
  147. if (data.code == 0) {
  148. setCookie('accessToken', data.data.accessToken)
  149. setCookie('isPlacefile', 1)
  150. setCookie('passwordComplexity', data.data.passwordComplexity)
  151. //setCookie('mmps',password);
  152. localStorage.setItem('accessToken', data.data.accessToken)
  153. $(".divModal").remove()
  154. $.alerModal({ "message": "登录成功", type: "tip", time: '1000', win: true });
  155. setTimeout(() => {
  156. cacheCheckDatas(data.data.selRoles);
  157. const otherLogoPm = otherLogo ? '?adLg=1' : '';
  158. const hideLgPm = hideLogo ? '?hideLg=1' : '';
  159. window.location.href = 'index.html' + hideLgPm + otherLogoPm;
  160. }, 600);
  161. } else {
  162. $(".divModal").remove()
  163. if (type == 1) {
  164. toast(data.msg);
  165. } else {
  166. $(".login .waring").css('visibility', 'visible').html(data.msg)
  167. }
  168. }
  169. }).catch(() => {
  170. $(".divModal").remove()
  171. })
  172. }
  173. //核查权限数据保存
  174. function cacheCheckDatas(data) {
  175. delCookie("checkAuth");
  176. const arr = data && data.map((it) => {
  177. return it.id;
  178. }) || [];
  179. setCookie("checkAuth", arr.join(","));
  180. }