Commit 7ac85fa2a381f97bc843f0df8bbc840bc3bc54cf

Authored by fengtao
1 parent 3d5fdecb

pref:优化密码查看

@@ -7,7 +7,9 @@ @@ -7,7 +7,9 @@
7 </view> 7 </view>
8 <view v-if="!nextStatus" style="margin-top: 40rpx;" class="f__login"> 8 <view v-if="!nextStatus" style="margin-top: 40rpx;" class="f__login">
9 <view class="loginPhone"> 9 <view class="loginPhone">
10 - <view class="form-row"><u-input v-model="phone" type="number" placeholder="请输入手机号码" border="bottom" /></view> 10 + <view class="form-row">
  11 + <u-input v-model="phone" type="number" placeholder="请输入手机号码" border="bottom" />
  12 + </view>
11 <view class="form-row"> 13 <view class="form-row">
12 <u-input type="number" v-model="vCode" placeholder="请输入验证码" border="bottom"> 14 <u-input type="number" v-model="vCode" placeholder="请输入验证码" border="bottom">
13 <template slot="suffix"> 15 <template slot="suffix">
@@ -22,15 +24,23 @@ @@ -22,15 +24,23 @@
22 <view class="loginPhone"> 24 <view class="loginPhone">
23 <view class="form-row u-flex"> 25 <view class="form-row u-flex">
24 <u-input v-model="password" :password="showPasswordF" placeholder="请设置6-20位新的登录密码" border="bottom"> 26 <u-input v-model="password" :password="showPasswordF" placeholder="请设置6-20位新的登录密码" border="bottom">
25 - <template slot="suffix" @click="showPasswordModeF">  
26 - <view style="padding:20rpx"><u-icon :name="showPasswordF ? '/static/eye-hide.png' : '/static/eye.png'"></u-icon></view> 27 + <template slot="suffix">
  28 + <view @click="showPasswordMode" style="padding: 10rpx">
  29 + <u-icon width="18" height="14" :name="
  30 + showPasswordF ? '/static/eye-hide.png' : '/static/eye.png'
  31 + "></u-icon>
  32 + </view>
27 </template> 33 </template>
28 </u-input> 34 </u-input>
29 </view> 35 </view>
30 <view class="form-row u-flex"> 36 <view class="form-row u-flex">
31 <u-input v-model="rePassword" :password="showPasswordS" placeholder="请再次输入新的登录密码" border="bottom"> 37 <u-input v-model="rePassword" :password="showPasswordS" placeholder="请再次输入新的登录密码" border="bottom">
32 - <template slot="suffix" @click="showPasswordModeS">  
33 - <view style="padding:20rpx"><u-icon :name="showPasswordS ? '/static/eye-hide.png' : '/static/eye.png'"></u-icon></view> 38 + <template slot="suffix">
  39 + <view @click="showPasswordModeS" style="padding: 10rpx">
  40 + <u-icon width="18" height="14" :name="
  41 + showPasswordS ? '/static/eye-hide.png' : '/static/eye.png'
  42 + "></u-icon>
  43 + </view>
