• 中现私募股权---移动端(银行卡管理:未绑定,绑定,绑定完成)总结


    目录

         1.页面搭建

         2.样式设置

         3.js处理

         页面展示:点击这里

         源代码:   点击这里

         本文是对中现私募股权---移动端(银行卡管理:未绑定,绑定,绑定完成)页面的总结,主要涉及到的技术点有:vue.js,less,gulp,webpack,html。 

      写在前面:由于这个项目是协作开发的,故webpack,gulp的具体配置文件不是我写的,我目前只是用到了webpack,gulp来帮助我实现上述四个页面,不过我最近也在加紧学习中......

    页面搭建

         整个银行卡管理功能是由三个子页面构成,分别是:点击绑定银行卡,用户输入银行卡信息,显示用户绑定的银行卡信息。

         对于“点击绑定银行卡”页面,首先是放在<template>标签里的,然后是<section>标签里面两个<p>实现用户提示信息,和说明文字。

         对于"用户输入银行卡信息"页面,考虑到要实时获取用户输入的信息并进行合法性进行验证,用到了vue.js中的v-on指令,绑定了blur事件,为了实现数据的双向绑定用到了v-model指令。

         对于"显示用户绑定的银行卡信息"页面,本来银行的logo我是用<img>标签实现的,但最后考虑到实际中后台给的数据不可能包含银行logo,然后改成了<span>标签,银行logo做为background存在,这里还用到了vue.js中的Class与Style绑定的对象语法,即类似于v-bind:class="{'class-a':isA,'class-b':isB}"   根据isA和isB的值为true还是false实现根据用户填写的银行名称动态地切换class,进而显示相应的银行logo,此处用到了三目运算符来确定isA和isB的值。

    样式设置

          这三个页面全部是用less写的样式

          对于“点击绑定银行卡”页面,用到了::first-letter这个伪元素,实现了“+”号和其后的文本大小相适应,因为开始没用这个伪元素时,尽管“+”和其后的文本在同一个<p>中,字体大小也相同,但是显示效果却不令人满意。对于点击跳转到用户输入银行卡信息页面,是用vue-router插件中的v-link指令来让用户在v-router应用的不同路径间跳转。

          对于“点击绑定银行卡”页面为了实现错误提示能渐渐显示,用到了vue.js中的css过渡,关键代码如下:

    .expand-transition{
        transition : all .3s ease;
    }
    //expand-enter 定义进入的初始状态
    //expand-leave 定义离开的结束状态
    .expand-enter,.expand-leave {
        opacity: 0;
    }

    js处理

         对于“用户输入银行卡信息”页面主要用到了正则表达式对用户输入信息的和法性进行验证,部分代码如下:

        methods:{
                checkName : function(){
                    this.$set('userData.name',this.userData.name.replace(/(^s*)|(s*$)/g,''));  //去掉用户输入数据的首位空格
                    this.inputData.name=this.userData.name;  //将用户输入的数据存储
                    var name=this.inputData.name;
                    if(!name){
                        //当用户名为空时
                        this.isError=true;
                        this.errMsg='姓名不能为空';
                        this.errHide(); //超时错误提示信息隐藏
                    }else{
                        //当用户名不为空时
                        var reg=/^[u4E00-u9FA5]{2,7}$/;
                        if(reg.test(name)){
                            this.isError=false;
                            this.isTrue[0]=true;
                        }else{
                            this.isError=true;
                            this.errMsg='姓名应为2-7个中文';
                            this.errHide(); //超时错误提示信息隐藏
                        }
                    }
                }
        }

             点击发送验证码,关键点是设置了两个flag,一个用来判断用户是否有输入合法手机号,另一个是为了避免用户重复点击导致倒计时出错而存在的,两个都初始化为false,关键代码如下:

    sendVeriCode : function(){
                    //发送验证码
                    var _this=this;
                    var i=0;//辅助倒计时的实现
                    if(_this.verTrue[0]){
                        _this.flaseVeriCode='1234';
                        //获得模拟发送的验证码
                        _this.verTrue[0]=false;
                    }else{
                        if(_this.verTrue[2]){
                            _this.isError=true;
                            _this.errMsg='手机号不能为空';
                            this.errHide(); //超时错误提示信息隐藏
                            _this.verTrue[2]=false;
                        }    
                    }
                    if(_this.verTrue[1]){
                        _this.verTrue[1]=false;
                        var timer=setInterval(function(){
                            _this.veriTxt=(60-i)+'秒后重新发送';
                            i++;
                            if(i==60){
                                clearInterval(timer);
                                _this.veriTxt='发送验证码';
                                _this.verTrue=[true,true];
                            }
                        },1000);
                    }
                },

        为了实现错误提示信息能在一段时间之后自动消失,用到了setTimeout()定时器,关键代码如下:

    //用于实现超时错误提示信息的隐藏效果
    errHide : function(){
        var _this=this;
        setTimeout(function(){
                _this.isError=false; //使得错误提示信息隐藏
        },3000);
    },

            显示错误提示信息用到了vue.js中的v-show指令,用来切换元素的css属性display,用法示例:

    <h1 v-show="ok">Hello!</h1>

           只需要设置ok的值为false还是true就可以控制上述那个h1元素的隐藏,显示

           对于“显示用户绑定的银行卡信息”页面,用到了vue.js中数据绑定语法的文本插值,使得可以通过XMLHttpRequest获得的数据来动态显示用户绑定的信息,此处用到了vue.js中的vue-resource插件,关键代码如下:

    ready : function(){
                //使用vue-resource插件向服务器请求数据
                var _this=this;
                this.$http.get('../src/lib/card.json',{},{
                    headers: {
                        "X-Requested-With": "XMLHttpRequest"
                    },
                    emulateJSON: true
                }).then(function(response){
                    //请求成功时
                    var data=response.data;
                    this.$set('bankInfo',data);   //为bookInfo添加属性并让它是响应的
                },function(response){
                    //请求失败时
                    
                });
    }

            对于该页面的实现,我写了一个json文件来模拟从服务器端获得的数据,json文件如下:

    {
        "id" : "001",
        "bankName" : "农业银行",
        "userName" : "张三",
        "bankNum" : "*************45678",
        "explainTxt" : "说明:XXXXXXXXXXX"
    }

        

  • 相关阅读:
    android之View绘制到窗口上的过程
    Java设计模式-回调函数和观察者模式
    Android视图加载到窗口的过程分析
    Android中Handler原理
    第五百二十九天 how can I 坚持
    第五百二十至五百二十八天 how can I 坚持
    第五百一十九天 how can I 坚持
    第五百一十八天 how can I 坚持
    第五百一十七天 how can I 坚持
    第五百一十六天 how can I 坚持
  • 原文地址:https://www.cnblogs.com/mujinxinian/p/5707061.html
Copyright © 2020-2023  润新知