12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- <template>
- <uni-popup ref="uniPopup" type="bottom">
- <view class="content">
- <text class="mix-icon icon-guanbi" @click="close"></text>
- <view class="center title">
- <text>输入支付密码</text>
- </view>
- <view class="input center">
- <view class="item center" :class="{has: pwd.length > index}" v-for="(item, index) in 6" :key="index"></view>
- </view>
- <view class="reset-btn center" @click="navTo('/pages/auth/payPassword')">
- <text>重置密码</text>
- </view>
- <number-keyboard ref="keybord" @onChange="onNumberChange"></number-keyboard>
- </view>
- </uni-popup>
- </template>
- <script>
- /**
- * 支付密码键盘
- */
- export default {
- data() {
- return {
- pwd: ''
- };
- },
- watch: {
- pwd(pwd){
- if(pwd.length === 0){
- this.$refs.keybord.val = '';
- }
- }
- },
- methods: {
- open(){
- this.$refs.uniPopup.open();
- },
- close(){
- this.$refs.uniPopup.close();
- },
- onNumberChange(pwd){
- this.pwd = pwd;
- if(pwd.length >= 6){
- this.$emit('onConfirm', pwd.substring(0,6));
- }
- }
- }
- }
- </script>
- <style scoped lang="scss">
- .content{
- border-radius: 20rpx 20rpx 0 0;
- background-color: #fff;
- position: relative;
- }
- .title{
- height: 110rpx;
- font-size: 32rpx;
- color: #333;
- font-weight: 700;
- }
- .input{
- padding: 30rpx 0 60rpx;
-
- .item{
- width: 88rpx;
- height: 88rpx;
- margin: 0 10rpx;
- border: 1px solid #ddd;
- border-radius: 4rpx;
- }
- .has:after{
- content: '';
- width: 16rpx;
- height: 16rpx;
- border-radius: 100rpx;
- background-color: #333;
- }
- }
- .reset-btn{
- padding-bottom: 20rpx;
- margin-top: -10rpx;
- margin-bottom: 30rpx;
- font-size: 28rpx;
- color: #007aff;
- }
- .icon-guanbi{
- position: absolute;
- left: 10rpx;
- top: 24rpx;
- padding: 20rpx;
- font-size: 28rpx;
- }
- </style>
|