Vue编写添加用户的表单 ~ 不要错过哦

在写项目的过程中遇到了添加用户信息的功能,今天写出来和大家分享。
希望可以帮助到有需要的小伙伴

使用element-ui实现布局和样式

在使用element-ui的时候,要引入需要使用的ui组件并注册后,才可以使用
添加用户的按钮
在这里插入图片描述
添加用户的表单 – 使用对话框实现
点击添加按钮后会出现这个添加用户的表单
在这里插入图片描述

<!--添加用户的按钮-->
<!-- addDialogVisible 值为true 表示显示 false 表示隐藏 -->
<el-button type="primary" @click="addDialogVisible = true">添加用户</el-button>
<!--点击“添加用户”的按钮后,弹出来的表单使用对话框实现-->
<!-- 添加用户的对话框 -->
    <!-- addDialogVisible是布尔值 表示对话框的显示与隐藏 -->
    <!-- width 表示对话框的宽度 -->
    <!-- :before-close 在对话框关闭之前会触发 -->
    <!-- span  是内容主体区 -->
    <!-- addDialogClosed  -->
    <el-dialog
      title="添加用户"
      :visible.sync="addDialogVisible"
      width="50%"
      @close="addDialogClosed"
    >
      <!-- 内容主体区域 -->
      <!-- :model="addForm" 添加表单 -->
      <!-- ref="addFormRef" 是表单组件的引用名称 -->
      <!-- :rules="addFormRules" 验证规则 -->
      <el-form
        ref="addFormRef"
        :model="addForm"
        :rules="addFormRules"
        label-width="70px"
      >
        <el-form-item label="用户名" prop="username">
          <el-input v-model="addForm.username"></el-input>
        </el-form-item>
        <el-form-item label="密码" prop="password">
          <el-input v-model="addForm.password"></el-input>
        </el-form-item>
        <el-form-item label="邮箱" prop="email">
          <el-input v-model="addForm.email"></el-input>
        </el-form-item>
        <el-form-item label="手机号" prop="mobile">
          <el-input v-model="addForm.mobile"></el-input>
        </el-form-item>
      </el-form>
          

javascript中的数据、数据的校验规则 以及 方法

