Advertisement
Guest User

Untitled

a guest
Oct 17th, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.60 KB | None | 0 0
  1. <template>
  2. <div>
  3. <div class="registration-confirm registration__step">
  4. <div class="registration-confirm__inner">
  5. <h2 class="registration__heading">Подтверждение данных</h2>
  6. <div class="registration__select-game"
  7. v-if="!!filteredParticipationType"
  8. >
  9. <div class="registration__select-item">
  10. {{ filteredParticipationType[0].nameRus }} участие
  11. </div>
  12. <div class="registration__select-item">
  13. {{ distanceType.nameRus }}
  14. </div>
  15. <div class="registration__select-item">
  16. {{ distanceCost }} ₽
  17. </div>
  18. </div>
  19. <hr class="registration__divider">
  20. <div class="registration__confirm-info">
  21. <div class="registration__confirm-col">
  22. <p class="registration__confirm-value">
  23. {{ child.data.lastNameRus }} {{ child.data.firstNameRus }} {{ child.data.middleNameRus }}
  24. </p>
  25. <p class="registration__confirm-value">
  26. {{ child.data.birthDate | moment('DD.MM.YYYY')}}
  27. </p>
  28. </div>
  29. </div>
  30. </div>
  31. </div>
  32. <div class="registration__nav-btn">
  33. <button class="btn btn--main btn--size-lg registration__btn"
  34. :class="{ 'sending': sendingSubmit }"
  35. :disabled="sendingSubmit" type="button" @click="submit">
  36. Подтвердить и оплатить
  37. </button>
  38. <slot name="btns"></slot>
  39. </div>
  40. </div>
  41. </template>
  42.  
  43. <script>
  44. import ConfirmData from '@/mixins/confirm-data'
  45. import Axios from 'axios';
  46. export default {
  47. data() {
  48. return {
  49. sendingSubmit: false,
  50. }
  51. },
  52. props: ['child', 'isBeneficiary', 'promocodeInfo'],
  53. mixins: [ConfirmData],
  54. computed: {
  55. eventId() {
  56. return this.$route.params.id
  57. },
  58. distanceId() {
  59. return this.$route.query.distance
  60. },
  61. promocodeId() {
  62. if(this.promocodeInfo){
  63. return this.promocodeInfo.id;
  64. }
  65. else{
  66. return null;
  67. }
  68. },
  69. distanceCost() {
  70. let distance = this.distances.find(item => item.id == this.chosenDistance);
  71. if (this.promocodeInfo) {
  72. if (this.promocodeInfo.discountType === 'Percent') {
  73. return (distance.distanceCost * (100 - this.promocodeInfo.promocodePercent)) / 100;
  74. }
  75. else return distance.distanceCost - this.promocodeInfo.promocodeSum
  76. } else {
  77.  
  78. return this.isBeneficiary ? distance.distanceCost / 2 : distance.distanceCost;
  79. }
  80.  
  81. //let distance = this.distances.find(item => item.id == this.chosenDistance);
  82. //return this.child.isBeneficiary ? distance.distanceCost / 2 : distance.distanceCost;
  83. }
  84. },
  85. methods: {
  86. submit() {
  87. this.sendingSubmit = true;
  88. //if (this.promocodeInfo){
  89. Axios.put(`/api/v1/events/${this.eventId}/distances/${this.distanceId}/timerkids/${this.child.data.id}?isBeneficiary=${this.child.isBeneficiary}&promocodeId=${this.promocodeId}`)
  90. .then((response) => {
  91. this.sendingSubmit = false;
  92. console.log(response)
  93. window.location.href = response.data.link;
  94. })
  95. .catch((error) => {
  96. this.$toastr.e(error.response.data.Ru)
  97. if (error.response.status === 400 || error.response.status === 404) {
  98. this.$toastr.e(error.response.data.Ru)
  99. }
  100. console.log(error)
  101. })
  102. .finally(() => this.sendingSubmit = false)
  103. }
  104. }
  105. }
  106. </script>
  107.  
  108. <style scoped>
  109.  
  110. </style>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement