5 changed files with 579 additions and 390 deletions
@ -1,154 +1,176 @@ |
|||
<template> |
|||
<view class="main"> |
|||
<view class="welcomeText">{{ i18n.welcomeText }}</view> |
|||
<view class="signInText">{{ i18n.signInText }}</view> |
|||
<u--form class="form" :model="userInfo" :rules="rules" ref="form1" errorType="toast"> |
|||
<u-form-item class="input-item" prop="email" ref="item1"> |
|||
<u-icon class="icon" |
|||
:name="userInfo.email ? '../../static/login/email_pr.png' : '../../static/login/email_de.png'" |
|||
size="48rpx" width="48rpx"></u-icon> |
|||
<u-input class="input" v-model="userInfo.email" color="#fff" fontSize="32rpx" border="none" |
|||
:placeholder="i18n.emailInputText"> |
|||
</u-input> |
|||
</u-form-item> |
|||
<u-form-item class="input-item" prop="password" ref="item1"> |
|||
<u-icon class="icon" |
|||
:name="userInfo.password ? '../../static/login/Password_pr.png' : '../../static/login/Password_de.png'" |
|||
size="48rpx" width="48rpx"></u-icon> |
|||
<u-input class="input" type="password" v-model="userInfo.password" color="#fff" fontSize="32rpx" border="none" |
|||
:placeholder="i18n.passwordInputText"> |
|||
</u-input> |
|||
</u-form-item> |
|||
</u--form> |
|||
<navigator class="forget" url="./forget">{{ i18n.forgotText }}</navigator> |
|||
<u-button class="button" color="#00E8A2">{{ i18n.Login }}</u-button> |
|||
<view class="signUp">{{ i18n.notAccountText }}<navigator class="navigator" url="./register">{{ i18n.SignUp }} |
|||
</navigator> |
|||
</view> |
|||
|
|||
</view> |
|||
<view class="main"> |
|||
<view class="welcomeText">{{ i18n.welcomeText }}</view> |
|||
<view class="signInText">{{ i18n.signInText }}</view> |
|||
<u--form class="form" :model="userInfo" :rules="rules" ref="uForm" errorType="toast"> |
|||
<u-form-item class="input-item" prop="email" ref="item1"> |
|||
<u-icon class="icon" |
|||
:name="userInfo.email ? '../../static/login/email_pr.png' : '../../static/login/email_de.png'" |
|||
size="48rpx" width="48rpx"></u-icon> |
|||
<u-input class="input" v-model="userInfo.email" color="#fff" fontSize="32rpx" border="none" |
|||
:placeholder="i18n.emailInputText"> |
|||
</u-input> |
|||
</u-form-item> |
|||
<u-form-item class="input-item" prop="password" ref="item1"> |
|||
<u-icon class="icon" |
|||
:name="userInfo.password ? '../../static/login/Password_pr.png' : '../../static/login/Password_de.png'" |
|||
size="48rpx" width="48rpx"></u-icon> |
|||
<u-input class="input" type="password" v-model="userInfo.password" color="#fff" fontSize="32rpx" |
|||
border="none" :placeholder="i18n.passwordInputText"> |
|||
</u-input> |
|||
</u-form-item> |
|||
</u--form> |
|||
<navigator class="forget" url="./forget">{{ i18n.forgotText }}</navigator> |
|||
<u-button class="button" color="#00E8A2">{{ i18n.Login }}</u-button> |
|||
<view class="signUp" @click.native="$u.throttle(login, 500)">{{ i18n.notAccountText }} |
|||
<navigator class="navigator" url="./register">{{ i18n.SignUp }} |
|||
</navigator> |
|||
</view> |
|||
|
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
name: 'login', |
|||
data() { |
|||
return { |
|||
userInfo: { |
|||
name: '', |
|||
password: '', |
|||
}, |
|||
rules: { |
|||
email: { |
|||
type: 'string', |
|||
required: true, |
|||
message: this.$t('login.emailInputMessage'), |
|||
trigger: ['blur', 'change'], |
|||
}, |
|||
password: { |
|||
type: 'string', |
|||
required: true, |
|||
message: this.$t('login.passwordInputMessage'), |
|||
trigger: ['blur', 'change'] |
|||
}, |
|||
}, |
|||
} |
|||
}, |
|||
computed: { |
|||
i18n() { |
|||
return this.$t('login') |
|||
}, |
|||
}, |
|||
onLoad() { |
|||
// console.log(this.$t('login.emailInputMessage')); |
|||
}, |
|||
onShow() { }, |
|||
methods: { |
|||
|
|||
|
|||
}, |
|||
} |
|||
export default { |
|||
name: 'login', |
|||
data() { |
|||
return { |
|||
userInfo: { |
|||
name: '', |
|||
password: '', |
|||
}, |
|||
rules: { |
|||
email: { |
|||
type: 'string', |
|||
required: true, |
|||
message: this.$t('login.emailInputMessage'), |
|||
trigger: ['blur', 'change'], |
|||
}, |
|||
password: { |
|||
type: 'string', |
|||
required: true, |
|||
message: this.$t('login.passwordInputMessage'), |
|||
trigger: ['blur', 'change'] |
|||
}, |
|||
}, |
|||
} |
|||
}, |
|||
computed: { |
|||
i18n() { |
|||
return this.$t('login') |
|||
}, |
|||
}, |
|||
onLoad() { |
|||
// console.log(this.$t('login.emailInputMessage')); |
|||
}, |
|||
onShow() {}, |
|||
methods: { |
|||
// 注册 |
|||
login() { |
|||
this.$refs.uForm.validate().then(res => { |
|||
this.$api.login(this.userInfo).then(res => { |
|||
if (res.errCode === 'SUCCESS') { |
|||
setTimeout(() => { |
|||
uni.showToast({ |
|||
title: this.$t("login.loginSuccess") |
|||
}) |
|||
}, 600) |
|||
uni.switchTab({ |
|||
url: '/pages/home/index' |
|||
}) |
|||
} else { |
|||
uni.$u.toast(res.msg) |
|||
} |
|||
}) |
|||
}).catch(errors => { |
|||
console.log('err') |
|||
}) |
|||
|
|||
}, |
|||
|
|||
}, |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
page { |
|||
height: 100%; |
|||
background: url(../../static/public/BG.png) no-repeat fixed; |
|||
background-size: cover; |
|||
} |
|||
|
|||
.main { |
|||
padding: 0 64rpx; |
|||
overflow: hidden; |
|||
|
|||
.welcomeText { |
|||
margin-top: 240rpx; |
|||
font-size: 48rpx; |
|||
font-weight: 800; |
|||
text-align: center; |
|||
} |
|||
|
|||
.signInText { |
|||
font-size: 32rpx; |
|||
text-align: center; |
|||
color: #A2A0A8; |
|||
} |
|||
|
|||
.form { |
|||
font-size: 32rpx; |
|||
margin-top: 48rpx; |
|||
|
|||
.input-item { |
|||
height: 112rpx; |
|||
line-height: 112rpx; |
|||
background: #211F32; |
|||
margin-bottom: 48rpx; |
|||
border-radius: 32rpx; |
|||
|
|||
&:nth-child(2) { |
|||
margin-bottom: 38rpx; |
|||
} |
|||
|
|||
.icon { |
|||
margin: 0 24rpx; |
|||
} |
|||
|
|||
/deep/.u-form-item__body { |
|||
padding: 0; |
|||
} |
|||
|
|||
.input { |
|||
height: 112rpx; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.forget { |
|||
font-size: 32rpx; |
|||
text-align: right; |
|||
color: #00E8A2; |
|||
cursor: pointer; |
|||
} |
|||
|
|||
.button { |
|||
margin-top: 64rpx; |
|||
height: 112rpx; |
|||
line-height: 112rpx; |
|||
border-radius: 32rpx; |
|||
font-size: 32rpx; |
|||
color: #15141F !important; |
|||
} |
|||
|
|||
.signUp { |
|||
margin: 48rpx 0; |
|||
text-align: center; |
|||
font-size: 32rpx; |
|||
|
|||
navigator { |
|||
display: inline; |
|||
color: #00E8A2; |
|||
padding: 0 10rpx; |
|||
} |
|||
} |
|||
} |
|||
page { |
|||
height: 100%; |
|||
background: url(../../static/public/BG.png) no-repeat fixed; |
|||
background-size: cover; |
|||
} |
|||
|
|||
.main { |
|||
padding: 0 64rpx; |
|||
overflow: hidden; |
|||
|
|||
.welcomeText { |
|||
margin-top: 240rpx; |
|||
font-size: 48rpx; |
|||
font-weight: 800; |
|||
text-align: center; |
|||
} |
|||
|
|||
.signInText { |
|||
font-size: 32rpx; |
|||
text-align: center; |
|||
color: #A2A0A8; |
|||
} |
|||
|
|||
.form { |
|||
font-size: 32rpx; |
|||
margin-top: 48rpx; |
|||
|
|||
.input-item { |
|||
height: 112rpx; |
|||
line-height: 112rpx; |
|||
background: #211F32; |
|||
margin-bottom: 48rpx; |
|||
border-radius: 32rpx; |
|||
|
|||
&:nth-child(2) { |
|||
margin-bottom: 38rpx; |
|||
} |
|||
|
|||
.icon { |
|||
margin: 0 24rpx; |
|||
} |
|||
|
|||
/deep/.u-form-item__body { |
|||
padding: 0; |
|||
} |
|||
|
|||
.input { |
|||
height: 112rpx; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.forget { |
|||
font-size: 32rpx; |
|||
text-align: right; |
|||
color: #00E8A2; |
|||
cursor: pointer; |
|||
} |
|||
|
|||
.button { |
|||
margin-top: 64rpx; |
|||
height: 112rpx; |
|||
line-height: 112rpx; |
|||
border-radius: 32rpx; |
|||
font-size: 32rpx; |
|||
color: #15141F !important; |
|||
} |
|||
|
|||
.signUp { |
|||
margin: 48rpx 0; |
|||
text-align: center; |
|||
font-size: 32rpx; |
|||
|
|||
navigator { |
|||
display: inline; |
|||
color: #00E8A2; |
|||
padding: 0 10rpx; |
|||
} |
|||
} |
|||
} |
|||
</style> |
|||
|
@ -1,238 +1,343 @@ |
|||
<template> |
|||
<view class="main" > |
|||
<navigation>{{ i18n.SignUp }}</navigation> |
|||
<view class="body"> |
|||
<view class="welcomeText">{{ i18n.registerWelcomeText }}</view> |
|||
<view class="signInText">{{ i18n.registerCreate }}</view> |
|||
<u--form class="form" :model="userInfo" :rules="rules" ref="form1" errorType="toast"> |
|||
<!-- 邮箱 --> |
|||
<u-form-item class="input-item" prop="email" ref="item1"> |
|||
<u-icon class="icon" |
|||
:name="userInfo.email ? '../../static/login/email_pr.png' : '../../static/login/email_de.png'" |
|||
size="48rpx" width="48rpx"></u-icon> |
|||
<u-input class="input" v-model="userInfo.email" color="#fff" fontSize="32rpx" border="none" |
|||
:placeholder="i18n.emailInputText"> |
|||
</u-input> |
|||
</u-form-item> |
|||
<!-- 验证码 --> |
|||
<u-form-item class="input-item vCode" prop="verificationCode" ref="item1"> |
|||
<u-icon class="icon" |
|||
:name="userInfo.verificationCode ? '../../static/login/code_pr.png' : '../../static/login/code_de.png'" |
|||
size="48rpx" width="48rpx"></u-icon> |
|||
<u-input class="input" v-model="userInfo.verificationCode" color="#fff" fontSize="32rpx" |
|||
border="none" :placeholder="i18n.registerWelcomeText" maxlength="6"> |
|||
</u-input> |
|||
<u-button class="getVCodeBtn" color="#323045">Get code</u-button> |
|||
</u-form-item> |
|||
<!-- 密码 --> |
|||
<u-form-item class="input-item" prop="password" ref="item1"> |
|||
<u-icon class="icon" |
|||
:name="userInfo.password ? '../../static/login/Password_pr.png' : '../../static/login/Password_de.png'" |
|||
size="48rpx" width="48rpx"></u-icon> |
|||
<u-input class="input" type="password" v-model="userInfo.password" color="#fff" fontSize="32rpx" border="none" |
|||
:placeholder="i18n.passwordText"> |
|||
</u-input> |
|||
</u-form-item> |
|||
<!-- 重复密码 --> |
|||
<u-form-item class="input-item" prop="confirmPassword" ref="item1"> |
|||
<u-icon class="icon" |
|||
:name="userInfo.confirmPassword ? '../../static/login/Password_pr.png' : '../../static/login/Password_de.png'" |
|||
size="48rpx" width="48rpx"></u-icon> |
|||
<u-input class="input" type="password" v-model="userInfo.confirmPassword" color="#fff" fontSize="32rpx" |
|||
border="none" :placeholder="i18n.confirmPasswordText"> |
|||
</u-input> |
|||
</u-form-item> |
|||
<!-- 取款密码 --> |
|||
<u-form-item class="input-item" prop="withdrawalPassword" ref="item1"> |
|||
<u-icon class="icon" |
|||
:name="userInfo.withdrawalPassword ? '../../static/login/WithdrawalPassword_pr.png' : '../../static/login/WithdrawalPassword_de.png'" |
|||
size="48rpx" width="48rpx"></u-icon> |
|||
<u-input class="input" type="password" v-model="userInfo.withdrawalPassword" color="#fff" fontSize="32rpx" |
|||
border="none" :placeholder="i18n.withdrawalPasswordText"> |
|||
</u-input> |
|||
</u-form-item> |
|||
<!-- 邀请码 --> |
|||
<u-form-item class="input-item" prop="InvitationCode" ref="item1"> |
|||
<u-icon class="icon" |
|||
:name="userInfo.InvitationCode ? '../../static/login/Invitation_pr.png' : '../../static/login/Invitation_de.png'" |
|||
size="48rpx" width="48rpx"></u-icon> |
|||
<u-input class="input" v-model="userInfo.InvitationCode" color="#fff" fontSize="32rpx" border="none" |
|||
:placeholder="i18n.InvitationCodeText"> |
|||
</u-input> |
|||
</u-form-item> |
|||
</u--form> |
|||
<view class="agree"> |
|||
<u-icon class="check" @click="agreeFlag = !agreeFlag" |
|||
:name="agreeFlag ? '../../static/login/Checkbox_pr.png' : '../../static/login/Checkbox_de.png'" |
|||
size="48rpx" width="48rpx"></u-icon> |
|||
<view class="text">{{ i18n.agreeText }}<span>{{ i18n.Terms }}</span>{{ i18n.and }}<span>{{ |
|||
<view class="main"> |
|||
<navigation>{{ i18n.SignUp }}</navigation> |
|||
<view class="body"> |
|||
<view class="welcomeText">{{ i18n.registerWelcomeText }}</view> |
|||
<view class="signInText">{{ i18n.registerCreate }}</view> |
|||
<u--form class="form" :model="userInfo" :rules="rules" ref="uForm" errorType="toast"> |
|||
<!-- 邮箱 --> |
|||
<u-form-item class="input-item" prop="email" ref="item1"> |
|||
<u-icon class="icon" |
|||
:name="userInfo.email ? '../../static/login/email_pr.png' : '../../static/login/email_de.png'" |
|||
size="48rpx" width="48rpx"></u-icon> |
|||
<u-input class="input" v-model="userInfo.email" color="#fff" fontSize="32rpx" border="none" |
|||
:placeholder="i18n.emailInputText"> |
|||
</u-input> |
|||
</u-form-item> |
|||
<!-- 验证码 --> |
|||
<u-form-item class="input-item vCode" prop="code" ref="item1"> |
|||
<u-icon class="icon" |
|||
:name="userInfo.code ? '../../static/login/code_pr.png' : '../../static/login/code_de.png'" |
|||
size="48rpx" width="48rpx"></u-icon> |
|||
|
|||
<u-input class="input" v-model="userInfo.code" color="#fff" fontSize="32rpx" border="none" |
|||
:placeholder="i18n.registerWelcomeText" maxlength="6"> |
|||
</u-input> |
|||
<u-code startText="Get code" :seconds="seconds" ref="uCode" keep-running unique-key="login" |
|||
@change="codeChange"> |
|||
</u-code> |
|||
<u-button class="getVCodeBtn" color="#323045" @tap="getCode">{{tips}}</u-button> |
|||
</u-form-item> |
|||
<!-- 密码 --> |
|||
<u-form-item class="input-item" prop="password" ref="item1"> |
|||
<u-icon class="icon" |
|||
:name="userInfo.password ? '../../static/login/Password_pr.png' : '../../static/login/Password_de.png'" |
|||
size="48rpx" width="48rpx"></u-icon> |
|||
<u-input class="input" type="password" v-model="userInfo.password" color="#fff" fontSize="32rpx" |
|||
border="none" :placeholder="i18n.passwordText"> |
|||
</u-input> |
|||
</u-form-item> |
|||
<!-- 重复密码 --> |
|||
<u-form-item class="input-item" prop="confirmPassword" ref="item1"> |
|||
<u-icon class="icon" |
|||
:name="userInfo.confirmPassword ? '../../static/login/Password_pr.png' : '../../static/login/Password_de.png'" |
|||
size="48rpx" width="48rpx"></u-icon> |
|||
<u-input class="input" type="password" v-model="userInfo.confirmPassword" color="#fff" |
|||
fontSize="32rpx" border="none" :placeholder="i18n.confirmPasswordText"> |
|||
</u-input> |
|||
</u-form-item> |
|||
<!-- 取款密码 --> |
|||
<u-form-item class="input-item" prop="payPassword" ref="item1"> |
|||
<u-icon class="icon" |
|||
:name="userInfo.payPassword ? '../../static/login/WithdrawalPassword_pr.png' : '../../static/login/WithdrawalPassword_de.png'" |
|||
size="48rpx" width="48rpx"></u-icon> |
|||
<u-input class="input" type="password" v-model="userInfo.payPassword" color="#fff" fontSize="32rpx" |
|||
border="none" :placeholder="i18n.withdrawalPasswordText"> |
|||
</u-input> |
|||
</u-form-item> |
|||
<!-- 邀请码 --> |
|||
<u-form-item class="input-item" prop="InvitationCode" ref="item1"> |
|||
<u-icon class="icon" |
|||
:name="userInfo.InvitationCode ? '../../static/login/Invitation_pr.png' : '../../static/login/Invitation_de.png'" |
|||
size="48rpx" width="48rpx"></u-icon> |
|||
<u-input class="input" v-model="userInfo.InvitationCode" color="#fff" fontSize="32rpx" border="none" |
|||
:placeholder="i18n.InvitationCodeText"> |
|||
</u-input> |
|||
</u-form-item> |
|||
</u--form> |
|||
<view class="agree"> |
|||
<u-icon class="check" @click="agreeFlag = !agreeFlag" |
|||
:name="agreeFlag ? '../../static/login/Checkbox_pr.png' : '../../static/login/Checkbox_de.png'" |
|||
size="48rpx" width="48rpx"></u-icon> |
|||
<view class="text">{{ i18n.agreeText }}<span>{{ i18n.Terms }}</span>{{ i18n.and }}<span>{{ |
|||
i18n.Conditions |
|||
}}</span></view> |
|||
</view> |
|||
<u-button class="button" color="#00E8A2" throttleTime="500" :disabled="!agreeFlag">{{ i18n.SignUp }} |
|||
</u-button> |
|||
<view class="signUp">{{ i18n.haveAccount }}<navigator class="navigator" url="./index">{{ i18n.Login }} |
|||
</navigator> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<u-button class="button" color="#00E8A2" throttleTime="500" :disabled="!agreeFlag" @click="register" :throttleTime="500"> |
|||
{{ i18n.SignUp }} |
|||
</u-button> |
|||
<view class="signUp">{{ i18n.haveAccount }} |
|||
<navigator class="navigator" url="./index">{{ i18n.Login }} |
|||
</navigator> |
|||
</view> |
|||
</view> |
|||
|
|||
|
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
import UButton from '../../uview-ui/components/u-button/u-button.vue' |
|||
export default { |
|||
name: "register", |
|||
data() { |
|||
return { |
|||
userInfo: { |
|||
name: "", |
|||
password: "", |
|||
}, |
|||
rules: { |
|||
email: { |
|||
type: "string", |
|||
required: true, |
|||
message: this.$t("login.emailInputMessage"), |
|||
trigger: ["blur", "change"], |
|||
}, |
|||
verificationCode: { |
|||
type: "string", |
|||
required: true, |
|||
message: this.$t("login.verificationCodeMessage"), |
|||
trigger: ["blur", "change"] |
|||
}, |
|||
password: { |
|||
type: "string", |
|||
required: true, |
|||
message: this.$t("login.passwordInputMessage"), |
|||
trigger: ["blur", "change"] |
|||
}, |
|||
}, |
|||
agreeFlag: false, |
|||
}; |
|||
}, |
|||
computed: { |
|||
i18n() { |
|||
return this.$t("login"); |
|||
}, |
|||
}, |
|||
onLoad() { |
|||
// console.log(this.$t('login.emailInputMessage')); |
|||
}, |
|||
onShow() { }, |
|||
methods: {}, |
|||
components: { UButton } |
|||
} |
|||
import UButton from '../../uview-ui/components/u-button/u-button.vue' |
|||
export default { |
|||
name: "register", |
|||
data() { |
|||
return { |
|||
// 验证码倒计时 |
|||
tips: '', |
|||
seconds: 60, |
|||
// 邮箱号码是否正确 |
|||
isCanGetCode: false, |
|||
userInfo: { |
|||
password: "", |
|||
email: '', |
|||
payPassword: '', |
|||
inviteCode: '', |
|||
code: '', |
|||
lang: '', |
|||
}, |
|||
rules: { |
|||
payPassword: { |
|||
type: "string", |
|||
required: true, |
|||
message: this.$t("login.withdrawalPasswordMessage"), |
|||
trigger: ["blur", "change"], |
|||
}, |
|||
email: { |
|||
type: "string", |
|||
required: true, |
|||
message: this.$t("login.emailInputMessage"), |
|||
trigger: ["blur", "change"], |
|||
}, |
|||
code: { |
|||
type: "string", |
|||
required: true, |
|||
message: this.$t("login.verificationCodeMessage"), |
|||
trigger: ["blur", "change"] |
|||
}, |
|||
password: { |
|||
type: "string", |
|||
required: true, |
|||
message: this.$t("login.passwordInputMessage"), |
|||
trigger: ["blur", "change"] |
|||
}, |
|||
InvitationCode: { |
|||
type: "string", |
|||
required: true, |
|||
message: this.$t("login.InvitationCodeMessage"), |
|||
trigger: ["blur", "change"] |
|||
}, |
|||
confirmPassword: { |
|||
type: "string", |
|||
required: true, |
|||
message: this.$t("login.confirmPasswordMessage"), |
|||
trigger: ["blur", "change"] |
|||
}, |
|||
|
|||
}, |
|||
agreeFlag: false, |
|||
}; |
|||
}, |
|||
computed: { |
|||
i18n() { |
|||
return this.$t("login"); |
|||
}, |
|||
}, |
|||
onLoad() { |
|||
// console.log(this.$t('login.emailInputMessage')); |
|||
}, |
|||
watch: { |
|||
'userInfo.email': { |
|||
handler(newValue) { |
|||
this.isCanGetCode = uni.$u.test.email(newValue); |
|||
} |
|||
} |
|||
}, |
|||
onShow() {}, |
|||
methods: { |
|||
// 验证码相关 |
|||
codeChange(text) { |
|||
this.tips = text; |
|||
}, |
|||
// 验证码获取 |
|||
getCode() { |
|||
if (!this.userInfo.email) { |
|||
uni.$u.toast(this.$t("login.Emailempty")) |
|||
return |
|||
} |
|||
if (!this.isCanGetCode) { |
|||
uni.$u.toast(this.$t("login.Emailincorrect")) |
|||
return |
|||
} |
|||
if (this.$refs.uCode.canGetCode) { |
|||
const data = { |
|||
email: this.userInfo.email, |
|||
type: 0, |
|||
} |
|||
// 模拟向后端请求验证码 |
|||
uni.showLoading({ |
|||
title: this.$t("login.GettingVerificationCode") |
|||
}) |
|||
this.$api.sendEmailCode(data).then(res => { |
|||
if (res.code === 200) { |
|||
uni.hideLoading(); |
|||
// 这里此提示会被this.start()方法中的提示覆盖 |
|||
uni.$u.toast(this.$t("login.CodeHasSent")); |
|||
// 通知验证码组件内部开始倒计时 |
|||
this.$refs.uCode.start(); |
|||
} else { |
|||
uni.$u.toast(res.msg) |
|||
} |
|||
}) |
|||
} else { |
|||
uni.$u.toast(this.$t("login.SendAfter")); |
|||
} |
|||
}, |
|||
// 注册 |
|||
register() { |
|||
this.$refs.uForm.validate().then(res => { |
|||
this.$api.register(this.userInfo).then(res => { |
|||
if (res.errCode === 'SUCCESS') { |
|||
setTimeout(() => { |
|||
uni.showToast({ |
|||
title: this.$t("login.resSuccess") |
|||
}) |
|||
}, 600) |
|||
uni.switchTab({ |
|||
url: '/pages/login/index' |
|||
}) |
|||
} else { |
|||
uni.$u.toast(res.msg) |
|||
} |
|||
}) |
|||
}).catch(errors => { |
|||
console.log('err') |
|||
}) |
|||
|
|||
}, |
|||
|
|||
}, |
|||
components: { |
|||
UButton |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.main { |
|||
|
|||
.body { |
|||
margin-top: 204rpx; |
|||
padding: 0 64rpx; |
|||
overflow: hidden; |
|||
|
|||
.welcomeText { |
|||
margin-top: 48rpx; |
|||
font-size: 48rpx; |
|||
font-weight: 800; |
|||
text-align: center; |
|||
} |
|||
|
|||
.signInText { |
|||
font-size: 32rpx; |
|||
text-align: center; |
|||
color: #A2A0A8; |
|||
} |
|||
|
|||
.form { |
|||
font-size: 32rpx; |
|||
margin-top: 48rpx; |
|||
|
|||
.input-item { |
|||
height: 112rpx; |
|||
line-height: 112rpx; |
|||
background: #211F32; |
|||
margin-bottom: 48rpx; |
|||
border-radius: 32rpx; |
|||
|
|||
.icon { |
|||
margin: 0 24rpx; |
|||
} |
|||
|
|||
/deep/.u-form-item__body { |
|||
padding: 0; |
|||
} |
|||
|
|||
.input { |
|||
height: 112rpx; |
|||
} |
|||
} |
|||
|
|||
.vCode { |
|||
|
|||
.getVCodeBtn { |
|||
// position: absolute; |
|||
width: 154rpx; |
|||
height: 56rpx; |
|||
right: 28rpx; |
|||
// top: 14px; |
|||
border-radius: 8px; |
|||
line-height: 56rpx; |
|||
font-size: 24rpx; |
|||
color: #00E8A2 !important; |
|||
padding: 0; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.agree { |
|||
font-size: 28rpx; |
|||
|
|||
.check { |
|||
display: inline-block; |
|||
vertical-align: top; |
|||
margin-right: 32rpx; |
|||
} |
|||
|
|||
.text { |
|||
display: inline-block; |
|||
width: 542rpx; |
|||
} |
|||
|
|||
span { |
|||
cursor: pointer; |
|||
color: #00E8A2; |
|||
padding: 0 10rpx; |
|||
|
|||
} |
|||
} |
|||
|
|||
.button { |
|||
margin-top: 64rpx; |
|||
height: 112rpx; |
|||
line-height: 112rpx; |
|||
border-radius: 32rpx; |
|||
font-size: 32rpx; |
|||
color: #15141F !important; |
|||
} |
|||
|
|||
.signUp { |
|||
margin: 48rpx 0; |
|||
text-align: center; |
|||
font-size: 32rpx; |
|||
|
|||
.navigator { |
|||
display: inline; |
|||
color: #00E8A2; |
|||
padding: 0 10rpx; |
|||
} |
|||
|
|||
} |
|||
} |
|||
|
|||
} |
|||
.main { |
|||
|
|||
.body { |
|||
margin-top: 204rpx; |
|||
padding: 0 64rpx; |
|||
overflow: hidden; |
|||
|
|||
.welcomeText { |
|||
margin-top: 48rpx; |
|||
font-size: 48rpx; |
|||
font-weight: 800; |
|||
text-align: center; |
|||
} |
|||
|
|||
.signInText { |
|||
font-size: 32rpx; |
|||
text-align: center; |
|||
color: #A2A0A8; |
|||
} |
|||
|
|||
.form { |
|||
font-size: 32rpx; |
|||
margin-top: 48rpx; |
|||
|
|||
.input-item { |
|||
height: 112rpx; |
|||
line-height: 112rpx; |
|||
background: #211F32; |
|||
margin-bottom: 48rpx; |
|||
border-radius: 32rpx; |
|||
|
|||
.icon { |
|||
margin: 0 24rpx; |
|||
} |
|||
|
|||
/deep/.u-form-item__body { |
|||
padding: 0; |
|||
} |
|||
|
|||
.input { |
|||
height: 112rpx; |
|||
} |
|||
} |
|||
|
|||
.vCode { |
|||
|
|||
.getVCodeBtn { |
|||
// position: absolute; |
|||
width: 154rpx; |
|||
height: 56rpx; |
|||
right: 28rpx; |
|||
// top: 14px; |
|||
border-radius: 8px; |
|||
line-height: 56rpx; |
|||
font-size: 24rpx; |
|||
color: #00E8A2 !important; |
|||
padding: 0; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.agree { |
|||
font-size: 28rpx; |
|||
|
|||
.check { |
|||
display: inline-block; |
|||
vertical-align: top; |
|||
margin-right: 32rpx; |
|||
} |
|||
|
|||
.text { |
|||
display: inline-block; |
|||
width: 542rpx; |
|||
} |
|||
|
|||
span { |
|||
cursor: pointer; |
|||
color: #00E8A2; |
|||
padding: 0 10rpx; |
|||
|
|||
} |
|||
} |
|||
|
|||
.button { |
|||
margin-top: 64rpx; |
|||
height: 112rpx; |
|||
line-height: 112rpx; |
|||
border-radius: 32rpx; |
|||
font-size: 32rpx; |
|||
color: #15141F !important; |
|||
} |
|||
|
|||
.signUp { |
|||
margin: 48rpx 0; |
|||
text-align: center; |
|||
font-size: 32rpx; |
|||
|
|||
.navigator { |
|||
display: inline; |
|||
color: #00E8A2; |
|||
padding: 0 10rpx; |
|||
} |
|||
|
|||
} |
|||
} |
|||
|
|||
} |
|||
</style> |
|||
|
Loading…
Reference in new issue