h5可以获取本机手机号码么_人人都可写代码-H5零基础编程-登录界面实操05
欢迎来到人人都可写代码,大家好,我是杨晓华,今天我们的课程内容是,项目实操,开发一个登录界面的H5。
这是要实现的H5登录界面展示效果,手机号+验证码的登录方式;下面就是教大家如何制作的步骤:
1、在views的项目smart-zgw目录下,新建login.vue文件。这个文件由三部分style、template、script组成。stytle用于绑定样式、template用于设计标签界面、script用于数据交互操作。
2、template部分里编写的代码是:
<template>
<div class="page-login">
<div class="login-form">
<div>
<img src="../../assets/img/ic_shouji@2x.png" style="width: 0.176rem">
<input style="width: 90%" type="text" placeholder="请输入手机号" v-model="phone" maxlength="11" ref="input">
<i class="icon-roundclose" @click="handleClear"></i>
</div>
<div>
<img src="../../assets/img/ic_yzm@2x.png" alt="">
<input type="text" placeholder="验证码" v-model="code" maxlength="4">
<div class="getcode" v-if="time == 0" @click="getCode">获取验证码</div>
<div class="getcode" v-else>{{time}}秒后重试</div>
</div>
<mt-button class="submit" size="large" type="primary" @click="onSubmit">登录</mt-button>
<p class="xy">登录【这个娃】,即表明你已同意<a href="#!/smart-zgw/xie-yi">《用户服务协议》</a></p>
</div>
</div>
</template>
3、style部分里编写的代码是:
<style lang="scss">
@import '../../assets/css/fn';
.page-login{
font-size: 0.18rem;
padding: 0.15rem 0.15rem;
overflow: hidden;
background-color: #fff;
.icon-roundclose{
font-size: 0.2rem;
font-weight: lighter;
color: #ccc;
position: absolute;
right: 0.12rem;
top: 0.18rem;
}
.xy{
text-align: center;
margin-top: .1rem;
font-size: .14rem;
a{
font-size: .14rem;
//text-decoration: underline;
color: #1E90FF;
}
}
.login-form{
position: relative;
overflow: hidden;
width: 92%;
margin: 1rem auto 0;
>div{
position: relative;
background-color: #fff;
padding: 0 0.16rem;
margin-top: 0.2rem;
border: 1px solid #eee;
border-radius: 0.06rem;
img{
display: inline-block;
vertical-align: middle;
margin-top: -0.05rem;
width: 0.2rem;
}
input{
height: 0.55rem;
line-height: 0.55rem;
padding: 0.12rem 0.05rem;
}
.getcode{
position: absolute;
right: 0.15rem;
top: 0.15rem;
}
}
}
.submit{
margin-top: 0.5rem;
height: 0.55rem;
line-height: 0.55rem;
border-radius: 0.06rem;
font-size: 0.2rem;
}
}
</style>
4、script部分里编写的代码是:
<script>
import api from '../../api'
import Button from '../../components/button'
import Toast from '../../components/toast'
import {checkPhone} from '../../utils/check.js'
import { getAllParam, setCookie, getCookie, clearCookie } from '../../utils/other.js'
export default {
components: [ Button,Toast],
data () {
return {
phone: '',
code: '',
tj_uid: '',
time: 0
}
},
created () {
},
route: {
data (transition) {
let access_token = ''
//登录成功过,直接进入
if (process.env.NODE_ENV === 'production') {
access_token = getCookie('prod_access_token')
if(access_token.length > 0)
{
window.location.href = "http://www.zhegewa.com/?#!/smart-zgw/home"
}
} else {
access_token = getCookie('dev_access_token')
if(access_token.length > 0)
{
window.location.href = "http://localhost:8087/?#!/smart-zgw/home"
}
}
}
},
methods: {
handleClear() {
this.phone = '';
this.$refs['input'].focus()
},
getCode () {
if (!this.phone) {
Toast('请填写手机号码')
return false
} else if (!checkPhone(this.phone)) {
Toast('请输入正确的手机号码')
return false;
}
api.getVerifyCode.get({mobile: this.phone}).then(res => {
let data = res.data.data
Toast('验证码已发送')
this.time = 60
let timeout = setInterval(() => {
if (this.time > 0) {
this.time--
} else {
window.clearInterval(timeout)
}
}, 1000)
})
},
onSubmit () {
this.login()
},
login () {
if (!this.phone) {
Toast('请输入手机号码')
return false
} else if (!this.code) {
Toast('请输入验证码')
return false
}
let params = {}
params.mobile = this.phone
params.code = this.code
api.login.save(params).then(res => {
let data = res.data.data
Toast(res.data.message)
if (process.env.NODE_ENV === 'production') {
setCookie('prod_access_token', data.access_token, '/',10000000)
setCookie('prod_zhu_bf', data.user_info.nickname, '/',10000000)
setCookie('prod_zhu_bf_phone', data.user_info.mobile, '/',10000000)
window.location.href = "http://wx.zgw.com/?#!/smart-zgw/home"
} else {
setCookie('dev_access_token', data.access_token, '/',10000000)
setCookie('dev_zhu_bf', data.user_info.nickname, '/',10000000)
setCookie('dev_zhu_bf_phone', data.user_info.mobile, '/',10000000)
window.location.href = "http://localhost:8087/?#!/smart-zgw/home"
}
}, res => {
Toast(res.data.message)
})
},
onClose() {
let target = this.$route.query.target
if (target && target !== 'undefined') {
location.replace(target)
} else {
history.back()
}
}
}
}
</script>
5、登录界面用到获取验证码和登录动作两个接口,在script里可以看到api.getVerifyCode和api.login,在api目录的index.js文件里需设置这两个接口。
export default {
login: init(appHost, '/v2/topic/login?appid=zgw'),
getVerifyCode: init(appHost, ‘/v2/login/get-verify-code?appid=zgw'),
}
6、编写界面和数据交互后,还需要设置页面的访问路由,在route目录的index
.js文件里添加下面代码,在开发环境,输入http://localhost:8087/?#!/smart-zgw/login就可访问该页面。
export function configRouter (router) {
router.map({
'/smart-zgw': {
component: require('../views/smart-zgw/wrap.vue'),
subRoutes: {
'login': {
component: require('../views/smart-zgw/login.vue'),
title: '登录'
},
'xie-yi': {
component: require('../views/smart-zgw/xie-yi.vue'),
title: '《用户服务协议》'
}
}
开头:人人都可写代码-H5零基础编程-序言01
下一篇:人人都可写代码-H5零基础编程-首页界面实操06
h5可以获取本机手机号码么_人人都可写代码-H5零基础编程-登录界面实操05相关推荐
- qtdesigner怎么实现菜单栏跳转_人人都可写代码-Android零基础编程-app 入口菜单栏实操08...
欢迎来到人人都可写代码,大家好,我是杨晓华,今天我们的课程内容是项目实操,以智者精选项目为例,编写一个Android app的入口关联菜单栏逻辑. 这是要实现的菜单栏组件展示效果,下面就是教大家如何制 ...
- android 按钮顶级效果_人人都可写代码-Android零基础编程-相对布局11
欢迎来到人人都可写代码,大家好,我是杨晓华,今天我们的课程内容是:Android界面布局中的相对布局. 1.RelativeLayout的概述 (1) RelativeLayout是一个允许子视图相对 ...
- android 不通过数据线打印日志_人人都可写代码-Android零基础编程-开发调试、APK编译04...
欢迎来到人人都可写代码,大家好,我是杨晓华,今天我们的课程内容是,讲解Android开发中如何调试代码程序,开发完后如何打包成可发布的apk文件. 开发调试 在开发中,难免我们会遇到BUG,快速定位问 ...
- datagridview 绑定list 不能刷新界面_人人都可写代码-H5零基础编程-发布活动界面实操07...
欢迎来到人人都可写代码,大家好,我是杨晓华,今天我们的课程内容是,项目实操,开发一个发布活动界面的H5. 这是要实现的H5发布活动界面展示效果,下面就是教大家如何制作的步骤: 1.在views的项目s ...
- datagridview 绑定list 不能刷新界面_人人都可写代码-H5零基础编程-首页界面实操06...
欢迎来到人人都可写代码,大家好,我是杨晓华,今天我们的课程内容是,项目实操,开发一个首页界面的H5. 这是要实现的H5首页界面展示效果,下面就是教大家如何制作的步骤: 1.在views的项目smart ...
- h5可以获取本机手机号码么_重大突破 | 极验无感本机认证实现H5amp;小程序场景全覆盖,打造一键登录解决方案...
验证是企业业务场景中出现频次非常高的一环,短信验证码作为校验用户身份,拦截黑产的利器,迅速成为主流.但是面对频发的短信收发延迟,短信泄露资产受损等问题,短信验证码从对抗黑产利器一下子成为运营鸡肋,增长 ...
- h5可以获取本机手机号码么_三网运营商数据营销移动联通电信获取网站400访客...
随着大数据精准营销的发展,越来越多的行业不得不集中精力在自己的领域内深耕和发展. 如何获取客户手机号是当下商家需要解决的问题,为了解决老板们的营销痛点,云网获客系统2018年在北京组建技术研发团队.历 ...
- h5可以获取本机手机号码么_三体动画版要来了!看完新版H5,我是真坐不住了!...
这是H5资讯站的第:930篇更新-最近,我在朋友圈看到了不少人转发关于<三体>的新内容.打开一看,原来是<三体>要出动画了,这个消息还真挺让人兴奋的. B站也为此,也专门做了H ...
- 微信小程序获取本机手机号码登录
前言 开发环境:使用uni-app开发微信小程序. 具体需求:获取本机手机号码直接登录小程序. 参考 简单了解有此功能的微信小程序的情况. 实现过程 参考:微信小程序官方文档一 参考:微信小程序官方文 ...
最新文章
- javascript中的字典
- 【最后一天倒计时】你离¥399网易黑猪肉券就差一步
- CodeForces - 1203F1 Complete the Projects (easy version)(贪心)
- vue 传递 对象 路由_vue 04 -vue路由对象($route)参数简介以及和router的区别
- WPF 如何流畅地滚动ScrollViewer
- 不戴眼镜听不清?Google用视觉信号分离语音 | 附论文
- JS onclick 传参异常问题
- 2n个数的中位数问题_python_算法与数据结构
- Java异步NIO框架Netty实现高性能高并发
- MFC访问共享文件夹
- 应用之星:H5制作教程-最好用的H5制作工具
- 大数据产品价值主张_从「商业模式画布」看产品的价值主张和用户需求
- 对于网站优化该怎么去做外链?
- node.js读取文件中文乱码问题
- java高德点到ian距离,高德地图(点到线段的最短距离算法)不调用高德API
- 联想 Thinkpad T440p驱动程序下载列表(转发文章)
- oracle 的lag,LAG函数的使用
- leetcode 974. 和可被 K 整除的子数组 详解
- 腾讯QQ2009常用功能和设置手册
- 全球十大最受欢迎的猫咪品种排行榜公布,布偶猫连续三年排名第一