add:complete forget\change passgae pages; update weight\height roll pages

master
xhhing 3 months ago
parent a629d49cce
commit 2c919d0e13

@ -1,6 +1,6 @@
{
"pages": [
/* {
{
"path": "pages/transition/page1/page1",
"style": {
"navigationStyle": "custom"
@ -41,10 +41,10 @@
"style": {
"navigationStyle": "custom"
}
},*/
},
/*------------------------------------------------------------------------------------------------------------------*/
/*
{
"path": "pages/login/account_login/account_login",
@ -63,7 +63,13 @@
"style": {
"navigationStyle": "custom"
}
},*/
},
{
"path": "pages/login/change_password/change_password",
"style": {
"navigationStyle": "custom"
}
},
/*------------------------------------------------------------------------------------------------------------------*/
{

@ -1,6 +1,12 @@
<template>
<view class="container">
<picker-view @change="onPickerChange" class="picker-view">
<picker-view
@change="onPickerChange"
class="picker_view_box"
:value="pickerValue"
mask-style="opacity:0%"
indicator-style="height:3rem"
>
<picker-view-column>
<view v-for="(item, index) in options" :key="index" class="item">
{{ item }}
@ -59,17 +65,19 @@ export default {
background-size: cover;
}
.picker-view {
height: 200px; /* 设置 picker-view 的高度 */
width: 100%; /* 宽度自适应 */
.picker_view_box {
height: 42.8vh; /* 设置 picker-view 的高度 */
width: 80%; /* 宽度自适应 */
}
.item {
display: flex;
align-items: center; /* 垂直居中每个选项 */
justify-content: center; /* 水平居中每个选项 */
height: 40px; /* 每个选项的高度 */
color: #ffffff;
line-height: 2rem;
display: flex;
align-items: center;
justify-content: center;
font-size: 1.5rem;
height: 3rem;
color: #ffffff;
}
.button {

@ -1,13 +1,18 @@
<template>
<view class="container">
<picker-view @change="onPickerChange" class="picker-view">
<picker-view
@change="onPickerChange"
mask-style="opacity:0%"
indicator-style="height:3rem"
:value="pickerValue"
class="picker_view_box"
>
<picker-view-column>
<view v-for="(item, index) in options" :key="index" class="item">
{{ item }}
</view>
</picker-view-column>
</picker-view>
<image class="button" @click="go_to_weight_end" src="/static/information/boy_weight/pictures/button.png"></image>
</view>
</template>
@ -16,15 +21,15 @@
export default {
data() {
return {
options: this.generateHeightOptions(40, 150),
pickerValue: [15], //
options: this.generateWeightOptions(40, 150),
pickerValue: [15], //
};
},
methods: {
generateHeightOptions(start, end) {
generateWeightOptions(start, end) {
const options = [];
for (let i = start; i <= end; i++) {
options.push(`${i} kg`);
options.push(`${i} kg`);
}
return options;
},
@ -52,22 +57,23 @@ export default {
align-items: center; /* 水平居中 */
justify-content: center; /* 垂直居中 */
height: 100vh; /* 使容器充满整个视口 */
padding: 20px;
background-image: url("/static/information/boy_weight/pictures/bkg_roll.png");
background-size: cover;
}
.picker-view {
height: 200px; /* 设置 picker-view 的高度 */
width: 100%; /* 宽度自适应 */
.picker_view_box {
height: 42.8vh; /* 设置 picker-view 的高度 */
width: 80%; /* 宽度自适应 */
}
.item {
display: flex;
align-items: center; /* 垂直居中每个选项 */
justify-content: center; /* 水平居中每个选项 */
height: 40px; /* 每个选项的高度 */
color: #ffffff;
line-height: 2rem;
display: flex;
align-items: center;
justify-content: center;
font-size: 1.5rem;
height: 3rem;
color: #ffffff;
}
.button {

@ -29,7 +29,9 @@ export default {
},
goTob_roll() {
this.navigateTo('/pages/information/boy_height_roll/boy_height_roll');
uni.navigateTo({
url:'/pages/information/boy_weight_roll/boy_weight_roll'
})
height:''
},
}

@ -19,22 +19,32 @@
<!-- 表单部分 -->
<form class="login_form">
<view class="form_input">
<!-- 账号输入框 -->
<view class="account_box login_form_item">
<input class="account" name="account" type="text" placeholder="请输入你的电话号码"/>
<view class="form_input_box">
<input class="account" name="account" type="text" placeholder="请输入你的电话号码"/>
</view>
<view class="error_tip" v-if="isPhoneError">*</view>
</view>
<!-- 密码登录 -->
<!-- 密码输入框 -->
<view class="passage_box login_form_item" v-if="isPassagePage">
<input class="passage" name="passage" :password="isOpened" type="text" placeholder="请输入你的密码"/>
<image @click="openEyesEvent" class="eyes" :src="eyesStateIcon"></image>
<view class="form_input_box passage_input_box">
<input class="passage" name="passage" :password="isOpened" type="text" placeholder="请输入你的密码"/>
<image @click="openEyesEvent" class="eyes" :src="eyesStateIcon"></image>
</view>
<view class="error_tip" v-if="isPassageError">*</view>
</view>
<view class="captcha_box login_form_item" v-else>
<input class="captcha" name="captcha" type="text" placeholder="请输入你的验证码"/>
<button class="captcha_button" @click="sendCaptchaEvent"
:style="{color:captchaButtonColor, backgroundColor:captchaButtonBackgroundColor}">
{{captchaButtonText}}
</button>
<view class="form_input_box captcha_input_box">
<input class="captcha" name="captcha" type="text" placeholder="请输入你的验证码"/>
<button class="captcha_button" @click="sendCaptchaEvent"
:style="{color:captchaButtonColor, backgroundColor:captchaButtonBackgroundColor}">
{{captchaButtonText}}
</button>
</view>
<view class="error_tip" v-if="isCaptchaError">*</view>
</view>
<view class="forget_passage">忘了密码</view>
<view class="forget_passage" @click="forgetPassageClick"></view>
<view class="button_box login_form_item">
<button name="submit_button" class="login_button" @click="login"></button>
</view>
@ -72,6 +82,10 @@ const captchaWordsBottomBorder = computed(() => isPassagePage.value? "none":"0.1
const isOpened = ref(true); //
const eyesStateIcon = ref("../../../static/login/account_login/login_part/closedeyes.png");
const isPhoneError = ref(true);
const isPassageError = ref(true);
const isCaptchaError = ref(true);
//
function toCaptchaEvent(){
isPassagePage.value = false;
@ -100,7 +114,7 @@ function sendCaptchaEvent(){
function login(){
//TODO:
uni.navigateTo({
url: '/pages/homepages/main/main'//
url: '/pages/information/sex/sex'//
})
}
//
@ -122,6 +136,15 @@ function openEyesEvent()
}
}
function forgetPassageClick(){
//TODO:
uni.navigateTo({
url:'/pages/login/forget_password/forget_password',
animationType: 'pop-in',
animationDuration: 200
})
}
</script>
<style lang="scss">
@ -150,7 +173,6 @@ function openEyesEvent()
width: 76%;
height: 30%;
top: 41%;
// left: calc(50% - 314px/2 + 3px);
.login_ways{
position: absolute;
width: 58%;
@ -164,7 +186,7 @@ function openEyesEvent()
font-family: 'PingFang SC';
font-style: normal;
font-weight: 400;
font-size: 0.9rem;
font-size: 1rem;
text-align: center;
color: #000364;
}
@ -175,7 +197,7 @@ function openEyesEvent()
font-family: 'PingFang SC';
font-style: normal;
font-weight: 400;
font-size: 0.9rem;
font-size: 1rem;
text-align: center;
color: #000364;
}
@ -190,71 +212,96 @@ function openEyesEvent()
width: 100%;
height: 100%;
.login_form_item{
height: 25%;
height: auto;
margin-bottom: 5%;
}
.account_box{
padding-left: 3%;
background-color: #D5E9FF;
border-radius: 12px;
.account{
height: 100%;
padding-left: 11%;
background-image: url("../../../static/login/account_login/login_part/phone_icon.png");
background-repeat: no-repeat;
background-size: 0.8rem;
background-position: 3% 50%;
.form_input_box{
padding-left: 3%;
padding-right: 3%;
background-color: #D5E9FF;
border-radius: 12px;
}
.error_tip{
margin-top: 0.6vh;
padding-left: 3%;
font-size: 0.8rem;
color: #FF1E1E;
}
}
.account_box{
display: flex;
flex-direction: column;
// .account_input_box{
// padding-left: 3%;
// padding-right: 3%;
// background-color: #D5E9FF;
// border-radius: 12px;
.account{
height: 5.5vh;
padding-left: 11%;
background-image: url("../../../static/login/account_login/login_part/phone_icon.png");
background-repeat: no-repeat;
background-size: 0.8rem;
background-position: 3% 50%;
background-color: #D5E9FF;
font-size: 0.8rem;
}
// }
}
.passage_box{
display: flex;
align-items: center;
padding-left: 3%;
background-color: #D5E9FF;
border-radius: 12px;
position: relative;
.passage{
height: 100%;
padding-left: 11%;
background-image: url("../../../static/login/account_login/login_part/lock_icon.png");
background-repeat: no-repeat;
background-size: 0.8rem;
background-position: 4.7% 50%;
font-size: 0.8rem;
}
.eyes{
width: 1rem;
height: 1rem;
position: absolute;
right: 13%;
flex-direction: column;
.passage_input_box{
display: flex;
align-items: center;
background-color: #D5E9FF;
border-radius: 12px;
position: relative;
.passage{
height: 5.5vh;
padding-left: 11%;
background-image: url("../../../static/login/account_login/login_part/lock_icon.png");
background-repeat: no-repeat;
background-size: 0.8rem;
background-position: 4.7% 50%;
font-size: 0.8rem;
}
.eyes{
width: 1rem;
height: 1rem;
position: absolute;
right: 13%;
}
}
}
.captcha_box{
display: flex;
align-items: center;
padding-left: 3%;
background-color: #D5E9FF;
border-radius: 12px;
position: relative;
.captcha{
height: 100%;
padding-left: 11%;
background-image: url("../../../static/login/account_login/login_part/captcha_icon.png");
background-repeat: no-repeat;
background-size: 0.8rem;
background-position: 4.5% 50%;
font-size: 0.8rem;
}
.captcha_button{
/* 发送验证码 */
width: 5.5rem;
height: 1.9rem;
border-radius: 15px;
font-size: 0.8rem;
color: #000364;
position: absolute;
right: 5%;
flex-direction: column;
.captcha_input_box{
display: flex;
align-items: center;
padding-left: 3%;
background-color: #D5E9FF;
border-radius: 12px;
position: relative;
.captcha{
height: 5.5vh;
padding-left: 11%;
background-image: url("../../../static/login/account_login/login_part/captcha_icon.png");
background-repeat: no-repeat;
background-size: 0.8rem;
background-position: 4.5% 50%;
font-size: 0.8rem;
}
.captcha_button{
/* 发送验证码 */
width: 5.5rem;
height: 1.9rem;
border-radius: 15px;
font-size: 0.8rem;
color: #000364;
position: absolute;
right: 5%;
}
}
}
.forget_passage{
@ -272,7 +319,7 @@ function openEyesEvent()
display: flex;
align-items: center;
justify-content: center;
height: 100%;
height: 5.5vh;
border-radius: 12px;
background-color: #4A69F7;
color: #FFFCFC;

@ -0,0 +1,157 @@
<template>
<view class="change_password_box">
<!-- 返回图标 -->
<navigator url="/pages/login/forget_password/forget_password">
<image class="return_image" src="../../../static/login/change_password/pictures/return_icon.png"></image>
</navigator>
<!-- 修改密码文字 -->
<view class="change_passage_words">修改密码</view>
<!-- 表单 -->
<form class="change_password_form">
<!-- 密码输入 -->
<view class="passage_box change_password_form_item">
<input type="text" class="passage" :password="isOpened_1" placeholder="请输入你的密码"/>
<image @click="openEyesEvent_1" class="eyes" :src="eyesStateIcon_1"></image>
</view>
<!-- 确认密码输入 -->
<view class="passage_box change_password_form_item">
<input type="text" class="passage" :password="isOpened_2" placeholder="请再次确认密码"/>
<image @click="openEyesEvent_2" class="eyes" :src="eyesStateIcon_2"></image>
</view>
<!-- 注册按钮 -->
<view class="ensure_button_box change_password_form_item">
<button class="ensure_button" @click="ensureClickEvent"></button>
</view>
</form>
</view>
</template>
<script setup>
import { ref, computed } from 'vue';
const isOpened_1 = ref(true); //
const eyesStateIcon_1 = ref("../../../static/login/register/pictures/closedeyes.png");
const isOpened_2 = ref(true); //
const eyesStateIcon_2 = ref("../../../static/login/register/pictures/closedeyes.png");
//
function openEyesEvent_1(){
if (isOpened_1.value)
{
isOpened_1.value = false;
eyesStateIcon_1.value = "../../../static/login/register/pictures/openedeyes.png";
}
else
{
isOpened_1.value =true;
eyesStateIcon_1.value = "../../../static/login/register/pictures/closedeyes.png";
}
}
//
function openEyesEvent_2(){
if (isOpened_2.value)
{
isOpened_2.value = false;
eyesStateIcon_2.value = "../../../static/login/register/pictures/openedeyes.png";
}
else
{
isOpened_2.value =true;
eyesStateIcon_2.value = "../../../static/login/register/pictures/closedeyes.png";
}
}
//
function ensureClickEvent(){
console.log('密码确认修改');
uni.navigateTo({
url:"/pages/login/account_login/account_login"
})
}
</script>
<style lang="scss">
.change_password_box{
background-image: url("../../../static/login/register/pictures/background.png");
background-size: cover;
background-position: center;
height: 100vh;
width: auto;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
position: relative;
object-fit: contain;
//
.return_image{
position: absolute;
left: 16.5%;
right: 80.1%;
top: 8.62%;
bottom: 89.09%;
width: 0.8rem;
height: auto;
object-fit: contain;
}
//
.change_passage_words{
position: absolute;
left: 12.4%;
top: 30.8%;
font-family: 'PingFang SC';
font-size: 1.4rem;
color: #000364;
}
//
.change_password_form{
position: absolute;
width: 74.5%;
height: 33.6%;
top: 40%;
//
.change_password_form_item{
height: 15.6%;
margin-bottom: 5%;
}
//
.passage_box{
display: flex;
align-items: center;
padding-left: 3%;
background-color: #D5E9FF;
border-radius: 12px;
position: relative;
.passage{
height: 100%;
padding-left: 11%;
background-image: url("../../../static/login/register/pictures/lock_icon.png");
background-repeat: no-repeat;
background-size: 0.8rem;
background-position: 4.7% 50%;
font-size: 0.8rem;
}
.eyes{
width: 1rem;
height: 1rem;
position: absolute;
right: 9%;
}
}
//
.ensure_button{
display: flex;
align-items: center;
justify-content: center;
margin-top: 8%;
height: 100%;
border-radius: 12px;
background-color: #4A69F7;
color: #FFFCFC;
text-align: center;
font-size: 1.2rem;
}
}
}
</style>

@ -1,17 +1,177 @@
<template>
<view>
<view class="forget_passage_box">
<!-- 返回图标 -->
<navigator url="/pages/login/account_login/account_login">
<image class="return_image" src="../../../static/login/forget_password/pictures/return_icon.png"></image>
</navigator>
<!-- 忘记密码文字 -->
<view class="forget_passage_words">忘记密码</view>
<!-- 表单 -->
<form class="forget_passage_form">
<!-- 手机号输入 -->
<view class="phone_number_box forget_passage_form_item">
<input type="text" class="phone_number" placeholder="请输入你的电话号码"/>
</view>
<!-- 验证码输入 -->
<view class="captcha_box forget_passage_form_item">
<input type="text" class="captcha" placeholder="请输入你的验证码"/>
<button class="captcha_button" @click="sendCaptchaEvent"
:style="{color:captchaButtonColor, backgroundColor:captchaButtonBackgroundColor}">
{{captchaButtonText}}
</button>
</view>
<!-- 下一步按钮 -->
<view class="forget_passage_button_box forget_passage_form_item">
<button class="forget_passage_button" @click="nextClickEvent"></button>
</view>
</form>
</view>
</template>
<script>
export default {
data() {
return {};
}
<script setup>
import { ref, computed } from 'vue';
const isSendCaptcha = ref(false); //
var codeTime = ref(0); //
const captchaButtonBackgroundColor = computed(() => isSendCaptcha.value ? "#ABCBFF" : "#ffffff"); //
const captchaButtonColor = computed(() => isSendCaptcha.value ? "#ffffff" : "#000364");//
const captchaButtonText = computed(() => isSendCaptcha.value ? (codeTime.value+"s后重新发送"):"发送验证码");
//
function sendCaptchaEvent(){
console.log("send captcha");
if (codeTime.value>0){ //
uni.showToast({ //
title: '不能重复获取',
icon:"none"
});
} else{ //
codeTime.value = 60;
isSendCaptcha.value = true;
var timer = setInterval(()=>{
codeTime.value--;
if(codeTime.value<1){
clearInterval(timer);
isSendCaptcha.value = false;
codeTime.value = 0;
}
},1000)
};
}
//
function nextClickEvent(){
uni.navigateTo({
url:'/pages/login/change_password/change_password',
animationType: 'pop-in',
animationDuration: 200
})
}
</script>
<style lang="scss">
.forget_passage_box{
background-image: url("../../../static/login/forget_password/pictures/background.png");
background-size: cover;
background-position: center;
height: 100vh;
width: auto;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
position: relative;
object-fit: contain;
//
.return_image{
position: absolute;
left: 16.5%;
right: 80.1%;
top: 8.62%;
bottom: 89.09%;
width: 0.8rem;
height: auto;
object-fit: contain;
}
//
.forget_passage_words{
position: absolute;
left: 12.4%;
top: 30.8%;
font-family: 'PingFang SC';
font-size: 1.4rem;
color: #000364;
}
//
.forget_passage_form{
position: absolute;
width: 74.5%;
height: 33.6%;
top: 40%;
//
.forget_passage_form_item{
height: 15.6%;
margin-bottom: 5%;
}
//
.phone_number_box{
padding-left: 3%;
background-color: #D5E9FF;
border-radius: 12px;
.phone_number{
height: 100%;
padding-left: 11%;
background-image: url("../../../static/login/register/pictures/phone_icon.png");
background-repeat: no-repeat;
background-size: 0.8rem;
background-position: 3% 50%;
font-size: 0.8rem;
}
}
//
.captcha_box{
display: flex;
align-items: center;
padding-left: 3%;
background-color: #D5E9FF;
border-radius: 12px;
position: relative;
//
.captcha{
height: 100%;
padding-left: 11%;
background-image: url("../../../static/login/register/pictures/captcha_icon.png");
background-repeat: no-repeat;
background-size: 0.8rem;
background-position: 4.5% 50%;
font-size: 0.8rem;
}
//
.captcha_button{
width: 5.5rem;
height: 1.9rem;
border-radius: 15px;
font-size: 0.8rem;
color: #000364;
position: absolute;
right: 5%;
}
}
//
.forget_passage_button{
display: flex;
align-items: center;
justify-content: center;
margin-top: 8%;
height: 100%;
border-radius: 12px;
background-color: #4A69F7;
color: #FFFCFC;
text-align: center;
font-size: 1.2rem;
}
}
}
</style>

@ -47,17 +47,13 @@ const isSendCaptcha = ref(false); //是否发送了验证码的标志
var codeTime = ref(0); //
const captchaButtonBackgroundColor = computed(() => isSendCaptcha.value ? "#ABCBFF" : "#ffffff"); //
const captchaButtonColor = computed(() => isSendCaptcha.value ? "#ffffff" : "#000364");//
const captchaButtonText = computed(() => isSendCaptcha.value ? (codeTime.value+"s后重新发送"):"发送验证码")
const captchaButtonText = computed(() => isSendCaptcha.value ? (codeTime.value+"s后重新发送"):"发送验证码");
const isOpened_1 = ref(true); //
const eyesStateIcon_1 = ref("../../../static/login/register/pictures/closedeyes.png");
const isOpened_2 = ref(true); //
const eyesStateIcon_2 = ref("../../../static/login/register/pictures/closedeyes.png");
//
function toCaptchaEvent(){
isPassagePage.value = false;
}
//
function sendCaptchaEvent(){
console.log("send captcha");
@ -111,7 +107,7 @@ function openEyesEvent_2(){
function registerEvent(){
//
uni.navigateTo({
url: '/pages/information/sex/sex',
url: '/pages/login/account_login/account_login',
animationType: 'pop-in', //
animationDuration: 200
});

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 725 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

@ -1,8 +1,8 @@
{
"hash": "3dcffc29",
"configHash": "cc60d382",
"hash": "239ea83a",
"configHash": "3f4641d2",
"lockfileHash": "e3b0c442",
"browserHash": "e601f541",
"browserHash": "619b4131",
"optimized": {},
"chunks": {}
}
Loading…
Cancel
Save