yunzer/app/index/view/user/login.php
2025-05-27 01:30:41 +08:00

302 lines
11 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="__LAYUI__/css/layui.css">
<script src="__LAYUI__/layui.js" charset="utf-8"></script>
<title>用户登录</title>
<style>
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
background: #f5f7fa;
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
margin: 0;
padding: 20px;
}
.login-container {
width: 420px;
background: #fff;
border-radius: 12px;
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.05);
overflow: hidden;
}
.login-header {
padding: 40px 40px 20px;
text-align: center;
}
.login-header h2 {
font-size: 28px;
color: #333;
margin: 0;
font-weight: 600;
}
.login-header p {
color: #666;
margin: 10px 0 0;
font-size: 15px;
}
.login-form {
padding: 20px 40px 40px;
}
.layui-form-item {
margin-bottom: 25px;
}
.layui-input {
height: 45px;
line-height: 45px;
border-radius: 8px;
border: 1px solid #e4e7ed;
padding: 0 15px;
transition: all 0.3s;
}
.layui-input:focus {
border-color: #409eff;
box-shadow: 0 0 0 2px rgba(64, 158, 255, 0.1);
}
.layui-btn {
height: 45px;
line-height: 45px;
border-radius: 8px;
font-size: 16px;
background: #409eff;
transition: all 0.3s;
}
.layui-btn:hover {
background: #66b1ff;
transform: translateY(-1px);
}
.layui-tab {
margin: 0;
}
.layui-tab-title {
border: none;
padding: 0 40px;
}
.layui-tab-title li {
font-size: 15px;
color: #666;
padding: 0 20px;
}
.layui-tab-title .layui-this {
color: #409eff;
}
.layui-tab-title .layui-this:after {
border-bottom: 2px solid #409eff;
}
.layui-tab-content {
padding: 20px 0 0;
}
.wechat-login {
text-align: center;
padding: 30px 0;
}
.wechat-login img {
width: 60px;
height: 60px;
transition: transform 0.3s;
}
.wechat-login img:hover {
transform: scale(1.1);
}
.wechat-login p {
margin-top: 15px;
color: #666;
}
.layui-input-inline {
margin-right: 0px !important;
}
#getCode {
height: 45px;
line-height: 45px;
padding: 0 20px;
font-size: 14px;
}
.layui-input-block {
display: flex;
justify-content: space-between;
}
</style>
</head>
<body>
<div class="login-container">
<div class="login-header">
<h2>欢迎登录</h2>
<p>请选择登录方式</p>
</div>
<div class="layui-tab">
<ul class="layui-tab-title">
<li class="layui-this" lay-id="account">账密登录</li>
<!-- <li lay-id="phone">手机验证码</li>
<li lay-id="wechat">微信登录</li> -->
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show" id="account">
<form action="#" method="post" class="layui-form login-form">
<div class="layui-form-item">
<div class="layui-input-block" style="margin-left: 0;">
<input type="text" name="account" required lay-verify="required" placeholder="请输入用户名"
autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block" style="margin-left: 0;">
<input type="password" name="password" required lay-verify="required"
placeholder="请输入密码" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item" style="display: flex;flex-direction: column;align-items: center;">
<div class="layui-input-block" style="margin-left: 0;margin-bottom: 10px;">
<button class="layui-btn layui-btn-fluid" lay-submit
lay-filter="accountLogin">登录</button>
</div>
<div style="margin-bottom: 10px;color: #aaa;">or</div>
<div>
<a href="{:url('/index/user/register')}" class="">注册</a>
</div>
</div>
</form>
</div>
<!-- <div class="layui-tab-item" id="phone">
<form action="#" method="post" class="layui-form login-form">
<div class="layui-form-item">
<div class="layui-input-block" style="margin-left: 0;">
<input type="tel" name="phone" required lay-verify="required|phone" placeholder="请输入手机号"
autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block" style="margin-left: 0;">
<div class="layui-input-inline" style="width: calc(100% - 120px);">
<input type="text" name="code" required lay-verify="required" placeholder="请输入验证码"
autocomplete="off" class="layui-input">
</div>
<div class="layui-input-inline" style="width: 110px;">
<button type="button" class="layui-btn" id="getCode">获取验证码</button>
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block" style="margin-left: 0;">
<button class="layui-btn layui-btn-fluid" lay-submit lay-filter="phoneLogin">登录</button>
</div>
</div>
</form>
</div>
<div class="layui-tab-item" id="wechat">
<div class="wechat-login">
<img src="" alt="微信登录" class="layui-img">
<p>点击使用微信登录</p>
</div>
</div> -->
</div>
</div>
</div>
<script>
layui.use(['form', 'element', 'jquery'], function () {
var form = layui.form;
var element = layui.element;
var $ = layui.jquery;
form.on('submit(accountLogin)', function (data) {
$.ajax({
url: '{:url("index/user/login")}',
type: 'POST',
data: data.field,
dataType: 'json',
success: function (res) {
if (res.code === 0) {
// 存储登录数据设置7天过期
var expireTime = new Date().getTime() + 7 * 24 * 60 * 60 * 1000;
localStorage.setItem('user_account', data.field.account);
localStorage.setItem('user_password', btoa(data.field.password));
localStorage.setItem('expire_time', expireTime);
// 添加登录状态标记
localStorage.setItem('is_auto_login', 'true');
layer.msg('登录成功', {
icon: 1,
time: 2000,
shade: 0.3
}, function () {
window.location.href = '{:url("/")}';
});
} else {
layer.msg(res.msg, {
icon: 2,
time: 2000
});
}
}
});
return false;
});
// 页面加载时检查是否有保存的登录数据
$(function () {
var expireTime = localStorage.getItem('expire_time');
var isAutoLogin = localStorage.getItem('is_auto_login');
if (expireTime && new Date().getTime() < expireTime && isAutoLogin === 'true') {
$('input[name="account"]').val(localStorage.getItem('user_account'));
$('input[name="password"]').val(atob(localStorage.getItem('user_password')));
} else {
// 如果过期或未开启自动登录,清除数据
localStorage.removeItem('user_account');
localStorage.removeItem('user_password');
localStorage.removeItem('expire_time');
localStorage.removeItem('is_auto_login');
}
});
// form.on('submit(phoneLogin)', function (data) {
// console.log(data.field);
// return false;
// });
// document.getElementById('getCode').addEventListener('click', function () {
// console.log('获取验证码');
// });
});
</script>
<style>
.layui-form-item a {
color: #409eff;
}
.layui-form-item a:hover {
color: rgb(58, 125, 196);
}
</style>
</body>
</html>