11.添加用户功能
Dialog 对话框
data中:
// 控制添加用户对话框的显示和隐藏
addDialogVisible: false
<el-dialog
title="提示"
:visible.sync="addDialogVisible"
width="50%"
>
<!--内容主体区域-->
<span>这是一段信息</span>
<!--底部区域-->
<span slot="footer" class="dialog-footer">
<el-button @click="addDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="addDialogVisible = false">确 定</el-button>
</span>
给按钮添加事件
<el-button type=“primary” @click=“addDialogVisible = true” >
添加用户
12渲染添加用户的表单
Form 表单—表单验证
<!--内容主体区域-->
<el-form :model="addForm" :rules="addFormRules" ref="addFormRef" 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>
校验规则
// 添加用户的表单数据
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' }
],
email: [
{ required: true, message: '请输入邮箱', trigger: 'blur' }
],
mobile: [
{ required: true, message: '请输入邮箱', trigger: 'blur' }
]
}
13.自定义邮箱手机规则
Form 表单—自定义校验规则
data中完整代码
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('请输入正确的手机号'))
}
return {
// 获取用户列表的参数
queryInfo: {
query: '',
// 当前页面
pagenum: 1,
// 当前每页显示多少条数据
pagesize: 2
},
userList: [],
total: 0,
// 控制添加用户对话框的显示和隐藏
addDialogVisible: false,
// 添加用户的表单数据
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' }
],
email: [
{ required: true, message: '请输入邮箱', trigger: 'blur' },
{ validator: checkEmail, trigger: 'blur' }
],
mobile: [
{ required: true, message: '请输入邮箱', trigger: 'blur' },
{ validator: checkMobile, trigger: 'blur' }
]
}
}
},
14.实现添加表单的重置,再次点击会清空添加用户表单
必须先拿到整个表单的引用对象ref
// 监听添加用户框的关闭事件
addDialogClosed () {
this.$refs.addFormRef.resetFields()
}
15.添加用户调用接口完成操作
设置事件(不在点击确定对话框消失,而是验证)
// 点击按钮,添加用户
addUser () {
this.$refs.addFormRef.validate(async valid => {
if (!valid) return false
// 可以发送添加用户请求(注意接口地址不能写错)
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()
})
}