<script>
export default {
	data() {
    // 验证邮箱的校验规则
    var checkEmail = (rule, value, cb) => {
      // 验证邮箱的正则表达式
      const regEmail = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/

      if (regEmail.test(value)) {
        // 合法的邮箱
        return cb()
      }
      // 非法的邮箱
      cb(new Error('请输入合法的邮箱'))
    }

    // 验证手机号的校验规则
    var checkMobile = (rule, value, cb) => {
      // 验证手机号的正则表达式
      const regMobile = /^(0|86|17951)?(13[0-9]|15[0123456789]|17[678]|18[0-9]|14[57])[0-9]{8}$/

      if (regMobile.test(value)) {
        // 合法的手机号
        return cb()
      }
      // 非法的手机号
      cb(new Error('请输入合法的手机号'))
    },
    // 添加用户的表单数据
      addForm: {
        username: '',
        password: '',
        email: '',
        mobile: '',
      },
      // 添加表单的验证规则对象
      addFormRules: {
        username: [
          { required: true, message: '请输入用户名', trigger: 'blur' },
          {
            min: 3,
            max: 10,
            message: '用户名的长度是3~10个字符之间',
            trigger: 'blur',
          },
        ],
        password: [
          { required: true, message: '请输入密码', trigger: 'blur' },
          {
            min: 6,
            max: 15,
            message: '密码的长度是6~15个字符之间',
            trigger: 'blur',
          },
        ],
        /*
          验证是否输入
          { required: true, message: '请输入邮箱', trigger: 'blur' },
        */

        /* 
          验证输入的是否正确
          { validator: checkEmail, trigger: 'blur' }
        */
        email: [
          { required: true, message: '请输入邮箱', trigger: 'blur' },
          { validator: checkEmail, trigger: 'blur' },
        ],
        mobile: [
          { required: true, message: '请输入手机号', trigger: 'blur' },
          { validator: checkMobile, trigger: 'blur' },
        ],
      },
   // 生命周期函数
  // 在生命周期函数中,发起当前的 获取用户列表数据请求
  created() {
    this.getUserList()
  },
	methods: {
		// 获取用户列表数据请求 的 方法
	    async getUserList() {
	      // users 是 请求路径
	      // {params:{}} 是 get请求 携带的参数
	      // 把 携带的参数 放到 data()中 比较好
	      // 异步请求会返回一个data属性,{data: res} 把data属性重命名为res
	      const { data: res } = await this.$http.get('users', {
	        params: this.queryInfo,
	      })
	      // 如果 获取用户列表数据 失败
	      if (res.meta.status !== 200) {
	        return this.$message.error('获取用户列表失败!')
	      }
		// 点击按钮,添加新用户
	    // addFormRef 整个表单的引用对象
	    addUser() {
	      this.$refs.addFormRef.validate(async (valid) => {
	        // console.log(valid)
	        // 如果预检验失败
	        if (!valid) return
	        // 如果与校验成功
	        // 可以发起添加用户的网络请求
	        const { data: res } = await this.$http.post('users', this.addForm)
	        // 判断添加用户的结果
	        if (res.meta.status !== 201) {
	          this.$message.error('添加用户失败!')
	        }
	        this.$message.success('添加用户成功!')
	        // 隐藏添加用户的对话框
	        this.addDialogVisible = false
	        // 重新获取用户列表数据
	        this.getUserList()
	      })
	    }	
}
</script>

添加用户的接口

  • 请求路径:users
  • 请求方法:post
  • 请求参数
参数名参数说明备注
username用户名称不能为空
password用户密码不能为空
email邮箱可以为空
mobile手机号可以为空
  • 响应参数
参数名参数说明备注
id用户 ID
rid用户角色 ID
username用户名
mobile手机号
email邮箱
  • 响应数据
{
    "data": {
        "id": 28,
        "username": "tige1200",
        "mobile": "test",
        "type": 1,
        "openid": "",
        "email": "test@test.com",
        "create_time": "2017-11-10T03:47:13.533Z",
        "modify_time": null,
        "is_delete": false,
        "is_active": false
    },
    "meta": {
        "msg": "用户创建成功",
        "status": 201
    }
}
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,我可以为您提供一个基本的Vue2点击添加按钮后弹出表单添加用户信息的代码示例。首先,您需要在Vue组件中创建一个按钮,并为该按钮绑定一个点击事件,触发该事件后弹出表单。然后,您需要在Vue组件中创建一个弹窗,并在该弹窗中创建一个表单,用于添加用户信息。 以下是一个简单的示例代码,您可以在此基础上进行修改和扩展: ``` <template> <div> <h2>用户列表</h2> <ul> <li v-for="user in userList" :key="user.id"> {{ user.name }} - {{ user.email }} - {{ user.phone }} </li> </ul> <button @click="showAddUserForm()">添加用户</button> <div v-if="showAddUserDialog"> <div class="modal-mask"></div> <div class="modal-wrapper"> <div class="modal-container"> <h2>添加用户</h2> <form> <div> <label for="name">姓名:</label> <input type="text" id="name" v-model="newUser.name"> </div> <div> <label for="email">邮箱:</label> <input type="email" id="email" v-model="newUser.email"> </div> <div> <label for="phone">电话:</label> <input type="text" id="phone" v-model="newUser.phone"> </div> <div> <button type="submit" @click.prevent="addUser()">添加用户</button> <button @click="hideAddUserForm()">关闭</button> </div> </form> </div> </div> </div> </div> </template> <script> export default { data() { return { userList: [ { id: 1, name: '张三', email: 'zhangsan@example.com', phone: '13800000001' }, { id: 2, name: '李四', email: 'lisi@example.com', phone: '13800000002' }, { id: 3, name: '王五', email: 'wangwu@example.com', phone: '13800000003' } ], showAddUserDialog: false, newUser: { name: '', email: '', phone: '' } } }, methods: { showAddUserForm() { this.showAddUserDialog = true }, hideAddUserForm() { this.showAddUserDialog = false // 清空表单数据 this.newUser = { name: '', email: '', phone: '' } }, addUser() { // 在这里编写用户数据提交到后端的代码 console.log(this.newUser) // 提交成功后,将新用户添加用户列表中 this.userList.push({ id: this.userList.length + 1, name: this.newUser.name, email: this.newUser.email, phone: this.newUser.phone }) // 清空表单数据并关闭弹窗 this.hideAddUserForm() } } } </script> ``` 在这个示例代码中,我们创建了一个包含用户列表添加用户按钮的Vue组件。当用户单击“添加用户”按钮时,将会触发 `showAddUserForm` 方法,该方法将会设置 `showAddUserDialog` 属性为 `true`,从而显示弹窗。在弹窗中,我们创建了一个表单,用于添加用户信息。当用户单击“添加用户”按钮时,将会触发 `addUser` 方法,该方法将会将新用户添加用户列表中,并清空表单数据并关闭弹窗。 当然,这只是一个非常简单的示例代码,您需要根据您的实际需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值