fix: 同步两个页面的弹窗结构
- index.html 添加 profileModal HTML - analysis.html 移除错误位置的 twofaBindModal - analysis.html 添加 twofaBindModal 到正确位置 - analysis.html profileModal 添加完整 2FA 设置部分 - 两个页面的 header/menu/modal 现在一致 不打包,等用户确认后再打包
This commit is contained in:
@@ -5,6 +5,33 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="Cache-Control" content="no-cache">
|
||||
<title>数据分析</title>
|
||||
<div style="background:#fff;border-radius:16px;padding:28px;max-width:360px;width:90%;box-shadow:0 24px 80px rgba(0,0,0,.2)">
|
||||
<h3>双因素认证</h3>
|
||||
<p style="font-size:13px;color:var(--text2);margin-bottom:12px;text-align:center">请使用验证器应用扫描二维码</p>
|
||||
<div class="twofa-qr"><img id="twofaBindQr" width="200" height="200"></div>
|
||||
<p style="font-size:11px;color:var(--text3);text-align:center;margin-bottom:12px">密钥:<code id="twofaBindSecret" style="background:#f5f5f7;padding:2px 6px;border-radius:4px;font-size:11px"></code></p>
|
||||
<div class="form-row">
|
||||
<input type="text" id="twofaBindCode" placeholder="输入 6 位验证码" maxlength="6" style="text-align:center;font-size:20px;letter-spacing:4px">
|
||||
</div>
|
||||
<div id="twofaBindError" class="error-msg" style="display:none"></div>
|
||||
<div class="btn-row">
|
||||
<button class="btn btn-main" onclick="verifyTwofaBind()">确认绑定</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="twofaBindModal" style="display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:9998;align-items:center;justify-content:center">
|
||||
<div style="background:#fff;border-radius:16px;padding:28px;max-width:360px;width:90%;box-shadow:0 24px 80px rgba(0,0,0,.2)">
|
||||
<h3>双因素认证</h3>
|
||||
<p style="font-size:13px;color:var(--text2);margin-bottom:12px;text-align:center">请使用验证器应用扫描二维码</p>
|
||||
<div class="twofa-qr"><img id="twofaBindQr" width="200" height="200"></div>
|
||||
<p style="font-size:11px;color:var(--text3);text-align:center;margin-bottom:12px">密钥:<code id="twofaBindSecret" style="background:#f5f5f7;padding:2px 6px;border-radius:4px;font-size:11px"></code></p>
|
||||
<div class="form-row"><input type="text" id="twofaBindCode" placeholder="输入 6 位验证码" maxlength="6" style="text-align:center;font-size:20px;letter-spacing:4px"></div>
|
||||
<div id="twofaBindError" class="error-msg" style="display:none"></div>
|
||||
<div class="btn-row"><button class="btn btn-main" onclick="verifyTwofaBind()">确认绑定</button></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="/chart.min.js"></script>
|
||||
<style>
|
||||
:root{--bg:#f5f5f7;--card:rgba(255,255,255,.8);--border:rgba(0,0,0,.06);--text:#1d1d1f;--text2:#6e6e73;--text3:#aeaeb2;--blue:#0071e3;--green:#34c759;--red:#ff3b30;--orange:#ff9500;--purple:#af52de;--radius:16px;--radius-sm:10px;--radius-xs:8px}
|
||||
@@ -437,6 +464,16 @@ function exportHTML(e){e.preventDefault();if(!loans.length)return;let h=`<html><
|
||||
</div>
|
||||
<div id="profileError" class="error-msg" style="display:none"></div>
|
||||
<div id="profileSuccess" class="success-msg" style="display:none"></div>
|
||||
<div class="twofa-section" style="margin-top:16px;padding-top:16px;border-top:1px solid var(--border)">
|
||||
<label style="display:block;font-size:13px;font-weight:500;margin-bottom:8px">双因素认证</label>
|
||||
<div class="twofa-status" id="twofaStatus"><span style="font-size:12px;color:var(--text3)">加载中...</span></div>
|
||||
<div id="twofaSetupSection" style="display:none">
|
||||
<p style="font-size:12px;color:var(--text2);margin-bottom:12px">请使用验证器应用扫描下方二维码:</p>
|
||||
<div style="display:flex;justify-content:center;margin:16px 0"><img id="twofaQrCode" width="200" height="200" style="border:1px solid var(--border);border-radius:8px"></div>
|
||||
<p style="font-size:11px;color:var(--text3);text-align:center;margin-bottom:12px">密钥:<code id="twofaSecret" style="background:#f5f5f7;padding:2px 6px;border-radius:4px;font-size:11px"></code></p>
|
||||
<div style="display:flex;gap:8px;align-items:center"><input type="text" id="twofaSetupCode" placeholder="输入 6 位验证码" maxlength="6" style="flex:1"><button class="btn btn-main" style="flex:none;width:auto;padding:8px 16px;font-size:12px" onclick="verifyTwofaSetup()">确认启用</button></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-row">
|
||||
<button class="btn btn-ghost" onclick="closeProfile()">取消</button>
|
||||
<button class="btn btn-main" onclick="saveProfile()">保存</button>
|
||||
@@ -451,14 +488,8 @@ function showImportModal(e){e.preventDefault();$('importMenu').classList.remove(
|
||||
checkAuth().then(ok=>{if(ok)loadLoans();});
|
||||
</script>
|
||||
|
||||
<div class="modal-mask" id="changeNickModal"><div class="modal"><h3>修改昵称</h3><div class="form-row"><label>新昵称</label><input type="text" id="newNick" placeholder="请输入新昵称"></div><div id="nickError" class="error-msg" style="display:none"></div><div id="nickSuccess" class="success-msg" style="display:none"></div><div class="btn-row"><button class="btn btn-ghost" onclick="closeChangeNick()">取消</button><button class="btn btn-main" onclick="doChangeNick()">确认修改</button></div></div></div>
|
||||
<div class="modal-mask" id="changePwdModal"><div class="modal"><h3>修改密码</h3><div class="form-row"><label>原密码</label><input type="password" id="oldPwd" placeholder="请输入原密码"></div><div class="form-row"><label>新密码</label><input type="password" id="newPwd" placeholder="请输入新密码"></div><div class="form-row"><label>确认新密码</label><input type="password" id="newPwd2" placeholder="请再次输入新密码"></div><div id="pwdError" class="error-msg" style="display:none"></div><div id="pwdSuccess" class="success-msg" style="display:none"></div><div class="btn-row"><button class="btn btn-ghost" onclick="closeChangePwd()">取消</button><button class="btn btn-main" onclick="doChangePwd()">确认修改</button></div></div></div>
|
||||
|
||||
<div class="modal-mask" id="profileModal">
|
||||
<div class="modal" style="max-width:480px">
|
||||
<h3>个人中心</h3>
|
||||
<div class="profile-section">
|
||||
<div class="form-row"><label>账号</label><input type="text" id="profileAccount" disabled style="background:#f5f5f7"></div>
|
||||
|
||||
<div class="form-row"><label>昵称</label><input type="text" id="profileNickname" placeholder="请输入昵称"></div>
|
||||
<div class="form-row">
|
||||
<label>邮箱</label>
|
||||
@@ -473,6 +504,16 @@ checkAuth().then(ok=>{if(ok)loadLoans();});
|
||||
</div>
|
||||
<div id="profileError" class="error-msg" style="display:none"></div>
|
||||
<div id="profileSuccess" class="success-msg" style="display:none"></div>
|
||||
<div class="twofa-section" style="margin-top:16px;padding-top:16px;border-top:1px solid var(--border)">
|
||||
<label style="display:block;font-size:13px;font-weight:500;margin-bottom:8px">双因素认证</label>
|
||||
<div class="twofa-status" id="twofaStatus"><span style="font-size:12px;color:var(--text3)">加载中...</span></div>
|
||||
<div id="twofaSetupSection" style="display:none">
|
||||
<p style="font-size:12px;color:var(--text2);margin-bottom:12px">请使用验证器应用扫描下方二维码:</p>
|
||||
<div style="display:flex;justify-content:center;margin:16px 0"><img id="twofaQrCode" width="200" height="200" style="border:1px solid var(--border);border-radius:8px"></div>
|
||||
<p style="font-size:11px;color:var(--text3);text-align:center;margin-bottom:12px">密钥:<code id="twofaSecret" style="background:#f5f5f7;padding:2px 6px;border-radius:4px;font-size:11px"></code></p>
|
||||
<div style="display:flex;gap:8px;align-items:center"><input type="text" id="twofaSetupCode" placeholder="输入 6 位验证码" maxlength="6" style="flex:1"><button class="btn btn-main" style="flex:none;width:auto;padding:8px 16px;font-size:12px" onclick="verifyTwofaSetup()">确认启用</button></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-row">
|
||||
<button class="btn btn-ghost" onclick="closeProfile()">取消</button>
|
||||
<button class="btn btn-main" onclick="saveProfile()">保存</button>
|
||||
|
||||
Reference in New Issue
Block a user