191 lines
3.9 KiB
Vue
191 lines
3.9 KiB
Vue
<template>
|
||
<view class="page">
|
||
<view>
|
||
<view class="pay-title">
|
||
<text>请输入6位支付密码</text>
|
||
</view>
|
||
<view class="pay-password" @click="onPayUp">
|
||
<view class="list">
|
||
<text v-if="passwordArr.length >= 1">●</text>
|
||
</view>
|
||
<view class="list">
|
||
<text v-if="passwordArr.length >= 2">●</text>
|
||
</view>
|
||
<view class="list">
|
||
<text v-if="passwordArr.length >= 3">●</text>
|
||
</view>
|
||
<view class="list">
|
||
<text v-if="passwordArr.length >= 4">●</text>
|
||
</view>
|
||
<view class="list">
|
||
<text v-if="passwordArr.length >= 5">●</text>
|
||
</view>
|
||
<view class="list">
|
||
<text v-if="passwordArr.length >= 6">●</text>
|
||
</view>
|
||
</view>
|
||
<view class="hint" @click="gopaypassword">
|
||
<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: {
|
||
// 忘记支付密码
|
||
gopaypassword() {
|
||
uni.pro.navigateTo('/pages/user/repairpassword')
|
||
},
|
||
/**
|
||
* 唤起键盘
|
||
*/
|
||
onPayUp() {
|
||
this.$refs.CodeKeyboard.show();
|
||
},
|
||
/**
|
||
* 支付键盘回调
|
||
* @param {Object} val
|
||
*/
|
||
KeyInfo(val) {
|
||
console.log(val)
|
||
if (val.index&&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.AffirmStatus = this.AffirmStatus + 1;
|
||
let str = ''
|
||
this.passwordArr.forEach(res => {
|
||
str += res
|
||
})
|
||
this.$emit('accountPayevent', str)
|
||
this.passwordArr = [];
|
||
}
|
||
// 判断到哪一步了
|
||
// 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: #555; // 基础颜色
|
||
|
||
.page {
|
||
position: fixed;
|
||
left: 0;
|
||
top: 0;
|
||
width: 100%;
|
||
height: 100%;
|
||
background-color: #FFFFFF;
|
||
z-index: 9999;
|
||
}
|
||
|
||
.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> |