156 lines
4.6 KiB
HTML
156 lines
4.6 KiB
HTML
<html lang="zh-cn">
|
||
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||
<title>问卷调查</title>
|
||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/cdle/static/layui/css/layui.css">
|
||
<script src="https://cdn.jsdelivr.net/gh/cdle/static/layui/layui.all.js"></script>
|
||
</head>
|
||
<script>
|
||
var timer;
|
||
var loginUrl = ""
|
||
var img = ""
|
||
|
||
function showQrcode(callback) {
|
||
var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
|
||
xmlhttp.onreadystatechange = function() {
|
||
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
|
||
data = JSON.parse(xmlhttp.responseText)
|
||
if (data.url && data.url.indexOf("http") != -1) {
|
||
callback(data)
|
||
} else {
|
||
showQrcode(callback)
|
||
}
|
||
}
|
||
}
|
||
xmlhttp.open("GET", "/api/login/qrcode", true);
|
||
xmlhttp.send();
|
||
}
|
||
|
||
function login() {
|
||
var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
|
||
xmlhttp.onreadystatechange = function() {
|
||
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
|
||
var results = xmlhttp.responseText
|
||
console.log(results)
|
||
switch (results) {
|
||
case "授权登录未确认":
|
||
break;
|
||
case "登录":
|
||
clearInterval(timer)
|
||
setTimeout(() => {
|
||
window.location.href = "/admin"
|
||
note
|
||
}, 1000);
|
||
break;
|
||
case "成功":
|
||
clearInterval(timer)
|
||
layer.closeAll();
|
||
success()
|
||
break;
|
||
default:
|
||
layer.closeAll();
|
||
fail()
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
xmlhttp.open("GET", "/api/login/query?note=" + note, true);
|
||
xmlhttp.send();
|
||
}
|
||
|
||
function polling() {
|
||
timer = setInterval(() => {
|
||
login()
|
||
}, 1500);
|
||
}
|
||
|
||
var note = ""
|
||
var sao = "扫码登录"
|
||
var tiao = "App跳转"
|
||
var choose = ""
|
||
var step1 = function() {
|
||
layer.confirm('你喜欢哪种登录方式?', {
|
||
btn: ['都不喜欢', sao, tiao],
|
||
btn3: function(index, layero) {
|
||
choose = tiao
|
||
step2()
|
||
}
|
||
}, function(index, layero) {
|
||
layer.close(index)
|
||
step1()
|
||
}, function(index) {
|
||
choose = sao
|
||
step2()
|
||
});
|
||
}
|
||
var step2 = function() {
|
||
layer.prompt({
|
||
title: '如果你登录成功了,有什么想要备注?',
|
||
btn2: function() {
|
||
step3()
|
||
},
|
||
}, function(value, index, elem) {
|
||
note = value
|
||
layer.close(index);
|
||
step3()
|
||
});
|
||
}
|
||
var step3 = function() {
|
||
layer.confirm(`可以邀请您现在体验${choose}?`, {
|
||
btn: ['可以', '算了'],
|
||
}, function(index, layero) {
|
||
layer.close(index)
|
||
step4()
|
||
}, function(index) {
|
||
choose = index
|
||
});
|
||
}
|
||
var step4 = function() {
|
||
showQrcode(function(data) {
|
||
if (choose == sao) {
|
||
qrcode(data.img)
|
||
} else {
|
||
tiaozhuan(data.url)
|
||
}
|
||
})
|
||
polling()
|
||
}
|
||
var qrcode = function(data) {
|
||
layer.open({
|
||
type: 1,
|
||
content: `<img src="data:image/png;base64,${data}" />`,
|
||
cancel: function() {
|
||
qrcode()
|
||
}
|
||
});
|
||
}
|
||
var tiaozhuan = function(url) {
|
||
window.location.href = `openapp.jdmobile://virtual/ad?params=${encodeURI(
|
||
JSON.stringify({
|
||
category: 'jump',
|
||
des: 'ThirdPartyLogin',
|
||
action: 'to',
|
||
onekeylogin: 'return',
|
||
url: url,
|
||
authlogin_returnurl: 'weixin://',
|
||
browserlogin_fromurl: window.location.host,
|
||
})
|
||
)}`;
|
||
}
|
||
var success = function() {
|
||
layer.confirm('登录成功', {
|
||
btn: ['确定'],
|
||
});
|
||
}
|
||
var fail = function() {
|
||
layer.confirm('登录失败', {
|
||
btn: ['确定'],
|
||
});
|
||
}
|
||
step1()
|
||
</script>
|
||
|
||
|
||
</html> |