实现忘记密码功能,以及完善部分单元测试

This commit is contained in:
F嘉阳
2018-02-25 21:32:27 +08:00
parent a7b8b30186
commit 3e75e1753f
9 changed files with 360 additions and 26 deletions

View File

@@ -1,6 +1,8 @@
let outSideThis = this;
var Main = {
data() {
var checkName = (rule, value, callback) => {
let that= this;
if (!value) {
return callback(new Error('用户名不能为空'));
}else {
@@ -20,7 +22,42 @@ var Main = {
})
.catch(function (error) {
console.log(error);
this.errorNotify(error.message);
that.errorNotify(error.message);
});
}
};
var checkQuestion = (rule, value, callback) => {
if (!value) {
return callback(new Error('问题不能为空'));
} else {
callback()
}
};
var checkAnswer = (rule, value, callback) => {
let that = this;
if (!value) {
return callback(new Error('答案不能为空'));
} else {
axios.get(getRootPath_web() + '/finduserque', {
params: {
name :outSideThis.findpass.colname.value,
question:outSideThis.findpass.question.value,
answer: value
}
})
.then(function (response) {
console.log(response.data);
if (response.data === true) {
callback()
} else if (response.data === false){
return callback(new Error('答案错误'));
}else {
return callback(new Error(response.data.message));
}
})
.catch(function (error) {
console.log(error);
that.errorNotify("未知错误");
});
}
};
@@ -99,6 +136,25 @@ var Main = {
callback();
}
};
var validatePass3 = (rule, value, callback) => {
if (value === '') {
callback(new Error('请输入密码'));
} else {
if (this.ruleForm3.checkPass !== '') {
this.$refs.ruleForm3.validateField('checkPass');
}
callback();
}
};
var validatePass4 = (rule, value, callback) => {
if (value === '') {
callback(new Error('请再次输入密码'));
} else if (value !== this.ruleForm3.colpassword) {
callback(new Error('两次输入密码不一致!'));
} else {
callback();
}
};
return {
ruleForm1: {
colname: '',
@@ -112,6 +168,30 @@ var Main = {
colrealname: '',
colemail: ''
},
ruleForm3: {
colname:'',
question: '',
answer: '',
colpassword: '',
checkPass: ''
},
rules3: {
colname: [
{required: true,validator: checkName1, trigger: 'blur'}
],
question: [
{required: true,validator: checkQuestion, trigger: 'blur'}
],
answer: [
{required: true,validator: checkAnswer, trigger: 'blur'}
],
colpassword: [
{required: true, validator: validatePass3, trigger: 'blur'}
],
checkPass: [
{required: true, validator: validatePass4, trigger: 'blur'}
]
},
rules1: {
colpassword: [
{required: true,validator: validatePass, trigger: 'blur'}
@@ -155,12 +235,63 @@ var Main = {
message: content
})
},
submitForm(formName) {
openNotiSuccess(title, content) {
this.$notify({
title: title,
message: content,
type: 'success'
});
},
openNotiError(title, content) {
this.$notify.error({
title: title,
message: content
});
},
submitForm(formName, url) {
this.$refs[formName].validate((valid) => {
if (valid) {
alert('submit!');
var that = this;
if (valid) {//此处暂时去除校验
axios({
url: getRootPath_web()+'/' + url,
method: 'post',
data: {
name :outSideThis.findpass.colname.value,
password:outSideThis.findpass.colpassword.value,
question:outSideThis.findpass.question.value,
answer:outSideThis.findpass.answer.value,
},
transformRequest: [function (data) {
// Do whatever you want to transform the data
let ret = ''
for (let it in data) {
ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
}
return ret
}],
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
}).then(function (response) {
console.log(response.data);
if (response.data===true){
that.openNotiSuccess("成功", "修改成功,请切换至登录选项!");
}else if (response.data===false){
that.openNotiError("失败", "修改失败!");
}else {
that.openNotiError("错误", response.data.message);
}
}).catch(function (error) {
console.log(error);
that.openNotiError("错误", "服务器错误!");
});
//console.log(this.$refs.content.value)
//this.openNotiSuccess("成功", "修改成功!")
//this.$options.methods.openNotiSuccess.bind(this)();
//alert('submit!');
} else {
console.log('error submit!!');
that.openNotiError("错误", "表单填写错误!");
return false;
}
});