uniapp自定义密码输入键盘-数字键盘效果demoUI方法一(整理)

简介: uniapp自定义密码输入键盘-数字键盘效果demoUI方法一(整理)

效果图:

<template>
  <view class="paymentCodeBox">
    <!-- 自定义键盘 -->
    <view class="password-set-page">
      <view class="setPage">
        <view class="font-size30 color222 hites align-center">请输入6位纯数字支付密码</view>
        <view class="code margin-top40 margin-bottom110">
          <view class="numFont">
            <view v-for="(item, index) in 6" :key="index">{{ password[index] && '●' || '' }}</view>
          </view>
        </view>
        <view class="nextStep margin-left30 margin-right30 font-size30 color height100 align-center" @click="nextStepClick()">下一步</view>
        <view class="keyboard">
          <button v-for="(item, index) in 9" :key="index" @click="key(index + 1)">
            <text>{{ index + 1 }}</text>
          </button>
          <button class="hide"></button>
          <button @click="key(0)">
            <text>0</text>
          </button>
          <button @click="del()">
            <image src="../static/goods/del1.png" mode="aspectFill"></image>
          </button>
        </view>
      </view>
    </view>
  </view>
</template>
<script>
  export default {
    components: {},
    data() {
      return {
        // pageNum: 1,
        password: '',
      }
    },
    // 页面加载
    onLoad(e) {
      uni.hideTabBar(); //不让底部显示tab选项
    },
    // 页面显示
    onShow() {
    },
    // 方法
    methods: {
      // 点击下一步
      nextStepClick(){
        this.$.back()
      },
      // 键盘
      key(key) {
        if (this.password.length < 6) {
          this.password += key
          if (this.password.length === 6) {
            // 密码验证操作
            console.log(this.password,'37')
            // this.$.open('/trait/details');
          }
        }
      },
      del() {
        if (this.password.length > 0) {
          this.password = this.password.substring(0, this.password.length - 1)
        }
      },
      //获取列表数据
      getListData() {
        this.$.ajax("POST", "/xxxxx/xxxxx", {
          page: this.pageNum,
        }, (res) => {
          if (res) {
            if (this.pageNum == 1) {
              this.list = res.data
            } else {
              this.list = this.list.concat(res.data)
              if (res.data.length === 0) {
                this.pageNum--
              }
            }
          }
          uni.stopPullDownRefresh()
        });
      }
    },
    // 计算属性
    computed: {
    },
    // 侦听器
    watch: {
    },
    // 页面隐藏
    onHide() {
    },
    // 页面卸载
    onUnload() {
    },
    // 触发下拉刷新
    onPullDownRefresh() {
      // this.pageNum = 1
      // this.getListData()
    },
    // 页面上拉触底事件的处理函数
    onReachBottom() {
      // this.pageNum++
      // this.getListData()
    },
  }
</script>
<style lang="scss" scoped>
  .paymentCodeBox {
    width: 100%;
    height: 100vh;
    background: #fff;
    .password-set-page {
      width: 100%;
      height: 100vh;
      .setPage{
        background: #fff;
        border-radius: 20rpx 20rpx 0px 0px;
        .hites{
          padding-top: 61rpx;
        }
      }
      .nextStep{
        background: #F21177;
        border-radius: 20rpx;
        line-height: 100rpx;
      }
      .code {
        view {
          // border: 1rpx solid #D9D9D9;
          border-radius: 8rpx;
          overflow: hidden;
          display: flex;
          width: 690rpx;
          margin: 0 auto;
          view {
            display: flex;
            align-items: center;
            justify-content: center;
            // width: 100rpx;
            height: 100rpx;
            // background: #FAFAFA;
            font-size: 60rpx;
            border: 1rpx solid #D9D9D9;
            &:not(:last-child) {
              border-right: 1rpx solid #D9D9D9;
            }
          }
        }
      }
      .keyboard {
        position: fixed;
        bottom: 0;
        width: 100%;
        background: #EEEEEE;
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        button {
          display: flex;
          align-items: center;
          justify-content: center;
          width: calc(100vw / 3 - 1rpx);
          background: #FFFFFF;
          border-radius: 0;
          margin-top: 1rpx;
          font-size: 50rpx;
          height: 120rpx;
          &.button-hover:not(.hide) {
            background: #EEEEEE;
          }
          image {
            width: 52rpx;
            height: 38rpx;
          }
        }
      }
    }
  }
</style>
相关文章
|
6月前
|
数据安全/隐私保护
uview组件中使用MessageInput 验证码输入和Keyboard 键盘制作的简单支付密码输入框
uview组件中使用MessageInput 验证码输入和Keyboard 键盘制作的简单支付密码输入框
125 0
|
数据安全/隐私保护
uniapp自定义密码输入键盘-数字键盘效果demoUI方法二(整理)
uniapp自定义密码输入键盘-数字键盘效果demoUI方法二(整理)
电脑报错弹窗文本内容复制,Textify
使用电脑的过程中,软件多起来难免会出现一些莫名其妙的错误弹窗,有的是运行错误,有的是缺少依赖,有的是软硬件故障……就比如弹出的缺少.dll库的问题
106 1
|
程序员 C++ Windows
模拟键盘按键 自动输入文字
对于程序员来说,键盘上的每个按键都一样,无非是不同按键产生的键盘扫描码不同。在不同的操作系统下,键盘扫描码常常被转换为不同的编码以方便应用程序调用,比如在DOS系统下的ASCII码,在Windows系统下的虚拟键盘码等等。
|
移动开发
ReactNative自定义车牌号输入框及键盘实现
ReactNative自定义车牌号输入框及键盘实现
564 0
ReactNative自定义车牌号输入框及键盘实现
|
数据可视化 计算机视觉 Windows
qml开发笔记(七):输入元素鼠标输入MouseArea和键盘输入Keys
qml开发笔记(七):输入元素鼠标输入MouseArea和键盘输入Keys
qml开发笔记(七):输入元素鼠标输入MouseArea和键盘输入Keys
|
数据安全/隐私保护
制作登录页面,点击键盘的 Enter 键或者单击“登录”按钮,验证用户输入的邮箱和密码是否正确
制作登录页面,点击键盘的 Enter 键或者单击“登录”按钮,验证用户输入的邮箱和密码是否正确
321 0
制作登录页面,点击键盘的 Enter 键或者单击“登录”按钮,验证用户输入的邮箱和密码是否正确
Appium问题解决方案(1)- 设置unicodeKeyboard: True运行脚本后,手机输入时无法调出软键盘
Appium问题解决方案(1)- 设置unicodeKeyboard: True运行脚本后,手机输入时无法调出软键盘
415 0
Appium问题解决方案(1)- 设置unicodeKeyboard: True运行脚本后,手机输入时无法调出软键盘
PyQt5 技术篇-调用输入对话框(QInputDialog)获取用户输入内容。
PyQt5 技术篇-调用输入对话框(QInputDialog)获取用户输入内容。
917 0
PyQt5 技术篇-调用输入对话框(QInputDialog)获取用户输入内容。
在网页里让文本框只能输入数字的一种方法。外加回车换Tab
第一步利用样式表。 第二步利用js脚本。 function myKeyDown(){    var   k=window.event.keyCode;       if ((k==46)||(k==8)||(k==189)||(k==109)||(k==190)||(k==110)|| (k>...
845 0