blog.vue 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <script lang='ts' setup>
  2. import { Api } from '@/api/model/url'
  3. const config = useRuntimeConfig()
  4. const { apiBaseSiteUrl } = config.public
  5. const list = ref<any>([])
  6. const requestUrl = `${apiBaseSiteUrl}${Api.BlogsList}`
  7. const params = { pageNo: 1, pageSize: 3, orderBy: 'createTime', orderType: 'desc' }
  8. const { data, pending, error, refresh } = await useAsyncData(
  9. 'blog-list',
  10. () => $fetch(requestUrl, { params }),
  11. )
  12. list.value = data.value?.result?.records || []
  13. </script>
  14. <template>
  15. <div
  16. v-if="list.length"
  17. class="bg-#fff py-120px data-section"
  18. data-section-color="#ffffff"
  19. >
  20. <div class="w-1200-auto text-center">
  21. <h2 class="!text-36px !fw-800 text-#333 !mb-44px custom-title-font">
  22. EJET Spark <span class="custom-title-bg03">Blog</span>
  23. </h2>
  24. <div class="flex items-center justify-end text-#9B6CFF cursor-pointer text-14px fw-bold mb-20px">
  25. View All
  26. <svgo-arrow-line-r class="w-16px h-16px ml-10px" />
  27. </div>
  28. <div class=" grid grid-cols-3 gap-40px text-left">
  29. <div v-for="item, index in list" :key="index">
  30. <common-blog-item :item="item" />
  31. </div>
  32. </div>
  33. </div>
  34. </div>
  35. </template>
  36. <style lang='less' scoped>
  37. </style>