使用vue写一个复杂的前端登录界面
时间: 2024-05-05 22:21:37 浏览: 10
好的,下面是一个使用 Vue.js 实现的复杂登录界面的示例代码:
```
<template>
<div class="login-container">
<div class="login-header">
<h1>欢迎登录</h1>
</div>
<div class="login-body">
<form @submit.prevent="submitForm">
<div class="form-group">
<label for="username">用户名</label>
<input type="text" id="username" v-model="form.username" required>
</div>
<div class="form-group">
<label for="password">密码</label>
<input type="password" id="password" v-model="form.password" required>
</div>
<div class="form-group">
<label for="verifyCode">验证码</label>
<div class="verify-code">
<input type="text" id="verifyCode" v-model="form.verifyCode" required>
<img src="verifyCodeUrl" alt="验证码" @click="refreshVerifyCode">
</div>
</div>
<div class="form-group">
<label for="rememberMe">记住我</label>
<input type="checkbox" id="rememberMe" v-model="form.rememberMe">
</div>
<button type="submit" class="btn btn-primary" :disabled="loginDisabled">登录</button>
</form>
</div>
</div>
</template>
<script>
export default {
data() {
return {
form: {
username: "",
password: "",
verifyCode: "",
rememberMe: false,
},
verifyCodeUrl: "",
loginDisabled: true,
};
},
mounted() {
this.refreshVerifyCode();
},
methods: {
submitForm() {
// 提交表单
},
refreshVerifyCode() {
// 刷新验证码
},
},
watch: {
form: {
handler() {
// 监听表单变化
this.loginDisabled = !this.form.username || !this.form.password || !this.form.verifyCode;
},
deep: true,
},
},
};
</script>
<style>
.login-container {
width: 500px;
margin: 0 auto;
}
.login-header {
text-align: center;
margin-bottom: 20px;
}
.login-body {
padding: 20px;
background-color: #f5f5f5;
border: 1px solid #ddd;
border-radius: 5px;
}
.form-group {
margin-bottom: 15px;
}
.form-group label {
display: inline-block;
width: 80px;
text-align: right;
vertical-align: middle;
margin-right: 15px;
}
.form-group input[type="text"],
.form-group input[type="password"],
.form-group input[type="checkbox"] {
width: 200px;
vertical-align: middle;
}
.verify-code {
display: inline-block;
position: relative;
}
.verify-code img {
position: absolute;
top: 0;
right: 0;
cursor: pointer;
}
.btn {
margin-top: 20px;
}
</style>
```
这个登录界面包含了用户名、密码、验证码、记住我等功能,同时还有表单验证和禁用登录按钮等交互效果。