From a3ad988e9f74049a6b17efd4f3db8389ae6fe7ed Mon Sep 17 00:00:00 2001 From: xuxy <1059738716@qq.com> Date: 星期一, 24 六月 2024 17:06:05 +0800 Subject: [PATCH] upload 花农小程序(todo商品管理) --- pages/login/farmer-login.vue | 104 ++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 77 insertions(+), 27 deletions(-) diff --git a/pages/login/farmer-login.vue b/pages/login/farmer-login.vue index b7cd8ea..1f71a78 100644 --- a/pages/login/farmer-login.vue +++ b/pages/login/farmer-login.vue @@ -2,43 +2,38 @@ <view class="main-container login-container img100" style="margin-top: 0rpx;"> <view class="t-login top-bg"> - <view class="icons"> - <image class="icon1" src="../../static/imgs/user/usr-icon1.png" mode="aspectFit"></image> - <image class="icon2" src="../../static/imgs/home/home-shop-top-icon.png" mode="aspectFit"></image> - </view> + <view class="nav-title">登录</view> <view class="login"> <form class="cl"> <view class="t-a titles-top"> <view class="title-1">HELLO</view> - <view class="title-2">欢迎登录<span class="title-2">花满芜</span></view> + <view class="title-2">欢迎登录<span class="title-3">花满芜</span></view> </view> - <view class="t-a"> - <!-- <image src="/static/username.png"></image> --> - <!-- <uni-icons class="icon" type="person-filled" size="32" color="#04BA97"></uni-icons> --> - - <!-- <view class="line"></view> --> + <view class="t-a input" v-if="loginType=='pwd'"> <input type="text" name="userName" placeholder="请输入账号" v-model="userName" /> </view> - <view class="t-a"> - <!-- <image src="/static/password.png"></image> --> - <!-- <uni-icons class="icon" type="locked-filled" size="32" color="#04BA97"></uni-icons> --> - <!-- <view class="line"></view> --> + <view class="t-a input" v-if="loginType=='pwd'"> <input type="text" :password="true" name="password" placeholder="请输入密码" v-model="password" /> </view> - <view class="main-container" v-if="false"> - <checkbox-group @change="changeAll" style="float:left;"> - <label class="checkbox"> - <checkbox value="1" :checked="checked" /> - </label> - </checkbox-group> - 同意<text @click="tc1(1)" style="color:red;">《用户服务协议》</text>及 - <text @click="tc1(2)" style="color:red;">《隐私政策》</text> + <view class="t-a input" v-if="loginType=='code'"> + <view class="get-code" :style="{'color':getCodeBtnColor}" @click.stop="getCode()"> + {{getCodeText}} + </view> + + <input type="text" name="userName" placeholder="请输入手机号" v-model="phoneNumber" /> + </view> - <button @tap="login()" style="background-color: #04BA97;">登 录</button> - <!-- <view @tap="backpage" class="to-home">返回首页</view> --> + + + <view class="t-a input" v-if="loginType=='code'"> + <input type="text" :password="true" name="password" placeholder="请输入密码" v-model="password" /> + </view> + + <button @tap="login()" class="bottom-button">登 录</button> + <view class="flex"> - <view class="topic-font">手机验证码登录</view> - <view class="topic-font">前往注册</view> + <view class="topic-font" @click="loginType='code'">手机验证码登录</view> + <view class="topic-font m-l-a m-r-0" @click="toReg">前往注册</view> </view> </form> </view> @@ -56,16 +51,70 @@ // userName: '12345678', // password: '12345678', userName: '', + phoneNumber: '', password: '', checked: false, + loginType: 'pwd', //pwd和code,密码和验证码登录 pcfvalue: undefined, + getCodeText: '获取验证码', + getCodeBtnColor: "#20613D", + getCodeisWaiting: false, + Timer: undefined }; }, methods: { - toHome() { + getCode() { + uni.hideKeyboard() //隐藏已经显示的软键盘,如果软键盘没有显示则不做任何操作。 + if (this.getCodeisWaiting) { + return; + } + if (!(/^1(3|4|5|6|7|8|9)\d{9}$/.test(this.phoneNumber))) { //校验手机号码是否有误 + uni.showToast({ + title: '请填写正确手机号码', + icon: "none" + }); + return false; + } + this.getCodeText = "发送中..." //发送验证码 + this.getCodeisWaiting = true; + this.getCodeBtnColor = "rgba(255,255,255,0.5)" //追加样式,修改颜色 + //示例用定时器模拟请求效果 + //setTimeout(()用于在指定的毫秒数后调用函数或计算表达式 + setTimeout(() => { + uni.showToast({ + title: '验证码已发送', + icon: "none" + }); //弹出提示框 + //示例默认1234,生产中请删除这一句。 + // this.code = '1234'; //发送验证码,进行填入 + this.setTimer(); //调用定时器方法 + }, 1000) + }, + //setTimer: 需要每隔一段时间执行一件事的的时候就需要使用SetTimer函数 + setTimer() { + let holdTime = 60; //定义变量并赋值 + this.getCodeText = "重新获取(60)" + //setInterval()是一个实现定时调用的函数,可按照指定的周期(以毫秒计)来调用函数或计算表达式。 + //setInterval方法会不停地调用函数,直到 clearInterval被调用或窗口被关闭。 + this.Timer = setInterval(() => { + if (holdTime <= 0) { + this.getCodeisWaiting = false; + this.getCodeBtnColor = "#20613D"; + this.getCodeText = "获取验证码" + clearInterval(this.Timer); //清除该函数 + return; //返回前面 + } + this.getCodeText = "重新获取(" + holdTime + ")" + holdTime--; + }, 1000) + }, + toReg() { // uni.switchTab({ // url: '/pages/index/index' // }) + uni.navigateTo({ + url: '/pages/login/farmer-reg' + }) }, changeAll(e) { @@ -178,6 +227,7 @@ .t-login .login { width: 650rpx; margin: 60rpx auto; + margin-top: 0rpx; font-size: 28rpx; color: #000; } -- Gitblit v1.9.3