Product.vue 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <template lang="pug">
  2. .pos-step
  3. .products-selector
  4. searcher(:items='products' :keys="['name', 'displayName', 'ean13', 'defaultCode']" mode='normal' @onSearch='filterProducts')
  5. card-grid(:items='visibleProducts' :loading='loadingProducts' @onAdd='showProductForm' :details="['price:c']" @onSelect='selectProduct')
  6. product-modal(:show='showingProductForm' @onAccept='submitProduct' @onCancel='hideProductForm')
  7. variant-modal
  8. discount-modal(:item='itemToDiscount' :options='selectedCurrency' :show='!!itemToDiscount' @onAccept='applyPrice' @onCancel='applyPrice')
  9. cart(:items='cartItems' @onTotalComputed='changeCartTotal' @onIncrementQty='addToCart' @onUndoPrice='undoPrice' @onChangePrice='changePrice' @onDecrementQty='decreaseFromCart' @onDeleteItem='removeFromCart' :options='selectedCurrency')
  10. </template>
  11. <script>
  12. import { mapGetters, mapActions } from 'vuex'
  13. import { Searcher, CardGrid, Cart } from '@@/common'
  14. import ProductModal from '@@/modals/ProductModal'
  15. import VariantModal from '@@/modals/VariantModal'
  16. import DiscountModal from '@@/modals/DiscountModal'
  17. import { FILTER_PRODUCTS, SELECT_PRODUCT, SHOW_PRODUCT_FORM, HIDE_PRODUCT_FORM, SUBMIT_PRODUCT, CHANGE_CART_TOTAL, ADD_TO_CART, DECREASE_FROM_CART, UNDO_PRICE, CHANGE_PRICE, APPLY_PRICE, REMOVE_FROM_CART } from '@/constants/actionTypes'
  18. export default {
  19. components: {
  20. Searcher,
  21. CardGrid,
  22. Cart,
  23. ProductModal,
  24. VariantModal,
  25. DiscountModal
  26. },
  27. computed: {
  28. ...mapGetters([
  29. 'products',
  30. 'visibleProducts',
  31. 'loadingProducts',
  32. 'showingProductForm',
  33. 'cartItems',
  34. 'itemToDiscount',
  35. 'selectedCurrency'
  36. ])
  37. },
  38. methods: mapActions([
  39. FILTER_PRODUCTS,
  40. SELECT_PRODUCT,
  41. SHOW_PRODUCT_FORM,
  42. HIDE_PRODUCT_FORM,
  43. SUBMIT_PRODUCT,
  44. CHANGE_CART_TOTAL,
  45. ADD_TO_CART,
  46. DECREASE_FROM_CART,
  47. UNDO_PRICE,
  48. CHANGE_PRICE,
  49. APPLY_PRICE,
  50. REMOVE_FROM_CART
  51. ])
  52. }
  53. </script>
  54. <style lang="sass">
  55. .pos-step
  56. .products-selector
  57. width: calc(100% - 300px)
  58. height: 100%
  59. padding-right: 5px
  60. display: inline-block
  61. </style>