首页 > 编程语言 >微信小程序车牌号码虚拟键盘

微信小程序车牌号码虚拟键盘

时间:2023-11-29 13:44:06浏览次数:41  
标签:车牌号码 carnum 微信 border height 键盘 font margin size

WXML

<view class="page">
  <!-- 车牌号码输入框 -->
  <view class="carNumber">
    <view class="weui-cells__title">请输入您要缴费的车牌号码</view>
    <!-- 车牌号头两位 -->
    <view class="carNumber-items">
      <view class="carNumber-items-box" bindtap='openKeyboard'>
        <view class="carNumber-items-province carNumber-items-box-list">{{carnum[0] || ''}}</view>
        <view class="carNumber-items-En carNumber-items-box-list">{{carnum[1] || ''}}</view>
      </view>
      <!-- 常规 -->
      <view class="carNumber-item" bindtap='openKeyboard'>{{carnum[2] || ''}}</view>
      <view class="carNumber-item" bindtap='openKeyboard'>{{carnum[3] || ''}}</view>
      <view class="carNumber-item" bindtap='openKeyboard'>{{carnum[4] || ''}}</view>
      <view class="carNumber-item" bindtap='openKeyboard'>{{carnum[5] || ''}}</view>
      <view class="carNumber-item" bindtap='openKeyboard'>{{carnum[6] || ''}}</view>
      <!-- 新能源 -->
      <view class="carNumber-item {{showNewPower ? '': 'carNumber-item-newpower'}}">
        <view wx:if="{{!showNewPower}}" bindtap='showPowerBtn'>
          <view class="carNumber-newpower-add">+</view>
          <view style="font-size:12px;">新能源</view>
        </view>
        <view wx:if="{{showNewPower}}" bindtap='openKeyboard'>
          {{carnum[7]}}
        </view>
      </view>
    </view>
  </view>
 
  <!-- 提交车牌 -->
  <button class="carNumberBtn" bindtap='submitNumber' style="background: green;color:#fff;" type="default">确定</button>
 
  <!-- 虚拟键盘 -->
  <view class="keyboard" hidden='{{!KeyboardState}}'>
    <view class="keyboardClose">
    <view class="keyboardClose_btn1" bindtap='deleteAll'>清空</view>
      <view class="keyboardClose_btn2" bindtap='closeKeyboard'>关闭</view>
    </view>
    <!-- 省份简写键盘 -->
    <view class="keyboard-item" hidden="{{carnum[0]}}">
      <view class="keyboard-line" wx:for="{{provinces}}" wx:key="index">
        <view class="keyboard-btn" wx:for="{{item}}" wx:key="index" data-val="{{itemlist}}" wx:for-item="itemlist" bindtap='bindChoose'>{{itemlist}}</view>
      </view>
      <view class="keyboard-del" bindtap='bindDelChoose'>
        <text class="font_family icon-shanchu keyboard-del-font">←</text>
      </view>
    </view>
    <!-- 车牌号码选择键盘 -->
    <view class="keyboard-item iscarnumber" hidden="{{!carnum[0]}}">
      <view class="keyboard-line" wx:for="{{numbers}}" wx:key="index">
        <view class="keyboard-btn" wx:for="{{item}}" wx:key="index" data-val="{{itemlist}}" wx:for-item="itemlist" bindtap='bindChoose'>{{itemlist}}</view>
      </view>
      <view class="keyboard-del" bindtap='bindDelChoose'>
        <text class="font_family icon-shanchu keyboard-del-font">←</text>
      </view>
    </view>
  </view>
</view>

 

CSS

/* pages/parking_home/parking_home.wxss */
 
