初始化
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', '管理后台登录 - 深圳市云创芯电子有限公司')
|
||||
|
||||
@section('content')
|
||||
<section class="px-4 py-12 sm:px-6 lg:px-8 lg:py-16">
|
||||
<div class="mx-auto max-w-md">
|
||||
<div class="rounded-lg border border-line bg-surface p-6 shadow-soft sm:p-8">
|
||||
<div class="mb-6 flex items-center gap-3">
|
||||
<span class="inline-flex h-11 w-11 items-center justify-center rounded-lg bg-primary-soft text-primary">
|
||||
<x-icon name="lock" :size="24" />
|
||||
</span>
|
||||
<div>
|
||||
<h1 class="text-2xl font-bold tracking-tight text-fg">管理后台登录</h1>
|
||||
<p class="text-sm text-muted">仅限具备后台权限的账户使用。</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<form method="POST" action="{{ url('/admin/login') }}" class="space-y-5">
|
||||
@csrf
|
||||
<div>
|
||||
<label for="email" class="mb-1.5 block text-sm font-medium text-fg">邮箱</label>
|
||||
<input id="email" name="email" type="email" value="{{ old('email') }}" required autofocus class="w-full rounded-lg border border-line bg-surface px-3 py-2.5 text-sm text-fg placeholder:text-muted focus:border-primary focus:outline-none focus:shadow-[0_0_0_3px_var(--color-primary-soft)]">
|
||||
</div>
|
||||
<div>
|
||||
<label for="password" class="mb-1.5 block text-sm font-medium text-fg">密码</label>
|
||||
<input id="password" name="password" type="password" required class="w-full rounded-lg border border-line bg-surface px-3 py-2.5 text-sm text-fg placeholder:text-muted focus:border-primary focus:outline-none focus:shadow-[0_0_0_3px_var(--color-primary-soft)]">
|
||||
</div>
|
||||
<div>
|
||||
<label for="captcha" class="mb-1.5 block text-sm font-medium text-fg">图形验证码</label>
|
||||
<div class="flex items-center gap-3">
|
||||
<input id="captcha" name="captcha" type="text" required autocomplete="off" maxlength="4" class="w-36 rounded-lg border border-line bg-surface px-3 py-2.5 text-sm uppercase tracking-widest text-fg placeholder:text-muted focus:border-primary focus:outline-none focus:shadow-[0_0_0_3px_var(--color-primary-soft)]">
|
||||
<img src="{{ url('/captcha') }}?r={{ time() }}" alt="图形验证码" title="看不清?点击刷新" id="captcha-img" onclick="this.src='{{ url('/captcha') }}?r='+Date.now()" class="h-11 cursor-pointer rounded-lg border border-line">
|
||||
</div>
|
||||
<p class="mt-1.5 text-xs text-muted">看不清?点击图片可刷新。连续输错 5 次将临时锁定 10 分钟。</p>
|
||||
</div>
|
||||
<div class="flex items-center gap-2">
|
||||
<input type="checkbox" id="remember" name="remember" class="h-4 w-4 rounded border-line accent-primary">
|
||||
<label for="remember" class="text-sm text-fg">记住我</label>
|
||||
</div>
|
||||
<button type="submit" class="inline-flex w-full items-center justify-center gap-2 rounded-lg bg-primary px-5 py-2.5 text-sm font-semibold text-white transition hover:bg-primary-hover">
|
||||
<x-icon name="lock" :size="20" class="text-white" /> 进入后台
|
||||
</button>
|
||||
<p class="text-center text-sm text-muted">
|
||||
<a href="{{ url('/') }}" class="font-medium text-primary hover:text-primary-hover">返回网站首页</a>
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endsection
|
||||
@@ -0,0 +1,44 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', '登录 - 深圳市云创芯电子有限公司')
|
||||
|
||||
@section('content')
|
||||
<section class="px-4 py-12 sm:px-6 lg:px-8 lg:py-16">
|
||||
<div class="mx-auto max-w-md">
|
||||
<div class="rounded-lg border border-line bg-surface p-6 shadow-soft sm:p-8">
|
||||
<h1 class="text-2xl font-bold tracking-tight text-fg">登录</h1>
|
||||
<p class="mt-2 text-sm text-muted">欢迎回来,请登录您的账户。</p>
|
||||
|
||||
<form method="POST" action="{{ url('/login') }}" class="mt-6 space-y-5">
|
||||
@csrf
|
||||
<div>
|
||||
<label for="email" class="mb-1.5 block text-sm font-medium text-fg">邮箱</label>
|
||||
<input id="email" name="email" type="email" value="{{ old('email') }}" required autofocus class="w-full rounded-lg border border-line bg-surface px-3 py-2.5 text-sm text-fg placeholder:text-muted focus:border-primary focus:outline-none focus:shadow-[0_0_0_3px_var(--color-primary-soft)]">
|
||||
</div>
|
||||
<div>
|
||||
<label for="password" class="mb-1.5 block text-sm font-medium text-fg">密码</label>
|
||||
<input id="password" name="password" type="password" required class="w-full rounded-lg border border-line bg-surface px-3 py-2.5 text-sm text-fg placeholder:text-muted focus:border-primary focus:outline-none focus:shadow-[0_0_0_3px_var(--color-primary-soft)]">
|
||||
</div>
|
||||
<div>
|
||||
<label for="captcha" class="mb-1.5 block text-sm font-medium text-fg">图形验证码</label>
|
||||
<div class="flex items-center gap-3">
|
||||
<input id="captcha" name="captcha" type="text" required autocomplete="off" maxlength="4" class="w-36 rounded-lg border border-line bg-surface px-3 py-2.5 text-sm uppercase tracking-widest text-fg placeholder:text-muted focus:border-primary focus:outline-none focus:shadow-[0_0_0_3px_var(--color-primary-soft)]">
|
||||
<img src="{{ url('/captcha') }}?r={{ time() }}" alt="图形验证码" title="看不清?点击刷新" id="captcha-img" onclick="this.src='{{ url('/captcha') }}?r='+Date.now()" class="h-11 cursor-pointer rounded-lg border border-line">
|
||||
</div>
|
||||
<p class="mt-1.5 text-xs text-muted">看不清?点击图片可刷新。连续输错 5 次将临时锁定 10 分钟。</p>
|
||||
</div>
|
||||
<div class="flex items-center gap-2">
|
||||
<input type="checkbox" id="remember" name="remember" class="h-4 w-4 rounded border-line accent-primary">
|
||||
<label for="remember" class="text-sm text-fg">记住我</label>
|
||||
</div>
|
||||
<button type="submit" class="inline-flex w-full items-center justify-center gap-2 rounded-lg bg-primary px-5 py-2.5 text-sm font-semibold text-white transition hover:bg-primary-hover">
|
||||
登录
|
||||
</button>
|
||||
<p class="text-center text-sm text-muted">
|
||||
还没有账号?<a href="{{ url('/register') }}" class="font-medium text-primary hover:text-primary-hover">立即注册</a>
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endsection
|
||||
@@ -0,0 +1,56 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', '注册 - 深圳市云创芯电子有限公司')
|
||||
|
||||
@section('content')
|
||||
<section class="px-4 py-12 sm:px-6 lg:px-8 lg:py-16">
|
||||
<div class="mx-auto max-w-md">
|
||||
<div class="rounded-lg border border-line bg-surface p-6 shadow-soft sm:p-8">
|
||||
<h1 class="text-2xl font-bold tracking-tight text-fg">注册</h1>
|
||||
<p class="mt-2 text-sm text-muted">创建账户,参与论坛交流并投稿技术文章。</p>
|
||||
|
||||
<form method="POST" action="{{ url('/register') }}" class="mt-6 space-y-5">
|
||||
@csrf
|
||||
<div>
|
||||
<label for="name" class="mb-1.5 block text-sm font-medium text-fg">姓名</label>
|
||||
<input id="name" name="name" type="text" value="{{ old('name') }}" maxlength="40" required class="w-full rounded-lg border border-line bg-surface px-3 py-2.5 text-sm text-fg placeholder:text-muted focus:border-primary focus:outline-none focus:shadow-[0_0_0_3px_var(--color-primary-soft)]">
|
||||
</div>
|
||||
<div>
|
||||
<label for="email" class="mb-1.5 block text-sm font-medium text-fg">邮箱</label>
|
||||
<input id="email" name="email" type="email" value="{{ old('email') }}" maxlength="120" required class="w-full rounded-lg border border-line bg-surface px-3 py-2.5 text-sm text-fg placeholder:text-muted focus:border-primary focus:outline-none focus:shadow-[0_0_0_3px_var(--color-primary-soft)]">
|
||||
</div>
|
||||
<div>
|
||||
<label for="real_name" class="mb-1.5 block text-sm font-medium text-fg">真实姓名(选填)</label>
|
||||
<input id="real_name" name="real_name" type="text" value="{{ old('real_name') }}" maxlength="40" class="w-full rounded-lg border border-line bg-surface px-3 py-2.5 text-sm text-fg placeholder:text-muted focus:border-primary focus:outline-none focus:shadow-[0_0_0_3px_var(--color-primary-soft)]">
|
||||
</div>
|
||||
<div>
|
||||
<label for="phone" class="mb-1.5 block text-sm font-medium text-fg">手机号(选填)</label>
|
||||
<input id="phone" name="phone" type="tel" value="{{ old('phone') }}" maxlength="30" class="w-full rounded-lg border border-line bg-surface px-3 py-2.5 text-sm text-fg placeholder:text-muted focus:border-primary focus:outline-none focus:shadow-[0_0_0_3px_var(--color-primary-soft)]">
|
||||
</div>
|
||||
<div>
|
||||
<label for="company" class="mb-1.5 block text-sm font-medium text-fg">公司名称(选填)</label>
|
||||
<input id="company" name="company" type="text" value="{{ old('company') }}" maxlength="120" class="w-full rounded-lg border border-line bg-surface px-3 py-2.5 text-sm text-fg placeholder:text-muted focus:border-primary focus:outline-none focus:shadow-[0_0_0_3px_var(--color-primary-soft)]">
|
||||
</div>
|
||||
<div>
|
||||
<label for="industry" class="mb-1.5 block text-sm font-medium text-fg">行业/领域(选填)</label>
|
||||
<input id="industry" name="industry" type="text" value="{{ old('industry') }}" maxlength="60" class="w-full rounded-lg border border-line bg-surface px-3 py-2.5 text-sm text-fg placeholder:text-muted focus:border-primary focus:outline-none focus:shadow-[0_0_0_3px_var(--color-primary-soft)]">
|
||||
</div>
|
||||
<div>
|
||||
<label for="password" class="mb-1.5 block text-sm font-medium text-fg">密码(至少 8 位)</label>
|
||||
<input id="password" name="password" type="password" required autocomplete="new-password" class="w-full rounded-lg border border-line bg-surface px-3 py-2.5 text-sm text-fg placeholder:text-muted focus:border-primary focus:outline-none focus:shadow-[0_0_0_3px_var(--color-primary-soft)]">
|
||||
</div>
|
||||
<div>
|
||||
<label for="password_confirmation" class="mb-1.5 block text-sm font-medium text-fg">确认密码</label>
|
||||
<input id="password_confirmation" name="password_confirmation" type="password" required class="w-full rounded-lg border border-line bg-surface px-3 py-2.5 text-sm text-fg placeholder:text-muted focus:border-primary focus:outline-none focus:shadow-[0_0_0_3px_var(--color-primary-soft)]">
|
||||
</div>
|
||||
<button type="submit" class="inline-flex w-full items-center justify-center gap-2 rounded-lg bg-primary px-5 py-2.5 text-sm font-semibold text-white transition hover:bg-primary-hover">
|
||||
注册
|
||||
</button>
|
||||
<p class="text-center text-sm text-muted">
|
||||
已有账号?<a href="{{ url('/login') }}" class="font-medium text-primary hover:text-primary-hover">去登录</a>
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endsection
|
||||
@@ -0,0 +1,50 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@php $siteName = App\Models\Setting::get('site_name', '深圳市云创芯电子有限公司'); @endphp
|
||||
|
||||
@section('title', '账户设置 - ' . $siteName)
|
||||
|
||||
@section('content')
|
||||
<section class="px-4 py-12 sm:px-6 lg:px-8 lg:py-16">
|
||||
<div class="mx-auto max-w-2xl space-y-6">
|
||||
<h1 class="text-2xl font-bold tracking-tight text-fg sm:text-3xl">账户设置</h1>
|
||||
|
||||
<div class="rounded-lg border border-line bg-surface p-6 shadow-soft sm:p-8">
|
||||
<h2 class="text-lg font-semibold text-fg">修改密码</h2>
|
||||
<form method="POST" action="{{ route('auth.settings.password') }}" class="mt-5 space-y-5">
|
||||
@csrf
|
||||
<div>
|
||||
<label for="current_password" class="mb-1.5 block text-sm font-medium text-fg">当前密码</label>
|
||||
<input id="current_password" type="password" name="current_password" autocomplete="current-password" required class="w-full rounded-lg border border-line bg-surface px-3 py-2.5 text-sm text-fg placeholder:text-muted focus:border-primary focus:outline-none focus:shadow-[0_0_0_3px_var(--color-primary-soft)]">
|
||||
</div>
|
||||
<div>
|
||||
<label for="password" class="mb-1.5 block text-sm font-medium text-fg">新密码</label>
|
||||
<input id="password" type="password" name="password" autocomplete="new-password" required class="w-full rounded-lg border border-line bg-surface px-3 py-2.5 text-sm text-fg placeholder:text-muted focus:border-primary focus:outline-none focus:shadow-[0_0_0_3px_var(--color-primary-soft)]">
|
||||
</div>
|
||||
<div>
|
||||
<label for="password_confirmation" class="mb-1.5 block text-sm font-medium text-fg">确认新密码</label>
|
||||
<input id="password_confirmation" type="password" name="password_confirmation" autocomplete="new-password" required class="w-full rounded-lg border border-line bg-surface px-3 py-2.5 text-sm text-fg placeholder:text-muted focus:border-primary focus:outline-none focus:shadow-[0_0_0_3px_var(--color-primary-soft)]">
|
||||
</div>
|
||||
<button type="submit" class="inline-flex items-center justify-center rounded-lg bg-primary px-5 py-2.5 text-sm font-semibold text-white transition hover:bg-primary-hover">
|
||||
保存修改
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="rounded-lg border border-line bg-surface p-6 shadow-soft sm:p-8">
|
||||
<h2 class="text-lg font-semibold text-fg">我的等级 <x-level-badge :user="Auth::user()" /></h2>
|
||||
@php $progress = Auth::user()->levelProgress(); @endphp
|
||||
<p class="mt-3 text-sm text-fg">当前等级:<strong>L{{ $progress['level'] }} {{ Auth::user()->levelName() }}</strong></p>
|
||||
<p class="mt-1 text-sm text-muted">积分:{{ $progress['current'] }}</p>
|
||||
<div class="mt-2 h-2 w-full overflow-hidden rounded-full bg-surface-2">
|
||||
<div class="h-full rounded-full bg-primary" style="width:{{ $progress['percent'] }}%"></div>
|
||||
</div>
|
||||
@if ($progress['next'])
|
||||
<p class="mt-2 text-sm text-muted">距下一等级(L{{ $progress['level'] + 1 }})还需 {{ $progress['next'] - $progress['current'] }} 积分</p>
|
||||
@else
|
||||
<p class="mt-2 text-sm text-muted">已达到最高等级</p>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endsection
|
||||
Reference in New Issue
Block a user