欢迎来到人人都可写代码,大家好,我是杨晓华,今天我们的课程内容是,项目实操,开发一个登录界面的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相关推荐

  1. qtdesigner怎么实现菜单栏跳转_人人都可写代码-Android零基础编程-app 入口菜单栏实操08...

    欢迎来到人人都可写代码,大家好,我是杨晓华,今天我们的课程内容是项目实操,以智者精选项目为例,编写一个Android app的入口关联菜单栏逻辑. 这是要实现的菜单栏组件展示效果,下面就是教大家如何制 ...

  2. android 按钮顶级效果_人人都可写代码-Android零基础编程-相对布局11

    欢迎来到人人都可写代码,大家好,我是杨晓华,今天我们的课程内容是:Android界面布局中的相对布局. 1.RelativeLayout的概述 (1) RelativeLayout是一个允许子视图相对 ...

  3. android 不通过数据线打印日志_人人都可写代码-Android零基础编程-开发调试、APK编译04...

    欢迎来到人人都可写代码,大家好,我是杨晓华,今天我们的课程内容是,讲解Android开发中如何调试代码程序,开发完后如何打包成可发布的apk文件. 开发调试 在开发中,难免我们会遇到BUG,快速定位问 ...

  4. datagridview 绑定list 不能刷新界面_人人都可写代码-H5零基础编程-发布活动界面实操07...

    欢迎来到人人都可写代码,大家好,我是杨晓华,今天我们的课程内容是,项目实操,开发一个发布活动界面的H5. 这是要实现的H5发布活动界面展示效果,下面就是教大家如何制作的步骤: 1.在views的项目s ...

  5. datagridview 绑定list 不能刷新界面_人人都可写代码-H5零基础编程-首页界面实操06...

    欢迎来到人人都可写代码,大家好,我是杨晓华,今天我们的课程内容是,项目实操,开发一个首页界面的H5. 这是要实现的H5首页界面展示效果,下面就是教大家如何制作的步骤: 1.在views的项目smart ...

  6. h5可以获取本机手机号码么_重大突破 | 极验无感本机认证实现H5amp;小程序场景全覆盖,打造一键登录解决方案...

    验证是企业业务场景中出现频次非常高的一环,短信验证码作为校验用户身份,拦截黑产的利器,迅速成为主流.但是面对频发的短信收发延迟,短信泄露资产受损等问题,短信验证码从对抗黑产利器一下子成为运营鸡肋,增长 ...

  7. h5可以获取本机手机号码么_三网运营商数据营销移动联通电信获取网站400访客...

    随着大数据精准营销的发展,越来越多的行业不得不集中精力在自己的领域内深耕和发展. 如何获取客户手机号是当下商家需要解决的问题,为了解决老板们的营销痛点,云网获客系统2018年在北京组建技术研发团队.历 ...

  8. h5可以获取本机手机号码么_三体动画版要来了!看完新版H5,我是真坐不住了!...

    这是H5资讯站的第:930篇更新-最近,我在朋友圈看到了不少人转发关于<三体>的新内容.打开一看,原来是<三体>要出动画了,这个消息还真挺让人兴奋的. B站也为此,也专门做了H ...

  9. 微信小程序获取本机手机号码登录

    前言 开发环境:使用uni-app开发微信小程序. 具体需求:获取本机手机号码直接登录小程序. 参考 简单了解有此功能的微信小程序的情况. 实现过程 参考:微信小程序官方文档一 参考:微信小程序官方文 ...

最新文章

  1. javascript中的字典
  2. 【最后一天倒计时】你离¥399网易黑猪肉券就差一步
  3. CodeForces - 1203F1 Complete the Projects (easy version)(贪心)
  4. vue 传递 对象 路由_vue 04 -vue路由对象($route)参数简介以及和router的区别
  5. WPF 如何流畅地滚动ScrollViewer
  6. 不戴眼镜听不清?Google用视觉信号分离语音 | 附论文
  7. JS onclick 传参异常问题
  8. 2n个数的中位数问题_python_算法与数据结构
  9. Java异步NIO框架Netty实现高性能高并发
  10. MFC访问共享文件夹
  11. 应用之星:H5制作教程-最好用的H5制作工具
  12. 大数据产品价值主张_从「商业模式画布」看产品的价值主张和用户需求
  13. 对于网站优化该怎么去做外链?
  14. node.js读取文件中文乱码问题
  15. java高德点到ian距离,高德地图(点到线段的最短距离算法)不调用高德API
  16. 联想 Thinkpad T440p驱动程序下载列表(转发文章)
  17. oracle 的lag,LAG函数的使用
  18. leetcode 974. 和可被 K 整除的子数组 详解
  19. 腾讯QQ2009常用功能和设置手册
  20. 全球十大最受欢迎的猫咪品种排行榜公布,布偶猫连续三年排名第一

热门文章

  1. 三、6【Verilog HDL】基础知识之门级建模
  2. python学习记录之随机生成姓名
  3. X浏览器 v3.2.2.441 官方版-好用的手机浏览器 for Android
  4. Java中删除String中空格的多种方法
  5. 如何修改安卓界面上的图片和文字
  6. 实现酒店计算机管理的模型,酒店管理系统设计.doc
  7. MATLAB数字图像小程序设计
  8. spark 项目应用-topn搜索热词统计
  9. python3 中 阅读器reader的理解 以及 reader 的 next 用法
  10. 基于国产龙芯 CPU 的气井工业网关研究与设计(一)