表单的添加用户

<template>
  <el-form label-width="100px" :model="formModel" :rules="rules" ref="ruleForm" @success="submit">
    <el-form-item label="姓名" prop="username">
      <el-input v-model="formModel.username"></el-input>
    </el-form-item>

    <el-form-item label="密码" prop="password">
      <el-input v-model="formModel.password"></el-input>
    </el-form-item>
    <el-form-item label="手机号" prop="tel">
      <el-input v-model="formModel.tel"></el-input>
    </el-form-item>

    <el-date-picker
      v-model="formModel.joindate"
      align="right"
      type="date"
      placeholder="选择日期"
     
    ></el-date-picker>

    <el-form-item label="所属部门" prop="department">
      <el-select placeholder="请选择用户组" v-model="formModel.department">
        <!-- 男: 1   女 : 0 -->
        <!-- label是展示给用户看的   value 传给后端 -->
        <el-option label="一部" value="一部"></el-option>
        <el-option label="二部" value="二部"></el-option>
      </el-select>
    </el-form-item>

    <el-form-item>
      <el-button type="primary" @click="submit">提交</el-button>
      <el-button @click="reset">重置</el-button>
      <el-button @click="cancel">取消</el-button>
    </el-form-item>
  </el-form>
</template>

<script>
import { usersAdd } from "@/api/account.api";
import dayjs from "dayjs";
export default {
  // add: 添加账号  edit: 编辑账号
  data() {
    return {
      // 发给后端
      formModel: {
        username: "",
        password: "",
        tel: "",
        joindate: "",
        department: ""
      },
      rules: {
        username: {
          required: true,
          message: "请输入账号",
          trigger: ["change", "blur"]
        },
        password: {
          required: true,
          message: "请输入密码",
          trigger: ["change", "blur"]
        },
        tel: {
          required: true,
          message: "请输入电话",
          trigger: ["change", "blur"]
        },
        joindate: {
          required: true,
          message: "请输入时间",
          trigger: ["change", "blur"]
        },
        department: {
          required: true,
          message: "请输入部门",
          trigger: ["change", "blur"]
        }
      }
    };
  },
  methods: {
    submit() {
      // 校验表单
      this.$refs.ruleForm.validate(res => {
        console.log("自组件校验表单", res);
        if (res) {
          this.formModel.joindate = dayjs(this.formModel.joindate).format(
            "YYYY-MM-DD HH:mm:ss"
          );
          usersAdd(this.formModel).then(res => {
            if (res.data.code === 0) {
              // console.log('成功了!')
              // localStorage.setItem("token", res.data.token);
              this.$router.push("/account/list");
            }
          });
        }
      });
    },
    reset() {
      // 1. 获取el-form, 2. 调用他的方法
      this.$refs.ruleForm.resetFields();
    },
    // 取消
    cancel() {
      this.$emit("cancel");
    }
  }
  // watch: {
  //   // 每次父组件传递的defalutValue改变,我们就重新回显
  //   defalutValue: {
  //     handler() {
  //       // 执行一次
  //       // 编辑的时候 才把defaultValue 赋值给  formModel
  //       if (this.type === "edit") {
  //         // 第三种【扩展】
  //         Object.keys(this.formModel).forEach(key => {
  //           this.formModel[key] = this.defalutValue[key];
  //         });
  //       }
  //     },
  //     deep: true,
  //     immediate: true
  //   }
  // }
  // destroyed() {
  //   console.log('表单组件销毁了!!!')
  // }
};
</script>

<style lang="scss" scoped>
</style>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一个基本的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` 方法,该方法将会将新用户添加用户列表中,并清空表单数据并关闭弹窗。 当然,这只是一个非常简单的示例代码,您需要根据您的实际需求进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值