帮我用vue写一个登陆页面,用户需要输入用户名和密码,以及需要有验证码校验,后端接口是tets/com/api/login ,登录框在屏幕正中间
时间: 2023-05-20 07:03:32 浏览: 126
好的,我可以帮您用 Vue 编写一个登录页面,以下是代码示例:
```
<template>
<div class="login-container">
<div class="login-box">
<h2>登录</h2>
<form>
<div class="form-group">
<label for="username">用户名</label>
<input type="text" id="username" v-model="username" required>
</div>
<div class="form-group">
<label for="password">密码</label>
<input type="password" id="password" v-model="password" required>
</div>
<div class="form-group">
<label for="captcha">验证码</label>
<input type="text" id="captcha" v-model="captcha" required>
<img :src="captchaUrl" @click="refreshCaptcha">
</div>
<button type="submit" @click.prevent="login">登录</button>
</form>
</div>
</div>
</template>
<script>
export default {
data() {
return {
username: '',
password: '',
captcha: '',
captchaUrl: '/test/com/api/captcha'
}
},
methods: {
refreshCaptcha() {
this.captchaUrl = '/test/com/api/captcha?' + Math.random()
},
login() {
// 发送登录请求
axios.post('/test/com/api/login', {
username: this.username,
password: this.password,
captcha: this.captcha
}).then(response => {
// 处理登录成功逻辑
}).catch(error => {
// 处理登录失败逻辑
})
}
}
}
</script>
<style>
.login-container {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
.login-box {
width: 400px;
padding: 20px;
border: 1px solid #ccc;
border-radius: 5px;
text-align: center;
}
.form-group {
margin-bottom: 20px;
text-align: left;
}
label {
display: block;
margin-bottom: 5px;
}
input[type="text"],
input[type="password"] {
width: 100%;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px;
}
img {
margin-left: 10px;
cursor: pointer;
}
button[type="submit"] {
display: block;
width: 100%;
padding: 10px;
background-color: #007bff;
color: #fff;
border: none;
border-radius: 5px;
cursor: pointer;
}
</style>
```
这是一个简单的登录页面,包括用户名、密码和验证码的输入框,以及登录按钮。验证码会在页面加载时自动刷新,用户可以点击验证码图片刷新验证码。当用户点击登录按钮时,会发送登录请求到后端接口 `/test/com/api/login`,并传递用户名、密码和验证码参数。您需要将接口地址和参数根据实际情况进行修改。
阅读全文