better-staridc-MNBT
1<?php
2if (!defined('IN_CRONLITE')) { exit; }
3$page_title = $page_title ?? '个人信息';
4$u = $current_user;
5ob_start();
6?>
7<div class="sf-page-head">
8 <h1>个人信息</h1>
9 <p>查看和更新您的账户信息</p>
10</div>
11
12<div class="sf-card" style="max-width:560px;">
13 <div class="sf-card-body">
14 <div class="sf-msg" id="msg"></div>
15
16 <div style="display:flex;flex-direction:column;gap:10px;margin:6px 0 20px;padding:16px;background:#fafbfe;border:1px solid var(--sf-border);border-radius:10px;">
17 <div style="display:flex;justify-content:space-between;"><span style="color:var(--sf-text-2);">用户名</span><b><?= htmlspecialchars($u['username']) ?></b></div>
18 <div style="display:flex;justify-content:space-between;"><span style="color:var(--sf-text-2);">注册时间</span><span><?= htmlspecialchars($u['created_at']) ?></span></div>
19 </div>
20
21 <form class="sf-form" id="profileForm">
22 <div class="sf-field">
23 <label for="email">邮箱</label>
24 <input type="email" id="email" name="email" maxlength="128" value="<?= htmlspecialchars($u['email']) ?>" placeholder="选填,用于找回密码">
25 </div>
26 <div class="sf-field">
27 <label for="qq">QQ</label>
28 <input type="text" id="qq" name="qq" maxlength="12" value="<?= htmlspecialchars($u['qq']) ?>" placeholder="选填">
29 </div>
30 <div class="sf-form-actions">
31 <button type="submit" class="sf-btn sf-btn-primary" id="submitBtn">保存</button>
32 <a href="<?= shop_frontend_url('account/password') ?>" class="sf-btn sf-btn-ghost">修改密码</a>
33 </div>
34 </form>
35 </div>
36</div>
37
38<script>
39(function () {
40 var form = document.getElementById('profileForm');
41 if (!form) return;
42 var btn = document.getElementById('submitBtn');
43 form.addEventListener('submit', function (e) {
44 e.preventDefault();
45 btn.disabled = true; btn.textContent = '保存中...'; sfMsg('msg', '', 'error');
46 sfPost('<?= shop_frontend_url('account/api/update_profile') ?>', {
47 email: document.getElementById('email').value,
48 qq: document.getElementById('qq').value
49 }).then(function (res) {
50 sfMsg('msg', res.code || '操作失败', res.code === '保存成功' ? 'success' : 'error');
51 btn.disabled = false; btn.textContent = '保存';
52 }).catch(function () {
53 sfMsg('msg', '网络错误,请重试', 'error');
54 btn.disabled = false; btn.textContent = '保存';
55 });
56 });
57})();
58</script>
59<?php
60$content = ob_get_clean();
61include __DIR__ . '/layout.php';