自定义校验手机号和邮箱
data() {
// 定义自定义校验规则
// 校验邮箱
// rules,value,cb:分别为校验规则,校验参数,回调函数
var checkEmail = (rules,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 = (rules,value,cb) => {
let reg = /^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/
if (reg.test(value)) {
return cb()
} else {
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' },
// { min: 6, max: 15, message: '长度在 6 到 15 个字符', trigger: 'blur' },
{validator:checkEmail,trigger: 'blur'}
],
mobile: [
{ required: true, message: '请输入手机号', trigger: 'blur' },
// { min: 6, max: 15, message: '长度在 6 到 15 个字符', trigger: 'blur' }
{validator:checkMobile,trigger: 'blur'}
],
}
}
},
重置表单内容
// 找到表单,调用resetFields()函数
this.$refs.addFormRef.resetFields();
表单预校验
this.$refs.addFormRef.validate(valid => {
if(!valid) {
//如果校验失败,
return
}
// 校验成功,就发起添加用户的网络请求
});
通过作用域插槽接收数据
//通过插槽可以获取到当前这一行的数据,存放在scope中
//scope.row获取到这一行的信息
<template slot-scope="scope">
<el-row>
<el-button
type="primary"
icon="el-icon-edit"
size="mini"
@click="showEditDialog(scope.row.id)"
></el-button>
</template>
对话框
:visible.sync=”distribuVisible” 表示当前对话框是否显示
:before-close=”handleClose” 表示在关闭对话框之前的动作
<!-- 分配角色对话框 -->
<el-dialog
title="分配角色"
:visible.sync="distribuVisible"
width="30%"
:before-close="handleClose">
<span>这是一段信息</span>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="dialogVisible = false">确 定</el-button>
</span>
</el-dialog>