const $ = require('jquery');
require("../css/reset.less")
require("../css/login.less")
require("./modal.js")
const { api } = require('./api.js')
const { post, setCookie, delCookie, getUrlArgObject, toast } = require('../js/utils.js');
const md5 = require('js-md5');
const hideLogo = getUrlArgObject("hideLg");
const otherLogo = getUrlArgObject("adLg");
let type
$(function () {
getHospitalMark()
//getSecurityCode();
if (hideLogo || otherLogo) {
$(".copy-right").text("");
}
delCookie('accessToken')
$(document).keyup(function (event) {
if (event.keyCode == 13) {
sureLogin()
}
});
});
//获取验证码
function getSecurityCode() {
var windowUrl = window.URL || window.webkitURL;//处理浏览器兼容性
var xhr = new XMLHttpRequest();
var url = api.getCaptcha;//验证码请求地址
xhr.open("GET", url, true);
xhr.responseType = "blob";
xhr.onload = function () {
if (this.status == 200) {
var blob = this.response;
const img = document.createElement("img");
const qrUrl = window.URL.createObjectURL(blob);
img.src = qrUrl;
//释放对象
img.onload = function () {
console.log('释放')
window.URL.revokeObjectURL(qrUrl)
}
const imgDiv = document.getElementById("codeImg");
$(imgDiv).html(img);
}
}
xhr.send();
}
function getHospitalMark() {
localStorage.removeItem('accessToken')
//post(api.getHospitalMark).then((res) => {
const data = { code: 0, data: 0 }//res.data;
if (data.code == 0) {
type = parseInt(data.data)
if (parseInt(data.data) == 1) { //湘雅三院登录样式
str = '
'
str += '
'
str += '
'
str += '
用户名:
'
str += '
'
str += ''
str += '
'
str += '
'
str += '
密码:
'
str += '
'
str += ''
str += '
'
str += '
登录
'
$('.login').html(str)
} else { //通用版样式
str = '
'
str += '
欢迎使用!
'
str += '
'
str += '
用户名:
'
str += '
'
str += ''
str += '
'
str += '
'
str += '
密码:
'
str += '
'
str += ''
str += '
'
str += '
'
str += '
验证码:
'
str += '
'
str += '
'
str += '
'
str += '
换一张'
str += '
'
str += '
登录
由杭州朗通信息技术有限公司提供技术支持
',
$('.login').html(str)
}
getSecurityCode();
$(".sureLogin").click(() => {
sureLogin()
})
//点击换一张事件
$("#codeImg,#changeCode").click(function () {
getSecurityCode();
})
$("#password").focus(function () {
$(this).attr("type", "password")
})
$(".iptWrap:not(.security-code) input").focus(function () {
$(this).parent().addClass('inputFocus')
})
$(".security-code input").focus(function () {
$(this).addClass('inputFocus')
})
$(".iptWrap input").blur(function () {
$(this).parent().removeClass('inputFocus')
$(this).removeClass('inputFocus')
})
$("body").on('input', '#username,#password', function () {
if ($(this).val().trim() != '') {
$(".login .waring").html('')
}
})
}
/*}).catch(() => {
})*/
}
function sureLogin() {
localStorage.removeItem('accessToken')
$(".login .waring").html('')
let username = $("#username").val().trim();
let password = $("#password").val().trim();
const captcha = $("#code").val().trim();
if (!username) {
if (type == 1) {
toast("请输入用户名!");
} else {
$(".login .waring").css('visibility', 'visible').html('请输入用户名')
}
return
} else if (!password) {
if (type == 1) {
toast("请输入密码!");
} else {
$(".login .waring").css('visibility', 'visible').html('请输入密码')
}
return
} else if (!captcha) {
if (type == 1) {
toast("请输入验证码!");
} else {
$(".login .waring").css('visibility', 'visible').html('请输入验证码')
}
return
}
$.alerModal({ type: "loading" });
post(api.getJwt, {
username: username,
password: password,
captcha: captcha
}).then((res) => {
const data = res.data;
if (data.code == 0) {
setCookie('accessToken', data.data.accessToken)
setCookie('isPlacefile', 1)
setCookie('passwordComplexity', data.data.passwordComplexity)
//setCookie('mmps',password);
localStorage.setItem('accessToken', data.data.accessToken)
$(".divModal").remove()
$.alerModal({ "message": "登录成功", type: "tip", time: '1000', win: true });
setTimeout(() => {
cacheCheckDatas(data.data.selRoles);
const otherLogoPm = otherLogo ? '?adLg=1' : '';
const hideLgPm = hideLogo ? '?hideLg=1' : '';
window.location.href = 'index.html' + hideLgPm + otherLogoPm;
}, 600);
} else {
getSecurityCode();//登录失败切换验证码
$(".divModal").remove()
if (type == 1) {
toast(data.msg);
} else {
$(".login .waring").css('visibility', 'visible').html(data.msg)
}
}
}).catch(() => {
$(".divModal").remove()
})
}
//核查权限数据保存
function cacheCheckDatas(data) {
delCookie("checkAuth");
const arr = data && data.map((it) => {
return it.id;
}) || [];
setCookie("checkAuth", arr.join(","));
}