用户体系样式/文案
Showing
8 changed files
with
652 additions
and
584 deletions
... | @@ -191,10 +191,10 @@ module.exports = { | ... | @@ -191,10 +191,10 @@ module.exports = { |
191 | }, | 191 | }, |
192 | login: { | 192 | login: { |
193 | title: "PingAn Account Member Service", | 193 | title: "PingAn Account Member Service", |
194 | loginType1: "Login with user name and password", | 194 | loginType1: "Dynamic password login", |
195 | loginType2: "Dynamic password login", | 195 | loginType2: "Dynamic password login", |
196 | account: "Account", | 196 | account: "Account", |
197 | accountPlaceholder: "Please enter Mobile no.", | 197 | accountPlaceholder: "Please enter user name", |
198 | password: "Password", | 198 | password: "Password", |
199 | passwordPlaceholder: "Please enter password", | 199 | passwordPlaceholder: "Please enter password", |
200 | verifyPlaceholder: "Please enter password", | 200 | verifyPlaceholder: "Please enter password", |
... | @@ -206,8 +206,9 @@ module.exports = { | ... | @@ -206,8 +206,9 @@ module.exports = { |
206 | mobile: "Mobile no.", | 206 | mobile: "Mobile no.", |
207 | mobilePlaceholder: "Please enter Mobile no", | 207 | mobilePlaceholder: "Please enter Mobile no", |
208 | verifyCode: "SMS verification code", | 208 | verifyCode: "SMS verification code", |
209 | verifyCodePlaceholder: "SMS verification code", | 209 | verifyCodePlaceholder: "Please enter verification code", |
210 | verifyCodeGet: "Get SMS verification code", | 210 | verifyCodeGet: "Get verification codee", |
211 | SMSVerificationCode:"SMS verification code", | ||
211 | tips: { | 212 | tips: { |
212 | e1: "Please enter account", | 213 | e1: "Please enter account", |
213 | e2: "Please enter the password", | 214 | e2: "Please enter the password", |
... | @@ -221,7 +222,8 @@ module.exports = { | ... | @@ -221,7 +222,8 @@ module.exports = { |
221 | oe2: "Please enter the picture verification code", | 222 | oe2: "Please enter the picture verification code", |
222 | oe3: "Please enter the picture verification code", | 223 | oe3: "Please enter the picture verification code", |
223 | oe4: "Your verify code is not correct. Please try again", | 224 | oe4: "Your verify code is not correct. Please try again", |
224 | } | 225 | }, |
226 | accountPlaceholder:"Please setup user name ", | ||
225 | }, | 227 | }, |
226 | session: { | 228 | session: { |
227 | sidExpire: "It has not been operated for a long time. For the sake of your account security, please restart", | 229 | sidExpire: "It has not been operated for a long time. For the sake of your account security, please restart", | ... | ... |
... | @@ -193,23 +193,24 @@ module.exports = { | ... | @@ -193,23 +193,24 @@ module.exports = { |
193 | }, | 193 | }, |
194 | login: { | 194 | login: { |
195 | title: "平安賬戶", | 195 | title: "平安賬戶", |
196 | loginType1: "賬密登入", | 196 | loginType1: "動態密碼登錄", |
197 | loginType2: "動態密碼登入", | 197 | loginType2: "動態密碼登入", |
198 | account: "賬號", | 198 | account: "賬號", |
199 | accountPlaceholder: "請輸入手機號", | 199 | accountPlaceholder: "請輸入用戶名稱", |
200 | password: "密碼", | 200 | password: "密碼", |
201 | passwordPlaceholder: "輸入登入密碼", | 201 | passwordPlaceholder: "輸入登入密碼", |
202 | verifyPlaceholder: "請輸入驗證碼", | 202 | verifyPlaceholder: "請輸入驗證碼", |
203 | agree: "同意", | 203 | agree: "同意", |
204 | protocol: "《平安香港會員網上帳戶服務協定》", | 204 | protocol: "《平安香港會員網上帳戶服務協定》", |
205 | login: "登入", | 205 | login: "登錄", |
206 | register: "註冊", | 206 | register: "註冊", |
207 | forget: "忘記密碼", | 207 | forget: "忘記密碼", |
208 | mobile: "手機號", | 208 | mobile: "手機號", |
209 | mobilePlaceholder: "手機號", | 209 | mobilePlaceholder: "手機號", |
210 | verifyCode: "驗證碼", | 210 | verifyCode: "驗證碼", |
211 | verifyCodePlaceholder: "驗證碼", | 211 | verifyCodePlaceholder: "請輸入驗證碼", |
212 | verifyCodeGet: "獲取驗證碼", | 212 | verifyCodeGet: "獲取驗證碼", |
213 | SMSVerificationCode:"手機短信驗證碼", | ||
213 | tips: { | 214 | tips: { |
214 | e1: "請輸入賬號信息", | 215 | e1: "請輸入賬號信息", |
215 | e2: "請輸入密碼", | 216 | e2: "請輸入密碼", |
... | @@ -266,7 +267,8 @@ module.exports = { | ... | @@ -266,7 +267,8 @@ module.exports = { |
266 | e10: "驗證碼過期,請重新申請驗證碼", | 267 | e10: "驗證碼過期,請重新申請驗證碼", |
267 | e11: "註冊失敗,請聯繫工作人員", | 268 | e11: "註冊失敗,請聯繫工作人員", |
268 | e12: "註冊成功" | 269 | e12: "註冊成功" |
269 | } | 270 | }, |
271 | accountPlaceholder:"請設置用戶名稱", | ||
270 | }, | 272 | }, |
271 | session: { | 273 | session: { |
272 | sidExpire: "長時間未操作,為了您賬戶的安全,請登入後再操作" | 274 | sidExpire: "長時間未操作,為了您賬戶的安全,請登入後再操作" | ... | ... |
... | @@ -193,10 +193,10 @@ module.exports = { | ... | @@ -193,10 +193,10 @@ module.exports = { |
193 | }, | 193 | }, |
194 | login: { | 194 | login: { |
195 | title: "平安账户", | 195 | title: "平安账户", |
196 | loginType1: "账密登入", | 196 | loginType1: "动态密码登录", |
197 | loginType2: "动态密码登入", | 197 | loginType2: "动态密码登入", |
198 | account: "账号", | 198 | account: "账号", |
199 | accountPlaceholder: "请输入手机号", | 199 | accountPlaceholder: "请输入用户名称", |
200 | password: "密码", | 200 | password: "密码", |
201 | passwordPlaceholder: "输入登入密码", | 201 | passwordPlaceholder: "输入登入密码", |
202 | verifyPlaceholder: "请输入验证码", | 202 | verifyPlaceholder: "请输入验证码", |
... | @@ -208,8 +208,9 @@ module.exports = { | ... | @@ -208,8 +208,9 @@ module.exports = { |
208 | mobile: "手机号", | 208 | mobile: "手机号", |
209 | mobilePlaceholder: "手机号", | 209 | mobilePlaceholder: "手机号", |
210 | verifyCode: "验证码", | 210 | verifyCode: "验证码", |
211 | verifyCodePlaceholder: "验证码", | 211 | verifyCodePlaceholder: "请输入验证码", |
212 | verifyCodeGet: "获取验证码", | 212 | verifyCodeGet: "获取验证码", |
213 | SMSVerificationCode:"手机短信验证码", | ||
213 | tips: { | 214 | tips: { |
214 | e1: "请输入账号信息", | 215 | e1: "请输入账号信息", |
215 | e2: "请输入密码", | 216 | e2: "请输入密码", |
... | @@ -269,7 +270,8 @@ module.exports = { | ... | @@ -269,7 +270,8 @@ module.exports = { |
269 | e10: "验证码过期,请重新申请验证码", | 270 | e10: "验证码过期,请重新申请验证码", |
270 | e11: "注册失败,请联系工作人员", | 271 | e11: "注册失败,请联系工作人员", |
271 | e12: "註冊成功" | 272 | e12: "註冊成功" |
272 | } | 273 | }, |
274 | accountPlaceholder:"请设置用户名称", | ||
273 | }, | 275 | }, |
274 | passwordCheck: { | 276 | passwordCheck: { |
275 | error1: "密码长度不少于8位", | 277 | error1: "密码长度不少于8位", | ... | ... |
... | @@ -91,7 +91,9 @@ | ... | @@ -91,7 +91,9 @@ |
91 | 91 | ||
92 | &-tit { | 92 | &-tit { |
93 | flex: 1; | 93 | flex: 1; |
94 | font-size: $fontSizeTitle; | 94 | // font-size: $fontSizeTitle; |
95 | // font-size: $fontSizeTitle-M2; | ||
96 | font-size: $fontSize-M2; | ||
95 | font-weight: bold; | 97 | font-weight: bold; |
96 | } | 98 | } |
97 | 99 | ||
... | @@ -104,12 +106,13 @@ | ... | @@ -104,12 +106,13 @@ |
104 | &-protocol { | 106 | &-protocol { |
105 | margin: 36px auto 0; | 107 | margin: 36px auto 0; |
106 | display: flex; | 108 | display: flex; |
107 | align-items: center; | 109 | // align-items: center; |
108 | // padding-left: 12px; | 110 | // padding-left: 12px; |
109 | 111 | ||
110 | .check { | 112 | .check { |
111 | height: 12px; | 113 | height: 12px; |
112 | margin-right: 6px; | 114 | margin-right: 7.2px; |
115 | margin-top: 4px; | ||
113 | } | 116 | } |
114 | 117 | ||
115 | .protocol { | 118 | .protocol { | ... | ... |
1 | 1 | ||
2 | <template> | 2 | <template> |
3 | <div> | 3 | <div> |
4 | <modal-comp :visible="modalVisiable" :show-confirm="false" :icon="modalIcon" :content="modalContent" :confirm="modalCallback" :overlay="modalCallback"></modal-comp> | 4 | <modal-comp :visible="modalVisiable" :show-confirm="false" :icon="modalIcon" :content="modalContent" :confirm="modalCallback" :overlay="modalCallback"></modal-comp> |
5 | <modal-simple-comp :visible="modalSimpleVisiable" :show-confirm="false" :icon="modalIcon" :content="modalContent" :confirm="closeModal" :overlay="closeModal" :close="closeModal"></modal-simple-comp> | 5 | <modal-simple-comp :visible="modalSimpleVisiable" :show-confirm="false" :icon="modalIcon" :content="modalContent" :confirm="closeModal" :overlay="closeModal" :close="closeModal"></modal-simple-comp> |
6 | <modal-upload-card-comp :visible="modalUploadCardVisiable" :show-confirm="true" :content="modalContent" :confirm="modalCallback" :overlay="modalCallback" :close="closeCallback"></modal-upload-card-comp> | 6 | <modal-upload-card-comp :visible="modalUploadCardVisiable" :show-confirm="true" :content="modalContent" :confirm="modalCallback" :overlay="modalCallback" :close="closeCallback"></modal-upload-card-comp> |
7 | <!-- 会员协议 --> | 7 | <!-- 会员协议 --> |
8 | <modal-protocol-comp :visible="modalProtocolVisiable" :overlay="closeModal" :close="closeModal"></modal-protocol-comp> | 8 | <modal-protocol-comp :visible="modalProtocolVisiable" :overlay="closeModal" :close="closeModal"></modal-protocol-comp> |
9 | 9 | ||
10 | <div class="ebg"></div> | 10 | <div class="ebg"></div> |
11 | <div class="content"> | 11 | <div class="content"> |
12 | <div class="top-space"></div> | 12 | <div class="top-space"></div> |
13 | <div class="box"> | 13 | <div class="box"> |
14 | <!-- 帐密登陆 --> | 14 | <!-- 帐密登陆 --> |
15 | <div v-if="type == 1" class="login"> | 15 | <div v-if="type == 1" class="login"> |
16 | <template v-if="!oneAccountCenterOff"> | 16 | <template v-if="!oneAccountCenterOff"> |
17 | <div class="login-tit"> | 17 | <div class="login-tit"> |
18 | <img v-if="locale == 'zh'" src="@/assets/images/login/login-tit-zh.png"> | 18 | <img v-if="locale == 'zh'" src="@/assets/images/login/login-tit-zh.png"> |
19 | <img v-if="locale == 'tc'" src="@/assets/images/login/login-tit-tc.png"> | 19 | <img v-if="locale == 'tc'" src="@/assets/images/login/login-tit-tc.png"> |
20 | <img v-if="locale == 'en'" class="img-en" src="@/assets/images/login/login-tit-en.png"> | 20 | <img v-if="locale == 'en'" class="img-en" src="@/assets/images/login/login-tit-en.png"> |
21 | </div> | 21 | </div> |
22 | <div class="login-nav"> | 22 | <div class="login-nav"> |
23 | <div @click="onLoginTypeHandler(1)" class="login-nav-tit text-r pointer active">{{$t('login.loginType1')}}</div> | 23 | <div @click="onLoginTypeHandler(1)" class="login-nav-tit text-r pointer active">{{$t('login.loginType1')}}</div> |
24 | <div class="login-nav-v-line"></div> | 24 | <div class="login-nav-v-line"></div> |
25 | <div @click="onLoginTypeHandler(2)" class="login-nav-tit pointer">{{$t('login.loginType2')}}</div> | 25 | <div @click="onLoginTypeHandler(2)" class="login-nav-tit pointer">{{$t('login.loginType2')}}</div> |
26 | </div> | 26 | </div> |
27 | <div class="gird-g form"> | 27 | <div class="gird-g form"> |
28 | <div class="pure-u-1 form-item"> | 28 | <div class="pure-u-1 form-item"> |
29 | <div class="label"> | 29 | <div class="label"> |
30 | <img src="@/assets/images/login/icon-login-user.png"> {{$t('login.account')}} | 30 | <img src="@/assets/images/login/icon-login-user.png"> {{$t('login.account')}} |
31 | </div> | 31 | </div> |
32 | <div class="ipt-wrap"> | 32 | <div class="ipt-wrap"> |
33 | <input v-model="loginForm.userId" :placeholder="$t('login.accountPlaceholder')" class="ipt" :class="{ err : errorTips.e1.length > 0 }" type="text" @blur="userIdLegalCheck"> | 33 | <input v-model="loginForm.userId" :placeholder="$t('login.accountPlaceholder')" class="ipt" :class="{ err : errorTips.e1.length > 0 }" type="text" @blur="userIdLegalCheck"> |
34 | </div> | 34 | </div> |
35 | <div class="validator" v-if="errorTips.e1.length > 0 "> | 35 | <div class="validator" v-if="errorTips.e1.length > 0 "> |
36 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.e1}} | 36 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.e1}} |
37 | </div> | 37 | </div> |
38 | </div> | 38 | </div> |
39 | <div class="pure-u-1 form-item"> | 39 | <div class="pure-u-1 form-item"> |
40 | <div class="label"> | 40 | <div class="label"> |
41 | <img src="@/assets/images/login/icon-login-password.png"> {{$t('login.password')}} | 41 | <img src="@/assets/images/login/icon-login-password.png"> {{$t('login.password')}} |
42 | </div> | 42 | </div> |
43 | <div class="ipt-wrap"> | 43 | <div class="ipt-wrap"> |
44 | <input v-model="loginForm.password" :placeholder="$t('login.passwordPlaceholder')" class="ipt" :class="{ err : errorTips.e2.length > 0 }" type="password"> | 44 | <input v-model="loginForm.password" :placeholder="$t('login.passwordPlaceholder')" class="ipt" :class="{ err : errorTips.e2.length > 0 }" type="password"> |
45 | </div> | 45 | </div> |
46 | <div class="validator" v-if="errorTips.e2.length > 0 "> | 46 | <div class="validator" v-if="errorTips.e2.length > 0 "> |
47 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.e2}} | 47 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.e2}} |
48 | </div> | 48 | </div> |
49 | </div> | 49 | </div> |
50 | <div class="pure-u-1 form-item" v-if="type == 1 && loginCheck.showImageCode"> | 50 | <div class="pure-u-1 form-item" v-if="type == 1 && loginCheck.showImageCode"> |
51 | <div class="ipt-wrap"> | 51 | <div class="ipt-wrap"> |
52 | <input :placeholder="$t('login.verifyPlaceholder')" class="ipt ipt-verify" :class="{ err : errorTips.e3.length > 0 }" type="text" v-model="loginForm.imageValue"> | 52 | <input :placeholder="$t('login.verifyPlaceholder')" class="ipt ipt-verify" :class="{ err : errorTips.e3.length > 0 }" type="text" v-model="loginForm.imageValue"> |
53 | <div class="ipt verify-btn pointer vcode" @click="handlerRefreshImageValue"> | 53 | <div class="ipt verify-btn pointer vcode" @click="handlerRefreshImageValue"> |
54 | <img :src="values.imageBase64"> | 54 | <img :src="values.imageBase64"> |
55 | </div> | 55 | </div> |
56 | </div> | 56 | </div> |
57 | <div class="validator" v-if="errorTips.e3.length > 0 "> | 57 | <div class="validator" v-if="errorTips.e3.length > 0 "> |
58 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.e3}} | 58 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.e3}} |
59 | </div> | 59 | </div> |
60 | </div> | 60 | </div> |
61 | </div> | 61 | </div> |
62 | <div class="login-protocol pointer" :class="{loginLeft:locale!='en'}" @click="loginCheck.agreeProtocol = !loginCheck.agreeProtocol"> | 62 | <div class="login-protocol pointer" :class="{loginLeft:locale!='en'}" @click="loginCheck.agreeProtocol = !loginCheck.agreeProtocol"> |
63 | <img v-if="!loginCheck.agreeProtocol" class="check" src="@/assets/images/login/uncheck.png"> | 63 | <img v-if="!loginCheck.agreeProtocol" class="check" src="@/assets/images/login/uncheck.png"> |
64 | <img v-if="loginCheck.agreeProtocol" class="check" src="@/assets/images/login/check.png">{{$t('login.agree')}} | 64 | <img v-if="loginCheck.agreeProtocol" class="check" src="@/assets/images/login/check.png">{{$t('login.agree')}} |
65 | <span @click="onProtocolHandler()" class="protocol pointer">{{$t('login.protocol')}}</span> | 65 | <span @click="onProtocolHandler()" class="protocol pointer">{{$t('login.protocol')}}</span> |
66 | </div> | 66 | </div> |
67 | <div @click="handlerLogin()" class="login-submit pointer flex-center" :class="{disabled: pwdLoginDisabled}"> | 67 | <div @click="handlerLogin()" class="login-submit pointer flex-center" :class="{disabled: pwdLoginDisabled}"> |
68 | <van-loading v-if="loading" /> | 68 | <van-loading v-if="loading" /> |
69 | <span>{{$t('login.login')}}</span> | 69 | <span>{{$t('login.login')}}</span> |
70 | </div> | 70 | </div> |
71 | <div class="login-func"> | 71 | <div class="login-func"> |
72 | <div @click="toRegisterPage()" class="login-func-btn pointer">{{$t('login.register')}}</div> | 72 | <div @click="toRegisterPage()" class="login-func-btn pointer">{{$t('login.register')}}</div> |
73 | <div @click="onForgetHandler()" class="login-func-btn pointer">{{$t('login.forget')}}</div> | 73 | <div @click="onForgetHandler()" class="login-func-btn pointer">{{$t('login.forget')}}</div> |
74 | </div> | 74 | </div> |
75 | </template> | 75 | </template> |
76 | <template v-else> | 76 | <template v-else> |
77 | <!-- 不接入一账通 --> | ||
78 | <div class="login-nav"> | ||
79 | <div class="login-nav-tit text-c pointer active">{{$t('login.loginType1')}}</div> | ||
80 | </div> | ||
81 | <div class="gird-g form"> | ||
82 | <div class="pure-u-1 form-item"> | ||
83 | <div class="label"> | ||
84 | <img src="@/assets/images/login/icon-login-user.png"> {{$t('login.account')}} | ||
85 | </div> | ||
86 | <div class="ipt-wrap"> | ||
87 | <input v-model="loginForm.userId" :placeholder="$t('login.accountPlaceholder')" class="ipt" :class="{ err : errorTips.e1.length > 0 }" type="text" @blur="userIdLegalCheck"> | ||
88 | </div> | ||
89 | <div class="validator" v-if="errorTips.e1.length > 0 "> | ||
90 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.e1}} | ||
91 | </div> | ||
92 | </div> | ||
93 | <div class="pure-u-1 form-item"> | ||
94 | <div class="label"> | ||
95 | <img src="@/assets/images/login/icon-login-password.png"> {{$t('login.password')}} | ||
96 | </div> | ||
97 | <div class="ipt-wrap"> | ||
98 | <input v-model="loginForm.password" :placeholder="$t('login.passwordPlaceholder')" class="ipt" :class="{ err : errorTips.e2.length > 0 }" type="password"> | ||
99 | </div> | ||
100 | <div class="validator" v-if="errorTips.e2.length > 0 "> | ||
101 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.e2}} | ||
102 | </div> | ||
103 | </div> | ||
104 | <div class="pure-u-1 form-item"> | ||
105 | <div class="label"> | ||
106 | <img src="@/assets/images/login/icon-login-message.png"> {{$t('login.verifyCode')}} | ||
107 | </div> | ||
108 | <div class="ipt-wrap"> | ||
109 | <div class="ipt ipt2" :class="{ err : errorTips.oe2.length > 0 }"> | ||
110 | <input :placeholder="$t('login.verifyCodePlaceholder')" class="ipt-code" type="text" v-model="loginForm.otp"> | ||
111 | <div v-if="times.remain == 0" class="veri-btn pointer" @click="sendOTPWhenOneAccountCenterOff">{{$t('register.verifyCodeGet')}}</div> | ||
112 | <div v-else class="veri-btn-default">{{times.tip}}</div> | ||
113 | </div> | ||
114 | </div> | ||
115 | <div class="validator" v-if="errorTips.oe2.length > 0 "> | ||
116 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.oe2}} | ||
117 | </div> | ||
118 | </div> | ||
119 | </div> | ||
120 | <div class="login-protocol pointer" :class="{loginLeft:locale!='en'}" @click="loginCheck.agreeProtocol = !loginCheck.agreeProtocol"> | ||
121 | <img v-if="!loginCheck.agreeProtocol" class="check" src="@/assets/images/login/uncheck.png"> | ||
122 | <img v-if="loginCheck.agreeProtocol" class="check" src="@/assets/images/login/check.png">{{$t('login.agree')}} | ||
123 | <span @click="onProtocolHandler()" class="protocol pointer">{{$t('login.protocol')}}</span> | ||
124 | </div> | ||
125 | <div @click="pwdLoginWhenOneAccountCenterOff()" class="login-submit pointer flex-center" :class="{disabled: pwdLoginDisabledOneAccountCenterOff}"> | ||
126 | <van-loading v-if="loading" /> | ||
127 | <span>{{$t('login.login')}}</span> | ||
128 | </div> | ||
129 | <div class="login-func"> | ||
130 | <div @click="toRegisterPage()" class="login-func-btn pointer">{{$t('login.register')}}</div> | ||
131 | </div> | ||
132 | </template> | ||
133 | </div> | ||
134 | 77 | ||
135 | <!-- OTP登陆 --> | ||
136 | <div v-if="type == 2" class="login"> | ||
137 | <div class="login-tit"> | ||
138 | <img v-if="locale == 'zh'" src="@/assets/images/login/login-tit-zh.png"> | ||
139 | <img v-if="locale == 'tc'" src="@/assets/images/login/login-tit-tc.png"> | ||
140 | <img v-if="locale == 'en'" class="img-en" src="@/assets/images/login/login-tit-en.png"> | ||
141 | </div> | ||
142 | <div class="login-nav"> | ||
143 | <div @click="onLoginTypeHandler(1)" class="login-nav-tit text-r pointer"> {{$t('login.loginType1')}}</div> | ||
144 | <div class="login-nav-v-line"></div> | ||
145 | <div @click="onLoginTypeHandler(2)" class="login-nav-tit pointer active"> {{$t('login.loginType2')}}</div> | ||
146 | </div> | ||
147 | <div class="gird-g form"> | ||
148 | 78 | ||
149 | <!-- <div class="pure-u-1 form-item"> | 79 | <!-- 不接入一账通 -OTP登陆 --> |
80 | <div class="login-nav"> | ||
81 | <div class="login-nav-tit text-c pointer active">{{$t('login.loginType1')}}</div> | ||
82 | </div> | ||
83 | <div class="gird-g form"> | ||
84 | <div class="pure-u-1 form-item"> | ||
85 | <div class="label"> | ||
86 | <img src="@/assets/images/login/icon-login-user.png"> {{$t('login.account')}} | ||
87 | </div> | ||
88 | <div class="ipt-wrap"> | ||
89 | <input v-model="loginForm.userId" :placeholder="$t('login.accountPlaceholder')" class="ipt" :class="{ err : errorTips.e1.length > 0 }" type="text" @blur="userIdLegalCheck"> | ||
90 | </div> | ||
91 | <div class="validator" v-if="errorTips.e1.length > 0 "> | ||
92 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.e1}} | ||
93 | </div> | ||
94 | </div> | ||
95 | <!-- <div class="pure-u-1 form-item"> | ||
96 | <div class="label"> | ||
97 | <img src="@/assets/images/login/icon-login-password.png"> {{$t('login.password')}} | ||
98 | </div> | ||
99 | <div class="ipt-wrap"> | ||
100 | <input v-model="loginForm.password" :placeholder="$t('login.passwordPlaceholder')" class="ipt" :class="{ err : errorTips.e2.length > 0 }" type="password"> | ||
101 | </div> | ||
102 | <div class="validator" v-if="errorTips.e2.length > 0 "> | ||
103 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.e2}} | ||
104 | </div> | ||
105 | </div> --> | ||
106 | <div class="pure-u-1 form-item"> | ||
107 | <div class="label"> | ||
108 | <img src="@/assets/images/login/icon-login-phone.png"> {{$t('login.SMSVerificationCode')}} | ||
109 | </div> | ||
110 | <div class="ipt-wrap"> | ||
111 | <div class="ipt ipt2" :class="{ err : errorTips.oe2.length > 0 }"> | ||
112 | <input :placeholder="$t('login.verifyCodePlaceholder')" class="ipt-code" type="text" v-model="loginForm.otp"> | ||
113 | <div v-if="times.remain == 0" class="veri-btn pointer" @click="sendOTPWhenOneAccountCenterOff">{{$t('register.verifyCodeGet')}}</div> | ||
114 | <div v-else class="veri-btn-default">{{times.tip}}</div> | ||
115 | </div> | ||
116 | </div> | ||
117 | <div class="validator" v-if="errorTips.oe2.length > 0 "> | ||
118 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.oe2}} | ||
119 | </div> | ||
120 | </div> | ||
121 | </div> | ||
122 | <div class="login-protocol pointer" :class="{loginLeft:locale!='en'}" @click="loginCheck.agreeProtocol = !loginCheck.agreeProtocol"> | ||
123 | <img v-if="!loginCheck.agreeProtocol" class="check" src="@/assets/images/login/uncheck.png"> | ||
124 | <img v-if="loginCheck.agreeProtocol" class="check" src="@/assets/images/login/check.png">{{$t('login.agree')}} | ||
125 | <span @click="onProtocolHandler()" class="protocol pointer">{{$t('login.protocol')}}</span> | ||
126 | </div> | ||
127 | <div @click="pwdLoginWhenOneAccountCenterOff()" class="login-submit pointer flex-center" :class="{disabled: pwdLoginDisabledOneAccountCenterOff}"> | ||
128 | <van-loading v-if="loading" /> | ||
129 | <span>{{$t('login.login')}}</span> | ||
130 | </div> | ||
131 | <div class="login-func"> | ||
132 | <div @click="toRegisterPage()" class="login-func-btn pointer">{{$t('login.register')}}</div> | ||
133 | </div> | ||
134 | </template> | ||
135 | </div> | ||
136 | |||
137 | <!-- OTP登陆 --> | ||
138 | <div v-if="type == 2" class="login"> | ||
139 | <div class="login-tit"> | ||
140 | <img v-if="locale == 'zh'" src="@/assets/images/login/login-tit-zh.png"> | ||
141 | <img v-if="locale == 'tc'" src="@/assets/images/login/login-tit-tc.png"> | ||
142 | <img v-if="locale == 'en'" class="img-en" src="@/assets/images/login/login-tit-en.png"> | ||
143 | </div> | ||
144 | <div class="login-nav"> | ||
145 | <div @click="onLoginTypeHandler(1)" class="login-nav-tit text-r pointer"> {{$t('login.loginType1')}}</div> | ||
146 | <div class="login-nav-v-line"></div> | ||
147 | <div @click="onLoginTypeHandler(2)" class="login-nav-tit pointer active"> {{$t('login.loginType2')}}</div> | ||
148 | </div> | ||
149 | <div class="gird-g form"> | ||
150 | |||
151 | <!-- <div class="pure-u-1 form-item"> | ||
150 | <div class="ipt-wrap"> | 152 | <div class="ipt-wrap"> |
151 | <img class="down-arrow" src="@/assets/images/reservation/re-down-arrow.png" alt=""> | 153 | <img class="down-arrow" src="@/assets/images/reservation/re-down-arrow.png" alt=""> |
152 | <select class="ipt" v-model="mobileNoType"> | 154 | <select class="ipt" v-model="mobileNoType"> |
... | @@ -154,27 +156,27 @@ | ... | @@ -154,27 +156,27 @@ |
154 | </select> | 156 | </select> |
155 | </div> | 157 | </div> |
156 | </div> --> | 158 | </div> --> |
157 | <div class="pure-u-1 form-item"> | 159 | <div class="pure-u-1 form-item"> |
158 | <div class="label"> | 160 | <div class="label"> |
159 | <img src="@/assets/images/login/icon-login-phone.png"> {{$t('login.mobile')}} | 161 | <img src="@/assets/images/login/icon-login-phone.png"> {{$t('login.mobile')}} |
160 | </div> | 162 | </div> |
161 | <div class="ipt-wrap"> | 163 | <div class="ipt-wrap"> |
162 | <div class="region-tel ipt-wrap"> | 164 | <div class="region-tel ipt-wrap"> |
163 | <img class="down-arrow" src="@/assets/images/reservation/re-down-arrow.png" alt=""> | 165 | <img class="down-arrow" src="@/assets/images/reservation/re-down-arrow.png" alt=""> |
164 | <el-select class="ipt" v-model="mobileNoType"> | 166 | <el-select class="ipt" v-model="mobileNoType"> |
165 | <el-option v-for="(item,index) in mobileOptions" :key="index" :value="item.type" :label="item.areaCode"></el-option> | 167 | <el-option v-for="(item,index) in mobileOptions" :key="index" :value="item.type" :label="item.areaCode"></el-option> |
166 | </el-select> | 168 | </el-select> |
167 | </div> | 169 | </div> |
168 | 170 | ||
169 | <div class="ipt ipt2" :class="{err : errorTips.oe1.length > 0}"> | 171 | <div class="ipt ipt2" :class="{err : errorTips.oe1.length > 0}"> |
170 | <input :placeholder="mobileTip.placeHolder" class="ipt-tel" type="text" :class="{ err : errorTips.oe1.length > 0 }" v-model="loginForm.mobileNo"> | 172 | <input :placeholder="mobileTip.placeHolder" class="ipt-tel" type="text" :class="{ err : errorTips.oe1.length > 0 }" v-model="loginForm.mobileNo"> |
171 | </div> | 173 | </div> |
172 | </div> | 174 | </div> |
173 | <div class="validator" v-if="errorTips.oe1.length > 0 "> | 175 | <div class="validator" v-if="errorTips.oe1.length > 0 "> |
174 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.oe1}} | 176 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.oe1}} |
175 | </div> | 177 | </div> |
176 | </div> | 178 | </div> |
177 | <!-- <div class="pure-u-1 form-item"> | 179 | <!-- <div class="pure-u-1 form-item"> |
178 | <div class="label"> | 180 | <div class="label"> |
179 | <img src="@/assets/images/login/icon-login-phone.png"> {{$t('login.mobile')}} | 181 | <img src="@/assets/images/login/icon-login-phone.png"> {{$t('login.mobile')}} |
180 | </div> | 182 | </div> |
... | @@ -185,89 +187,89 @@ | ... | @@ -185,89 +187,89 @@ |
185 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.oe1}} | 187 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.oe1}} |
186 | </div> | 188 | </div> |
187 | </div> --> | 189 | </div> --> |
188 | <div class="pure-u-1 form-item" v-if="type == 2 && loginCheck.showImageCode"> | 190 | <div class="pure-u-1 form-item" v-if="type == 2 && loginCheck.showImageCode"> |
189 | <div class="ipt-wrap"> | 191 | <div class="ipt-wrap"> |
190 | <input :placeholder="$t('login.verifyPlaceholder')" class="ipt ipt-verify" :class="{ err : errorTips.oe3.length > 0 }" type="text" v-model="loginForm.imageValue"> | 192 | <input :placeholder="$t('login.verifyPlaceholder')" class="ipt ipt-verify" :class="{ err : errorTips.oe3.length > 0 }" type="text" v-model="loginForm.imageValue"> |
191 | <div class="ipt verify-btn pointer vcode" @click="handlerRefreshImageValue"> | 193 | <div class="ipt verify-btn pointer vcode" @click="handlerRefreshImageValue"> |
192 | <img :src="values.imageBase64"> | 194 | <img :src="values.imageBase64"> |
193 | </div> | 195 | </div> |
194 | </div> | 196 | </div> |
195 | <div class="validator" v-if="errorTips.oe3.length > 0 "> | 197 | <div class="validator" v-if="errorTips.oe3.length > 0 "> |
196 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.oe3}} | 198 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.oe3}} |
197 | </div> | 199 | </div> |
198 | </div> | 200 | </div> |
199 | <div class="pure-u-1 form-item"> | 201 | <div class="pure-u-1 form-item"> |
200 | <div class="label"> | 202 | <div class="label"> |
201 | <img src="@/assets/images/login/icon-login-message.png"> {{$t('login.verifyCode')}} | 203 | <img src="@/assets/images/login/icon-login-message.png"> {{$t('login.verifyCode')}} |
202 | </div> | 204 | </div> |
203 | <div class="ipt-wrap"> | 205 | <div class="ipt-wrap"> |
204 | <div class="ipt ipt2" :class="{ err : errorTips.oe2.length > 0 }"> | 206 | <div class="ipt ipt2" :class="{ err : errorTips.oe2.length > 0 }"> |
205 | <input :placeholder="$t('login.verifyCodePlaceholder')" class="ipt-code" type="text" v-model="loginForm.otp"> | 207 | <input :placeholder="$t('login.verifyCodePlaceholder')" class="ipt-code" type="text" v-model="loginForm.otp"> |
206 | <div v-if="times.remain == 0" class="veri-btn pointer" @click="handlerStdSendOTP">{{$t('register.verifyCodeGet')}}</div> | 208 | <div v-if="times.remain == 0" class="veri-btn pointer" @click="handlerStdSendOTP">{{$t('register.verifyCodeGet')}}</div> |
207 | <div v-else class="veri-btn-default">{{times.tip}}</div> | 209 | <div v-else class="veri-btn-default">{{times.tip}}</div> |
208 | </div> | 210 | </div> |
209 | </div> | 211 | </div> |
210 | <div class="validator" v-if="errorTips.oe2.length > 0 "> | 212 | <div class="validator" v-if="errorTips.oe2.length > 0 "> |
211 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.oe2}} | 213 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.oe2}} |
212 | </div> | 214 | </div> |
213 | </div> | 215 | </div> |
214 | </div> | 216 | </div> |
215 | <div class="login-protocol pointer" @click="loginCheck.agreeProtocol = !loginCheck.agreeProtocol"> | 217 | <div class="login-protocol pointer" @click="loginCheck.agreeProtocol = !loginCheck.agreeProtocol"> |
216 | <img v-if="!loginCheck.agreeProtocol" class="check" src="@/assets/images/login/uncheck.png"> | 218 | <img v-if="!loginCheck.agreeProtocol" class="check" src="@/assets/images/login/uncheck.png"> |
217 | <img v-if="loginCheck.agreeProtocol" class="check" src="@/assets/images/login/check.png"> {{$t('login.agree')}} | 219 | <img v-if="loginCheck.agreeProtocol" class="check" src="@/assets/images/login/check.png"> {{$t('login.agree')}} |
218 | <span @click="onProtocolHandler()" class="protocol pointer">{{$t('login.protocol')}}</span> | 220 | <span @click="onProtocolHandler()" class="protocol pointer">{{$t('login.protocol')}}</span> |
219 | </div> | 221 | </div> |
220 | <div @click="handlerLogin()" class="login-submit pointer flex-center" :class="{disabled: otpLoginDisabled}"> | 222 | <div @click="handlerLogin()" class="login-submit pointer flex-center" :class="{disabled: otpLoginDisabled}"> |
221 | <van-loading v-if="loading" /> | 223 | <van-loading v-if="loading" /> |
222 | <span>{{$t('login.login')}}</span> | 224 | <span>{{$t('login.login')}}</span> |
223 | </div> | 225 | </div> |
224 | <div class="login-func"> | 226 | <div class="login-func"> |
225 | <div @click="toRegisterPage()" class="login-func-btn pointer">{{$t('login.register')}}</div> | 227 | <div @click="toRegisterPage()" class="login-func-btn pointer">{{$t('login.register')}}</div> |
226 | <div @click="onForgetHandler()" class="login-func-btn pointer">{{$t('login.forget')}}</div> | 228 | <div @click="onForgetHandler()" class="login-func-btn pointer">{{$t('login.forget')}}</div> |
227 | </div> | 229 | </div> |
228 | </div> | 230 | </div> |
229 | 231 | ||
230 | <!----> | 232 | <!----> |
231 | <div v-if="type == 3" class="login"> | 233 | <div v-if="type == 3" class="login"> |
232 | <!-- <div class="login-tit"> | 234 | <!-- <div class="login-tit"> |
233 | <img v-if="locale == 'zh'" src="@/assets/images/login/login-tit-zh.png"> | 235 | <img v-if="locale == 'zh'" src="@/assets/images/login/login-tit-zh.png"> |
234 | <img v-if="locale == 'tc'" src="@/assets/images/login/login-tit-tc.png"> | 236 | <img v-if="locale == 'tc'" src="@/assets/images/login/login-tit-tc.png"> |
235 | <img v-if="locale == 'en'" class="img-en" src="@/assets/images/login/login-tit-en.png"> | 237 | <img v-if="locale == 'en'" class="img-en" src="@/assets/images/login/login-tit-en.png"> |
236 | </div> --> | 238 | </div> --> |
237 | 239 | ||
238 | <div class="login-tit2">{{$t('register.title2')}}</div> | 240 | <div class="login-tit2">{{$t('register.title2')}}</div> |
239 | <div class="gird-g form"> | 241 | <div class="gird-g form"> |
240 | <div class="pure-u-1 form-item"> | 242 | <div class="pure-u-1 form-item"> |
241 | <div class="label"> | 243 | <div class="label"> |
242 | <img src="@/assets/images/register/icon-register-lock.png"> {{$t('register.newPassword')}} | 244 | <img src="@/assets/images/register/icon-register-lock.png"> {{$t('register.newPassword')}} |
243 | </div> | 245 | </div> |
244 | <div class="ipt-wrap"> | 246 | <div class="ipt-wrap"> |
245 | <input :placeholder="$t('register.newPasswordPlaceholder')" class="ipt" type="password" v-model="values.password"> | 247 | <input :placeholder="$t('register.newPasswordPlaceholder')" class="ipt" type="password" v-model="values.password"> |
246 | </div> | 248 | </div> |
247 | <div class="validator" v-if="errorTips.p4.length > 0 "> | 249 | <div class="validator" v-if="errorTips.p4.length > 0 "> |
248 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.p4}} | 250 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.p4}} |
249 | </div> | 251 | </div> |
250 | </div> | 252 | </div> |
251 | <div class="pure-u-1 form-item"> | 253 | <div class="pure-u-1 form-item"> |
252 | <div class="label"> | 254 | <div class="label"> |
253 | <img src="@/assets/images/register/icon-register-lock.png"> {{$t('register.newPasswordSure')}} | 255 | <img src="@/assets/images/register/icon-register-lock.png"> {{$t('register.newPasswordSure')}} |
254 | </div> | 256 | </div> |
255 | <div class="ipt-wrap"> | 257 | <div class="ipt-wrap"> |
256 | <input :placeholder="$t('register.newPasswordSurePlaceholder')" class="ipt" type="password" v-model="values.passwordRepeat"> | 258 | <input :placeholder="$t('register.newPasswordSurePlaceholder')" class="ipt" type="password" v-model="values.passwordRepeat"> |
257 | </div> | 259 | </div> |
258 | <div class="validator" v-if="errorTips.p5.length > 0 "> | 260 | <div class="validator" v-if="errorTips.p5.length > 0 "> |
259 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.p5}} | 261 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.p5}} |
260 | </div> | 262 | </div> |
261 | </div> | 263 | </div> |
262 | </div> | 264 | </div> |
263 | <div @click="onRegisterHandler()" class="login-submit pointer flex-center" :class="{disabled: submitDisabled}"> | 265 | <div @click="onRegisterHandler()" class="login-submit pointer flex-center" :class="{disabled: submitDisabled}"> |
264 | <van-loading v-if="loading" /> | 266 | <van-loading v-if="loading" /> |
265 | <span>{{$t('register.sure')}}</span> | 267 | <span>{{$t('register.sure')}}</span> |
266 | </div> | 268 | </div> |
267 | </div> | 269 | </div> |
268 | </div> | 270 | </div> |
269 | </div> | 271 | </div> |
270 | </div> | 272 | </div> |
271 | </template> | 273 | </template> |
272 | 274 | ||
273 | <script src="./login.js"></script> | 275 | <script src="./login.js"></script> | ... | ... |
... | @@ -2,32 +2,28 @@ | ... | @@ -2,32 +2,28 @@ |
2 | * 页面描述:用户注册 | 2 | * 页面描述:用户注册 |
3 | */ | 3 | */ |
4 | 4 | ||
5 | |||
6 | import { mapState } from "vuex"; | 5 | import { mapState } from "vuex"; |
7 | 6 | ||
8 | import api from '@/api/api' | 7 | import api from "@/api/api"; |
9 | import { | 8 | import { httpGet, httpPost } from "@/api/fetch-api.js"; |
10 | httpGet, | ||
11 | httpPost | ||
12 | } from '@/api/fetch-api.js' | ||
13 | 9 | ||
14 | import { contactMethodCheck, checkVerifyCode } from '@utils/utils.js'; | 10 | import { contactMethodCheck, checkVerifyCode } from "@utils/utils.js"; |
15 | 11 | ||
16 | import modalComp from '@/components/modal-comp/modal-comp.vue'; | 12 | import modalComp from "@/components/modal-comp/modal-comp.vue"; |
17 | import modalSimpleComp from '@/components/modal-simple-comp/modal-simple-comp.vue'; | 13 | import modalSimpleComp from "@/components/modal-simple-comp/modal-simple-comp.vue"; |
18 | import modalProtocolComp from '@/components/modal-protocol-comp/modal-protocol-comp.vue'; | 14 | import modalProtocolComp from "@/components/modal-protocol-comp/modal-protocol-comp.vue"; |
19 | import { passwordEncrypt } from '@/utils/encrypt.js'; | 15 | import { passwordEncrypt } from "@/utils/encrypt.js"; |
20 | import Vue from 'vue'; | 16 | import Vue from "vue"; |
21 | import { Loading } from 'vant'; | 17 | import { Loading } from "vant"; |
22 | Vue.use(Loading); | 18 | Vue.use(Loading); |
23 | 19 | ||
24 | export default { | 20 | export default { |
25 | data() { | 21 | data() { |
26 | return { | 22 | return { |
27 | loading: false, | 23 | loading: false, |
28 | key: 'value', | 24 | key: "value", |
29 | type: 1, // 1:手机验证 2:输入密码 | 25 | type: 1, // 1:手机验证 2:输入密码 |
30 | mobileNoType: "hk",// 选择的手机好类型 | 26 | mobileNoType: "hk", // 选择的手机好类型 |
31 | mobileTip: {}, | 27 | mobileTip: {}, |
32 | mobileOptions: [], | 28 | mobileOptions: [], |
33 | 29 | ||
... | @@ -47,7 +43,8 @@ export default { | ... | @@ -47,7 +43,8 @@ export default { |
47 | registerForm: { | 43 | registerForm: { |
48 | imageValue: "", | 44 | imageValue: "", |
49 | mobileNo: "", | 45 | mobileNo: "", |
50 | otp: "" | 46 | otp: "", |
47 | userId: "" | ||
51 | }, | 48 | }, |
52 | times: { | 49 | times: { |
53 | interval: 0, // 索引 | 50 | interval: 0, // 索引 |
... | @@ -56,11 +53,24 @@ export default { | ... | @@ -56,11 +53,24 @@ export default { |
56 | }, | 53 | }, |
57 | 54 | ||
58 | errorTips: { | 55 | errorTips: { |
59 | p1: "",// 手機號 | 56 | p1: "", // 手機號 |
60 | p2: "",// 短信驗證碼 | 57 | p2: "", // 短信驗證碼 |
61 | p3: "",// 圖像驗證碼 | 58 | p3: "", // 圖像驗證碼 |
62 | p4: "",// 密碼 | 59 | p4: "", // 密碼 |
63 | p5: "",// 確認密碼 | 60 | p5: "", // 確認密碼 |
61 | |||
62 | // 账密登录页 | ||
63 | e1: "", // 账号 | ||
64 | e2: "", // 密码 | ||
65 | e3: "", // 图像验证码 | ||
66 | e4: "", // 勾选同意 | ||
67 | // 短信验证码 | ||
68 | oe1: "", // 账号 | ||
69 | oe2: "", // 短信验证码 | ||
70 | oe3: "", // 图像验证码 | ||
71 | // 注册 | ||
72 | p4: "", | ||
73 | p5: "" | ||
64 | }, | 74 | }, |
65 | modalSimpleVisiable: false, | 75 | modalSimpleVisiable: false, |
66 | modalVisiable: false, | 76 | modalVisiable: false, |
... | @@ -68,7 +78,7 @@ export default { | ... | @@ -68,7 +78,7 @@ export default { |
68 | targetPath: "", | 78 | targetPath: "", |
69 | modalIcon: "succ", | 79 | modalIcon: "succ", |
70 | modalContent: "" | 80 | modalContent: "" |
71 | } | 81 | }; |
72 | }, | 82 | }, |
73 | components: { | 83 | components: { |
74 | modalComp, | 84 | modalComp, |
... | @@ -80,10 +90,12 @@ export default { | ... | @@ -80,10 +90,12 @@ export default { |
80 | userInfo: state => state.userInfo | 90 | userInfo: state => state.userInfo |
81 | }), | 91 | }), |
82 | locale() { | 92 | locale() { |
83 | return this.$i18n.locale || 'tc'; | 93 | return this.$i18n.locale || "tc"; |
84 | }, | 94 | }, |
85 | i18n() { | 95 | i18n() { |
86 | return this.$i18n.messages && this.$i18n.locale ? this.$i18n.messages[this.$i18n.locale] : {}; | 96 | return this.$i18n.messages && this.$i18n.locale |
97 | ? this.$i18n.messages[this.$i18n.locale] | ||
98 | : {}; | ||
87 | }, | 99 | }, |
88 | registerDisabled() { | 100 | registerDisabled() { |
89 | let b1 = !this.registerCheck.agreeProtocol; | 101 | let b1 = !this.registerCheck.agreeProtocol; |
... | @@ -93,16 +105,23 @@ export default { | ... | @@ -93,16 +105,23 @@ export default { |
93 | return b1 || b2 || b3 || b4; | 105 | return b1 || b2 || b3 || b4; |
94 | }, | 106 | }, |
95 | registerDisabledV2() { | 107 | registerDisabledV2() { |
96 | let b1 = !this.values.password || this.checkPassword(this.values.password) ? true : false; | 108 | let b1 = |
97 | let b2 = this.values.passwordRepeat != this.values.password ? true : false; | 109 | !this.values.password || this.checkPassword(this.values.password) |
110 | ? true | ||
111 | : false; | ||
112 | let b2 = | ||
113 | this.values.passwordRepeat != this.values.password ? true : false; | ||
98 | let b3 = !this.registerCheck.agreeProtocol; | 114 | let b3 = !this.registerCheck.agreeProtocol; |
99 | let b4 = !this.registerForm.mobileNo ? true : false; | 115 | let b4 = !this.registerForm.mobileNo ? true : false; |
100 | return b1 || b2 || b3 || b4; | 116 | return b1 || b2 || b3 || b4; |
101 | |||
102 | }, | 117 | }, |
103 | submitDisabled() { | 118 | submitDisabled() { |
104 | let b1 = !this.values.password || this.checkPassword(this.values.password) ? true : false; | 119 | let b1 = |
105 | let b2 = this.values.passwordRepeat != this.values.password ? true : false; | 120 | !this.values.password || this.checkPassword(this.values.password) |
121 | ? true | ||
122 | : false; | ||
123 | let b2 = | ||
124 | this.values.passwordRepeat != this.values.password ? true : false; | ||
106 | return b1 || b2; | 125 | return b1 || b2; |
107 | }, | 126 | }, |
108 | oneAccountCenterOff() { | 127 | oneAccountCenterOff() { |
... | @@ -152,13 +171,13 @@ export default { | ... | @@ -152,13 +171,13 @@ export default { |
152 | return new Promise((resolve, reject) => { | 171 | return new Promise((resolve, reject) => { |
153 | let mobile = this.registerForm.mobileNo; | 172 | let mobile = this.registerForm.mobileNo; |
154 | if (this.mobileNoType == "hk") { | 173 | if (this.mobileNoType == "hk") { |
155 | if (!contactMethodCheck('hkmobile', mobile)) { | 174 | if (!contactMethodCheck("hkmobile", mobile)) { |
156 | this._showMobileNoIllegalTip() | 175 | this._showMobileNoIllegalTip(); |
157 | return; | 176 | return; |
158 | } | 177 | } |
159 | } else { | 178 | } else { |
160 | if (!contactMethodCheck('mobile', mobile)) { | 179 | if (!contactMethodCheck("mobile", mobile)) { |
161 | this._showMobileNoIllegalTip() | 180 | this._showMobileNoIllegalTip(); |
162 | return; | 181 | return; |
163 | } | 182 | } |
164 | } | 183 | } |
... | @@ -167,7 +186,6 @@ export default { | ... | @@ -167,7 +186,6 @@ export default { |
167 | }, | 186 | }, |
168 | _handlerIsShowImageVcode() { | 187 | _handlerIsShowImageVcode() { |
169 | return new Promise((resolve, reject) => { | 188 | return new Promise((resolve, reject) => { |
170 | |||
171 | // 如果这个值不为空,标识出现了图片验证码,不需要重新询问是否需要图像验证码了 | 189 | // 如果这个值不为空,标识出现了图片验证码,不需要重新询问是否需要图像验证码了 |
172 | if (this.values.vcodeuuid) { | 190 | if (this.values.vcodeuuid) { |
173 | resolve(); | 191 | resolve(); |
... | @@ -201,7 +219,7 @@ export default { | ... | @@ -201,7 +219,7 @@ export default { |
201 | } | 219 | } |
202 | } | 220 | } |
203 | return false; | 221 | return false; |
204 | }) | 222 | }); |
205 | }); | 223 | }); |
206 | }, | 224 | }, |
207 | _showMobileNoIllegalTip() { | 225 | _showMobileNoIllegalTip() { |
... | @@ -215,8 +233,8 @@ export default { | ... | @@ -215,8 +233,8 @@ export default { |
215 | mobileNo: this.registerForm.mobileNo, | 233 | mobileNo: this.registerForm.mobileNo, |
216 | token: this.values.token, | 234 | token: this.values.token, |
217 | signFactor: new Date().getTime(), | 235 | signFactor: new Date().getTime(), |
218 | scene: "register", | 236 | scene: "register" |
219 | } | 237 | }; |
220 | if (this.values.vcodeuuid) { | 238 | if (this.values.vcodeuuid) { |
221 | data["vcodeuuid"] = this.values.vcodeuuid; | 239 | data["vcodeuuid"] = this.values.vcodeuuid; |
222 | data["imageValue"] = this.registerForm.imageValue; | 240 | data["imageValue"] = this.registerForm.imageValue; |
... | @@ -230,7 +248,7 @@ export default { | ... | @@ -230,7 +248,7 @@ export default { |
230 | default: | 248 | default: |
231 | this.errorTips.p2 = response.returnMsg; | 249 | this.errorTips.p2 = response.returnMsg; |
232 | break; | 250 | break; |
233 | }; | 251 | } |
234 | }); | 252 | }); |
235 | }, | 253 | }, |
236 | _startTimeClick() { | 254 | _startTimeClick() { |
... | @@ -239,7 +257,7 @@ export default { | ... | @@ -239,7 +257,7 @@ export default { |
239 | let i18n = this.$i18n.messages[this.$i18n.locale] || {}; | 257 | let i18n = this.$i18n.messages[this.$i18n.locale] || {}; |
240 | let msg = i18n.register.coutTips; | 258 | let msg = i18n.register.coutTips; |
241 | _this.times.tip = msg.replace("{second}", _this.times.remain); | 259 | _this.times.tip = msg.replace("{second}", _this.times.remain); |
242 | this.times.interval = setInterval(function () { | 260 | this.times.interval = setInterval(function() { |
243 | if (_this.times.remain <= 0) { | 261 | if (_this.times.remain <= 0) { |
244 | clearInterval(_this.times.interval); | 262 | clearInterval(_this.times.interval); |
245 | _this.times.interval = 0; | 263 | _this.times.interval = 0; |
... | @@ -248,7 +266,7 @@ export default { | ... | @@ -248,7 +266,7 @@ export default { |
248 | } | 266 | } |
249 | _this.times.remain--; | 267 | _this.times.remain--; |
250 | _this.times.tip = msg.replace("{second}", _this.times.remain); | 268 | _this.times.tip = msg.replace("{second}", _this.times.remain); |
251 | _this.$set(_this, 'times', _this.times); | 269 | _this.$set(_this, "times", _this.times); |
252 | }, 1000); | 270 | }, 1000); |
253 | }, | 271 | }, |
254 | onSubmitHandler() { | 272 | onSubmitHandler() { |
... | @@ -258,17 +276,21 @@ export default { | ... | @@ -258,17 +276,21 @@ export default { |
258 | } | 276 | } |
259 | this._checkParams().then(() => { | 277 | this._checkParams().then(() => { |
260 | this.loading = true; | 278 | this.loading = true; |
261 | this._regCheck().then(() => { | 279 | this._regCheck() |
262 | // 验证短信验证码 | 280 | .then(() => { |
263 | this._validateOTPandRepeat().then(() => { | 281 | // 验证短信验证码 |
264 | this.loading = false; | 282 | this._validateOTPandRepeat() |
265 | this.type = 2; | 283 | .then(() => { |
266 | }).catch(e => { | 284 | this.loading = false; |
285 | this.type = 2; | ||
286 | }) | ||
287 | .catch(e => { | ||
288 | this.loading = false; | ||
289 | }); | ||
290 | }) | ||
291 | .catch(e => { | ||
267 | this.loading = false; | 292 | this.loading = false; |
268 | }); | 293 | }); |
269 | }).catch(e => { | ||
270 | this.loading = false; | ||
271 | }); | ||
272 | }); | 294 | }); |
273 | }, | 295 | }, |
274 | checkMobileActivity() { | 296 | checkMobileActivity() { |
... | @@ -289,24 +311,26 @@ export default { | ... | @@ -289,24 +311,26 @@ export default { |
289 | let data = { | 311 | let data = { |
290 | account: this.registerForm.mobileNo, | 312 | account: this.registerForm.mobileNo, |
291 | password: this.values.password | 313 | password: this.values.password |
292 | } | 314 | }; |
293 | this.loading = true; | 315 | this.loading = true; |
294 | httpPost({ | 316 | httpPost({ |
295 | url: api.doRegisterV2, | 317 | url: api.doRegisterV2, |
296 | data: data | 318 | data: data |
297 | }).then(res => { | ||
298 | this.loading = false; | ||
299 | this.$store.commit("SET_USER_INFO", res); | ||
300 | this._showSuccessMessage(); | ||
301 | }).catch(e => { | ||
302 | this.loading = false; | ||
303 | switch (e.code) { | ||
304 | case 1103: | ||
305 | let message = this.i18n.register.tips.e5; | ||
306 | this.errorTips.p1 = message; | ||
307 | break; | ||
308 | } | ||
309 | }) | 319 | }) |
320 | .then(res => { | ||
321 | this.loading = false; | ||
322 | this.$store.commit("SET_USER_INFO", res); | ||
323 | this._showSuccessMessage(); | ||
324 | }) | ||
325 | .catch(e => { | ||
326 | this.loading = false; | ||
327 | switch (e.code) { | ||
328 | case 1103: | ||
329 | let message = this.i18n.register.tips.e5; | ||
330 | this.errorTips.p1 = message; | ||
331 | break; | ||
332 | } | ||
333 | }); | ||
310 | }); | 334 | }); |
311 | }, | 335 | }, |
312 | _validateOTPandRepeat() { | 336 | _validateOTPandRepeat() { |
... | @@ -320,52 +344,56 @@ export default { | ... | @@ -320,52 +344,56 @@ export default { |
320 | httpPost({ | 344 | httpPost({ |
321 | url: api.stdValidateOTPandRepeat, | 345 | url: api.stdValidateOTPandRepeat, |
322 | data: data | 346 | data: data |
323 | }).then(response => { | 347 | }) |
324 | if (response.returnCode != "0") { | 348 | .then(response => { |
325 | switch (response.returnCode) { | 349 | if (response.returnCode != "0") { |
326 | case "SMS_ERROR_006": | 350 | switch (response.returnCode) { |
327 | this._showOTPTip(); | 351 | case "SMS_ERROR_006": |
328 | break; | 352 | this._showOTPTip(); |
329 | default: | 353 | break; |
330 | this._showCheckOTPErrTip(response.returnMsg); | 354 | default: |
331 | break; | 355 | this._showCheckOTPErrTip(response.returnMsg); |
356 | break; | ||
357 | } | ||
358 | reject(); | ||
359 | } else { | ||
360 | // this.type = 2; | ||
361 | resolve(); | ||
332 | } | 362 | } |
363 | }) | ||
364 | .catch(err => { | ||
333 | reject(); | 365 | reject(); |
334 | } else { | 366 | }); |
335 | // this.type = 2; | ||
336 | resolve(); | ||
337 | } | ||
338 | }).catch(err => { | ||
339 | reject(); | ||
340 | }) | ||
341 | }); | 367 | }); |
342 | }, | 368 | }, |
343 | _regCheck() { | 369 | _regCheck() { |
344 | // 检测手机号注册情况 | 370 | // 检测手机号注册情况 |
345 | return new Promise((resolve, reject) => { | 371 | return new Promise((resolve, reject) => { |
346 | let data = { | 372 | let data = { |
347 | mobileNo: this.registerForm.mobileNo, | 373 | mobileNo: this.registerForm.mobileNo |
348 | }; | 374 | }; |
349 | httpPost({ | 375 | httpPost({ |
350 | url: api.gsRegCheck, | 376 | url: api.gsRegCheck, |
351 | data: data | 377 | data: data |
352 | }).then(response => { | 378 | }) |
353 | if (response.returnCode == "0") { | 379 | .then(response => { |
354 | if (response.data.mobileStatus == "N") { | 380 | if (response.returnCode == "0") { |
355 | resolve(); | 381 | if (response.data.mobileStatus == "N") { |
382 | resolve(); | ||
383 | } else { | ||
384 | // 重复注册 | ||
385 | this._showDuplicateRegistrationTip(); | ||
386 | reject(); | ||
387 | } | ||
356 | } else { | 388 | } else { |
357 | // 重复注册 | 389 | // 错误提示 |
358 | this._showDuplicateRegistrationTip(); | 390 | this._showCheckOTPErrTip(response.returnMsg); |
359 | reject(); | 391 | reject(); |
360 | } | 392 | } |
361 | } else { | 393 | }) |
362 | // 错误提示 | 394 | .catch(err => { |
363 | this._showCheckOTPErrTip(response.returnMsg); | ||
364 | reject(); | 395 | reject(); |
365 | } | 396 | }); |
366 | }).catch(err => { | ||
367 | reject(); | ||
368 | }) | ||
369 | }); | 397 | }); |
370 | }, | 398 | }, |
371 | _checkParams() { | 399 | _checkParams() { |
... | @@ -388,7 +416,7 @@ export default { | ... | @@ -388,7 +416,7 @@ export default { |
388 | return; | 416 | return; |
389 | } | 417 | } |
390 | resolve(); | 418 | resolve(); |
391 | }) | 419 | }); |
392 | }); | 420 | }); |
393 | }, | 421 | }, |
394 | 422 | ||
... | @@ -446,18 +474,20 @@ export default { | ... | @@ -446,18 +474,20 @@ export default { |
446 | httpPost({ | 474 | httpPost({ |
447 | url: api.stdRegister, | 475 | url: api.stdRegister, |
448 | data: data | 476 | data: data |
449 | }).then(response => { | ||
450 | this.loading = false; | ||
451 | if (response.returnCode != 0) { | ||
452 | this._showRegisterFailure(response); | ||
453 | this.type = 1; | ||
454 | } else { | ||
455 | this.$store.commit("SET_USER_INFO", response.data); | ||
456 | this._showSuccessMessage(); | ||
457 | } | ||
458 | }).catch(e => { | ||
459 | this.loading = false; | ||
460 | }) | 477 | }) |
478 | .then(response => { | ||
479 | this.loading = false; | ||
480 | if (response.returnCode != 0) { | ||
481 | this._showRegisterFailure(response); | ||
482 | this.type = 1; | ||
483 | } else { | ||
484 | this.$store.commit("SET_USER_INFO", response.data); | ||
485 | this._showSuccessMessage(); | ||
486 | } | ||
487 | }) | ||
488 | .catch(e => { | ||
489 | this.loading = false; | ||
490 | }); | ||
461 | } | 491 | } |
462 | }, | 492 | }, |
463 | checkPassword(password) { | 493 | checkPassword(password) { |
... | @@ -534,13 +564,13 @@ export default { | ... | @@ -534,13 +564,13 @@ export default { |
534 | if (this.values.vcodeuuid) { | 564 | if (this.values.vcodeuuid) { |
535 | let data = { | 565 | let data = { |
536 | vcodeuuid: this.values.vcodeuuid | 566 | vcodeuuid: this.values.vcodeuuid |
537 | } | 567 | }; |
538 | httpPost({ | 568 | httpPost({ |
539 | url: api.stdRefreshVcode, | 569 | url: api.stdRefreshVcode, |
540 | data: data | 570 | data: data |
541 | }).then(response => { | 571 | }).then(response => { |
542 | this.$set(this.values, 'imageBase64', response.data.image); | 572 | this.$set(this.values, "imageBase64", response.data.image); |
543 | }) | 573 | }); |
544 | } | 574 | } |
545 | }, | 575 | }, |
546 | _showSuccessMessage() { | 576 | _showSuccessMessage() { |
... | @@ -552,12 +582,8 @@ export default { | ... | @@ -552,12 +582,8 @@ export default { |
552 | // }); | 582 | // }); |
553 | // alert("注册成功") | 583 | // alert("注册成功") |
554 | }, | 584 | }, |
555 | onForgetHandler() { | 585 | onForgetHandler() {}, |
556 | 586 | onLoginTypeHandler(val) {}, | |
557 | }, | ||
558 | onLoginTypeHandler(val) { | ||
559 | |||
560 | }, | ||
561 | initData() { | 587 | initData() { |
562 | if (this.userInfo && (this.userInfo.sid || this.userInfo.name)) { | 588 | if (this.userInfo && (this.userInfo.sid || this.userInfo.name)) { |
563 | this.$router.push({ | 589 | this.$router.push({ |
... | @@ -566,7 +592,9 @@ export default { | ... | @@ -566,7 +592,9 @@ export default { |
566 | return; | 592 | return; |
567 | } | 593 | } |
568 | let i18n = this.$i18n.messages[this.$i18n.locale] || {}; | 594 | let i18n = this.$i18n.messages[this.$i18n.locale] || {}; |
569 | let mobileOptions = JSON.parse(JSON.stringify(i18n.register.mobileOptions)); | 595 | let mobileOptions = JSON.parse( |
596 | JSON.stringify(i18n.register.mobileOptions) | ||
597 | ); | ||
570 | this.mobileOptions = mobileOptions; | 598 | this.mobileOptions = mobileOptions; |
571 | this.mobileTip = this.mobileOptions[0]; | 599 | this.mobileTip = this.mobileOptions[0]; |
572 | }, | 600 | }, |
... | @@ -574,7 +602,7 @@ export default { | ... | @@ -574,7 +602,7 @@ export default { |
574 | this.modalVisiable = false; | 602 | this.modalVisiable = false; |
575 | if (this.targetPath) { | 603 | if (this.targetPath) { |
576 | this.$router.push({ | 604 | this.$router.push({ |
577 | "path": this.targetPath | 605 | path: this.targetPath |
578 | }); | 606 | }); |
579 | } | 607 | } |
580 | } | 608 | } |
... | @@ -587,47 +615,44 @@ export default { | ... | @@ -587,47 +615,44 @@ export default { |
587 | this.mobileOptions.forEach(element => { | 615 | this.mobileOptions.forEach(element => { |
588 | // this.errorTips.p1 = ""; | 616 | // this.errorTips.p1 = ""; |
589 | if (element.type == this.mobileNoType) { | 617 | if (element.type == this.mobileNoType) { |
590 | this.$set(this, 'mobileTip', element); | 618 | this.$set(this, "mobileTip", element); |
591 | this.checkMobileActivity(); | 619 | this.checkMobileActivity(); |
592 | } | 620 | } |
593 | }) | 621 | }); |
594 | }, | 622 | }, |
595 | 'registerForm.mobileNo': function () { | 623 | "registerForm.mobileNo": function() { |
596 | this.errorTips.p1 = ""; | 624 | this.errorTips.p1 = ""; |
597 | }, | 625 | }, |
598 | 'registerForm.opt': function () { | 626 | "registerForm.opt": function() { |
599 | this.errorTips.p2 = ""; | 627 | this.errorTips.p2 = ""; |
600 | }, | 628 | }, |
601 | 'registerForm.imageValue': function () { | 629 | "registerForm.imageValue": function() { |
602 | this.errorTips.p3 = ""; | 630 | this.errorTips.p3 = ""; |
603 | }, | 631 | }, |
604 | 'values.password': function () { | 632 | "values.password": function() { |
605 | this.$set(this.errorTips, 'p4', this.checkPassword(this.values.password)); | 633 | this.$set(this.errorTips, "p4", this.checkPassword(this.values.password)); |
606 | }, | 634 | }, |
607 | 'values.passwordRepeat': function () { | 635 | "values.passwordRepeat": function() { |
608 | if (this.values.password != this.values.passwordRepeat) { | 636 | if (this.values.password != this.values.passwordRepeat) { |
609 | this._showPasswordNotTheSameTips(); | 637 | this._showPasswordNotTheSameTips(); |
610 | } else { | 638 | } else { |
611 | this.errorTips.p5 = ""; | 639 | this.errorTips.p5 = ""; |
612 | } | 640 | } |
613 | }, | 641 | } |
614 | }, | ||
615 | beforeDestroy() { | ||
616 | }, | 642 | }, |
643 | beforeDestroy() {}, | ||
617 | created() { | 644 | created() { |
618 | this.initData(); | 645 | this.initData(); |
619 | try { | 646 | try { |
620 | this.$root.eventBus.$off("/register"); | 647 | this.$root.eventBus.$off("/register"); |
621 | } catch (e) { | 648 | } catch (e) {} |
622 | |||
623 | } | ||
624 | this.$root.eventBus.$on("/register", () => { | 649 | this.$root.eventBus.$on("/register", () => { |
625 | this.type = 1; | 650 | this.type = 1; |
626 | }); | 651 | }); |
627 | this.$root.eventBus.$on("langChange", () => { | 652 | this.$root.eventBus.$on("langChange", () => { |
628 | try { | 653 | try { |
629 | this.initData(); | 654 | this.initData(); |
630 | } catch (e) { } | 655 | } catch (e) {} |
631 | }); | 656 | }); |
632 | } | 657 | } |
633 | } | 658 | }; | ... | ... |
1 | @import '@/styles/_support.scss'; | 1 | @import "@/styles/_support.scss"; |
2 | 2 | ||
3 | .content { | 3 | .content { |
4 | position: relative; | 4 | position: relative; |
... | @@ -21,7 +21,7 @@ | ... | @@ -21,7 +21,7 @@ |
21 | } | 21 | } |
22 | 22 | ||
23 | .ebg { | 23 | .ebg { |
24 | background: url('~@/assets/images/common/login-bg.png') center no-repeat; | 24 | background: url("~@/assets/images/common/login-bg.png") center no-repeat; |
25 | width: 100%; | 25 | width: 100%; |
26 | height: 325px; | 26 | height: 325px; |
27 | position: absolute; | 27 | position: absolute; |
... | @@ -39,7 +39,6 @@ | ... | @@ -39,7 +39,6 @@ |
39 | } | 39 | } |
40 | 40 | ||
41 | .login { | 41 | .login { |
42 | |||
43 | @extend .bb; | 42 | @extend .bb; |
44 | padding: 32px 75px 54px; | 43 | padding: 32px 75px 54px; |
45 | border-bottom: solid 10.8px $cGreen; | 44 | border-bottom: solid 10.8px $cGreen; |
... | @@ -51,8 +50,6 @@ | ... | @@ -51,8 +50,6 @@ |
51 | @extend .box-shadow; | 50 | @extend .box-shadow; |
52 | background-color: #ffffff; | 51 | background-color: #ffffff; |
53 | 52 | ||
54 | |||
55 | |||
56 | &-tit { | 53 | &-tit { |
57 | color: $cOrange; | 54 | color: $cOrange; |
58 | display: flex; | 55 | display: flex; |
... | @@ -70,7 +67,9 @@ | ... | @@ -70,7 +67,9 @@ |
70 | &-tit2 { | 67 | &-tit2 { |
71 | color: $cOrange; | 68 | color: $cOrange; |
72 | text-align: center; | 69 | text-align: center; |
73 | font-size: $fontSizeTitle; | 70 | // font-size: $fontSizeTitle; |
71 | // font-size: $fontSizeTitle-M2; | ||
72 | font-size: $fontSize-M2; | ||
74 | font-weight: bold; | 73 | font-weight: bold; |
75 | text-shadow: 3px 5.2px 9px rgba(236, 100, 41, 0.27); | 74 | text-shadow: 3px 5.2px 9px rgba(236, 100, 41, 0.27); |
76 | margin-top: 24px; | 75 | margin-top: 24px; |
... | @@ -80,7 +79,6 @@ | ... | @@ -80,7 +79,6 @@ |
80 | letter-spacing: 2.4px; | 79 | letter-spacing: 2.4px; |
81 | } | 80 | } |
82 | 81 | ||
83 | |||
84 | &-nav { | 82 | &-nav { |
85 | margin: 32px auto 12px; | 83 | margin: 32px auto 12px; |
86 | display: flex; | 84 | display: flex; |
... | @@ -96,7 +94,9 @@ | ... | @@ -96,7 +94,9 @@ |
96 | 94 | ||
97 | &-tit { | 95 | &-tit { |
98 | flex: 1; | 96 | flex: 1; |
99 | font-size: $fontSizeTitle; | 97 | // font-size: $fontSizeTitle; |
98 | // font-size: $fontSizeTitle-M2; | ||
99 | font-size: $fontSize-M2; | ||
100 | font-weight: bold; | 100 | font-weight: bold; |
101 | } | 101 | } |
102 | 102 | ||
... | @@ -109,12 +109,13 @@ | ... | @@ -109,12 +109,13 @@ |
109 | &-protocol { | 109 | &-protocol { |
110 | margin: 36px auto 0; | 110 | margin: 36px auto 0; |
111 | display: flex; | 111 | display: flex; |
112 | align-items: center; | 112 | // align-items: center; |
113 | // padding-left: 12px; | 113 | // padding-left: 12px; |
114 | 114 | ||
115 | .check { | 115 | .check { |
116 | height: 12px; | 116 | height: 12px; |
117 | margin-right: 7.2px; | 117 | margin-right: 7.2px; |
118 | margin-top: 4px; | ||
118 | } | 119 | } |
119 | 120 | ||
120 | .protocol { | 121 | .protocol { |
... | @@ -126,11 +127,9 @@ | ... | @@ -126,11 +127,9 @@ |
126 | padding-left: 12px; | 127 | padding-left: 12px; |
127 | } | 128 | } |
128 | 129 | ||
129 | |||
130 | &-submit { | 130 | &-submit { |
131 | @include btc2(207px, 63px, 16px); | 131 | @include btc2(207px, 63px, 16px); |
132 | margin: 50px auto 0; | 132 | margin: 50px auto 0; |
133 | |||
134 | } | 133 | } |
135 | 134 | ||
136 | &-submit:lang(zh) { | 135 | &-submit:lang(zh) { |
... | @@ -165,7 +164,8 @@ | ... | @@ -165,7 +164,8 @@ |
165 | } | 164 | } |
166 | } | 165 | } |
167 | 166 | ||
168 | input {} | 167 | input { |
168 | } | ||
169 | 169 | ||
170 | input:lang(zh) { | 170 | input:lang(zh) { |
171 | letter-spacing: 1.2px; | 171 | letter-spacing: 1.2px; |
... | @@ -221,7 +221,6 @@ | ... | @@ -221,7 +221,6 @@ |
221 | max-width: 30%; | 221 | max-width: 30%; |
222 | } | 222 | } |
223 | 223 | ||
224 | |||
225 | .verify-btn { | 224 | .verify-btn { |
226 | @extend .fcc; | 225 | @extend .fcc; |
227 | // font-family: Arial; | 226 | // font-family: Arial; |
... | @@ -234,7 +233,6 @@ | ... | @@ -234,7 +233,6 @@ |
234 | color: $cFontGray; | 233 | color: $cFontGray; |
235 | } | 234 | } |
236 | 235 | ||
237 | |||
238 | // 框内按钮 | 236 | // 框内按钮 |
239 | .ipt2 { | 237 | .ipt2 { |
240 | display: flex; | 238 | display: flex; |
... | @@ -275,7 +273,6 @@ | ... | @@ -275,7 +273,6 @@ |
275 | margin-right: 4.8px; | 273 | margin-right: 4.8px; |
276 | } | 274 | } |
277 | } | 275 | } |
278 | |||
279 | } | 276 | } |
280 | } | 277 | } |
281 | 278 | ||
... | @@ -310,7 +307,6 @@ | ... | @@ -310,7 +307,6 @@ |
310 | &-item { | 307 | &-item { |
311 | margin-top: 24px; | 308 | margin-top: 24px; |
312 | } | 309 | } |
313 | |||
314 | } | 310 | } |
315 | 311 | ||
316 | &-protocol { | 312 | &-protocol { | ... | ... |
1 | 1 | ||
2 | <template> | 2 | <template> |
3 | <div> | 3 | <div> |
4 | <modal-simple-comp :visible="modalSimpleVisiable" :show-confirm="false" :icon="modalIcon" :content="modalContent" :confirm="modalCallback" :overlay="closeModal" :close="closeModal"></modal-simple-comp> | 4 | <modal-simple-comp :visible="modalSimpleVisiable" :show-confirm="false" :icon="modalIcon" :content="modalContent" :confirm="modalCallback" :overlay="closeModal" :close="closeModal"></modal-simple-comp> |
5 | <modal-comp :visible="modalVisiable" :show-confirm="true" :icon="modalIcon" :content="modalContent" :confirm="modalCallback" :overlay="modalCallback" :confirmText="$t('register.sure')"></modal-comp> | 5 | <modal-comp :visible="modalVisiable" :show-confirm="true" :icon="modalIcon" :content="modalContent" :confirm="modalCallback" :overlay="modalCallback" :confirmText="$t('register.sure')"></modal-comp> |
6 | <!-- 会员协议 --> | 6 | <!-- 会员协议 --> |
7 | <modal-protocol-comp :visible="modalProtocolVisiable" :overlay="closeModal" :close="closeModal"></modal-protocol-comp> | 7 | <modal-protocol-comp :visible="modalProtocolVisiable" :overlay="closeModal" :close="closeModal"></modal-protocol-comp> |
8 | <div class="ebg"></div> | 8 | <div class="ebg"></div> |
9 | <div class="content" v-if="!oneAccountCenterOff"> | 9 | <div class="content" v-if="!oneAccountCenterOff"> |
10 | <div class="top-space"></div> | 10 | <div class="top-space"></div> |
11 | <div class="step"> | 11 | <div class="step"> |
12 | <img v-if="type == 1" src="@/assets/images/register/register-step-1.png"> | 12 | <img v-if="type == 1" src="@/assets/images/register/register-step-1.png"> |
13 | <img v-if="type == 2" src="@/assets/images/register/register-step-2.png"> | 13 | <img v-if="type == 2" src="@/assets/images/register/register-step-2.png"> |
14 | </div> | 14 | </div> |
15 | <div class="box"> | 15 | <div class="box"> |
16 | <!-- 手机验证 --> | 16 | <!-- 手机验证 --> |
17 | <div v-if="type == 1" class="login"> | 17 | <div v-if="type == 1" class="login"> |
18 | 18 | ||
19 | <div class="login-tit"> | 19 | <div class="login-tit"> |
20 | <img v-if="locale == 'zh'" src="@/assets/images/login/login-tit-zh.png"> | 20 | <img v-if="locale == 'zh'" src="@/assets/images/login/login-tit-zh.png"> |
21 | <img v-if="locale == 'tc'" src="@/assets/images/login/login-tit-tc.png"> | 21 | <img v-if="locale == 'tc'" src="@/assets/images/login/login-tit-tc.png"> |
22 | <img v-if="locale == 'en'" class="img-en" src="@/assets/images/login/login-tit-en.png"> | 22 | <img v-if="locale == 'en'" class="img-en" src="@/assets/images/login/login-tit-en.png"> |
23 | </div> | 23 | </div> |
24 | <div class="login-tit2">{{$t('register.title')}}</div> | 24 | <div class="login-tit2">{{$t('register.title')}}</div> |
25 | <div class="gird-g form"> | 25 | <div class="gird-g form"> |
26 | <!-- <div class="pure-u-1 form-item"> | 26 | <!-- <div class="pure-u-1 form-item"> |
27 | <div class="ipt-wrap"> | 27 | <div class="ipt-wrap"> |
28 | <img class="down-arrow" src="@/assets/images/reservation/re-down-arrow.png" alt=""> | 28 | <img class="down-arrow" src="@/assets/images/reservation/re-down-arrow.png" alt=""> |
29 | <select class="ipt" v-model="mobileNoType"> | 29 | <select class="ipt" v-model="mobileNoType"> |
... | @@ -31,169 +31,205 @@ | ... | @@ -31,169 +31,205 @@ |
31 | </select> | 31 | </select> |
32 | </div> | 32 | </div> |
33 | </div> --> | 33 | </div> --> |
34 | <div class="pure-u-1 form-item"> | 34 | <div class="pure-u-1 form-item"> |
35 | <div class="ipt-wrap"> | 35 | <div class="ipt-wrap"> |
36 | 36 | ||
37 | <div class="region-tel ipt-wrap"> | 37 | <div class="region-tel ipt-wrap"> |
38 | <img class="down-arrow" src="@/assets/images/reservation/re-down-arrow.png" alt=""> | 38 | <img class="down-arrow" src="@/assets/images/reservation/re-down-arrow.png" alt=""> |
39 | <el-select class="ipt" v-model="mobileNoType"> | 39 | <el-select class="ipt" v-model="mobileNoType"> |
40 | <el-option v-for="(item,index) in mobileOptions" :key="index" :value="item.type" :label="item.areaCode">{{item.areaCode}}</el-option> | 40 | <el-option v-for="(item,index) in mobileOptions" :key="index" :value="item.type" :label="item.areaCode">{{item.areaCode}}</el-option> |
41 | </el-select> | 41 | </el-select> |
42 | </div> | 42 | </div> |
43 | 43 | ||
44 | <div class="ipt ipt2" :class="{err : errorTips.p1.length > 0}"> | 44 | <div class="ipt ipt2" :class="{err : errorTips.p1.length > 0}"> |
45 | <input :placeholder="mobileTip.placeHolder" class="ipt-tel" type="text" v-model="registerForm.mobileNo"> | 45 | <input :placeholder="mobileTip.placeHolder" class="ipt-tel" type="text" v-model="registerForm.mobileNo"> |
46 | </div> | 46 | </div> |
47 | </div> | 47 | </div> |
48 | <div class="validator" v-if="errorTips.p1.length > 0 "> | 48 | <div class="validator" v-if="errorTips.p1.length > 0 "> |
49 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.p1}} | 49 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.p1}} |
50 | </div> | 50 | </div> |
51 | </div> | 51 | </div> |
52 | 52 | ||
53 | <div class="pure-u-1 form-item" v-if="registerCheck.showImageCode"> | 53 | <div class="pure-u-1 form-item" v-if="registerCheck.showImageCode"> |
54 | <div class="ipt-wrap"> | 54 | <div class="ipt-wrap"> |
55 | <input :placeholder="$t('login.verifyPlaceholder')" class="ipt ipt-verify" :class="{err : errorTips.p3.length > 0}" type="text" v-model="registerForm.imageValue"> | 55 | <input :placeholder="$t('login.verifyPlaceholder')" class="ipt ipt-verify" :class="{err : errorTips.p3.length > 0}" type="text" v-model="registerForm.imageValue"> |
56 | <div class="ipt verify-btn pointer vcode" @click="handlerRefreshImageVcode"> | 56 | <div class="ipt verify-btn pointer vcode" @click="handlerRefreshImageVcode"> |
57 | <img :src="values.imageBase64"> | 57 | <img :src="values.imageBase64"> |
58 | </div> | 58 | </div> |
59 | </div> | 59 | </div> |
60 | <div class="validator" v-if="errorTips.p3.length > 0 "> | 60 | <div class="validator" v-if="errorTips.p3.length > 0 "> |
61 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.p3}} | 61 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.p3}} |
62 | </div> | 62 | </div> |
63 | </div> | 63 | </div> |
64 | <div class="pure-u-1 form-item"> | 64 | <div class="pure-u-1 form-item"> |
65 | <div class="ipt-wrap"> | 65 | <div class="ipt-wrap"> |
66 | <div class="ipt ipt2" :class="{err : errorTips.p2.length > 0}"> | 66 | <div class="ipt ipt2" :class="{err : errorTips.p2.length > 0}"> |
67 | <input :placeholder="$t('register.verifyCodePlaceholder')" class="ipt-code" type="text" v-model="registerForm.opt"> | 67 | <input :placeholder="$t('register.verifyCodePlaceholder')" class="ipt-code" type="text" v-model="registerForm.opt"> |
68 | <div v-if="times.remain == 0" class="veri-btn pointer" @click="handlerStdSendOTP">{{$t('register.verifyCodeGet')}}</div> | 68 | <div v-if="times.remain == 0" class="veri-btn pointer" @click="handlerStdSendOTP">{{$t('register.verifyCodeGet')}}</div> |
69 | <div v-else class="veri-btn-default">{{times.tip}}</div> | 69 | <div v-else class="veri-btn-default">{{times.tip}}</div> |
70 | </div> | 70 | </div> |
71 | </div> | 71 | </div> |
72 | <div class="validator" v-if="errorTips.p2.length > 0 "> | 72 | <div class="validator" v-if="errorTips.p2.length > 0 "> |
73 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.p2}} | 73 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.p2}} |
74 | </div> | 74 | </div> |
75 | </div> | 75 | </div> |
76 | </div> | 76 | </div> |
77 | 77 | ||
78 | <div class="login-protocol pointer" @click="registerCheck.agreeProtocol = !registerCheck.agreeProtocol"> | 78 | <div class="login-protocol pointer" @click="registerCheck.agreeProtocol = !registerCheck.agreeProtocol"> |
79 | <img v-if="!registerCheck.agreeProtocol" class="check" src="@/assets/images/login/uncheck.png"> | 79 | <img v-if="!registerCheck.agreeProtocol" class="check" src="@/assets/images/login/uncheck.png"> |
80 | <img v-if="registerCheck.agreeProtocol" class="check" src="@/assets/images/login/check.png"> {{$t('login.agree')}} | 80 | <img v-if="registerCheck.agreeProtocol" class="check" src="@/assets/images/login/check.png"> {{$t('login.agree')}} |
81 | <span @click="onProtocolHandler()" class="protocol pointer">{{$t('login.protocol')}}</span> | 81 | <span @click="onProtocolHandler()" class="protocol pointer">{{$t('login.protocol')}}</span> |
82 | </div> | 82 | </div> |
83 | <div @click="onSubmitHandler()" class="login-submit pointer flex-center" :class="{disabled: registerDisabled}"> | 83 | <div @click="onSubmitHandler()" class="login-submit pointer flex-center" :class="{disabled: registerDisabled}"> |
84 | <van-loading v-if="loading" /> | 84 | <van-loading v-if="loading" /> |
85 | <span>{{$t('register.register')}}</span> | 85 | <span>{{$t('register.register')}}</span> |
86 | </div> | 86 | </div> |
87 | </div> | 87 | </div> |
88 | <!-- 输入密码 --> | 88 | <!-- 输入密码 --> |
89 | <div v-if="type == 2" class="login"> | 89 | <div v-if="type == 2" class="login"> |
90 | <!-- <div class="login-tit"> | 90 | <!-- <div class="login-tit"> |
91 | <img v-if="locale == 'zh'" src="@/assets/images/login/login-tit-zh.png"> | 91 | <img v-if="locale == 'zh'" src="@/assets/images/login/login-tit-zh.png"> |
92 | <img v-if="locale == 'tc'" src="@/assets/images/login/login-tit-tc.png"> | 92 | <img v-if="locale == 'tc'" src="@/assets/images/login/login-tit-tc.png"> |
93 | <img v-if="locale == 'en'" class="img-en" src="@/assets/images/login/login-tit-en.png"> | 93 | <img v-if="locale == 'en'" class="img-en" src="@/assets/images/login/login-tit-en.png"> |
94 | </div> --> | 94 | </div> --> |
95 | <div class="login-tit2">{{$t('register.title2')}}</div> | 95 | <div class="login-tit2">{{$t('register.title2')}}</div> |
96 | <div class="gird-g form"> | 96 | <div class="gird-g form"> |
97 | <div class="pure-u-1 form-item"> | 97 | <div class="pure-u-1 form-item"> |
98 | <div class="label"> | 98 | <div class="label"> |
99 | <img src="@/assets/images/register/icon-register-lock.png"> {{$t('register.newPassword')}} | 99 | <img src="@/assets/images/register/icon-register-lock.png"> {{$t('register.newPassword')}} |
100 | </div> | 100 | </div> |
101 | <div class="ipt-wrap"> | 101 | <div class="ipt-wrap"> |
102 | <input :placeholder="$t('register.newPasswordPlaceholder')" class="ipt" :class="{err : errorTips.p4.length > 0}" type="password" v-model="values.password"> | 102 | <input :placeholder="$t('register.newPasswordPlaceholder')" class="ipt" :class="{err : errorTips.p4.length > 0}" type="password" v-model="values.password"> |
103 | </div> | 103 | </div> |
104 | <div class="validator" v-if="errorTips.p4.length > 0 "> | 104 | <div class="validator" v-if="errorTips.p4.length > 0 "> |
105 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.p4}} | 105 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.p4}} |
106 | </div> | 106 | </div> |
107 | </div> | 107 | </div> |
108 | <div class="pure-u-1 form-item"> | 108 | <div class="pure-u-1 form-item"> |
109 | <div class="label"> | 109 | <div class="label"> |
110 | <img src="@/assets/images/register/icon-register-lock.png"> {{$t('register.newPasswordSure')}} | 110 | <img src="@/assets/images/register/icon-register-lock.png"> {{$t('register.newPasswordSure')}} |
111 | </div> | 111 | </div> |
112 | <div class="ipt-wrap"> | 112 | <div class="ipt-wrap"> |
113 | <input :placeholder="$t('register.newPasswordSurePlaceholder')" class="ipt" :class="{err : errorTips.p5.length > 0}" type="password" v-model="values.passwordRepeat"> | 113 | <input :placeholder="$t('register.newPasswordSurePlaceholder')" class="ipt" :class="{err : errorTips.p5.length > 0}" type="password" v-model="values.passwordRepeat"> |
114 | </div> | 114 | </div> |
115 | <div class="validator" v-if="errorTips.p5.length > 0 "> | 115 | <div class="validator" v-if="errorTips.p5.length > 0 "> |
116 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.p5}} | 116 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.p5}} |
117 | </div> | 117 | </div> |
118 | </div> | 118 | </div> |
119 | </div> | 119 | </div> |
120 | <div @click="onRegisterHandler()" class="login-submit pointer flex-center" :class="{disabled: submitDisabled}"> | 120 | <div @click="onRegisterHandler()" class="login-submit pointer flex-center" :class="{disabled: submitDisabled}"> |
121 | <van-loading v-if="loading" /> | 121 | <van-loading v-if="loading" /> |
122 | <span>{{$t('register.sure')}}</span> | 122 | <span>{{$t('register.sure')}}</span> |
123 | </div> | 123 | </div> |
124 | </div> | 124 | </div> |
125 | </div> | 125 | </div> |
126 | </div> | 126 | </div> |
127 | |||
128 | <div class="content" v-else> | ||
129 | <div class="top-space"></div> | ||
130 | <div class="box"> | ||
131 | <!-- 手机验证 --> | ||
132 | <div class="login"> | ||
133 | |||
134 | <div class="login-tit2">{{$t('register.title')}}</div> | ||
135 | <div class="gird-g form"> | ||
136 | <div class="pure-u-1 form-item"> | ||
137 | |||
138 | <div class="label"> | ||
139 | <img src="@/assets/images/register/icon-register-phone.png"> {{mobileTip.name}} | ||
140 | </div> | ||
141 | <div class="ipt-wrap"> | ||
142 | <div class="region-tel ipt-wrap"> | ||
143 | <img class="down-arrow" src="@/assets/images/reservation/re-down-arrow.png" alt=""> | ||
144 | <el-select class="ipt" v-model="mobileNoType"> | ||
145 | <el-option v-for="(item,index) in mobileOptions" :key="index" :value="item.type" :label="item.areaCode">{{item.areaCode}}</el-option> | ||
146 | </el-select> | ||
147 | </div> | ||
148 | |||
149 | <div class="ipt ipt2" :class="{err : errorTips.p1.length > 0}"> | ||
150 | <input :placeholder="mobileTip.placeHolder" class="ipt-tel" type="text" v-model="registerForm.mobileNo" @blur="checkMobileActivity($event)"> | ||
151 | </div> | ||
152 | </div> | ||
153 | <div class="validator" v-if="errorTips.p1.length > 0 "> | ||
154 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.p1}} | ||
155 | </div> | ||
156 | </div> | ||
157 | 127 | ||
158 | <div class="pure-u-1 form-item"> | 128 | <!-- OPT --> |
159 | <div class="label"> | 129 | <div class="content" v-else> |
160 | <img src="@/assets/images/register/icon-register-lock.png"> {{$t('register.newPassword')}} | 130 | <div class="top-space"></div> |
161 | </div> | 131 | <div class="box"> |
162 | <div class="ipt-wrap"> | 132 | <!-- 手机验证 --> |
163 | <input :placeholder="$t('register.newPasswordPlaceholder')" class="ipt" :class="{err : errorTips.p4.length > 0}" type="password" v-model="values.password"> | 133 | <div class="login"> |
164 | </div> | 134 | |
165 | <div class="validator" v-if="errorTips.p4.length > 0 "> | 135 | <div class="login-tit2">{{$t('register.title')}}</div> |
166 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.p4}} | 136 | <div class="gird-g form"> |
167 | </div> | 137 | |
168 | </div> | 138 | <!-- 账号 --> |
169 | <div class="pure-u-1 form-item"> | 139 | <div class="pure-u-1 form-item"> |
170 | <div class="label"> | 140 | <div class="label"> |
171 | <img src="@/assets/images/register/icon-register-lock.png"> {{$t('register.newPasswordSure')}} | 141 | <img src="@/assets/images/login/icon-login-user.png"> {{$t('login.account')}} |
172 | </div> | 142 | </div> |
173 | <div class="ipt-wrap"> | 143 | <div class="ipt-wrap"> |
174 | <input :placeholder="$t('register.newPasswordSurePlaceholder')" class="ipt" :class="{err : errorTips.p5.length > 0}" type="password" v-model="values.passwordRepeat"> | 144 | <!-- <input v-model="registerForm.userId" :placeholder="$t('register.accountPlaceholder')" class="ipt" :class="{ err : errorTips.e1.length > 0 }" type="text" @blur="userIdLegalCheck"> --> |
175 | </div> | 145 | <input v-model="registerForm.userId" :placeholder="$t('register.accountPlaceholder')" class="ipt" :class="{ err : errorTips.e1.length > 0 }" type="text" > |
176 | <div class="validator" v-if="errorTips.p5.length > 0 "> | 146 | </div> |
177 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.p5}} | 147 | <div class="validator" v-if="errorTips.p1.length > 0 "> |
178 | </div> | 148 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.p1}} |
179 | </div> | 149 | </div> |
180 | 150 | </div> | |
181 | </div> | 151 | |
182 | 152 | <!-- 手机号 --> | |
183 | <div class="login-protocol pointer" :class="{loginLeft:locale!='en'}" @click="registerCheck.agreeProtocol = !registerCheck.agreeProtocol"> | 153 | <div class="pure-u-1 form-item"> |
184 | <img v-if="!registerCheck.agreeProtocol" class="check" src="@/assets/images/login/uncheck.png"> | 154 | |
185 | <img v-if="registerCheck.agreeProtocol" class="check" src="@/assets/images/login/check.png"> {{$t('login.agree')}} | 155 | <div class="label"> |
186 | <span @click="onProtocolHandler()" class="protocol pointer">{{$t('login.protocol')}}</span> | 156 | <img src="@/assets/images/register/icon-register-phone.png"> {{mobileTip.name}} |
187 | </div> | 157 | </div> |
188 | <div @click="registerV2Handler()" class="login-submit pointer flex-center" :class="{disabled: registerDisabledV2}"> | 158 | <div class="ipt-wrap"> |
189 | <van-loading v-if="loading" /> | 159 | <div class="region-tel ipt-wrap"> |
190 | <span>{{$t('register.register')}}</span> | 160 | <img class="down-arrow" src="@/assets/images/reservation/re-down-arrow.png" alt=""> |
191 | </div> | 161 | <el-select class="ipt" v-model="mobileNoType"> |
192 | </div> | 162 | <el-option v-for="(item,index) in mobileOptions" :key="index" :value="item.type" :label="item.areaCode">{{item.areaCode}}</el-option> |
193 | 163 | </el-select> | |
194 | </div> | 164 | </div> |
195 | </div> | 165 | |
196 | </div> | 166 | <div class="ipt ipt2" :class="{err : errorTips.p1.length > 0}"> |
167 | <input :placeholder="mobileTip.placeHolder" class="ipt-tel" type="text" v-model="registerForm.mobileNo" @blur="checkMobileActivity($event)"> | ||
168 | </div> | ||
169 | </div> | ||
170 | <div class="validator" v-if="errorTips.p1.length > 0 "> | ||
171 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.p1}} | ||
172 | </div> | ||
173 | </div> | ||
174 | |||
175 | <!-- 短信验证 --> | ||
176 | <div class="pure-u-1 form-item"> | ||
177 | <div class="label"> | ||
178 | <img src="@/assets/images/register/icon-register-phone.png"> {{$t('login.SMSVerificationCode')}} | ||
179 | </div> | ||
180 | <div class="ipt-wrap"> | ||
181 | <div class="ipt ipt2" :class="{ err : errorTips.oe2.length > 0 }"> | ||
182 | <input :placeholder="$t('login.verifyCodePlaceholder')" class="ipt-code" type="text" v-model="registerForm.otp"> | ||
183 | <!-- <div v-if="times.remain == 0" class="veri-btn pointer" @click="sendOTPWhenOneAccountCenterOff">{{$t('register.verifyCodeGet')}}</div> --> | ||
184 | <div v-if="times.remain == 0" class="veri-btn pointer" >{{$t('register.verifyCodeGet')}}</div> | ||
185 | <div v-else class="veri-btn-default">{{times.tip}}</div> | ||
186 | </div> | ||
187 | </div> | ||
188 | <div class="validator" v-if="errorTips.oe2.length > 0 "> | ||
189 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.oe2}} | ||
190 | </div> | ||
191 | </div> | ||
192 | |||
193 | <!-- | ||
194 | <div class="pure-u-1 form-item"> | ||
195 | <div class="label"> | ||
196 | <img src="@/assets/images/register/icon-register-lock.png"> {{$t('register.newPassword')}} | ||
197 | </div> | ||
198 | <div class="ipt-wrap"> | ||
199 | <input :placeholder="$t('register.newPasswordPlaceholder')" class="ipt" :class="{err : errorTips.p4.length > 0}" type="password" v-model="values.password"> | ||
200 | </div> | ||
201 | <div class="validator" v-if="errorTips.p4.length > 0 "> | ||
202 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.p4}} | ||
203 | </div> | ||
204 | </div> | ||
205 | <div class="pure-u-1 form-item"> | ||
206 | <div class="label"> | ||
207 | <img src="@/assets/images/register/icon-register-lock.png"> {{$t('register.newPasswordSure')}} | ||
208 | </div> | ||
209 | <div class="ipt-wrap"> | ||
210 | <input :placeholder="$t('register.newPasswordSurePlaceholder')" class="ipt" :class="{err : errorTips.p5.length > 0}" type="password" v-model="values.passwordRepeat"> | ||
211 | </div> | ||
212 | <div class="validator" v-if="errorTips.p5.length > 0 "> | ||
213 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.p5}} | ||
214 | </div> | ||
215 | </div> --> | ||
216 | |||
217 | </div> | ||
218 | |||
219 | <div class="login-protocol pointer" :class="{loginLeft:locale!='en'}" @click="registerCheck.agreeProtocol = !registerCheck.agreeProtocol"> | ||
220 | <img v-if="!registerCheck.agreeProtocol" class="check" src="@/assets/images/login/uncheck.png"> | ||
221 | <img v-if="registerCheck.agreeProtocol" class="check" src="@/assets/images/login/check.png"> {{$t('login.agree')}} | ||
222 | <span @click="onProtocolHandler()" class="protocol pointer">{{$t('login.protocol')}}</span> | ||
223 | </div> | ||
224 | <div @click="registerV2Handler()" class="login-submit pointer flex-center" :class="{disabled: registerDisabledV2}"> | ||
225 | <van-loading v-if="loading" /> | ||
226 | <span>{{$t('register.register')}}</span> | ||
227 | </div> | ||
228 | </div> | ||
229 | |||
230 | </div> | ||
231 | </div> | ||
232 | </div> | ||
197 | </template> | 233 | </template> |
198 | 234 | ||
199 | <script src="./register.js"></script> | 235 | <script src="./register.js"></script> | ... | ... |
-
Please register or sign in to post a comment