[Vue2]实现登录页面同意隐私协议登录功能

使用组件:elementUI中的checkbox

html部分:

<el-form :model="modelForm" :rules="rules" ref="ruleForm">
          <el-form-item prop="checkoutSecret">
            <el-checkbox v-model="modelForm.checkoutSecret" name="checkoutSecret">已阅读并同意<a class="abc" @click="clickButton">《用户隐私政策》</a></el-checkbox>
          </el-form-item>
</el-form>

css部分:


.el-checkbox__inner{
    //将checkbox的边框变圆
    border-radius: 50%;
    }
.abc{
    color:blue;
}

data声明部分:


export default{
  data(){
    return{
      //定义checkoutSecret的值为false
      checkoutSecret:false,
      //表单数据中checkoutSecret的值为false
      modelForm:{checkoutSecret:false},
      //定义表单验证规则
      rules:{
        checkoutSecret:[{
          required:true,
          message:'请勾选隐私协议',
          trigger:'change'
        }]
      }
    }
  }
}

在登录函数触发时进行验证:


submitLogin() {
      this.modelForm.checkoutSecret = !this.modelForm.checkoutSecret ? null : this.modelForm.checkoutSecret
      //validate:对整个表单进行校验的方法,参数为一个回调函数。该回调函数会在校验结束后被调用,并传入两个参数:是否校验成功和未通过校验的字段。若不传入回调函数,则会返回一个 promise
      this.$refs.ruleForm.validate((v) => {
        console.log(v);
      });     
      //勾选用户隐私政策
      if (!this.modelForm.checkoutSecret) {
        return false;
      }

实现效果:

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue 2可以通过组合使用Vue组件、路由和状态管理来实现登录界面。下面是一个简单的登录界面的实现示例: 首先,安装Vue CLI并创建一个新的Vue项目: ```bash npm install -g @vue/cli vue create my-login-app cd my-login-app ``` 然后,创建两个组件:Login.vue和Home.vue。Login.vue用于显示登录表单,Home.vue表示登录成功后的主页。 Login.vue: ```html <template> <div> <h2>Login</h2> <form @submit="login"> <input type="text" v-model="username" placeholder="Username" required> <input type="password" v-model="password" placeholder="Password" required> <button type="submit">Submit</button> </form> </div> </template> <script> export default { data() { return { username: '', password: '' }; }, methods: { login() { // 处理登录逻辑,例如发送请求到后端进行验证 if (this.username === 'admin' && this.password === 'password') { // 登录成功后跳转到主页 this.$router.push('/home'); } else { alert('Invalid credentials'); } } } }; </script> ``` Home.vue: ```html <template> <div> <h2>Welcome, {{ username }}!</h2> <button @click="logout">Logout</button> </div> </template> <script> export default { data() { return { username: '' // 在登录成功后会动态更新用户名 }; }, mounted() { // 在此可以通过请求获取当前登录用户的信息 this.username = 'admin'; }, methods: { logout() { // 执行登出逻辑,例如发送请求到后端注销用户 this.username = ''; this.$router.push('/login'); } } }; </script> ``` 接下来,在`src/router/index.js`中配置路由: ```javascript import Vue from 'vue'; import VueRouter from 'vue-router'; import Login from '../components/Login.vue'; import Home from '../components/Home.vue'; Vue.use(VueRouter); const routes = [ { path: '/login', component: Login }, { path: '/home', component: Home } ]; const router = new VueRouter({ routes }); export default router; ``` 最后,在`src/main.js`中使用路由和状态管理器: ```javascript import Vue from 'vue'; import App from './App.vue'; import router from './router'; import store from './store'; new Vue({ router, store, render: h => h(App) }).$mount('#app'); ``` 这样,你就可以在`App.vue`中放置一个router-view组件来渲染登录界面或主页: ```html <template> <div id="app"> <router-view></router-view> </div> </template> <script> export default { name: 'App' }; </script> ``` 以上是一个简单的登录界面的实现示例,希望对你有帮助!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值