notification.vue 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <!-- @format -->
  2. <script lang="ts" setup>
  3. import dayjs from 'dayjs'
  4. import { getNoticeListApi } from '@/api/model/notice'
  5. import { PageSizeEnum } from '~/enums/sizeEnum'
  6. import { useCommonStore } from '@/stores/modules/common'
  7. const list = ref<any>([])
  8. const commonStore = useCommonStore()
  9. async function getNoticeList(
  10. pageNo = PageSizeEnum.PAGE,
  11. pageSize = 4,
  12. ) {
  13. try {
  14. const res: any = await getNoticeListApi({
  15. pageNo,
  16. pageSize,
  17. })
  18. list.value = res.records
  19. await commonStore.getNoticeRemind()
  20. }
  21. catch (e) {
  22. console.log(e)
  23. }
  24. }
  25. getNoticeList()
  26. </script>
  27. <template>
  28. <div class="bg-#FAFAFA b-rd-10px py-10px px-24px">
  29. <div
  30. class="py-18px text-#36363D fw-600 text-18px b-b-solid b-b-1px b-b-#eee"
  31. >
  32. Notification Board
  33. </div>
  34. <div v-if="list.length">
  35. <div
  36. v-for="(item, index) in list"
  37. :key="index"
  38. class="py-16px b-b-solid b-b-#eee b-b-1px"
  39. >
  40. <div class="text-16px mb-10px text-#333 w-210px line-clamp-1">
  41. {{ item.title }}
  42. </div>
  43. <div class="flex justify-between items-center">
  44. <div class="text-#999 text-14px w-210px line-clamp-1">
  45. {{ item.msgContent }}
  46. </div>
  47. <div class="text-#999 text-14px">
  48. {{ dayjs(item.sendTime).format("YYYY-MM-DD") }}
  49. </div>
  50. </div>
  51. </div>
  52. <div class="text-center text-primary text-18px py-24px cursor-pointer hover:underline">
  53. <router-link to="/account/notice">
  54. View details
  55. </router-link>
  56. </div>
  57. </div>
  58. <common-empty v-else title="No data found ~" />
  59. </div>
  60. </template>
  61. <style lang="less" scoped></style>