仰望星辰工作室

better-staridc-MNBT

Z zfhsh first commit 2 天前
1<?php
2if (!defined('IN_CRONLITE')) { exit; }
3$page_title = $page_title ?? '登录';
4ob_start();
5?>
6<div class="ly-msg" id="msg"></div>
7
8<form class="layui-form ly-form" id="loginForm" autocomplete="on">
9 <h1>登录</h1>
10 <p style="color:#999;font-size:14px;margin:0 0 20px;">登录到您的账户</p>
11
12 <div class="layui-form-item">
13 <label class="layui-form-label">用户名</label>
14 <div class="layui-input-block"><input type="text" id="username" name="username" required maxlength="32" autocomplete="username" placeholder="字母、数字或下划线" class="layui-input"></div>
15 </div>
16 <div class="layui-form-item">
17 <label class="layui-form-label">密码</label>
18 <div class="layui-input-block"><input type="password" id="password" name="password" required autocomplete="current-password" placeholder="至少 6 个字符" class="layui-input"></div>
19 </div>
20 <div class="layui-form-item">
21 <div class="layui-input-block">
22 <button type="submit" class="layui-btn layui-btn-fluid" id="submitBtn">登录</button>
23 </div>
24 </div>
25 <div style="text-align:center;font-size:13px;color:#888;">
26 还没有账号?<a href="<?= user_info_url('account/register') ?>" style="color:#009688;">立即注册</a>
27 </div>
28</form>
29
30<script>
31(function () {
32 var form = document.getElementById('loginForm');
33 var msg = document.getElementById('msg');
34 var btn = document.getElementById('submitBtn');
35 function showMsg(text, type) { msg.textContent = text; msg.className = 'ly-msg show ' + (type === 'success' ? 'ly-msg-success' : 'ly-msg-error'); }
36 form.addEventListener('submit', function (e) {
37 e.preventDefault(); btn.disabled = true; btn.textContent = '登录中...'; msg.className = 'ly-msg';
38 var body = new URLSearchParams();
39 body.append('username', document.getElementById('username').value);
40 body.append('password', document.getElementById('password').value);
41 fetch('<?= user_info_url('account/api/login') ?>', { method: 'POST', headers: {'Content-Type':'application/x-www-form-urlencoded'}, body: body.toString() })
42 .then(function (r) { return r.json(); })
43 .then(function (res) {
44 if (res.code === 'ok') { showMsg(res.message || '登录成功', 'success'); setTimeout(function(){window.location.href=res.redirect;},300); }
45 else { showMsg(res.code || '登录失败', 'error'); btn.disabled = false; btn.textContent = '登录'; }
46 })
47 .catch(function () { showMsg('网络错误,请重试', 'error'); btn.disabled = false; btn.textContent = '登录'; });
48 });
49})();
50</script>
51<?php
52$content = ob_get_clean();
53include __DIR__ . '/layout.php';