index.vue 1012 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <template>
  2. <div class="index">
  3. <carousel>
  4. <kind-category @loadchild="loadProductKinds"></kind-category>
  5. </carousel>
  6. <advert></advert>
  7. <floor-list></floor-list>
  8. <news></news>
  9. <partner></partner>
  10. </div>
  11. </template>
  12. <script>
  13. import { KindCategory, Carousel, Advert, FloorList, Partner, News } from '~components/home'
  14. export default {
  15. name: 'index',
  16. layout: 'main',
  17. fetch ({ store }) {
  18. return Promise.all([
  19. store.dispatch('loadFloors'),
  20. store.dispatch('loadBanners', {type: 'home'}),
  21. store.dispatch('loadProductKinds', { id: 0 }),
  22. store.dispatch('loadNewsSnapshot', { page: 1, pageSize: 10 }),
  23. store.dispatch('loadProductCounts', { _status: 'actived' })
  24. ])
  25. },
  26. components: {
  27. KindCategory,
  28. Carousel,
  29. Advert,
  30. FloorList,
  31. Partner,
  32. News
  33. },
  34. methods: {
  35. loadProductKinds (id) {
  36. this.$store.dispatch('loadAllProductKinds', {id})
  37. }
  38. }
  39. }
  40. </script>