.page{
    background: #fff;
    position: absolute;
    top:0;
    bottom:0;
    width: 100%;
  }
  .weui-cells__title{
    margin-top:.77em;
  margin-bottom:.3em;
  padding-left:15px;
  padding-right:15px;
  color:#999;
  font-size:14px;
   
  }
  /* 虚拟键盘 */
  .keyboard{
    height: auto;
    background: #d1d5d9;
    position: fixed;
    bottom:0;
    width: 100%;
    left:0;
  }
  .keyboard-item{
    padding:10rpx 2rpx 25rpx 2rpx;
    position: relative;
    display: block;
  }
  /* 关闭虚拟键盘 */
  .keyboardClose{
    height: 70rpx;
    background-color: #f7f7f7;
    overflow: hidden;
  }
  .keyboardClose_btn1{
    float: right;
    line-height: 70rpx;
    font-size: 15px;
    padding-right: 30rpx;
    color: red;
  }
  .keyboardClose_btn2{
    float: right;
    line-height: 70rpx;
    font-size: 15px;
    padding-right: 30rpx;
    color: orange;
  }
  /* 虚拟键盘-省缩写 */
   
  /* 虚拟键盘-行 */
  .keyboard-line{
    margin:0 auto;
    text-align: center;
  }
  .iscarnumber .keyboard-line{
    text-align: center;
    margin-left: 5rpx;
  }
  /* 虚拟键盘-单个按钮 */
  .keyboard-btn{
    font-size: 25px;
    color: #333333;
    background: #fff;
    display: inline-block;
    padding:18rpx 0; 
    width: 64rpx;
    text-align: center;
    box-shadow: 0 6rpx 5rpx 0 #999999;
    border-radius: 10rpx;
    margin:12rpx 5rpx;
  }
  .keyboard-btn:active{
    font-size: 25px;
    color: #333333;
    background: #999999;
    display: inline-block;
    padding:18rpx 0; 
    width: 64rpx;
    text-align: center;
    box-shadow: 0 6rpx 5rpx 0 #999999;
    border-radius: 10rpx;
    margin:12rpx 6rpx;
  }
   
  /* 虚拟键盘-删除按钮 */
  .keyboard-del{
    font-size: 17px;
    color: #333333;
    background: #A7B0BC;
    display: inline-block;
    padding:4rpx 25rpx;
    box-shadow: 0 2rpx 0 0 #999999;
    border-radius: 10rpx;
    margin:5rpx;
    position: absolute;
    width: 20px;
    height: 45px;
    line-height: 45px;
    bottom:26rpx;
    right: 16rpx;
  }
  .keyboard-del:active{
    font-size: 17px;
    color: #333333;
    background: #fff;
    display: inline-block;
    padding:4rpx 25rpx;
    box-shadow: 0 2rpx 0 0 #999999;
    border-radius: 10rpx;
    margin:5rpx;
    position: absolute;
    width: 20px;
    height: 45px;
    line-height: 45px;
    bottom:26rpx;
    right: 16rpx;
  }
  .keyboard-del-font{
    font-size:25px;
  }
   
  /* 车牌号码 */
  .carNumber-items{
    text-align: center;
  }
  .carNumber-items-box{
    width: 158rpx;
    height: 90rpx;
    border: 2rpx solid #CCCCCC;
    border-radius: 4rpx;
    display: inline-block;
    vertical-align: middle;
    position: relative;
    margin-right: 30rpx;
  }
  .carNumber-items-box-list{
    width: 76rpx;
    height: 70rpx;
    line-height: 70rpx;
    text-align: center;
    display: inline-block;
    font-size: 18px;
    margin:10rpx 0;
    vertical-align: middle;
  }
  .carNumber-items-province{
    border-right: 1rpx solid #ccc;
  }
  .carNumber-items-box::after{
    content: "";
    width: 6rpx;
    height: 6rpx;
    position: absolute;
    right: -22rpx;
    top: 40rpx;
    border-radius: 50%;
    background-color: #ccc;
  }
  .carNumber-item{
    width: 76rpx;
    height: 90rpx;
    font-size: 18px;
    text-align: center;
    border: 2rpx solid #CCCCCC;
    border-radius: 4rpx;
    line-height: 90rpx;
    display: inline-block;
    margin:0 4rpx;
    vertical-align: middle;
  }
  /* 新能源 */
  .carNumber-item-newpower{
    border: 2rpx dashed #A8BFF3;
    background-color: #F6F9FF;
    color: #A8BFF3;
    font-size: 12px;
    line-height: 45rpx;
  }
  .carNumber-newpower-add{
    font-size: 18px;
  }
   
  /* 确认按钮 */
  .carNumberBtn{
    border-radius: 4rpx;
    margin:80rpx 40rpx;
  }

 

JS

Page({
 
    /**
     * 页面的初始数据
     */
    data: {
      // 省份简写
      provinces: [
        ['京', '沪', '粤', '津', '冀', '晋', '蒙', '辽', '吉', '黑'],
        ['苏', '浙', '皖', '闽', '赣', '鲁', '豫', '鄂', '湘'],
        ['桂', '琼', '渝', '川', '贵', '云', '藏'],
        ['陕', '甘', '青', '宁', '新'],
      ],
      // 车牌输入
      numbers: [
        ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"],
        ["Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P"],
        ["A", "S", "D", "F", "G", "H", "J", "K", "L"],
        ["Z", "X", "C", "V", "B", "N", "M"]
      ],
      carnum: [],
      showNewPower: false,
      KeyboardState: true
    },
    // 选中点击设置
    bindChoose(e) {
      if (!this.data.carnum[6] || this.data.showNewPower) {
        var arr = [];
        arr[0] = e.target.dataset.val;
        this.data.carnum = this.data.carnum.concat(arr)
        this.setData({
          carnum: this.data.carnum
        })
      }
      if(this.data.carnum[6]){
        this.setData({
          showNewPower: true,
          KeyboardState: true
        })
      }
    },
    bindDelChoose() {
      if (this.data.carnum.length != 0) {
        this.data.carnum.splice(this.data.carnum.length - 1, 1);
        this.setData({
          carnum: this.data.carnum
        })
      }
      
    },
    showPowerBtn() {
      this.setData({
        showNewPower: true,
        KeyboardState: true
      })
    },
    closeKeyboard() {
      this.setData({
        KeyboardState: false
      })
    },
    openKeyboard() {
      this.setData({
        KeyboardState: true
      })
    },
    //清空按钮
    deleteAll(){
      this.setData({
        carnum:[],
      })
    },
    // 提交车牌号码
    submitNumber() {
      if(this.data.carnum.length<7){
        wx.showToast({
          title: '请输入完整的车牌!',
          icon:'none',
          duration: 2000,
        })
      }
      if (this.data.carnum[6]) {
             
        var carno=this.data.carnum;
        var carnonew=carno.join('');
        console.log(carnonew);
      }
    },
    /**
     * 生命周期函数--监听页面加载
     */
    onl oad: function (options) {
      this.setData({
        carnum:[],
      })
    },
   
    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {
   
    },
   
    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {
   
    },
   
    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {
   
    },
   
    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {
   
    },
   
    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {
   
    },
   
    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {
   
    },
   
    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function () {
   
    }
  })

 

