ProductHeroCard.vue 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <template>
  2. <div class="card ">
  3. <div class="card-image">
  4. <figure class="image is-4by2">
  5. <img :src="image" alt="Placeholder image">
  6. </figure>
  7. </div>
  8. <div class="card-content">
  9. <div class="content m-b-sm">
  10. <div class="media-content">
  11. <span class="title is-2 main-price">${{price}}</span>
  12. <span class="title is-2">${{discountedPrice}}</span>
  13. </div>
  14. </div>
  15. <a
  16. :href="navigateTo"
  17. target="_"
  18. class="button is-fullwidth is-large is-danger is-outlined m-b-sm">
  19. Enroll on Udemy
  20. </a>
  21. <div class="content">
  22. <div class="m-b-none course-features">Course Requirements</div>
  23. <ul class="m-t-none">
  24. <li v-for="req in requirements" :key="req.value">
  25. {{req.value}}
  26. </li>
  27. </ul>
  28. </div>
  29. </div>
  30. </div>
  31. </template>
  32. <script>
  33. export default {
  34. props: {
  35. requirements: {
  36. type: Array,
  37. default: null
  38. },
  39. price: {
  40. type: Number,
  41. default: null
  42. },
  43. navigateTo: {
  44. type: String,
  45. default: ''
  46. },
  47. discountedPrice: {
  48. type: Number,
  49. required: true
  50. },
  51. image: {
  52. type: String,
  53. required: false
  54. }
  55. }
  56. }
  57. </script>
  58. <style scoped lang="scss">
  59. .card {
  60. z-index: 9999;
  61. min-width: 330px;
  62. padding: 5px;
  63. border-radius: 5px;
  64. box-shadow: 0 0 1px 1px rgba(20,23,28,.1), 0 3px 1px 0 rgba(20,23,28,.1);
  65. .title {
  66. color: gray;
  67. }
  68. .subtitle {
  69. color: gray;
  70. }
  71. .course-features {
  72. font-size: 17px;
  73. }
  74. .main-price {
  75. font-size: 17px;
  76. color: #7d7d7d;
  77. text-decoration: line-through;
  78. }
  79. }
  80. </style>