NEXT craftinamerica.org. Base setup for headless wordpress https://www.craftinamerica.org
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

events.vue 1.7KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <template lang="pug">
  2. //- most recent upcoming event - sidebar in events list - max=2?
  3. h3.t-up events {{ listType }}
  4. ul.t-up
  5. li(v-for="post in events")
  6. router-link(:to="`/event/${post.slug}`")
  7. featured-image(:post="post", thumbsize="'standard'")
  8. router-link(:to="`/event/${post.slug}`")
  9. p.t-up {{ post.title }}
  10. p.date {{ dateFrom(post.start, true) }} &ndash; {{ dateFrom(post.end, true).split(',')[1] }}
  11. </template>
  12. <script>
  13. import featuredImage from '@/components/featured-image'
  14. import { postTypeGetters } from '@/pages/mixin-post-types'
  15. import { sortTypes, formatDate } from '@/utils/helpers'
  16. export default {
  17. mixins: [postTypeGetters],
  18. components: { featuredImage },
  19. computed: {
  20. loaded() {
  21. return this[`allEventsLoaded`]
  22. },
  23. events() {
  24. return this[`upcomingAndCurrentEvents`]
  25. },
  26. },
  27. data() {
  28. return {
  29. listType: 'current/upcoming',
  30. }
  31. },
  32. methods: {
  33. dateFrom: (unix, includeTime) => formatDate(unix, includeTime),
  34. async getPosts() {
  35. this.$store.commit('CLEAR_EVENTS')
  36. const upcoming = this.$store.dispatch(
  37. `getAllEvents`,
  38. {
  39. sortType: sortTypes.currentAndUpcoming,
  40. params: {
  41. limit: 3,
  42. page: 1
  43. }
  44. }
  45. )
  46. if (upcoming.length < 1) {
  47. // this.listType = 'past'
  48. // this.$store.dispatch(`getAllEvents`, sortTypes.past)
  49. }
  50. },
  51. },
  52. created() {
  53. this.getPosts()
  54. },
  55. }
  56. </script>