ProductsStep.vue 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <template lang="pug">
  2. .purchase-step
  3. .products-selector
  4. searcher(:items='products' :keys="['name', 'displayName']" @onSearch='filterProducts')
  5. card-grid(:items='visibleProducts' canAdd description='standardPrice' @onAdd='showProductForm' @onSelect='selectProduct')
  6. product-form
  7. cart
  8. </template>
  9. <script>
  10. import Searcher from '@/components/common/Searcher'
  11. import CardGrid from '@/components/common/CardGrid'
  12. import ProductForm from '@/components/product/ProductForm'
  13. import Cart from '@/components/product/Cart'
  14. import { mapGetters, mapActions } from 'vuex'
  15. export default {
  16. components: {
  17. Searcher,
  18. CardGrid,
  19. ProductForm,
  20. Cart
  21. },
  22. computed: mapGetters([
  23. 'products',
  24. 'visibleProducts'
  25. ]),
  26. methods: mapActions([
  27. 'filterProducts',
  28. 'showProductForm',
  29. 'selectProduct'
  30. ])
  31. }
  32. </script>
  33. <style lang="sass">
  34. .purchase-step
  35. .products-selector
  36. width: calc(100% - 300px)
  37. height: 100%
  38. padding-right: 5px
  39. display: inline-block
  40. .cart-viewer
  41. width: 300px
  42. height: 100%
  43. border-left: 1px solid #d3d3d3
  44. padding-left: 10px
  45. display: inline-block
  46. vertical-align: top
  47. </style>