springboot+vue+elementsUI 实现分角色注册登录界面

该项目分为管理员、用户和设计师三个角色,具备登录和注册功能。登录时用户需选择身份,登录成功后跳转至对应页面。注册功能仅限用户和设计师,设计师注册需管理员审核。前端使用Vue、ElementsUI,通过验证和表单提交实现,后端用SpringBoot处理注册登录请求,接口设计包括用户管理和数据验证。
摘要由CSDN通过智能技术生成

一、项目简介

一共分为三个角色:管理员、用户、设计师

登录功能:账号+密码+身份选择,登录成功后跳转到各身份对应的页面

注册功能:只允许用户和设计师注册,用户可以直接注册成功,设计师提交材料后注册需要管理员审核成功后方可注册成功。

注册页面要求必填:

账号:用户自定义,注册成功后不可修改,同一个角色下账号不重复,不同角色账号可以重复。

二、注册

1.前端

先上目录文件:

 

(1)register.vue文件

template部分:

<template>
  <div class="register-container">
    <!-- 根标签 -->
    <el-form
        :model="form"
        status-icon
        :rules="rules"
        ref="form"
        label-width="100px"
        class="register-form">

      <h1 class="title">注 册</h1>
      <el-form-item label="账号" prop="useraccount">
        <el-input v-model="form.useraccount"
                  placeholder="账号作为登陆的唯一方式,一旦注册成功不可更改!"
                  maxlength="20"></el-input>
      </el-form-item>

      <el-form-item label="密码" prop="userpsd">
        <el-input
            type="password"
            v-model="form.userpsd"
            placeholder="请输入密码"
            autocomplete="off"
            maxlength="16"
        ></el-input>
      </el-form-item>
      <el-form-item label="确认密码" prop="checkPass">
        <el-input
            type="password"
            v-model="form.checkPass"
            placeholder="请再次输入密码"
            autocomplete="off"
            maxlength="16"
        ></el-input>
      </el-form-item>

      <el-form-item label="姓名" prop="username">
        <el-input v-model="form.username" maxlength="20"></el-input>
      </el-form-item>

      <el-form-item label="性别"  prop="sex" style="text-align:left">
        <el-radio-group v-model="form.sex" >
          <el-radio label="1">男</el-radio>
          <el-radio label="2">女</el-radio>
        </el-radio-group>
        </el-form-item>

      <el-form-item label="年龄"  prop="age" style="text-align: left">
        <el-input v-model="form.age" maxlength="2"></el-input>
      </el-form-item>

      <el-form-item label="电话" prop="phone">
        <el-input v-model="form.phone" maxlength="11" @input="onInput('keyName', $event)"></el-input>
      </el-form-item>

      <el-form-item label="地址" prop="address" style="text-align: left" >
        <v-distpicker :placeholders="placeholders" v-model="form.address"
                      @province="onChangeProv"
                      @city="onChangeCity"
                      @area="onChangeArea"></v-distpicker>
      </el-form-item>

      <el-form-item label="目的" prop="roleId" style="text-align: center">
        <div style="margin-top: 20px">
          <el-radio v-model="form.roleId" label="1" border size="mini">我是客户,我想装修房子</el-radio>
          <el-radio v-model="form.roleId" label="2" border size="mini" >我是设计师,我想设计装修</el-radio>
        </div>
      </el-form-item>

      <div v-if="form.roleId==2">
        <el-form-item v-model="form.file" label="材料证明" prop="file" style="text-align: center">
      <el-upload
          class="upload-demo"
          drag
          action="https://jsonplaceholder.typicode.com/posts/"
          multiple>
        <i class="el-icon-upload"></i>
        <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
        <div class="el-upload__tip" slot="tip">请上传设计师相关材料验证,只能上传jpg/png文件,且不超过500kb</div>
      </el-upload></el-form-item>
  </div>

      <el-form-item style="text-align: center">
        <el-button type="primary" @click="submit('form')">提交</el-button>
      </el-form-item>
    </el-form>
  </div>

</template>

script部分:包含输入验证 表单提交功能

<script>
import VDistpicker from 'v-distpicker'
export default {
  name: "Register",
  components: {VDistpicker},
  data() {
    return {
      form: {
        useraccount: '',
        userpsd: '',
        sex: '1',
        roleId: '1',
        address: '',
        province: '',
        city:'',
        area: '',
      },
      rules: {
        useraccount: [{required: true, message: "请输入账号", trigger: "blur"},
          {min: 1, max: 20, message: '请勿超过20个字符!', trigger: 'blur'},
          {validator: (rule, value, callback) => {
              const reg = /^[\u4E00-\u9FA5A-Z
  • 3
    点赞
  • 112
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小冰红茶27

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值