34 </template> 44 </template>
35 </u-input> 45 </u-input>
36 </view> 46 </view>
@@ -41,161 +51,161 @@ @@ -41,161 +51,161 @@
41 </template> 51 </template>
42 52
43 <script> 53 <script>
44 -var clear;  
45 -export default {  
46 - data() {  
47 - return {  
48 - readonly: false,  
49 - codeText: '发送验证码',  
50 - phone: '', //号码  
51 - vCode: '', //验证码  
52 - nextStatus: false,  
53 - password: '',  
54 - rePassword: '',  
55 - showPasswordF: true,  
56 - showPasswordS: true  
57 - };  
58 - },  
59 - methods: {  
60 - //验证码按钮文字状态  
61 - getCodeState() {  
62 - const _this = this;  
63 - this.readonly = true;  
64 - this.codeText = '60s后重新获取';  
65 - var s = 60;  
66 - clear = setInterval(() => {  
67 - s--;  
68 - _this.codeText = s + 's后重新获取';  
69 - if (s <= 0) {  
70 - clearInterval(clear);  
71 - _this.codeText = '发送验证码';  
72 - _this.readonly = false;  
73 - }  
74 - }, 1000); 54 + var clear;
  55 + export default {
  56 + data() {
  57 + return {
  58 + readonly: false,
  59 + codeText: '发送验证码',
  60 + phone: '', //号码
  61 + vCode: '', //验证码
  62 + nextStatus: false,
  63 + password: '',
  64 + rePassword: '',
  65 + showPasswordF: true,
  66 + showPasswordS: true
  67 + };
75 }, 68 },
76 - //获取验证码  
77 - getVcode() {  
78 - if (this.readonly) {  
79 - uni.showToast({  
80 - title: '验证码已发送~',  
81 - icon: 'none'  
82 - });  
83 - return;  
84 - }  
85 - if (this.phone == '') {  
86 - uni.showToast({  
87 - title: '请输入手机号~',  
88 - icon: 'none'  
89 - });  
90 - return;  
91 - }  
92 - const phoneRegular = /^1\d{10}$/;  
93 - if (!phoneRegular.test(this.phone)) {  
94 - uni.showToast({  
95 - title: '手机号格式不正确~',  
96 - icon: 'none'  
97 - });  
98 - return;  
99 - }  
100 - let httpData = {};  
101 - // 获取验证码接口  
102 - uni.$u.http  
103 - .post(`/yt/noauth/reset_code/${this.phone}`)  
104 - .then(res => {  
105 - this.getCodeState(); //开始倒计时  
106 - })  
107 - .catch(err => { 69 + methods: {
  70 + //验证码按钮文字状态
  71 + getCodeState() {
  72 + const _this = this;
  73 + this.readonly = true;
  74 + this.codeText = '60s后重新获取';
  75 + var s = 60;
  76 + clear = setInterval(() => {
  77 + s--;
  78 + _this.codeText = s + 's后重新获取';
  79 + if (s <= 0) {
  80 + clearInterval(clear);
  81 + _this.codeText = '发送验证码';
  82 + _this.readonly = false;
  83 + }
  84 + }, 1000);
  85 + },
  86 + //获取验证码
  87 + getVcode() {
  88 + if (this.readonly) {
108 uni.showToast({ 89 uni.showToast({
109 - title: err.data.msg, 90 + title: '验证码已发送~',
110 icon: 'none' 91 icon: 'none'
111 }); 92 });
112 - });  
113 - },  
114 - onNextSubmit() {  
115 - const phoneRegular = /^1\d{10}$/;  
116 - if (this.phone == '') {  
117 - uni.showToast({  
118 - title: '请输入手机号码~',  
119 - icon: 'none'  
120 - });  
121 - return;  
122 - } else if (!phoneRegular.test(this.phone)) {  
123 - uni.showToast({  
124 - title: '手机号格式不正确~',  
125 - icon: 'none'  
126 - });  
127 - return;  
128 - }  
129 - if (this.vCode == '') {  
130 - uni.showToast({  
131 - title: '请输入验证码~',  
132 - icon: 'none'  
133 - });  
134 - return;  
135 - } else if (!/^\d{6}$/.test(this.vCode)) {  
136 - uni.showToast({  
137 - title: '验证码格式不正确~',  
138 - icon: 'none'  
139 - });  
140 - return;  
141 - }  
142 - this.nextStatus = true;  
143 - },  
144 - showPhone() {  
145 - this.nextStatus = false;  
146 - },  
147 - onSubmit() {  
148 - const passReg = /^(?=.*?[A-Z])(?=(.*[a-z]){1,})(?=(.*[\d]){1,})(?=(.*[\W]){1,})(?!.*\s).{8,}$/;  
149 - if (this.password == '' && this.rePassword == '') {  
150 - uni.showToast({  
151 - title: '请输入密码~',  
152 - icon: 'none'  
153 - });  
154 - return;  
155 - } else if (!passReg.test(this.password) && !passReg.test(this.rePassword)) {  
156 - //uni.showToast,字数过长,会造成手机上显示不完全,官方bug,采用uni.showModal  
157 - uni.showModal({  
158 - title: '提示',  
159 - content: '密码格式不正确(至少一个大写英文字母、至少一个小写英文字母、至少一位数字、至少一个特殊字符、最少八个字符)~',  
160 - showCancel: false  
161 - });  
162 - return;  
163 - }  
164 - if (this.password !== this.rePassword) return uni.$u.toast('两次输入密码不一致');  
165 - let httpData = {  
166 - password: this.password,  
167 - phoneNumber: this.phone,  
168 - userId: this.vCode  
169 - };  
170 - uni.$u.http  
171 - .post(`/yt/noauth/reset/${this.phone}`, httpData)  
172 - .then(res => { 93 + return;
  94 + }
  95 + if (this.phone == '') {
173 uni.showToast({ 96 uni.showToast({
174 - title: '重置密码成功~', 97 + title: '请输入手机号~',
175 icon: 'none' 98 icon: 'none'
176 - }).then(res => {  
177 - uni.reLaunch({  
178 - url: '/publicLoginSubPage/public/login' 99 + });
  100 + return;
  101 + }
  102 + const phoneRegular = /^1\d{10}$/;
  103 + if (!phoneRegular.test(this.phone)) {
  104 + uni.showToast({
  105 + title: '手机号格式不正确~',
  106 + icon: 'none'
  107 + });
  108 + return;
  109 + }
  110 + let httpData = {};
  111 + // 获取验证码接口
  112 + uni.$u.http
  113 + .post(`/yt/noauth/reset_code/${this.phone}`)
  114 + .then(res => {
  115 + this.getCodeState(); //开始倒计时
  116 + })
  117 + .catch(err => {
  118 + uni.showToast({
  119 + title: err.data.msg,
  120 + icon: 'none'
179 }); 121 });
180 }); 122 });
181 - })  
182 - .catch(err => { 123 + },
  124 + onNextSubmit() {
  125 + const phoneRegular = /^1\d{10}$/;
  126 + if (this.phone == '') {
183 uni.showToast({ 127 uni.showToast({
184 - title: err.data.msg, 128 + title: '请输入手机号码~',
185 icon: 'none' 129 icon: 'none'
186 }); 130 });
187 - });  
188 - },  
189 - showPasswordModeF() {  
190 - this.showPasswordF = !this.showPasswordF;  
191 - },  
192 - showPasswordModeS() {  
193 - this.showPasswordS = !this.showPasswordS; 131 + return;
  132 + } else if (!phoneRegular.test(this.phone)) {
  133 + uni.showToast({
  134 + title: '手机号格式不正确~',
  135 + icon: 'none'
  136 + });
  137 + return;
  138 + }
  139 + if (this.vCode == '') {
  140 + uni.showToast({
  141 + title: '请输入验证码~',
  142 + icon: 'none'
  143 + });
  144 + return;
  145 + } else if (!/^\d{6}$/.test(this.vCode)) {
  146 + uni.showToast({
  147 + title: '验证码格式不正确~',
  148 + icon: 'none'
  149 + });
  150 + return;
  151 + }
  152 + this.nextStatus = true;
  153 + },
  154 + showPhone() {
  155 + this.nextStatus = false;
  156 + },
  157 + onSubmit() {
  158 + const passReg = /^(?=.*?[A-Z])(?=(.*[a-z]){1,})(?=(.*[\d]){1,})(?=(.*[\W]){1,})(?!.*\s).{8,}$/;
  159 + if (this.password == '' && this.rePassword == '') {
  160 + uni.showToast({
  161 + title: '请输入密码~',
  162 + icon: 'none'
  163 + });
  164 + return;
  165 + } else if (!passReg.test(this.password) && !passReg.test(this.rePassword)) {
  166 + //uni.showToast,字数过长,会造成手机上显示不完全,官方bug,采用uni.showModal
  167 + uni.showModal({
  168 + title: '提示',
  169 + content: '密码格式不正确(至少一个大写英文字母、至少一个小写英文字母、至少一位数字、至少一个特殊字符、最少八个字符)~',
  170 + showCancel: false
  171 + });
  172 + return;
  173 + }
  174 + if (this.password !== this.rePassword) return uni.$u.toast('两次输入密码不一致');
  175 + let httpData = {
  176 + password: this.password,
  177 + phoneNumber: this.phone,
  178 + userId: this.vCode
  179 + };
  180 + uni.$u.http
  181 + .post(`/yt/noauth/reset/${this.phone}`, httpData)
  182 + .then(res => {
  183 + uni.showToast({
  184 + title: '重置密码成功~',
  185 + icon: 'none'
  186 + }).then(res => {
  187 + uni.reLaunch({
  188 + url: '/publicLoginSubPage/public/login'
  189 + });
  190 + });
  191 + })
  192 + .catch(err => {
  193 + uni.showToast({
  194 + title: err.data.msg,
  195 + icon: 'none'
  196 + });
  197 + });
  198 + },
  199 + showPasswordMode() {
  200 + this.showPasswordF = !this.showPasswordF;
  201 + },
  202 + showPasswordModeS() {
  203 + this.showPasswordS = !this.showPasswordS;
  204 + }
194 } 205 }
195 - }  
196 -}; 206 + };
197 </script> 207 </script>
198 208
199 <style lang="scss" scoped> 209 <style lang="scss" scoped>
200 -@import './static/findPassword.scss'; 210 + @import './static/findPassword.scss';
201 </style> 211 </style>