


<el-form
:model="ruleForm"
status-icon
:rules="rules"
ref="ruleForm"
label-width="100px"
class="demo-ruleForm"
>
<el-form-item label="密码" prop="pass">
<el-input
type="password"
v-model="ruleForm.pass"
autocomplete="off"
></el-input>
</el-form-item>
<el-form-item prop="username">
<el-input v-model="ruleForm.username" placeholder="用户名">
</el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm('ruleForm')"
>提交</el-button
>
</el-form-item>
</el-form>
<script>
export default {
name: "Documentation",
components: { DropdownMenu },
data() {
var checkPhoneOrEmail = function (rule, value, callback) {
const mailReg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
const reg = /(^1\d{10}$)|(^[0-9]\d{7}$)/;
if (!value) {
return callback(new Error("用户名不能为空"));
} else {
if (value.indexOf("@") > 0) {
setTimeout(() => {
if (mailReg.test(value)) {
callback();
} else {
callback(new Error("邮箱格式不正确"));
}
}, 100);
} else {
let re = new RegExp(reg);
if (!re.test(value)) {
callback(new Error("手机号格式不正确"));
} else {
callback();
}
}
}
};
var validatePass = (rule, value, callback) => {
if (value === "") {
callback(new Error("请输入密码"));
} else {
if (this.ruleForm.checkPass !== "") {
this.$refs.ruleForm.validateField("checkPass");
}
callback();
}
};
return {
ruleForm: {
pass: "",
username: "",
},
rules: {
pass: [{ validator: validatePass, trigger: "blur" }],
username: [
{ required: true, message: "用户名不能为空", trigger: "blur" },
{ validator: checkPhoneOrEmail, trigger: "blur" },
],
},
};
},
methods: {
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
alert("submit!");
} else {
console.log("error submit!!");
return false;
}
});
},
},
};
</script>
同时校验手机号,座机号码


export default {
name: "",
data() {
var checkPhoneOrEmail = function (rule, value, callback) {
const mailReg = /^0\d{2,3}-?\d{7,8}$/;
const reg = /(^1\d{10}$)|(^[0-9]\d{7}$)/;
if (value.indexOf("-") > 0) {
setTimeout(() => {
let mai = new RegExp(mailReg);
if (!mai.test(value)) {
callback(new Error("手机号格式不正确"));
} else {
callback();
}
}, 100);
} else {
let re = new RegExp(reg);
if (!re.test(value)) {
callback(new Error("手机号格式不正确"));
} else {
callback();
}
}
};
return {
rules: {
invoicingPhone: [
{ required: true, message: "开票电话不能为空", trigger: "blur" },
{ validator: checkPhoneOrEmail, trigger: "blur" },
],
},
};
},
非必填校验 手机号和邮箱


<template>
<el-form :rules="warningRules" ref="warningForm">
<el-form-item
label="余额预警通知账号2:"
prop="mobileTwo"
class="warn"
>
<el-input
v-model="warningForm.mobileTwo"
placeholder="填写接收预警通知手机号或邮箱账号"
/>
</el-form-item>
<el-form-item
label="余额预警通知账号3:"
prop="mobileThree"
class="warn"
>
<el-input
v-model="warningForm.mobileThree"
placeholder="填写接收预警通知手机号或邮箱账号"
/>
</el-form-item>
<el-form-item class="warn but_content" style="text-align: center">
<el-button
type="primary"
size="small"
@click="addMerchantEarlyWarning()"
>确认提交</el-button
>
</el-form-item>
</el-form>
</template>
data() {
var checkPhoneOrEmail = function (rule, value, callback) {
const mailReg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
const reg = /(^1\d{10}$)|(^[0-9]\d{7}$)/;
if (value) {
if (value.indexOf("@") > 0) {
setTimeout(() => {
if (mailReg.test(value)) {
callback();
} else {
callback(new Error("邮箱格式不正确"));
}
}, 100);
} else {
let re = new RegExp(reg);
if (!re.test(value)) {
callback(new Error("手机号格式不正确"));
} else {
callback();
}
}
} else {
callback;
}
};
return {
warningRules: {
balanceEarlyWarning: [
{ required: true, message: "请设置预警金额", trigger: "blur" },
],
mobileTwo: [
{ required: false, validator: checkPhoneOrEmail, trigger: "blur" },
],
mobileThree: [
{ required: false, validator: checkPhoneOrEmail, trigger: "blur" },
],
},
}
},
methods:{
addMerchantEarlyWarning() {
this.$refs.warningForm.validate((valid) => {
if (valid) {
submitMerchantEarlyWarning(this.warningForm).then((res) => {
if (res.code == 200) {
if (res.data.code == 200) {
this.$modal.msgSuccess(res.msg);
} else {
this.$modal.msgError(res.data.msg);
}
this.warningView = false;
} else {
this.$modal.msgError(res.msg);
}
});
} else {
return false;
}
});
},
}