Aucune description
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

CartItem.vue 1.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <template>
  2. <div class="order-list-item position-relative mb-3">
  3. <div class="d-flex align-items-center gap-2">
  4. <div class="ratio ratio-1x1 rounded overflow-hidden">
  5. <img :src="`/img/${dataMenu.image}`" class="object-fit-cover" alt="Chocolate">
  6. </div>
  7. <div>
  8. <p class="mb-1">{{ dataMenu.name }}</p>
  9. <p class="mb-0"><small>Rp{{ $rupiah(dataMenu.price) }}</small></p>
  10. </div>
  11. </div>
  12. <div class="position-absolute bottom-0 end-0 d-flex align-items-center gap-2">
  13. <Icon icon="iconoir:minus" width="18" class="icon-minus" @click="decreaseQty(dataMenu.id)" />
  14. <span class="qty text-center">
  15. <input type="number" class="form-control" :value="dataMenu.qty" min="0">
  16. </span>
  17. <Icon icon="iconoir:plus" width="18" class="icon-plus" @click="increaseQty(dataMenu.id)" />
  18. </div>
  19. </div>
  20. </template>
  21. <script>
  22. import { Icon } from '@iconify/vue';
  23. export default {
  24. name: 'CartItem',
  25. components: {
  26. Icon
  27. },
  28. props: {
  29. dataMenu: {
  30. type: Object,
  31. required: true
  32. }
  33. }
  34. }
  35. </script>
  36. <script setup>
  37. import { useCartStore } from '../stores/cart'
  38. const { increaseQty, decreaseQty } = useCartStore()
  39. </script>
  40. <style lang="scss" scoped>
  41. .ratio {
  42. max-width: 50px;
  43. }
  44. .qty input {
  45. width: 32px;
  46. text-align: center;
  47. padding: 0;
  48. border: none;
  49. }
  50. .icon-minus {
  51. border: 1px solid #8751ab;
  52. border-radius: 50%;
  53. color: #8751ab;
  54. }
  55. .icon-plus,
  56. .icon-minus:hover {
  57. border-radius: 50%;
  58. background-color: #8751ab;
  59. color: #FFF;
  60. cursor: pointer;
  61. }
  62. /* hide arrow input num */
  63. input::-webkit-outer-spin-button,
  64. input::-webkit-inner-spin-button {
  65. -webkit-appearance: none;
  66. margin: 0;
  67. }
  68. input[type=number] {
  69. appearance: none;
  70. -moz-appearance: textfield;
  71. }
  72. </style>