data(){
var checkSno = (rule, value, callback) => {
if (!value) {
callback(new Error("请输入账号"));
} else if (value.length > 20) {
callback(new Error("长度为1-20"));
} else {
if (this.form.id) {
// 修改时检查账号是否重复
selectLoginId({ sno: value, id: this.form.id })
.then((res) => {
if (res) {
callback();
} else {
callback(new Error("账号重复,请选择其他账号"));
}
})
.catch((error) => {
callback(new Error("验证失败,请重试"));
});
} else {
// 新增时检查账号是否重复
selectLoginId({ sno: value })
.then((res) => {
if (res) {
callback();
} else {
callback(new Error("账号重复,请选择其他账号"));
}
})
.catch((error) => {
callback(new Error("验证失败,请重试"));
});
}
}
};
return{
rules: {
sno: [{ validator: checkSno, trigger: "blur" }],
}
}
}
html代码:
<el-form-item
label="账号"
:label-width="formLabelWidth"
required
prop="sno"
>
<el-input v-model="form.sno" autocomplete="off"></el-input>
</el-form-item>