标签:车牌号码,carnum,微信,border,height,键盘,font,margin,size
From: https://www.cnblogs.com/linweimu/p/17864660.html

相关文章

  • 如何开启微信调试?
    解决方案:手机用usb连接至电脑(注意选择传输文件/调试模式,且手机需要开启usb调试,具体如何开启请自行百度)手机微信内点击/扫码打开http://debugxweb.qq.com/?inspector=true(会跳转到微信首页,跳转后就是开启了调试)微信内打开所需调试网址chrome浏览器打开chrome://inspect/#devi......
  • 微信小程序备案流程
    众所周知,现在微信小程序无论是新创建的还是存量的都需要进行备案了。一、备案需具备的条件是通过认证的小程序,现在认证小程序不能通过公众号资质直接快速创建并认证了。必须要单独认证(费用300元)二、开始备案1)填写主体信息,注意备注栏最好不要空着,要写详细把主体营业内容......
  • .NET生成微信小程序推广二维码
    前言对于小程序大家可能都非常熟悉了,随着小程序的不断普及越来越多的公司都开始推广使用起来了。今天接到一个需求就是生成小程序码,并且与运营给的推广图片合并在一起做成一张漂亮美观的推广二维码,扫码这种二维码就可以进入小程序。为了节省服务器内存资源,我想的就是成功调用通微......
  • 微信小程序真有意思
    从早期的微信云开发我就知道这玩意儿绝不靠谱,所以坚决不上车,果不其然,后面立马最低消费每月19元,其他按次数计费。结果一大堆依赖云的开发者直接弃坑,现在留下一地鸡毛,不小心搜个小应用进去就是无限转圈圈,肯定是上了云开发的车,哈哈。然后前段时间获取手机号也要收钱了,现在更离谱,......
  • E云管家开发个人微信号自动点赞朋友圈
    简要描述:朋友圈点赞请求URL:http://域名地址/snsPraise请求方式:POST请求头Headers:Content-Type:application/jsonAuthorization:login接口返回参数:参数名必选类型说明wId是String登录实例标识id是String朋友圈Id请求参数示例{"wId":"0000016e-abcd-0ea8-0002-d8c2dfdb0bf3",......
  • 微信公众号怎么链接word文档
    微附件的作用是用来给公众号添加附件的,这里面就包括word文档,但是由于公众号本身不提供这种服务,因此微附件发挥了链接word文档的功能。首先要知道如何打开微附件的官网:可以利用下方图片中的网址,在浏览器中打开即可;其次要知道怎样通过正确的方法上传文件,具体的三个方式都在下方一一......
  • 微信支付-业务流程图+时序图梳理微信支付链路+封装对接微信API工具类
    因业务需要,开发微信支付功能,涉及三种支付方式:JSAPI支付:微信内网页支付,需要开通微信服务号小程序支付:在小程序中支付,需要开通小程序H5支付:在手机浏览器(出微信内网爷)中网页支付使用微信支付的前提必开通微信商户号,要使用到那种的支付方式要前需在商户平台开通(要审核)。支付......
  • 微信商户平台 更换超级管理员
    直接访问:https://pay.weixin.qq.com/static/help_guide/bind_guide_admin.shtml或https://pay.weixin.qq.com/index.php/extend/modify_info/contact或:电脑端登录微信商户平台(pay.weixin.qq.com),点击“账户中心”->“商户信息”->"超级管理员信息"->点击【修改】按钮。......
  • 从前端的角度来梳理微信支付(小程序、H5、JSAPI)的流程
    因业务需要,开发微信支付功能,涉及三种支付方式:JSAPI支付:微信内网页支付,需要开通微信服务号小程序支付:在小程序中支付,需要开通小程序H5支付:在手机浏览器(出微信内网爷)中网页支付使用微信支付的前提必开通微信商户号,要使用到那种的支付方式要前需在商户平台开通(要审核)。支付......
  • 线上微信小程序无法登录问题
    反馈客户反馈无法线上小程序无法登录复现因为本地有为微信开发者工具,所以本地很快复现,找到traceid,查询sls日志,发现有问题日志:###Errorupdatingdatabase.Cause:com.mysql.cj.jdbc.exceptions.CommunicationsException:Communications linkfailure日志指向数据库通讯有......