reminder/resources/views/auth/register.blade.php
2026-01-12 12:42:48 +08:00

359 lines
9.9 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">
<title>注册 - 患者随访管理系统</title>
<style>
:root {
--color-primary: #0066cc;
--color-primary-light: #e8f2ff;
--color-primary-dark: #004d99;
--color-success: #28a745;
--color-danger: #dc3545;
--color-danger-light: #fce8e8;
--color-text: #333;
--color-text-light: #666;
--color-bg: #f0f4f8;
--color-white: #ffffff;
--color-border: #dce3eb;
--shadow-sm: 0 2px 8px rgba(0,102,204,0.08);
--shadow-md: 0 8px 24px rgba(0,102,204,0.12);
--shadow-lg: 0 16px 48px rgba(0,102,204,0.15);
--radius-sm: 8px;
--radius-md: 12px;
--radius-lg: 20px;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
background: linear-gradient(135deg, #e8f2ff 0%, #f0f4f8 50%, #e8f0f5 100%);
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
padding: 20px;
}
.auth-container {
width: 100%;
max-width: 420px;
}
.auth-card {
background: var(--color-white);
border-radius: var(--radius-lg);
box-shadow: var(--shadow-lg);
padding: 48px 40px;
position: relative;
overflow: hidden;
}
.auth-card::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 4px;
background: linear-gradient(90deg, var(--color-success) 0%, #20c997 100%);
}
.auth-logo {
text-align: center;
margin-bottom: 32px;
}
.auth-logo-icon {
width: 64px;
height: 64px;
background: linear-gradient(135deg, var(--color-success) 0%, #20c997 100%);
border-radius: 50%;
display: inline-flex;
align-items: center;
justify-content: center;
color: white;
font-size: 28px;
margin-bottom: 16px;
box-shadow: 0 8px 20px rgba(40,167,69,0.25);
}
.auth-logo h1 {
font-size: 24px;
font-weight: 600;
color: var(--color-text);
margin-bottom: 6px;
}
.auth-logo p {
font-size: 14px;
color: var(--color-text-light);
}
.form-group {
margin-bottom: 20px;
}
.form-label {
display: block;
font-size: 14px;
font-weight: 500;
color: var(--color-text);
margin-bottom: 8px;
}
.form-input {
width: 100%;
padding: 14px 16px;
border: 2px solid var(--color-border);
border-radius: var(--radius-sm);
font-size: 15px;
transition: all 0.2s ease;
background: var(--color-white);
}
.form-input:focus {
outline: none;
border-color: var(--color-success);
box-shadow: 0 0 0 4px rgba(40,167,69,0.15);
}
.form-input.error {
border-color: var(--color-danger);
}
.form-hint {
font-size: 12px;
color: var(--color-text-light);
margin-top: 6px;
}
.btn {
width: 100%;
padding: 14px 24px;
border: none;
border-radius: var(--radius-sm);
font-size: 16px;
font-weight: 600;
cursor: pointer;
transition: all 0.2s ease;
}
.btn-success {
background: linear-gradient(135deg, var(--color-success) 0%, #20c997 100%);
color: white;
box-shadow: 0 4px 12px rgba(40,167,69,0.3);
}
.btn-success:hover {
transform: translateY(-2px);
box-shadow: 0 6px 16px rgba(40,167,69,0.4);
}
.btn-success:active {
transform: translateY(0);
}
.error-message {
background: var(--color-danger-light);
color: var(--color-danger);
padding: 12px 16px;
border-radius: var(--radius-sm);
font-size: 14px;
margin-bottom: 20px;
border-left: 4px solid var(--color-danger);
}
.auth-footer {
text-align: center;
margin-top: 24px;
padding-top: 24px;
border-top: 1px solid var(--color-border);
}
.auth-footer p {
font-size: 14px;
color: var(--color-text-light);
}
.auth-footer a {
color: var(--color-primary);
text-decoration: none;
font-weight: 500;
}
.auth-footer a:hover {
text-decoration: underline;
}
@media (max-width: 480px) {
.auth-card {
padding: 32px 20px;
border-radius: 16px;
}
.auth-logo-icon {
width: 56px;
height: 56px;
font-size: 24px;
}
.auth-logo h1 {
font-size: 20px;
}
.auth-logo p {
font-size: 13px;
}
.form-label {
font-size: 13px;
}
.form-input {
padding: 12px 14px;
font-size: 14px;
}
.form-hint {
font-size: 11px;
}
.btn {
padding: 12px 20px;
font-size: 15px;
}
.auth-footer {
margin-top: 20px;
padding-top: 20px;
}
.auth-footer p {
font-size: 13px;
}
}
@media (max-width: 360px) {
body {
padding: 12px;
}
.auth-card {
padding: 24px 16px;
}
.auth-logo {
margin-bottom: 24px;
}
.auth-logo-icon {
width: 48px;
height: 48px;
font-size: 20px;
margin-bottom: 12px;
}
.auth-logo h1 {
font-size: 18px;
}
.form-group {
margin-bottom: 16px;
}
.form-input {
padding: 10px 12px;
}
}
</style>
</head>
<body>
<div class="auth-container">
<div class="auth-card">
<div class="auth-logo">
<div class="auth-logo-icon"></div>
<h1>创建新账户</h1>
<p>加入患者随访管理系统</p>
</div>
@if ($errors->any())
<div class="error-message">
@foreach ($errors->all() as $error)
<div>{{ $error }}</div>
@endforeach
</div>
@endif
<form method="POST" action="{{ route('register') }}">
@csrf
<div class="form-group">
<label class="form-label" for="name">姓名</label>
<input
type="text"
id="name"
name="name"
class="form-input @error('name') error @enderror"
value="{{ old('name') }}"
placeholder="请输入您的姓名"
required
autofocus
>
</div>
<div class="form-group">
<label class="form-label" for="email">邮箱地址</label>
<input
type="email"
id="email"
name="email"
class="form-input @error('email') error @enderror"
value="{{ old('email') }}"
placeholder="请输入邮箱"
required
>
<div class="form-hint">用于登录和找回密码</div>
</div>
<div class="form-group">
<label class="form-label" for="password">设置密码</label>
<input
type="password"
id="password"
name="password"
class="form-input @error('password') error @enderror"
placeholder="请设置密码至少6位"
required
>
</div>
<div class="form-group">
<label class="form-label" for="password_confirmation">确认密码</label>
<input
type="password"
id="password_confirmation"
name="password_confirmation"
class="form-input"
placeholder="请再次输入密码"
required
>
</div>
<button type="submit" class="btn btn-success"> </button>
</form>
<div class="auth-footer">
<p>已有账户? <a href="{{ route('login') }}">立即登录</a></p>
</div>
</div>
</div>
</body>
</html>