@ -1,51 +1,252 @@ |
|||||
<template> |
<template> |
||||
|
<view class="main"> |
||||
|
<view class="nav-head"> |
||||
|
<view class="title">{{ i18n.HOME }}</view> |
||||
|
<u-button class="button" color="#323045">{{ i18n.customerService }}</u-button> |
||||
|
</view> |
||||
|
|
||||
|
<u-swiper class="swiper" :list="swiperList" previousMargin="48rpx" nextMargin="80rpx" circular :autoplay="true" |
||||
|
radius="32rpx" bgColor="rgba(0,0,0,0)" height="360rpx"></u-swiper> |
||||
|
<view class="message"> |
||||
|
<u-icon class="icon" name="../../static/home/ic_proclamation.png" size="60rpx" width="60rpx"></u-icon> |
||||
|
<view class="text">{{ i18n.homeMessage }}</view> |
||||
|
</view> |
||||
|
<view class="btnDiv"> |
||||
|
<view class="item"> |
||||
|
<u--image class="img" :showLoading="true" src="../../static/home/img_recharge.png" width="144rpx" |
||||
|
height="144rpx" @click="click"></u--image> |
||||
|
<view class="text">{{ i18n.Recharge }}</view> |
||||
|
</view> |
||||
|
<view class="item"> |
||||
|
<u--image class="img" :showLoading="true" src="../../static/home/img_Mine.png" width="144rpx" |
||||
|
height="144rpx" @click="click"></u--image> |
||||
|
<view class="text">{{ i18n.Mine }}</view> |
||||
|
</view> |
||||
|
<view class="item"> |
||||
|
<u--image class="img" :showLoading="true" src="../../static/home/img_Subcription.png" width="144rpx" |
||||
|
height="144rpx" @click="click"></u--image> |
||||
|
<view class="text">{{ i18n.Subcription }}</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
<view class="steps"> |
||||
<view class="content"> |
<view class="content"> |
||||
<view class="text-area"> |
<view class="title">{{ i18n.TodaySteps }}</view> |
||||
<text class="title">{{title}}</text> |
<u-button class="button" color="#00E8A2">{{ i18n.ReceiveEarnings }}</u-button> |
||||
</view> |
</view> |
||||
</view> |
</view> |
||||
|
<view v-for="(item, index) in videoList" :key="index"> |
||||
|
<video class="video" :id="`video-${index}`" :enable-progress-gesture="false" :src="item.url" |
||||
|
:poster="item.poster" :title="item.title" controls @play="stopOtherVideoPlay" :key="index" ></video> |
||||
|
</view> |
||||
|
<tab-bar :selectActive="1"></tab-bar> |
||||
|
</view> |
||||
</template> |
</template> |
||||
|
|
||||
<script> |
<script> |
||||
|
let videoPlayerObj = {}; |
||||
export default { |
export default { |
||||
|
name: 'home', |
||||
data() { |
data() { |
||||
return { |
return { |
||||
title: 'Hello' |
swiperList: [ |
||||
|
'https://cdn.uviewui.com/uview/swiper/swiper1.png', |
||||
|
'https://cdn.uviewui.com/uview/swiper/swiper2.png', |
||||
|
'https://cdn.uviewui.com/uview/swiper/swiper3.png', |
||||
|
], |
||||
|
videoList: [ |
||||
|
{ |
||||
|
url: 'https://cdn.uviewui.com/uview/resources/video.mp4', |
||||
|
title: '昨夜星辰昨夜风,画楼西畔桂堂东', |
||||
|
poster: 'https://cdn.uviewui.com/uview/swiper/swiper1.png' |
||||
|
}, |
||||
|
{ |
||||
|
url: 'https://cdn.uviewui.com/uview/resources/video.mp4', |
||||
|
title: '昨夜星辰昨夜风,画楼西畔桂堂东', |
||||
|
poster: 'https://cdn.uviewui.com/uview/swiper/swiper1.png' |
||||
|
}, |
||||
|
{ |
||||
|
url: 'https://cdn.uviewui.com/uview/resources/video.mp4', |
||||
|
title: '昨夜星辰昨夜风,画楼西畔桂堂东', |
||||
|
poster: 'https://cdn.uviewui.com/uview/swiper/swiper1.png' |
||||
|
}, |
||||
|
{ |
||||
|
url: 'https://cdn.uviewui.com/uview/resources/video.mp4', |
||||
|
title: '昨夜星辰昨夜风,画楼西畔桂堂东', |
||||
|
poster: 'https://cdn.uviewui.com/uview/swiper/swiper1.png' |
||||
|
}, |
||||
|
], |
||||
} |
} |
||||
}, |
}, |
||||
onLoad() { |
onLoad() { |
||||
|
|
||||
|
}, |
||||
|
onShow() { |
||||
|
// 生成播放器队列对象 |
||||
|
this.videoList.forEach((item, index) => { |
||||
|
const VideoPlayer = uni.createVideoContext(`video-${index}`, this) |
||||
|
videoPlayerObj[`video-${index}`] = VideoPlayer |
||||
|
}); |
||||
|
}, |
||||
|
onHide() { |
||||
|
this.stopAllVideoPlay() |
||||
|
}, |
||||
|
computed: { |
||||
|
i18n() { |
||||
|
return this.$t('home') |
||||
|
} |
||||
}, |
}, |
||||
methods: { |
methods: { |
||||
|
/** |
||||
|
* 在播放视频是暂停其他视频 |
||||
|
* @param {*} e |
||||
|
*/ |
||||
|
stopOtherVideoPlay(e) { |
||||
|
const keyArr = Object.keys(videoPlayerObj) |
||||
|
keyArr.forEach(item => { |
||||
|
if (item !== e.target.id) { |
||||
|
videoPlayerObj[item].pause() |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
/** |
||||
|
* 在跳转其他页面时是暂停全部视频 |
||||
|
* @param {*} e |
||||
|
*/ |
||||
|
stopAllVideoPlay() { |
||||
|
const keyArr = Object.keys(videoPlayerObj) |
||||
|
keyArr.forEach(item => { |
||||
|
videoPlayerObj[item].pause() |
||||
|
}); |
||||
|
}, |
||||
} |
} |
||||
} |
} |
||||
</script> |
</script> |
||||
|
|
||||
<style lang="scss"> |
<style lang="scss"> |
||||
.content { |
.main { |
||||
|
.nav-head { |
||||
|
overflow: hidden; |
||||
|
position: relative; |
||||
|
top: 0rpx; |
||||
|
height: 112rpx; |
||||
|
// text-align: center; |
||||
|
font-weight: 700; |
||||
|
font-size: 36rpx; |
||||
|
color: #fff; |
||||
|
margin-top: 88rpx; |
||||
display: flex; |
display: flex; |
||||
flex-direction: column; |
// justify-content: space-between; |
||||
align-items: center; |
align-items: center; |
||||
justify-content: center; |
width: 100%; |
||||
|
z-index: 8; |
||||
|
border-bottom: 4rpx solid #323045; |
||||
|
|
||||
|
.title { |
||||
|
margin-left: 48rpx; |
||||
} |
} |
||||
|
|
||||
.logo { |
.button { |
||||
height: 200rpx; |
width: 286rpx; |
||||
width: 200rpx; |
height: 70rpx; |
||||
margin-top: 200rpx; |
line-height: 70rpx; |
||||
margin-left: auto; |
border-radius: 90rpx; |
||||
margin-right: auto; |
font-size: 28rpx; |
||||
margin-bottom: 50rpx; |
color: #F2FE8D !important; |
||||
|
padding: 0; |
||||
|
margin-right: 24rpx; |
||||
|
} |
||||
} |
} |
||||
|
|
||||
.text-area { |
.swiper { |
||||
display: flex; |
margin-top: 32rpx; |
||||
justify-content: center; |
|
||||
} |
} |
||||
|
|
||||
|
.message { |
||||
|
margin: 24rpx 24rpx 32rpx; |
||||
|
height: 96rpx; |
||||
|
background: #211F32; |
||||
|
border-radius: 16rpx; |
||||
|
|
||||
|
.icon { |
||||
|
display: inline-block; |
||||
|
vertical-align: top; |
||||
|
margin: 18rpx 20rpx; |
||||
|
} |
||||
|
|
||||
|
.text { |
||||
|
display: inline-block; |
||||
|
margin-top: 18rpx; |
||||
|
height: 68rpx; |
||||
|
width: 574rpx; |
||||
|
font-size: 24rpx; |
||||
|
overflow: hidden; |
||||
|
text-overflow: ellipsis; |
||||
|
word-wrap: break-word; |
||||
|
white-space: normal !important; |
||||
|
//显示4行 |
||||
|
-webkit-line-clamp: 2; |
||||
|
-webkit-box-orient: vertical; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.btnDiv { |
||||
|
margin: 32rpx 48rpx; |
||||
|
|
||||
|
.item { |
||||
|
display: inline-block; |
||||
|
width: 218rpx; |
||||
|
text-align: center; |
||||
|
|
||||
|
.img { |
||||
|
margin: 0 36rpx 16rpx; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.steps { |
||||
|
margin: 0 32rpx; |
||||
|
width: 686rpx; |
||||
|
height: 472rpx; |
||||
|
background-color: #211F32; |
||||
|
background-image: url(../../static/home/img_People.png); |
||||
|
background-repeat: no-repeat; |
||||
|
background-size: contain; |
||||
|
border-radius: 16px; |
||||
|
|
||||
|
.content { |
||||
|
margin-left: 246rpx; |
||||
|
height: 100%; |
||||
|
display: flex; |
||||
|
justify-content: space-around; |
||||
|
align-items: center; |
||||
|
|
||||
|
flex-direction: column; |
||||
|
|
||||
.title { |
.title { |
||||
font-size: 36rpx; |
font-size: 48rpx; |
||||
color: #8f8f94; |
height: 64rpx; |
||||
|
line-height: 64rpx; |
||||
|
} |
||||
|
|
||||
|
.button { |
||||
|
width: 386rpx; |
||||
|
height: 60rpx; |
||||
|
line-height: 60rpx; |
||||
|
border-radius: 40rpx; |
||||
|
font-size: 24rpx; |
||||
|
color: #15141F !important; |
||||
|
padding: 0; |
||||
|
margin-right: 24rpx; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.video { |
||||
|
margin: 32rpx 32rpx 0; |
||||
|
width: 686rpx; |
||||
|
height: 360rpx; |
||||
|
border-radius: 32rpx; |
||||
|
} |
||||
|
|
||||
} |
} |
||||
</style> |
</style> |
||||
|
|||||
@ -0,0 +1,161 @@ |
|||||
|
<template> |
||||
|
<view class="main"> |
||||
|
<navigation>{{ i18n.ForgotPassword }}</navigation> |
||||
|
<view class="body"> |
||||
|
<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" 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" v-model="userInfo.confirmPassword" color="#fff" fontSize="32rpx" |
||||
|
border="none" :placeholder="i18n.confirmPasswordText"> |
||||
|
</u-input> |
||||
|
</u-form-item> |
||||
|
|
||||
|
</u--form> |
||||
|
<u-button class="button" color="#00E8A2" throttleTime="500" :disabled="!agreeFlag">{{ i18n.Save }} |
||||
|
</u-button> |
||||
|
</view> |
||||
|
|
||||
|
|
||||
|
</view> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import UButton from '../../uview-ui/components/u-button/u-button.vue' |
||||
|
export default { |
||||
|
name: "ForgotPassword", |
||||
|
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 } |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss"> |
||||
|
.main { |
||||
|
|
||||
|
.body { |
||||
|
padding: 0 64rpx; |
||||
|
overflow: hidden; |
||||
|
|
||||
|
.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; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.button { |
||||
|
margin-top: 64rpx; |
||||
|
height: 112rpx; |
||||
|
line-height: 112rpx; |
||||
|
border-radius: 32rpx; |
||||
|
font-size: 32rpx; |
||||
|
color: #15141F !important; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
||||
|
</style> |
||||
@ -0,0 +1,237 @@ |
|||||
|
<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" 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" 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" 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>{{ |
||||
|
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> |
||||
|
</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 } |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss"> |
||||
|
.main { |
||||
|
|
||||
|
.body { |
||||
|
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> |
||||
@ -0,0 +1,13 @@ |
|||||
|
|
||||
|
从git下拉带代码后 |
||||
|
项目中的 \node_modules\uview-ui\components\u-form\u-form.vue 第17行要添加下面这行代码 |
||||
|
this.errorType === 'toast' ?uni.$u.toast(errors[0].message): |
||||
|
|
||||
|
添加后是这样的: |
||||
|
if (uni.$u.test.array(errors)) { |
||||
|
errorsRes.push(...errors); |
||||
|
childErrors.push(...errors); |
||||
|
} |
||||
|
this.errorType === 'toast' ?uni.$u.toast(errors[0].message): |
||||
|
child.message = |
||||
|
childErrors[0]?.message ?? null; |
||||
|
After Width: | Height: | Size: 331 B |
|
After Width: | Height: | Size: 324 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 257 B |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 9.4 KiB |
|
After Width: | Height: | Size: 254 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 9.1 KiB |
|
After Width: | Height: | Size: 9.7 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 874 KiB |
|
After Width: | Height: | Size: 371 B |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 634 B |
|
After Width: | Height: | Size: 619 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 988 B |
|
After Width: | Height: | Size: 957 B |
|
Before Width: | Height: | Size: 847 B |
|
Before Width: | Height: | Size: 834 B |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1011 B |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 567 B |
|
Before Width: | Height: | Size: 599 B |
|
Before Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.0 KiB |
@ -0,0 +1,14 @@ |
|||||
|
const H5 = '/start'; |
||||
|
const H5_KEY = 'key=PBcGdWvA7dUintx7WNOR11cOdCrEpasM'; |
||||
|
|
||||
|
const APP = 'https://api.wingold6.com'; //正式
|
||||
|
// const APP = 'https://apitest.luck-work.com'; //测试
|
||||
|
const APP_KEY = 'key=PBcGdWvA7dUintx7WNOR11cOdCrEpasM'; |
||||
|
const showDialog = true |
||||
|
export default { |
||||
|
H5, |
||||
|
H5_KEY, |
||||
|
APP, |
||||
|
APP_KEY, |
||||
|
showDialog, |
||||
|
} |
||||
@ -0,0 +1,100 @@ |
|||||
|
var utils = { |
||||
|
checkEmail: function(email) { |
||||
|
return RegExp( |
||||
|
/^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/) |
||||
|
.test(email); |
||||
|
}, |
||||
|
checkMobile: function(mobile) { |
||||
|
return RegExp(/^1[34578]\d{9}$/).test(mobile); |
||||
|
}, |
||||
|
caculateTime: function(timeZome, time) { |
||||
|
return time + (timeZome * 1000 * 60 * 60); |
||||
|
}, |
||||
|
formatyymmdd: function(time) { |
||||
|
var date = new Date(time) |
||||
|
console.log(date,5555655) |
||||
|
var localTime = date.getTime(); |
||||
|
var localOffset = date.getTimezoneOffset() * 60000 //获得当地时间偏移的毫秒数
|
||||
|
var utc = localTime + localOffset //utc即GMT时间
|
||||
|
var offset = 8; //东8区
|
||||
|
var beijing = utc + (3600000 * offset); |
||||
|
date = new Date(beijing); |
||||
|
var Y = date.getFullYear() |
||||
|
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) |
||||
|
var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate() |
||||
|
var h = date.getHours() < 10 ? '0' + date.getHours() : date.getHours() |
||||
|
var m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes() |
||||
|
var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds() |
||||
|
console.log( M + '/' + D + '/' + Y,5454545454); |
||||
|
return M + '/' + D + '/' + Y; |
||||
|
|
||||
|
}, |
||||
|
formatyymmdd2: function(time) { |
||||
|
var date = new Date(time) |
||||
|
var localTime = date.getTime(); |
||||
|
var localOffset = date.getTimezoneOffset() * 60000 ; //获得当地时间偏移的毫秒数
|
||||
|
var utc = localTime + localOffset; //utc即GMT时间
|
||||
|
var offset = 8; //东8区
|
||||
|
var beijing = utc + (3600000 * offset); |
||||
|
date = new Date(beijing); |
||||
|
var Y = date.getFullYear() |
||||
|
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) |
||||
|
var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate() |
||||
|
var h = date.getHours() < 10 ? '0' + date.getHours() : date.getHours() |
||||
|
var m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes() |
||||
|
var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds() |
||||
|
return Y + M + D; |
||||
|
}, |
||||
|
formatyymmddhhmmss: function(time) { |
||||
|
var date = new Date(time) |
||||
|
var localTime = date.getTime() |
||||
|
var localOffset = date.getTimezoneOffset() * 60000 //获得当地时间偏移的毫秒数
|
||||
|
var utc = localTime + localOffset; //utc即GMT时间
|
||||
|
var offset = 8 //东8区
|
||||
|
var beijing = utc + (3600000 * offset); |
||||
|
date = new Date(beijing) |
||||
|
var Y = date.getFullYear() |
||||
|
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) |
||||
|
var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate() |
||||
|
var h = date.getHours() < 10 ? '0' + date.getHours() : date.getHours() |
||||
|
var m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes() |
||||
|
var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds() |
||||
|
// return Y + '-' + M + '-' + D + ' ' + h + ':' + m + ':' + s;
|
||||
|
return Y + '-' + M + '-' + D + ' ' + h + ':' + m + ':' + s; |
||||
|
}, |
||||
|
formathhmm: function(time) { |
||||
|
var date = new Date(time) |
||||
|
var localTime = date.getTime(); |
||||
|
var localOffset = date.getTimezoneOffset() * 60000 ; //获得当地时间偏移的毫秒数
|
||||
|
var utc = localTime + localOffset; //utc即GMT时间
|
||||
|
var offset = 8; //东8区
|
||||
|
var beijing = utc + (3600000 * offset); |
||||
|
date = new Date(beijing); |
||||
|
var Y = date.getFullYear() |
||||
|
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) |
||||
|
var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate() |
||||
|
var h = date.getHours() < 10 ? '0' + date.getHours() : date.getHours() |
||||
|
var m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes() |
||||
|
var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds() |
||||
|
return h + ':' + m; |
||||
|
}, |
||||
|
//客户端时间转换为北京时间
|
||||
|
getBeijingtime: function() { |
||||
|
//获得当前运行环境时间
|
||||
|
let d = new Date(); |
||||
|
let currentDate = new Date(); |
||||
|
let tmpHours = currentDate.getHours(); |
||||
|
//算得时区
|
||||
|
let time_zone = -d.getTimezoneOffset() / 60; |
||||
|
if (time_zone < 0) { |
||||
|
time_zone = Math.abs(time_zone) + 8; |
||||
|
currentDate.setHours(tmpHours + time_zone); |
||||
|
} else { |
||||
|
time_zone -= 8; |
||||
|
currentDate.setHours(tmpHours - time_zone); |
||||
|
} |
||||
|
return currentDate; |
||||
|
}, |
||||
|
} |
||||
|
|
||||
|
export default utils |
||||
@ -1,16 +1,66 @@ |
|||||
// en.js
|
// en.js
|
||||
export default { |
export default { |
||||
|
// tab bar 相关
|
||||
|
tabBar:{ |
||||
|
Home:'Home', |
||||
|
Markets:'Markets', |
||||
|
Charity:'Charity', |
||||
|
Subscription:'Subscription', |
||||
|
Me:'Me', |
||||
|
}, |
||||
|
// 登陆相关页面
|
||||
login: { |
login: { |
||||
|
// 公共字段
|
||||
|
Login: 'Login', |
||||
|
SignUp: 'Sign Up', |
||||
|
ForgotPassword: 'Forgot password', |
||||
|
// login
|
||||
welcomeText: 'Hi, Welcome Back!', |
welcomeText: 'Hi, Welcome Back!', |
||||
signInText: 'Sign in to your account.', |
signInText: 'Sign in to your account.', |
||||
emailInputText: 'Enter email address', |
emailInputText: 'Enter email address', |
||||
|
emailInputMessage: 'Please enter your email address', |
||||
passwordInputText: 'Password', |
passwordInputText: 'Password', |
||||
|
passwordInputMessage: 'Please enter your password', |
||||
forgotText: 'Forgot Password?', |
forgotText: 'Forgot Password?', |
||||
loginText:'Login', |
|
||||
notAccountText: 'Don’t have account?', |
notAccountText: 'Don’t have account?', |
||||
signUpText:'Sign Up', |
|
||||
agreeToBackup: 'Please check the prompt to agree to backup', |
agreeToBackup: 'Please check the prompt to agree to backup', |
||||
checkTheTermsOfService: 'Please review and agree to the terms of service', |
checkTheTermsOfService: 'Please review and agree to the terms of service', |
||||
|
|
||||
|
// register
|
||||
|
registerWelcomeText: "Getting Started", |
||||
|
registerCreate: "Create an account to continue!", |
||||
|
verificationCodeText: 'Verification Code', |
||||
|
verificationCodeMessage: 'Please enter verification code', |
||||
|
passwordText: 'Create The Login Password', |
||||
|
passwordMessage: 'Please enter your password', |
||||
|
confirmPasswordText: 'Confirm Login Password', |
||||
|
confirmPasswordMessage: 'Please confirm login password', |
||||
|
withdrawalPasswordText: 'Create The Withdrawal Password', |
||||
|
withdrawalPasswordMessage: 'Please enter the withdrawal password', |
||||
|
InvitationCodeText: 'Invitation code', |
||||
|
InvitationCodeMessage: 'Please enter the invitation code', |
||||
|
agreeText: 'By creating an account, you agree to our ', |
||||
|
Terms: 'Terms', |
||||
|
and: 'and', |
||||
|
Conditions: 'Conditions', |
||||
|
haveAccount: 'Already have an account?', |
||||
|
|
||||
|
// forget
|
||||
|
Save: 'Save', |
||||
|
}, |
||||
|
|
||||
|
// 首页相关页面
|
||||
|
home: { |
||||
|
// 公共字段
|
||||
|
HOME: 'HOME', |
||||
|
// 首页
|
||||
|
customerService: 'Customer Service', |
||||
|
homeMessage: `Please contact customer service on the top-left corner for identity verification on your first...
|
||||
|
Please contact customer service on the top-left corner for identity verification on your first...Please contact customer service on the top-left corner for identity verification on your first...`,
|
||||
|
Recharge: 'Recharge', |
||||
|
Mine: 'Mine', |
||||
|
Subcription: 'Subcription', |
||||
|
TodaySteps:"Today's steps", |
||||
|
ReceiveEarnings:"Receive yesterday's earnings", |
||||
} |
} |
||||
} |
} |
||||
|
|||||
@ -1,16 +1,38 @@ |
|||||
// zh.js
|
// zh.js
|
||||
export default { |
export default { |
||||
login: { |
login: { |
||||
welcomeText:'Hi, Welcome Back!', |
// 公共字段
|
||||
signInText:'Sign in to your account.', |
Login:'Login', |
||||
emailInputText:'Enter email address', |
SignUp:'Sign Up', |
||||
passwordInputText:'Password', |
//login
|
||||
forgotText:'Forgot Password?', |
welcomeText:'你好,欢迎回来!', |
||||
loginText:'Login', |
signInText:'请登录您的账户.', |
||||
|
emailInputText:'请输入邮箱', |
||||
|
emailInputMessage:'邮箱密码不能为空', |
||||
|
passwordInputText:'请输入密码', |
||||
|
passwordInputMessage:'密码不能为空', |
||||
|
forgotText:'忘记密码?', |
||||
notAccountText:'Don’t have account?', |
notAccountText:'Don’t have account?', |
||||
signUpText:'Sign Up', |
|
||||
agreeToBackup: '请勾选同意备份的提示', |
agreeToBackup: '请勾选同意备份的提示', |
||||
checkTheTermsOfService: '请查看并同意服务条款', |
checkTheTermsOfService: '请查看并同意服务条款', |
||||
|
|
||||
|
// register
|
||||
|
registerWelcomeText: "Getting Started", |
||||
|
registerCreate: "Create an account to continue!", |
||||
|
verificationCodeText: 'Verification Code', |
||||
|
verificationCodeMessage: 'Please enter verification code', |
||||
|
passwordText: 'Create The Login Password', |
||||
|
passwordMessage: 'Please enter your password', |
||||
|
confirmPasswordText: 'Confirm Login Password', |
||||
|
confirmPasswordMessage: 'Please confirm login password', |
||||
|
withdrawalPasswordText: 'Create The Withdrawal Password', |
||||
|
withdrawalPasswordMessage: 'Please enter the withdrawal password', |
||||
|
InvitationCodeText: 'Invitation code', |
||||
|
InvitationCodeMessage: 'Please enter the invitation code', |
||||
|
aggreeText :'By creating an account, you aggree to our ', |
||||
|
Terms:'Terms', |
||||
|
and:'and', |
||||
|
Conditions:'Conditions', |
||||
|
|
||||
} |
} |
||||
} |
} |
||||