reset.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. var content = {
  2. 'cn':{
  3. item1:'重置交易密码',
  4. btn:'确定',
  5. item2:'密码格式错误',
  6. item3:'请输入新密码',
  7. item4:'请确认新密码',
  8. item5:"两次输入密码不一致!",
  9. success:'成功',
  10. st1: "使用8到15个字符",
  11. nd2: "同时使用大写和小写字母",
  12. rd3: "使用数字、英文字母和特殊符号的组合"
  13. },
  14. 'en':{
  15. item1:'Reset trading password',
  16. btn:'confirm',
  17. item2:'Wrong password format',
  18. item3:'Please enter a new password',
  19. item4:'Please confirm the new password',
  20. item5:"The two input passwords are inconsistent!",
  21. success:'Success',
  22. st1: "Must be between 8 to 15 characters",
  23. nd2: "Contain both uppercase and lowercase letter",
  24. rd3: "Use a combination of numbers , letters and special symbols"
  25. }
  26. };
  27. let config = {
  28. Pattern: {
  29. Password: /^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[~!@&%$^*./\\(\\)\\+\\=#_-])[A-Za-z0-9~!@&%$^*./\\(\\)\\+\\=#_-]{8,16}$/,
  30. }
  31. };
  32. let vm = new Vue({
  33. el: "#forget",
  34. data(){
  35. return{
  36. ho:'',
  37. //多语言
  38. langList: {
  39. en: "ENGLISH",
  40. cn: "中文简体"
  41. },
  42. language: "cn",
  43. lang:{},
  44. params: {
  45. newPassword: "",
  46. token:'',
  47. login:''
  48. },
  49. rules: {
  50. newPassword: [
  51. {
  52. validator: (rule, value, callback) => {
  53. if (config.Pattern.Password.test(value)) {
  54. callback();
  55. } else {
  56. callback(new Error(this.lang.item2));
  57. }
  58. },
  59. trigger: "blur"
  60. }
  61. ],
  62. password1: [
  63. {
  64. validator: (rule, value, callback) => {
  65. if (value === '') {
  66. callback(new Error(this.lang.item4));
  67. } else if (value !== this.params.newPassword) {
  68. callback(new Error(this.lang.item5));
  69. } else {
  70. callback();
  71. }
  72. },
  73. trigger: "blur"
  74. }
  75. ]
  76. }
  77. }
  78. },
  79. computed: {
  80. AccessToken(){
  81. return{
  82. 'Access-Token': window.location.search.split('?token=')[1].split('&login=')[0]
  83. }
  84. },
  85. rule1: function () {
  86. if (!this.params.newPassword) {
  87. return false;
  88. }
  89. return /^.{8,16}$/.test(this.params.newPassword);
  90. },
  91. rule2: function () {
  92. return /^(?=.*?[a-z])(?=.*?[A-Z]).*$/.test(this.params.newPassword);
  93. },
  94. rule3: function () {
  95. return /^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[~!@&%$^*./\\(\\)\\+\\=#_-])[A-Za-z0-9~!@&%$^*./\\(\\)\\+\\=#_-]{8,16}$/.test(
  96. this.params.newPassword
  97. );
  98. },
  99. },
  100. methods: {
  101. // 语言切换函数
  102. chooseLang (key) {
  103. this.lang = content[key];
  104. this.language = key;
  105. },
  106. // 发送
  107. send: async function () {
  108. this.$refs["params"].validate(async valid => {
  109. if (valid) {
  110. let hostParts = window.location.host.split('.');
  111. let tld = hostParts.slice(2).join('.') || 'com';
  112. let _this = this;
  113. axios.defaults.headers.common['Language'] = this.language == 'cn' ? 'cn' : 'en';
  114. axios.defaults.headers.common['Access-Token'] = window.location.search.split('?token=')[1].split('&login=')[0];
  115. axios.post('https://secure.' + this.ho + '.' + tld + '/account/deal/password/reset/apply', {
  116. ...this.params
  117. //参数
  118. }).then(res => {//请求成功后的处理函数
  119. if (res.data.code == 200) {
  120. this.$message({
  121. message: this.lang.success,
  122. type: 'success'
  123. });
  124. setTimeout(() => {
  125. window.location.href = 'https://secure.' + this.ho + '.' + tld
  126. }, 2000);
  127. } else {
  128. this.$message.error(res.data.msg);
  129. }
  130. }).catch(err => { //请求失败后的处理函数
  131. })
  132. } else {
  133. return false;
  134. }
  135. });
  136. },
  137. },
  138. mounted() {
  139. this.ho = window.location.host.split('.')[1];
  140. this.params.token = window.location.search.split('?token=')[1].split('&login=')[0];
  141. this.params.login = window.location.search.split('&login=')[1];
  142. this.lang = content['cn'];
  143. }
  144. });