前端Vue自定义支付密码输入键盘Keyboard和支付设置输入框Input

news/2024/12/22 20:54:10/

前端Vue自定义支付密码输入键盘Keyboard和支付设置输入框Input, 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=13166

效果图如下:

# cc-defineKeyboard

#### 使用方法

```使用方法

<!-- ref:唯一ref  passwrdType:密码样式pay keyInfo:密码输入监测事件 -->

<cc-defineKeyboard ref="CodeKeyboard" passwrdType="pay" @KeyInfo="KeyInfo"></cc-defineKeyboard>

/** * 唤起键盘 */

onPayUp() {

this.$refs.CodeKeyboard.show();

},

/*** 支付键盘回调* @param {Object} val */

KeyInfo(val) {

if (val.index >= 6) {

return;

}

// 判断是否输入的是删除键

if (val.keyCode === 8) {

// 删除最后一位

this.passwordArr.splice(val.index + 1, 1)

}

// 判断是否输入的是.

else if (val.keyCode == 190) {

// 输入.无效

} else {

this.passwordArr.push(val.key);

}

uni.showModal({

title: '温馨提示',

content: '输入密码是 = ' + JSON.stringify(this.passwordArr)

})

}

```

#### HTML代码实现部分

```html

<template>

<view class="page">

<view>

<view class="pay-title">

<text v-show="AffirmStatus === 1">请输入6位支付密码</text>

<text v-show="AffirmStatus === 2">请设置6位支付密码</text>

<text v-show="AffirmStatus === 3">请确认6位支付密码</text>

</view>

<view class="pay-password" @click="onPayUp">

<view class="list">

<text v-show="passwordArr.length >= 1">●</text>

</view>

<view class="list">

<text v-show="passwordArr.length >= 2">●</text>

</view>

<view class="list">

<text v-show="passwordArr.length >= 3">●</text>

</view>

<view class="list">

<text v-show="passwordArr.length >= 4">●</text>

</view>

<view class="list">

<text v-show="passwordArr.length >= 5">●</text>

</view>

<view class="list">

<text v-show="passwordArr.length >= 6">●</text>

</view>

</view>

<view class="hint">

<text>忘记支付密码?</text>

</view>

</view>

<!-- ref:唯一ref  passwrdType:密码样式pay keyInfo:密码输入返回事件 -->

<cc-defineKeyboard ref="CodeKeyboard" passwrdType="pay" @KeyInfo="KeyInfo"></cc-defineKeyboard>

</view>

</template>

<script>

export default {

components: {

},

data() {

return {

AffirmStatus: 1,

passwordArr: [],

oldPasswordArr: [],

newPasswordArr: [],

afPasswordArr: [],

};

},

onLoad() {

},

methods: {

/**

* 唤起键盘

*/

onPayUp() {

this.$refs.CodeKeyboard.show();

},

/**

* 支付键盘回调

* @param {Object} val

*/

KeyInfo(val) {

if (val.index >= 6) {

return;

}

// 判断是否输入的是删除键

if (val.keyCode === 8) {

// 删除最后一位

this.passwordArr.splice(val.index + 1, 1)

}

// 判断是否输入的是.

else if (val.keyCode == 190) {

// 输入.无效

} else {

this.passwordArr.push(val.key);

}

uni.showModal({

title: '温馨提示',

content: '输入密码是 = ' + JSON.stringify(this.passwordArr)

})

// 判断是否等于6

if (this.passwordArr.length === 6) {

this.passwordArr = [];

this.AffirmStatus = this.AffirmStatus + 1;

}

// 判断到哪一步了

if (this.AffirmStatus === 1) {

this.oldPasswordArr = this.passwordArr;

} else if (this.AffirmStatus === 2) {

this.newPasswordArr = this.passwordArr;

} else if (this.AffirmStatus === 3) {

this.afPasswordArr = this.passwordArr;

} else if (this.AffirmStatus === 4) {

console.log(this.oldPasswordArr.join(''));

console.log(this.newPasswordArr.join(''));

console.log(this.afPasswordArr.join(''));

uni.showToast({

title: '修改成功',

icon: 'none'

})

setTimeout(() => {

uni.navigateBack();

}, 2000)

}

this.$forceUpdate();

}

}

}

</script>

<style scoped lang="scss">

$base: orangered; // 基础颜色

.page {

position: absolute;

left: 0;

top: 0;

width: 100%;

height: 100%;

background-color: #FFFFFF;

}

.pay-title {

display: flex;

align-items: center;

justify-content: center;

width: 100%;

height: 200rpx;

text {

font-size: 28rpx;

color: #555555;

}

}

.pay-password {

display: flex;

align-items: center;

width: 90%;

height: 80rpx;

margin: 20rpx auto;

border: 2rpx solid $base;

.list {

display: flex;

align-items: center;

justify-content: center;

width: 16.666%;

height: 100%;

border-right: 2rpx solid #EEEEEE;

text {

font-size: 32rpx;

}

}

.list:nth-child(6) {

border-right: none;

}

}

.hint {

display: flex;

align-items: center;

justify-content: center;

width: 100%;

height: 100rpx;

text {

font-size: 28rpx;

color: $base;

}

}

</style>

```


