如何在将element表单校验规则写在computed中的情况下
实现element表单校验
<el-form class="apply-form" :model="formData" :rules="rules" ref="form">
<el-form-item label="坐标" prop="longitude">
<el-input v-model="longitude" placeholder="请输入坐标" clearable></el-input>
</el-form-item>
......
</el-form>
computed: {
rules() {
const checkEmail = () => (rule, value, callback) => {
if (value) {
var email = /^(\-|\+)?(((\d|[1-9]\d|1[0-7]\d|0{1,3})\.\d{0,8})|(\d|[1-9]\d|1[0-7]\d|0{1,3})|180\.0{0,8}|180)$/;
if (email.test(value)) {
return callback();
} else {
return callback("请输入正确的坐标");
}
} else {
return callback("请输入X坐标");
}
};
let rules = {
workPeople: [
{ required: true, message: "请输入作业人", trigger: "change" },
],
longitude: [
{ required: true, validator: checkEmail(), trigger: "change" },
],
addselect: [
{ required: true, message: "请选择", trigger: ["blur", "change"] },
],
};
return rules;
},
},
参考一下
computed,不是计算属性吗,在get里 按照rule需要的格式return出去就行了吧