fix:bug
This commit is contained in:
@@ -572,6 +572,9 @@
|
||||
<button class="primary" id="btn-qrcode">
|
||||
获取登录二维码
|
||||
</button>
|
||||
<button class="secondary" id="btn-wake">
|
||||
唤醒
|
||||
</button>
|
||||
<button class="secondary" id="btn-check-scan">
|
||||
检测扫码状态
|
||||
</button>
|
||||
@@ -686,11 +689,13 @@
|
||||
var data62Input = $('data62Input');
|
||||
var ticketInput = $('originalTicketInput');
|
||||
var btnVerify = $('slider-btn-verify');
|
||||
if (params) {
|
||||
if (keyInput) keyInput.value = params.key || params.Key || '';
|
||||
if (data62Input) data62Input.value = params.data62 || '';
|
||||
if (ticketInput) ticketInput.value = params.ticket || params.original_ticket || '';
|
||||
}
|
||||
// 仅当有有效参数时填充,避免用 {} 清空已有数据
|
||||
var keyVal = params && (params.key || params.Key);
|
||||
var data62Val = params && params.data62;
|
||||
var ticketVal = params && (params.ticket || params.original_ticket);
|
||||
if (keyVal !== undefined && keyVal !== '') if (keyInput) keyInput.value = keyVal;
|
||||
if (data62Val !== undefined && data62Val !== '') if (data62Input) data62Input.value = data62Val;
|
||||
if (ticketVal !== undefined && ticketVal !== '') if (ticketInput) ticketInput.value = ticketVal;
|
||||
function toggleVerifyBtn() {
|
||||
if (!btnVerify) return;
|
||||
var hasAll = keyInput && data62Input && ticketInput &&
|
||||
@@ -750,6 +755,8 @@
|
||||
|
||||
function setLoading(loading) {
|
||||
$('btn-qrcode').disabled = loading;
|
||||
var btnWake = $('btn-wake');
|
||||
if (btnWake) btnWake.disabled = loading;
|
||||
$('btn-check-scan').disabled = loading;
|
||||
$('btn-online').disabled = loading;
|
||||
$('btn-logout').disabled = loading;
|
||||
@@ -1008,9 +1015,22 @@
|
||||
body: JSON.stringify({ key: payload.key, ...body }),
|
||||
});
|
||||
log('获取二维码成功');
|
||||
(function() {
|
||||
var valid = data._data62_valid;
|
||||
var msg = data._data62_check || '未知';
|
||||
var rawLen = data._data62_raw_length;
|
||||
var cleanLen = data._data62_clean_length;
|
||||
var preview = data._data62_preview || '';
|
||||
var line1 = 'Data62检查: ' + (valid ? '完整有效' : '不完整/无效') + (msg && msg !== '完整有效' ? '(' + msg + ')' : '');
|
||||
var line2 = '原始长度: ' + (rawLen !== undefined ? rawLen : '—') + ', 清理后长度: ' + (cleanLen !== undefined ? cleanLen : '—');
|
||||
var line3 = preview ? ('预览: ' + preview) : '';
|
||||
log(line1);
|
||||
log(line2);
|
||||
if (line3) log(line3);
|
||||
})();
|
||||
renderQrFromResponse(data);
|
||||
updateLoginState('等待扫码 / 确认中', 'pending', '请在 60 秒内使用微信扫码。');
|
||||
// 扫完码后自动检测:先 2 秒做一次检测,再每 5 秒轮询,避免误判为「二维码失效」
|
||||
// 仅通过轮询检测扫码状态,不立即查状态(避免沿用上次的「需验证」误弹滑块)
|
||||
if (state.pollingScan) {
|
||||
clearInterval(state.pollingScan);
|
||||
}
|
||||
@@ -1053,15 +1073,19 @@
|
||||
showSliderAreaAndFill(params);
|
||||
}
|
||||
|
||||
// state == 2 → 登录成功,跳转后端管理页
|
||||
if (stateVal === 2 || lower.includes('\"state\":2') || /\"state\"\\s*:\\s*2/.test(lower)) {
|
||||
// 检测状态是否成功登录:state==2 或 Success+已登录 等,成功后自动跳转管理页
|
||||
var loginSuccess = stateVal === 2 || lower.includes('\"state\":2') || /\"state\"\\s*:\\s*2/.test(lower) ||
|
||||
(obj.Success === true && (lower.includes('登录') || lower.includes('online') || d && (d.state === 2 || d.State === 2)));
|
||||
if (loginSuccess) {
|
||||
updateLoginState('登录成功', 'ok', '');
|
||||
if (state.pollingScan) {
|
||||
clearInterval(state.pollingScan);
|
||||
state.pollingScan = null;
|
||||
}
|
||||
log('检测到登录成功,正在跳转管理页…', 'ok');
|
||||
showQrExpired('登录成功,正在跳转…');
|
||||
window.location.href = 'manage.html';
|
||||
var keyParam = payload.key ? '?key=' + encodeURIComponent(payload.key) : '';
|
||||
window.location.href = 'manage.html' + keyParam;
|
||||
// state == 1 → 先判定是否明确「过期」,否则一律视为可能需验证,继续轮询并优先根据 slider_url 切到滑块
|
||||
} else if (stateVal === 1 || lower.includes('\"state\":1') || /\"state\"\\s*:\\s*1/.test(lower)) {
|
||||
var needVerify = /请提交验证码|提交验证码后登录|验证码后登录|安全验证|完成验证/.test(text) ||
|
||||
@@ -1150,6 +1174,16 @@
|
||||
}
|
||||
onGetQrCode();
|
||||
});
|
||||
$('btn-wake') && $('btn-wake').addEventListener('click', function(e) {
|
||||
e.preventDefault();
|
||||
var device = ($('device') && $('device').value) || '';
|
||||
if (device === 'mac') {
|
||||
if ($('slider-area') && $('slider-area').style.display !== 'none') showQrArea();
|
||||
onGetQrCode();
|
||||
} else {
|
||||
log('唤醒:请先将「登录设备类型」选为 Mac,再点击唤醒以获取二维码。', 'warn');
|
||||
}
|
||||
});
|
||||
$('btn-show-slider') && $('btn-show-slider').addEventListener('click', function() {
|
||||
if (state.sliderParams) showSliderAreaAndFill(state.sliderParams);
|
||||
});
|
||||
|
||||
@@ -219,6 +219,18 @@
|
||||
const API_BASE = '';
|
||||
const KEY_STORAGE = 'wechat_key';
|
||||
|
||||
(function applyKeyFromUrl() {
|
||||
try {
|
||||
var params = new URLSearchParams(window.location.search);
|
||||
var k = params.get('key');
|
||||
if (k && k.trim()) {
|
||||
k = k.trim();
|
||||
if ($('key')) $('key').value = k;
|
||||
try { localStorage.setItem(KEY_STORAGE, k); } catch (_) {}
|
||||
}
|
||||
} catch (_) {}
|
||||
})();
|
||||
|
||||
function getKey() {
|
||||
const k = ($('key') && $('key').value ? $('key').value.trim() : '') || (typeof localStorage !== 'undefined' ? (localStorage.getItem(KEY_STORAGE) || '').trim() : '');
|
||||
if (!k) { alert('请先登录'); return null; }
|
||||
|
||||
Reference in New Issue
Block a user