http://www.ppmy.cn/news/528794.html

相关文章

智能汽车 | 整车控制器(VCU)系统框图,功能拆解及供应商排名

摘要&#xff1a; 随着新能源EE架构的迭代及控制单元集成度越来越高&#xff0c;VCU的功能可能会被拆解到中央控制器域控制器&#xff0c;或者拆解到多合一的控制单元&#xff1b; VCU&#xff08;Vehicle Control Unit&#xff09;即整车控制器&#xff0c;是新能源汽车控制系…

【为什么年轻人存款如此之难?】

目录 前言: 谈谈你为存款做出过哪些努力&#xff1f; 你认为除了个人因素外&#xff0c;有哪些因素影响到了年轻人的存款能力和存款意愿&#xff1f; 你认为年轻人攒够多少存款就可以裸辞/要攒够多少存款才可以体面的养老&#xff1f; 前言: 每个人的生存情况是不一样的,每…

梦幻西游动画效果展示

展示如下图动画效果&#xff1a; 实现代码如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"utf-8"><title>梦幻西游</title><style type"text/css">*{margin: 0;padding: 0;l…

梦幻西游手游经验任务链计算机,梦幻西游手游经验和道具任务链攻略

梦幻西游手游新任务链调整为经验任务链和道具任务链,一起来看看攻略! 梦幻西游手游任务链: 经验任务链由200环任务组成,完成后只获得人物经验;道具任务链由100环任务组成,完成后只获得装备打造材料,并且材料的最高等级将与服务器等级相关。总的来说,任务链改版之后会增加…

本周测试服务器角色转移系统仅开放转入,梦幻西游10月8日更新内容一览

梦幻西游10月8日更新内容都有哪些呢&#xff0c;想必很多玩家还不知道吧&#xff0c;这次的维护更新将会有新的任务和新玩法出来哦&#xff0c;更有各种大奖等你领&#xff0c;下面就和小编一起去看看具体更新内容吧。 为保证服务器的运行稳定和服务质量&#xff0c;《梦幻西游…

团体程序设计天梯赛-练习集L1篇④

&#x1f680;欢迎来到本文&#x1f680; &#x1f349;个人简介&#xff1a;Hello大家好呀&#xff0c;我是陈童学&#xff0c;一个与你一样正在慢慢前行的普通人。 &#x1f3c0;个人主页&#xff1a;陈童学哦CSDN &#x1f4a1;所属专栏&#xff1a;PTA &#x1f381;希望各…

梦幻西游新资源的提取一

之前韩の娃娃问我新出的锦衣是否是在shape.wd8资源包内,但是分析之后发现资源是以3D模型的形式存放在r3d.npk内的。虽然去年夏天简单分析过.gim模型格式,但要我把它渲染的跟梦幻里一样效果还是有些难度的,毕竟我也只是刚刚导出了T-Pose模型而已。前几天又看到了空灵姐的留言…

梦幻西游初出江湖任务

2018年7月31日定期维护公告 3.常规任务“初出江湖”调整 1.完成任务所获金钱就奖励降低23%&#xff0c;储备金奖励提升43%&#xff1b; 2.任务奖励将不再受双倍&#xff0c;精修时间影响。 转载于:https://www.cnblogs.com/ddwk/p/9533028.html