登录页修改

This commit is contained in:
cwchen 2025-09-12 13:23:36 +08:00
parent 8d34703506
commit 118590ff07
1 changed files with 217 additions and 30 deletions

View File

@ -25,11 +25,11 @@
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item prop="code" v-if="captchaEnabled"> <el-form-item prop="code" v-if="captchaEnabled">
<div class="code-wrapper">
<el-input <el-input
v-model="loginForm.code" v-model="loginForm.code"
auto-complete="off" auto-complete="off"
placeholder="验证码" placeholder="验证码"
style="width: 63%"
@keyup.enter.native="handleLogin" @keyup.enter.native="handleLogin"
> >
<svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" /> <svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" />
@ -37,6 +37,7 @@
<div class="login-code"> <div class="login-code">
<img :src="codeUrl" @click="getCode" class="login-code-img"/> <img :src="codeUrl" @click="getCode" class="login-code-img"/>
</div> </div>
</div>
</el-form-item> </el-form-item>
<el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">记住密码</el-checkbox> <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">记住密码</el-checkbox>
<el-form-item style="width:100%;"> <el-form-item style="width:100%;">
@ -163,65 +164,251 @@ export default {
justify-content: center; justify-content: center;
align-items: center; align-items: center;
height: 100%; height: 100%;
// background-image: url("../assets/images/login-background.jpg"); background: #fff;
// background-size: cover; background-image: url("../assets/images/login-background.jpg");
background: url("../assets/images/login-background.jpg") no-repeat left center; background-repeat: no-repeat;
background-position: left center;
background-size: contain;
position: relative;
&::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(135deg, rgba(0, 110, 107, 0.1) 0%, rgba(0, 110, 107, 0.05) 100%);
z-index: 0;
}
} }
.title { .title {
margin: 0px auto 20px auto; margin: 0px auto 20px auto;
font-weight: bold; font-weight: bold;
text-align: left; text-align: left;
color: #060F2E; color: #060F2E;
font-size: 28px; font-size: 28px;
text-shadow: 0 2px 4px rgba(0,0,0,0.1);
position: relative;
z-index: 1;
} }
.login-form { .login-form {
border-radius: 6px; border-radius: 12px;
background: #ffffff; background: #ffffff;
backdrop-filter: blur(10px);
width: 600px; width: 600px;
// padding: 25px 25px 5px 25px; padding: 40px 30px 30px 30px;
z-index: 1; z-index: 1;
margin-left: 58%; margin-left: 58%;
box-shadow: 0 15px 35px rgba(0, 0, 0, 0.15);
border: 1px solid rgba(0, 110, 107, 0.1);
position: relative;
&::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 4px;
background: linear-gradient(90deg, #006E6B 0%, #008B8B 100%);
border-radius: 12px 12px 0 0;
}
.el-input { .el-input {
height: 38px; height: 42px;
margin: 5px 0; margin: 8px 0;
input { position: relative;
height: 38px;
.el-input__inner {
height: 42px;
border-radius: 8px;
border: 2px solid #e1e5e9;
padding-left: 40px;
font-size: 14px;
transition: all 0.3s ease;
background: #ffffff;
&:focus {
border-color: #006E6B;
box-shadow: 0 0 0 3px rgba(0, 110, 107, 0.1);
background: #ffffff;
}
&:hover {
border-color: #008B8B;
} }
} }
.el-input__prefix {
position: absolute;
left: 12px;
top: 50%;
transform: translateY(-50%);
z-index: 1;
}
}
.input-icon { .input-icon {
height: 39px; height: 16px;
width: 14px; width: 16px;
margin-left: 2px; margin-left: 0;
color: #999;
transition: color 0.3s ease;
position: absolute;
top: 50%;
left: 12px;
transform: translateY(-50%);
}
.el-form-item {
margin-bottom: 20px;
}
.el-checkbox {
margin-bottom: 20px;
.el-checkbox__label {
color: #666;
font-size: 14px;
}
.el-checkbox__input.is-checked .el-checkbox__inner {
background-color: #006E6B;
border-color: #006E6B;
}
}
.el-button {
height: 42px;
border-radius: 8px;
font-size: 16px;
font-weight: 600;
background: linear-gradient(135deg, #006E6B 0%, #008B8B 100%);
border: none;
transition: transform 0.2s ease, box-shadow 0.2s ease;
will-change: transform;
&:hover {
transform: translateY(-1px);
box-shadow: 0 4px 12px rgba(0, 110, 107, 0.25);
}
&:active {
transform: translateY(0);
box-shadow: 0 2px 6px rgba(0, 110, 107, 0.2);
}
}
.link-type {
color: #006E6B;
text-decoration: none;
font-size: 14px;
transition: color 0.3s ease;
&:hover {
color: #008B8B;
text-decoration: underline;
}
} }
} }
.login-tip { .login-tip {
font-size: 13px; font-size: 13px;
text-align: center; text-align: center;
color: #bfbfbf; color: #bfbfbf;
} }
.code-wrapper {
display: flex;
gap: 10px;
align-items: center;
.el-input {
flex: 1;
}
}
.login-code { .login-code {
width: 33%; width: 120px;
height: 38px; height: 42px;
float: right; border-radius: 8px;
overflow: hidden;
border: 2px solid #e1e5e9;
cursor: pointer;
transition: all 0.3s ease;
flex-shrink: 0;
&:hover {
border-color: #006E6B;
transform: scale(1.02);
}
img { img {
cursor: pointer; cursor: pointer;
vertical-align: middle; vertical-align: middle;
width: 100%;
height: 100%;
object-fit: cover;
} }
} }
.el-login-footer { .el-login-footer {
height: 40px; height: 50px;
line-height: 40px; line-height: 50px;
position: fixed; position: fixed;
bottom: 0; bottom: 0;
width: 100%; width: 100%;
text-align: center; text-align: center;
color: #fff; color: rgba(255, 255, 255, 0.8);
font-family: Arial; font-family: Arial;
font-size: 12px; font-size: 12px;
letter-spacing: 1px; letter-spacing: 1px;
background: rgba(0, 0, 0, 0.1);
backdrop-filter: blur(10px);
z-index: 1;
} }
.login-code-img { .login-code-img {
height: 38px; height: 42px;
}
//
@media (max-width: 1200px) {
.login-form {
margin-left: 50%;
width: 500px;
}
}
@media (max-width: 768px) {
.login {
background-position: center;
}
.login-form {
margin-left: 0;
width: 90%;
max-width: 400px;
padding: 30px 20px;
}
.title {
font-size: 24px;
text-align: center;
}
}
@media (max-width: 480px) {
.login-form {
width: 95%;
padding: 25px 15px;
}
.title {
font-size: 20px;
}
} }
</style> </style>