初始上传
This commit is contained in:
303
addon/pc/source/os/assets/js/auth/find.js
Executable file
303
addon/pc/source/os/assets/js/auth/find.js
Executable file
@@ -0,0 +1,303 @@
|
||||
import {
|
||||
rePass,
|
||||
nextStep,
|
||||
smsCode,
|
||||
registerConfig
|
||||
} from "@/api/auth/login"
|
||||
import {
|
||||
captcha
|
||||
} from "@/api/website"
|
||||
|
||||
export default {
|
||||
data() {
|
||||
var isMobile = (rule, value, callback) => {
|
||||
if (!value) {
|
||||
return callback(new Error("手机号不能为空"))
|
||||
} else {
|
||||
|
||||
if (/^\d{11}$/.test(value)) {
|
||||
callback()
|
||||
} else {
|
||||
callback(new Error("请输入正确的手机号"))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let self = this
|
||||
var setPass = function (rule, value, callback) {
|
||||
let regConfig = self.registerConfig
|
||||
if (!value) {
|
||||
return callback(new Error("请输入新的登录密码"))
|
||||
} else {
|
||||
if (regConfig.pwd_len > 0) {
|
||||
if (value.length < regConfig.pwd_len) {
|
||||
return callback(new Error("密码长度不能小于" + regConfig.pwd_len + "位"))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
} else {
|
||||
if (regConfig.pwd_complexity != "") {
|
||||
let passwordErrorMsg = "密码需包含",
|
||||
reg = ""
|
||||
if (regConfig.pwd_complexity.indexOf("number") != -1) {
|
||||
reg += "(?=.*?[0-9])"
|
||||
passwordErrorMsg += "数字"
|
||||
} else if (regConfig.pwd_complexity.indexOf("letter") != -1) {
|
||||
reg += "(?=.*?[a-z])"
|
||||
passwordErrorMsg += "、小写字母"
|
||||
} else if (regConfig.pwd_complexity.indexOf("upper_case") != -1) {
|
||||
reg += "(?=.*?[A-Z])"
|
||||
passwordErrorMsg += "、大写字母"
|
||||
} else if (regConfig.pwd_complexity.indexOf("symbol") != -1) {
|
||||
reg += "(?=.*?[#?!@$%^&*-])"
|
||||
passwordErrorMsg += "、特殊字符"
|
||||
} else {
|
||||
reg += ""
|
||||
passwordErrorMsg += ""
|
||||
}
|
||||
|
||||
if (reg.test(value)) {
|
||||
return callback(new Error(passwordErrorMsg))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var checkPass = function (rule, value, callback) {
|
||||
if (!value) {
|
||||
return callback(new Error("请输入确认密码"))
|
||||
} else {
|
||||
if (value !== self.formData.pass) {
|
||||
callback(new Error("两次密码输入不一致"))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
formData: {
|
||||
mobile: "",
|
||||
vercode: "",
|
||||
dynacode: "",
|
||||
pass: "",
|
||||
repass: "",
|
||||
key: ""
|
||||
},
|
||||
step: 1,
|
||||
activeName: "first",
|
||||
isShowPhone: "",
|
||||
captcha: {
|
||||
id: "",
|
||||
img: ""
|
||||
},
|
||||
// 验证码
|
||||
dynacodeData: {
|
||||
seconds: 120,
|
||||
timer: null,
|
||||
codeText: "获取动态码",
|
||||
isSend: false
|
||||
},
|
||||
// 动态码
|
||||
registerConfig: {},
|
||||
rules: {
|
||||
mobile: [{
|
||||
required: true,
|
||||
validator: isMobile,
|
||||
trigger: "blur"
|
||||
}],
|
||||
vercode: [{
|
||||
required: true,
|
||||
message: "请输入验证码",
|
||||
trigger: "blur"
|
||||
}],
|
||||
dynacode: [{
|
||||
required: true,
|
||||
message: "请输入短信动态码",
|
||||
trigger: "blur"
|
||||
}],
|
||||
pass: [{
|
||||
required: true,
|
||||
validator: setPass,
|
||||
trigger: "blur"
|
||||
}],
|
||||
repass: [{
|
||||
required: true,
|
||||
validator: checkPass,
|
||||
trigger: "blur"
|
||||
}]
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getCaptcha()
|
||||
this.getRegisterConfig()
|
||||
},
|
||||
head() {
|
||||
return {
|
||||
title: '找回密码-' + this.$store.state.site.siteInfo.site_name
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
"dynacodeData.seconds": {
|
||||
handler(newValue, oldValue) {
|
||||
if (newValue == 0) {
|
||||
clearInterval(this.dynacodeData.timer)
|
||||
this.dynacodeData = {
|
||||
seconds: 120,
|
||||
timer: null,
|
||||
codeText: "获取动态码",
|
||||
isSend: false
|
||||
}
|
||||
}
|
||||
},
|
||||
immediate: true,
|
||||
deep: true
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
/**
|
||||
* 下一步
|
||||
*/
|
||||
nextStep(formName) {
|
||||
this.$refs[formName].validate(valid => {
|
||||
if (valid) {
|
||||
nextStep({
|
||||
mobile: this.formData.mobile
|
||||
}).then(res => {
|
||||
if (res.code == -1) {
|
||||
this.step = 2
|
||||
} else {
|
||||
this.$message({
|
||||
message: res.message,
|
||||
type: "warning"
|
||||
})
|
||||
}
|
||||
}).catch(err => {
|
||||
if (err.code == 0) {
|
||||
this.$message({
|
||||
message: "该手机号未注册",
|
||||
type: "warning"
|
||||
})
|
||||
} else {
|
||||
this.$message.error(err.message)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 获取动态验证码 下一步
|
||||
*/
|
||||
nextStepToSetPass(formName) {
|
||||
this.$refs[formName].validate(valid => {
|
||||
if (valid) {
|
||||
this.step = 3
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 重置密码
|
||||
*/
|
||||
resetPass(formName) {
|
||||
this.$refs[formName].validate(valid => {
|
||||
if (valid) {
|
||||
rePass({
|
||||
password: this.formData.pass,
|
||||
code: this.formData.dynacode,
|
||||
key: this.formData.key,
|
||||
mobile: this.formData.mobile
|
||||
}).then(res => {
|
||||
if (res.code >= 0) {
|
||||
this.step = 4
|
||||
this.$message({
|
||||
message: res.message,
|
||||
type: "success"
|
||||
})
|
||||
}
|
||||
}).catch(err => {
|
||||
this.$message.error(err.message)
|
||||
})
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 获取验证码
|
||||
*/
|
||||
getCaptcha() {
|
||||
captcha({
|
||||
captcha_id: this.captcha.id
|
||||
}).then(res => {
|
||||
if (res.code >= 0) {
|
||||
this.captcha.id = res.data.id
|
||||
this.captcha.img = res.data.img
|
||||
this.captcha.img = this.captcha.img.replace(/\r\n/g, "")
|
||||
}
|
||||
}).catch(err => {
|
||||
this.$message.error(err.message)
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 发送手机动态码
|
||||
*/
|
||||
sendMobileCode(formName) {
|
||||
if (this.dynacodeData.seconds != 120) return
|
||||
this.$refs[formName].clearValidate("dynacode")
|
||||
this.$refs[formName].validateField("vercode", valid => {
|
||||
if (!valid) {
|
||||
if (this.isSend) return
|
||||
this.isSend = true
|
||||
|
||||
smsCode({
|
||||
captcha_id: this.captcha.id,
|
||||
captcha_code: this.formData.vercode,
|
||||
mobile: this.formData.mobile
|
||||
}).then(res => {
|
||||
if (res.code >= 0) {
|
||||
this.formData.key = res.data.key
|
||||
|
||||
if (this.dynacodeData.seconds == 120 && this.dynacodeData.timer == null) {
|
||||
this.dynacodeData.timer = setInterval(() => {
|
||||
this.dynacodeData.seconds--
|
||||
this.dynacodeData.codeText = this.dynacodeData.seconds + "s后可重新获取"
|
||||
}, 1000)
|
||||
} else {
|
||||
this.$message({
|
||||
message: res.message,
|
||||
type: "warning"
|
||||
})
|
||||
this.isSend = false
|
||||
this.getCaptcha()
|
||||
}
|
||||
}
|
||||
}).catch(err => {
|
||||
this.isSend = false
|
||||
this.getCaptcha()
|
||||
this.$message.error(err.message)
|
||||
})
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 获取注册配置
|
||||
*/
|
||||
getRegisterConfig() {
|
||||
registerConfig().then(res => {
|
||||
if (res.code >= 0) {
|
||||
this.registerConfig = res.data.value
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user