登录页面改造

This commit is contained in:
robin
2026-02-15 14:27:28 +08:00
parent afbc0cde7e
commit 2a811183c4
19 changed files with 1612 additions and 2298 deletions

View File

@@ -1,13 +1,13 @@
<!DOCTYPE html>
<html lang="zh">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
{$if eq .faviconFileId 0}
<link rel="shortcut icon" href="/images/favicon.png"/>
<link rel="shortcut icon" href="/images/favicon.png" />
{$else}
<link rel="shortcut icon" href="/ui/image/{$ .faviconFileId}"/>
<link rel="shortcut icon" href="/ui/image/{$ .faviconFileId}" />
{$end}
<title>登录{$ htmlEncode .systemName}</title>
<title>&#30331;&#24405;{$ htmlEncode .systemName}</title>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0">
{$TEA.VUE}
{$TEA.SEMANTIC}
@@ -23,49 +23,81 @@
</style>
{$end}
</head>
<body style="background-image: url(/images/bg.jpg);width: 100% !important;height: 100% !important;background-size: cover !important;">
<body class="login-page">
<div>
{$template "/menu"}
<div class="form-box">
<form method="post" class="ui form" data-tea-action="$" data-tea-before="submitBefore" data-tea-done="submitDone" data-tea-success="submitSuccess" autocomplete="off">
<csrf-token></csrf-token>
<input type="hidden" name="password" v-model="passwordMd5"/>
<input type="hidden" name="token" v-model="token"/>
<div class="ui segment stacked">
<div class="ui header">
登录{$ htmlEncode .systemName}
</div>
<div class="ui field">
<div class="ui left icon input">
<i class="ui user icon small"></i>
<input type="text" name="username" v-model="username" :placeholder="usernamePlaceholder" maxlength="200" ref="usernameRef" @input="changeUsername"/>
</div>
</div>
<div class="ui field">
<div class="ui left icon input">
<i class="ui lock icon small"></i>
<input type="password" v-model="password" placeholder="请输入密码" maxlength="200" @input="changePassword()" ref="passwordRef"/>
</div>
</div>
<div class="ui field" v-show="showOTP">
<div class="ui left icon input">
<i class="ui barcode icon"></i>
<input type="text" name="otpCode" placeholder="请输入OTP动态密码" maxlength="6"/>
</div>
</div>
<button class="ui button primary fluid" type="submit" v-if="!isSubmitting">登录</button>
<button class="ui button primary fluid disabled" type="submit" v-if="isSubmitting">登录中...</button>
<div v-if="canRegister" class="register-box">
<a href="/register">注册新用户<span v-if="!canResetPassword">&nbsp; &raquo;</span></a><span v-if="canResetPassword"> &nbsp; <span class="disabled">|</span> &nbsp; <a href="/account/reset">找回密码</a></span>
</div>
</div>
</form>
<div class="bg-layer">
<div class="tech-bg"></div>
<div class="glow-circle"></div>
</div>
<div class="login-shell">
{$template "/menu"}
<div class="form-box">
<div class="login-card">
<div class="card-header">
<div class="brand-logo">
<span class="logo-icon"><i class="shield alternate icon"></i></span>
<span class="logo-text">{$ htmlEncode .systemName}</span>
</div>
<p class="header-title">&#26032;&#19968;&#20195; Web&#19982;APP &#24212;&#29992;&#38450;&#25252;&#24179;&#21488;</p>
</div>
<form method="post" class="ui form login-form" data-tea-action="$" data-tea-before="submitBefore" data-tea-done="submitDone" data-tea-success="submitSuccess" autocomplete="off">
<csrf-token></csrf-token>
<input type="hidden" name="password" v-model="passwordMd5"/>
<input type="hidden" name="token" v-model="token"/>
<div class="ui field input-group">
<label class="input-label">&#36134;&#21495;</label>
<div class="input-field-wrapper">
<div class="ui left icon input">
<i class="ui user icon small input-icon"></i>
<input type="text" name="username" v-model="username" :placeholder="usernamePlaceholder" maxlength="200" ref="usernameRef" @input="changeUsername"/>
</div>
</div>
</div>
<div class="ui field input-group">
<label class="input-label">&#23494;&#30721;</label>
<div class="input-field-wrapper">
<div class="ui left icon input">
<i class="ui lock icon small input-icon"></i>
<input type="password" v-model="password" placeholder="&#35831;&#36755;&#20837;&#23494;&#30721;" maxlength="200" @input="changePassword()" ref="passwordRef"/>
</div>
</div>
</div>
<div class="ui field input-group" v-show="showOTP">
<label class="input-label">&#23433;&#20840;&#39564;&#35777;</label>
<div class="input-field-wrapper">
<div class="ui left icon input">
<i class="ui barcode icon input-icon"></i>
<input type="text" name="otpCode" placeholder="&#35831;&#36755;&#20837; OTP &#21160;&#24577;&#30721;" maxlength="6"/>
</div>
</div>
</div>
<div class="ui field remember-wrap" v-if="false">
<div class="ui checkbox">
<input type="checkbox" name="remember" value="1" checked="checked"/>
<label>&#22312;&#36825;&#21488;&#30005;&#33041;&#19978;&#35760;&#20303;&#30331;&#24405;&#65288;14&#22825;&#65289;</label>
</div>
</div>
<button class="ui button primary fluid submit-btn" type="submit" v-if="!isSubmitting">&#30331;&#24405;</button>
<button class="ui button primary fluid disabled submit-btn" type="submit" disabled="disabled" v-if="isSubmitting">&#30331;&#24405;&#20013;...</button>
<div v-if="canRegister" class="register-box">
<a href="/register">&#27880;&#20876;&#26032;&#29992;&#25143;<span v-if="!canResetPassword">&nbsp; &raquo;</span></a><span v-if="canResetPassword"> &nbsp; <span class="disabled">|</span> &nbsp; <a href="/account/reset">&#25214;&#22238;&#23494;&#30721;</a></span>
</div>
</form>
</div>
</div>
</div>
</div>
</body>
</html>
</html>