var content = { 'cn':{ item1:'忘记密码', btn:'确定', item2:'密码格式错误', item3:'请输入新密码', item4:'请确认新密码', item5:"两次输入密码不一致!", success:'成功', token:'链接错误,请检查链接', st1:"使用8到15个字符", st2:"同时使用大写和小写字母", st3:"使用数字和英文字母的组合" }, 'en':{ item1:'Forget the password', btn:'Confirm', item2:'Wrong password format', item3:'Please enter a new password', item4:'Please confirm the new password', item5:"The two input passwords are inconsistent!", success:'success', token:'Link error, please check link!', st1:"Must be between 8 to 15 characters", st2:"Contain both uppercase and lowercase letter", st3:"Use a combination of numbers and letters" } }; let config = { Pattern: { Password: /^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?!.*([~!@&%$^\\(\\)#_]).*\\1.*\\1.*\\1)[A-Za-z0-9~!@&%$^\\(\\)#_]{8,16}$/, } }; let vm = new Vue({ el: "#forget", data(){ return{ imgUrl:'', ho:'', //多语言 langList: { en: "ENGLISH", cn: "中文简体" }, language: "cn", lang:{}, params: { password: "", token:'', }, rules: { password: [ { validator: (rule, value, callback) => { if (config.Pattern.Password.test(value)) { callback(); } else { callback(new Error(this.lang.item2)); } }, trigger: "blur" } ], password1: [ { validator: (rule, value, callback) => { if (value === '') { callback(new Error(this.lang.item4)); } else if (value !== this.params.password) { callback(new Error(this.lang.item5)); } else { callback(); } }, trigger: "blur" } ] } } }, computed: { rule1: function () { if (!this.params.password) { return false; } return /^.{8,16}$/.test(this.params.password); }, rule2: function () { return /^(?=.*?[a-z])(?=.*?[A-Z]).*$/.test(this.params.password); }, rule3: function () { return /^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?!.*([~!@&%$^\\(\\)#_]).*\\1.*\\1)[A-Za-z0-9~!@&%$^\\(\\)#_]{8,16}$/.test( this.params.password ); }, AccessToken(){ return{ 'Access-Token': window.location.search.split('?token=')[1] } } }, methods: { // 语言切换函数 chooseLang (key) { this.lang = content[key]; this.language = key; if (!this.params.token) { this.$message.error(this.lang.token); } }, // 发送 send: async function () { this.$refs["params"].validate(async valid => { if (valid) { axios.defaults.headers.common['Access-Token'] = window.location.search.split('?token=')[1]; axios.post(this.imgUrl+'/custom/update/email/password', { ...this.params //参数 }).then(res => {//请求成功后的处理函数 if (res.data.code == 200) { this.$message({ message: this.lang.success, type: 'success' }); setTimeout(() => { window.location.href = this.imgUrl }, 2000); } else { this.$message.error(res.data.msg); } }).catch(err => { //请求失败后的处理函数 }) } else { return false; } }); }, }, mounted() { this.params.token = window.location.search.split('?token=')[1]; let hostParts = window.location.host.split('.'); let tld = hostParts.slice(2).join('.') || 'com'; this.ho = window.location.host.split('.')[1]; this.imgUrl = 'https://secure.' + this.ho + '.' + tld var jsSrc =(navigator.language || navigator.browserLanguage).toLowerCase(); if(jsSrc.indexOf('zh') >= 0){ this.language = 'cn' this.lang = content['cn']; }else{ this.language = 'en' this.lang = content['en']; } if (!this.params.token) { this.$message.error(this.lang.token); } } });