12c9ed1b by simon

用户体系样式/文案

1 parent 035a0a77
...@@ -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')}} &nbsp; 64 <img v-if="loginCheck.agreeProtocol" class="check" src="@/assets/images/login/check.png">{{$t('login.agree')}} &nbsp;
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')}} &nbsp;
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')}} &nbsp;
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')}} &nbsp; 219 <img v-if="loginCheck.agreeProtocol" class="check" src="@/assets/images/login/check.png"> {{$t('login.agree')}} &nbsp;
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')}} &nbsp; 80 <img v-if="registerCheck.agreeProtocol" class="check" src="@/assets/images/login/check.png"> {{$t('login.agree')}} &nbsp;
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')}} &nbsp; 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')}} &nbsp;
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>
......