diff --git a/src/views/login.vue b/src/views/login.vue index efb48b5..eaed7e3 100644 --- a/src/views/login.vue +++ b/src/views/login.vue @@ -25,17 +25,18 @@ - - - -
- +
+ + + +
记住密码 @@ -163,65 +164,251 @@ export default { justify-content: center; align-items: center; height: 100%; - // background-image: url("../assets/images/login-background.jpg"); - // background-size: cover; - background: url("../assets/images/login-background.jpg") no-repeat left center; + background: #fff; + background-image: url("../assets/images/login-background.jpg"); + 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 { margin: 0px auto 20px auto; font-weight: bold; text-align: left; color: #060F2E; font-size: 28px; + text-shadow: 0 2px 4px rgba(0,0,0,0.1); + position: relative; + z-index: 1; } .login-form { - border-radius: 6px; + border-radius: 12px; background: #ffffff; + backdrop-filter: blur(10px); width: 600px; - // padding: 25px 25px 5px 25px; + padding: 40px 30px 30px 30px; z-index: 1; 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 { - height: 38px; - margin: 5px 0; - input { - height: 38px; + height: 42px; + margin: 8px 0; + position: relative; + + .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 { - height: 39px; - width: 14px; - margin-left: 2px; + height: 16px; + width: 16px; + 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 { font-size: 13px; text-align: center; color: #bfbfbf; } + +.code-wrapper { + display: flex; + gap: 10px; + align-items: center; + + .el-input { + flex: 1; + } +} + .login-code { - width: 33%; - height: 38px; - float: right; + width: 120px; + height: 42px; + 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 { cursor: pointer; vertical-align: middle; + width: 100%; + height: 100%; + object-fit: cover; } } + .el-login-footer { - height: 40px; - line-height: 40px; + height: 50px; + line-height: 50px; position: fixed; bottom: 0; width: 100%; text-align: center; - color: #fff; + color: rgba(255, 255, 255, 0.8); font-family: Arial; font-size: 12px; letter-spacing: 1px; + background: rgba(0, 0, 0, 0.1); + backdrop-filter: blur(10px); + z-index: 1; } + .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; + } }