login.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. $(function () {
  2. //因项目众多,前端为了加以区分,所以用域名加以判断,后期有更好的方式可以自行修改
  3. // 中南财大
  4. var isZncd = document.domain === "itsm.zuel.edu.cn";
  5. // 华科
  6. var isHk =
  7. document.domain === "192.168.3.110" ||
  8. document.domain === "192.168.3.69" ||
  9. document.domain === "172.16.7.91" ||
  10. document.domain === "192.168.3.105" ||
  11. document.domain === "localhost";
  12. if (isZncd) {
  13. sessionStorage.setItem("version_qd", "isZncd");
  14. }
  15. if (isHk) {
  16. sessionStorage.setItem("version_qd", "isHk");
  17. }
  18. $("#head").append(
  19. template("favicon_temp", { isVersion: sessionStorage.getItem("version_qd") })
  20. );
  21. $("#logo").html(
  22. template("logo_temp", { isVersion: sessionStorage.getItem("version_qd") })
  23. );
  24. var isSSo = location.search.length > 0; //是否单点登录
  25. if (isSSo) {
  26. $(".container").hide();
  27. login();
  28. }
  29. var hasClick = false; //是否已经点击过登录按钮
  30. // 兼容ie的placeholder
  31. $("input, textarea").placeholder();
  32. // 登录点击
  33. $("#login").on("click", login);
  34. // 登录方法
  35. function login() {
  36. if (hasClick) return;
  37. hasClick = true;
  38. var name = $("#name").val();
  39. var pwd = $("#pwd").val();
  40. var data = {
  41. username: name,
  42. password: pwd,
  43. };
  44. // 单点登录 start
  45. var ssoStr = "";
  46. var ssoJson;
  47. if (isSSo) {
  48. ssoStr = location.search.replace("?", "").split("&")[0].split("=")[1];
  49. ssoStr = Base64.decode(decodeURIComponent(ssoStr));
  50. ssoJson = JSON.parse(ssoStr);
  51. }
  52. var postData = isSSo
  53. ? { username: ssoJson.a, password: ssoJson.r, t: false }
  54. : data;
  55. // 单点登录 end
  56. $.ajax({
  57. type: "POST",
  58. contentType: "application/json;charset=UTF-8",
  59. url: baseUrl + "auth/reqlogin",
  60. data: JSON.stringify(postData),
  61. success: function (res) {
  62. if (res.state == 200) {
  63. if (isSSo) {
  64. sessionStorage.setItem("isSSo", "1"); //单点登录
  65. } else {
  66. sessionStorage.setItem("isSSo", "0"); //正常登录
  67. }
  68. sessionStorage.setItem(
  69. "loginUser",
  70. JSON.stringify(res.data.requester)
  71. );
  72. //判断版本类别
  73. $.ajax({
  74. type: "POST",
  75. contentType: "application/json;charset=UTF-8",
  76. url: baseUrl + "sysinfo/data/fetchDataList/systemConfiguration",
  77. data: JSON.stringify({ idx: 0, sum: 1000 }),
  78. success: function (result) {
  79. if (result.status == 200) {
  80. var list = result.list;
  81. list.forEach((v) => {
  82. switch (v.keyconfig) {
  83. case "repairMain": //报修主体
  84. sessionStorage.setItem("repair_main", JSON.stringify(v));
  85. break;
  86. case "wxIncidentWithCmdb": //是否绑定资产
  87. sessionStorage.setItem(
  88. "wxIncidentWithCmdb",
  89. v.valueconfig
  90. );
  91. break;
  92. case "reqHasCategory": //获取是否自动建单
  93. sessionStorage.setItem(
  94. "reqHasCategory",
  95. JSON.stringify(v)
  96. );
  97. break;
  98. case "ifRoom": //是否增加房间号选择
  99. sessionStorage.setItem("ifRoom", v.valueconfig);
  100. break;
  101. }
  102. });
  103. window.location.href = "index.html";
  104. }
  105. hasClick = false;
  106. },
  107. //请求失败,包含具体的错误信息
  108. error: function (e) {
  109. console.log(e.status);
  110. console.log(e.responseText);
  111. },
  112. });
  113. } else {
  114. alert("用户名或密码错误,请重试!");
  115. hasClick = false;
  116. }
  117. },
  118. //请求失败,包含具体的错误信息
  119. error: function (e) {
  120. console.log(e.status);
  121. console.log(e.responseText);
  122. },
  123. });
  124. }
  125. // enter登录
  126. $(document).bind("keypress", function (e) {
  127. var keyCode;
  128. if (window.event) {
  129. keyCode = e.keyCode;
  130. } else if (e.which) {
  131. keycode = e.which;
  132. }
  133. if (e.keyCode != 13) {
  134. return;
  135. }
  136. $("#login").trigger("click");
  137. return false;
  138. });
  139. });