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="ly-msg" id="msg"></div>
8
9<form class="layui-form ly-form" id="profileForm">
10 <h1>个人信息</h1>
11 <p style="color:#999;font-size:14px;margin:0 0 20px;">查看和更新您的账户信息</p>
12
13 <div class="ly-info-row"><span class="ly-info-label">用户名</span><span class="ly-info-value"><?= htmlspecialchars($u['username']) ?></span></div>
14 <div class="ly-info-row"><span class="ly-info-label">注册时间</span><span class="ly-info-value"><?= htmlspecialchars($u['created_at']) ?></span></div>
15
16 <div class="layui-form-item" style="margin-top:20px;">
17 <label class="layui-form-label">邮箱</label>
18 <div class="layui-input-block"><input type="email" id="email" name="email" maxlength="128" value="<?= htmlspecialchars($u['email']) ?>" placeholder="选填,用于找回密码" class="layui-input"></div>
19 </div>
20 <div class="layui-form-item">
21 <label class="layui-form-label">QQ</label>
22 <div class="layui-input-block"><input type="text" id="qq" name="qq" maxlength="12" value="<?= htmlspecialchars($u['qq']) ?>" placeholder="选填" class="layui-input"></div>
23 </div>
24 <div class="layui-form-item">
25 <div class="layui-input-block">
26 <div class="ly-form-actions">
27 <button type="submit" class="layui-btn" id="submitBtn">保存</button>
28 <button type="button" class="layui-btn layui-btn-primary" onclick="window.location.href='<?= user_info_url('account/password') ?>'">修改密码</button>
29 </div>
30 </div>
31 </div>
32</form>
33
34<script>
35(function () {
36 var form = document.getElementById('profileForm');
37 var msg = document.getElementById('msg');
38 var btn = document.getElementById('submitBtn');
39 function showMsg(text, type) { msg.textContent = text; msg.className = 'ly-msg show ' + (type === 'success' ? 'ly-msg-success' : 'ly-msg-error'); }
40 form.addEventListener('submit', function (e) {
41 e.preventDefault(); btn.disabled = true; btn.textContent = '保存中...'; msg.className = 'ly-msg';
42 var body = new URLSearchParams();
43 body.append('email', document.getElementById('email').value);
44 body.append('qq', document.getElementById('qq').value);
45 fetch('<?= user_info_url('account/api/update_profile') ?>', { method: 'POST', headers: {'Content-Type':'application/x-www-form-urlencoded'}, body: body.toString() })
46 .then(function (r) { return r.json(); })
47 .then(function (res) {
48 showMsg(res.code === 'ok' ? (res.message || '保存成功') : (res.code || '操作失败'), res.code === 'ok' ? 'success' : 'error');
49 btn.disabled = false; btn.textContent = '保存';
50 })
51 .catch(function () { showMsg('网络错误,请重试', 'error'); btn.disabled = false; btn.textContent = '保存'; });
52 });
53})();
54</script>
55<?php
56$content = ob_get_clean();
57include __DIR__ . '/layout.php';