Ngiler SH3LL 360
Home
Information
Create File
Create Folder
:
/
home
/
tbf
/
membru.tbf.ro
/
src
/
components
/
Auth
/
Information Server
MySQL :
OFF
Perl :
OFF
CURL :
ON
WGET :
OFF
PKEXEC :
OFF
Directive
Local Value
IP Address
89.40.16.97
System
Linux server.atelieruldeit.ro 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64
User
tbf
PHP Version
7.3.33
Software
Apache
Doc root
Writable
close
Edit File :
ChangeCard.vue
| Size :
7.34
KB
Copy
<template> <div class="modal-tbf active modal-register"> <transition name="slide" mode="out-in"> <div class="container-modal form-modal"> <div class="container-holder"> <div class="header-modal"> <div class="icon"><icon-cart /></div> <div class="title">Schimbare<span class="yellow"> card</span></div> <div class="description">Pentru a schimba datele cardului te rugăm să introduci în primul câmp din formularul de mai jos adresa de email cu care te-ai înscris ca și Membru TBF.</div> </div> <div class="form-section"> <template v-if="typePayment == 'online'"> <div class="input-group-tbf w-mob-100" v-bind:class="{has_error: $v.card.email.$error || cardErrors.email}" id="email"> <div class="input-box"> <div class="icon-right-new"></div> <input type="text" :placeholder="$t('register.email')" class="input-text" v-model="card.email"> </div> <div class="error-msg" v-if="cardErrors.email">{{ cardErrors.email }}</div> </div> <div class="input-group-tbf w-mob-100" v-bind:class="{has_error: $v.card.card_number.$error || stripeError != '' || cardErrors.cardNumber, complete: card.card_number != '' && !$v.card.card_number.$error }" id="payment"> <div class="input-box"> <div class="icon-right-new"><icon-card /></div> <input type="tel" :placeholder="$t('register.card_number_placeholder')" class="input-text" v-model="card.card_number" v-cardformat:formatCardNumber maxlength="19"> </div> <div class="error-msg" v-if="cardErrors.cardNumber">{{ cardErrors.cardNumber }}</div> <div class="error-msg" v-else-if="stripeError != ''">{{ stripeError }}</div> </div> <div class="input-group-tbf w-mob-100 w-tbf-100" v-bind:class="{has_error: $v.card.card_expiration.$error || cardErrors.cardExpiry, complete: card.card_expiration != '' && !$v.card.card_expiration.$error }"> <div class="input-box"> <div class="icon-right-new"><icon-date /></div> <input type="tel" :placeholder="$t('register.validity_date_placeholder')" class="input-text" v-model="card.card_expiration" v-cardformat:formatCardExpiry maxlength="9"> </div> <div class="error-msg" v-if="cardErrors.cardExpiry">{{ cardErrors.cardExpiry }}</div> </div> <div class="input-group-tbf w-mob-100 w-tbf-100" v-bind:class="{has_error: $v.card.card_cvc.$error || cardErrors.cardCvc, complete: card.card_cvc != '' && !$v.card.card_cvc.$error, 'view-tooltip': activeTooltip == 'card_cvc' }"> <div class="input-box"> <div class="icon-right-new"><password-icon /></div> <input type="tel" :placeholder="$t('register.cvc_placeholder')" class="input-text" v-model="card.card_cvc" v-cardformat:formatCardCVC maxlength="4"> </div> <div class="error-msg" v-if="cardErrors.cardCvc">{{ cardErrors.cardCvc }}</div> </div> </template> <template v-else> <div class="info-text">{{ $t('register.text_op_selection') }}</div> </template> </div> <div class="submit-form"> <button class="button-submit" id="buttonSubmitStep3" @click="goNextStep"> <div class="loader-spin" v-if="loadingSubmit"></div> <div class="text" v-else>Salvează card</div> </button> </div> <div class="powered-by" v-if="typePayment == 'online'"> <a href="https://stripe.com" target="_blank"> <img src="/build/images/powered_by_stripe.png"> </a> </div> </div> </div> </transition> </div> </template> <script> import CloseIcon from '../Icons/Close' import IconPlus from "../Icons/Plus" import IconInfo from "../Icons/Info" import IconCircleCheck from "../Icons/CircleCheck" import InformationIcon from '../Icons/Information' import IconCard from "../Icons/Card" import IconDate from "../Icons/Date" import PasswordIcon from '../Icons/Password'; import IconCart from '../Icons/Cart' import IconDots from '../Icons/Dots' import { required } from 'vuelidate/lib/validators' export default { data(){ return { card:{ user: '', card_number: '', card_expiration: '', card_cvc: '' }, cardErrors: {}, stripeError: '', activeTooltip: '', cuponCode: '', newPrices: [], errorCoupon: false, typePayment: 'online', loadingSubmit: false } }, components: { CloseIcon, IconPlus, IconInfo, IconCircleCheck, InformationIcon, IconCard, IconDate, PasswordIcon, IconCart, IconDots }, validations: { card: { email: {required}, card_number: {required}, card_expiration: {required}, card_cvc: {required} } }, async mounted() { if(!this.$route.query.customer){ window.location.href = "https://tbf.ro"; } }, methods: { goNextStep(e){ $(e.target).attr('disabled', 'disabled') var btnSubmit = $('.button-submit') var btnSubmitLoader = $('.button-submit .loader') var btnSubmitText = $('.button-submit .text') this.cardErrors = {} this.stripeError = '' var cardError = false // validate card number if(!this.card.email){ this.cardErrors.email = "Acest camp este obligatoriu"; cardError = true }; // validate card number if(!this.$cardFormat.validateCardNumber(this.card.card_number)){ this.cardErrors.cardNumber = this.$t('validator.invalid_credit_card'); cardError = true }; // validate card expiry if (!this.$cardFormat.validateCardExpiry(this.card.card_expiration)) { this.cardErrors.cardExpiry = this.$t('validator.invalid_credit_card_date'); cardError = true }; // validate card CVC if (!this.$cardFormat.validateCardCVC(this.card.card_cvc)) { this.cardErrors.cardCvc = this.$t('validator.invalid_credit_card_cvc'); cardError = true }; if(!cardError){ btnSubmit.addClass('loading') btnSubmitLoader.addClass('onProgress') btnSubmitText.html(this.$t('btn-submit.loading')) axios.post('/change-card', { customer: this.$route.query.customer, email: this.card.email, number: this.card.card_number, exp_month: this.card.card_expiration.substring(0, 2), exp_year: this.card.card_expiration.substring(5, 9), cvc: this.card.card_cvc, }).then(({data}) => { btnSubmitLoader.addClass('finish') setTimeout(()=>{ btnSubmitText.html(this.$t('btn-submit.success')) btnSubmit.addClass('completed') btnSubmitLoader.removeClass('onProgress finish') btnSubmit.removeClass('loading') setTimeout(()=>{ btnSubmit.removeClass('completed') btnSubmit.attr('disabled', false) this.$auth.fetch(); this.$router.push('/schimbare-card-cu-success'); }, 1000) }, 300) }).catch(error => { btnSubmitLoader.addClass('finish') // ------------------- // error.response.data // ------------------- btnSubmitText.html(_this.$t('btn-submit.error')) btnSubmit.addClass('error') btnSubmitLoader.removeClass('onProgress finish') btnSubmit.removeClass('loading') setTimeout(()=>{ btnSubmit.removeClass('error') _this.stripeError = result.error.message; btnSubmitText.html(_this.$t('register.button-action-3')) btnSubmit.attr('disabled', false) }, 1000) }); }else{ $(e.target).attr('disabled', false) } }, } } </script>
Back