Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | <template> <div class="mb-3 px-2"> <v-credit-card-form v-on:change="creditInfoChanged" :trans="translations" :noCard="true"/> </div> </template> <script> import { mapGetters } from "vuex"; export default { name: "Creditcard", data: () => ({ cardData: null, translations: { name: { label: "Name", placeholder: "Name", }, card: { label: "Card Number", placeholder: "Card Number", }, expiration: { label: "Expiration", placeholder: "Expiration", }, security: { label: "CVV/CSC", placeholder: "CVV/CSC", }, }, }), computed: { ...mapGetters({ username: "auth/username", }), }, methods: { creditInfoChanged(values) { this.cardData = values; const isCardNumber = this.cardData.cardNumber.length === 19; const isExpiration = this.cardData.expiration.length === 5; const isSecurity = this.cardData.security.length === 4; if (isCardNumber && isExpiration && isSecurity) { console.log(this.cardData); this.$emit('setCreditcard', this.cardData); } }, }, }; </script> <style> .credit-card-form > .field:first-child, label { display: none; } #card-number, #expirationdate, #securitycode { padding: 4px 10px; border: 1px solid gray; border-radius: 0; color: #000; background: #fff; } .credit-card-form > .field, .credit-card-form > .field-group, .credit-card-form > .field > input, .credit-card-form > .field-group > .field, .credit-card-form > .field-group > .field > input { width: 100%; } .credit-card-form > .field-group { display: flex; } .credit-card-form > .field-group > .field:first-child { margin-right: 8px; } .credit-card-form > .field-group > .field:last-child { margin-left: 8px; } </style> |