index-news.vue 837 B

123456789101112131415161718192021222324252627282930313233343536
  1. <template>
  2. <view class="mt-32 mx-30">
  3. <ie-card title="最新动态">
  4. <view class="wrap mt-20 bg-white rounded-15">
  5. <view class="mb-20" v-for="item in newsList" :key="item.id">
  6. <ie-news-item :data="item" @click="handleClick" />
  7. </view>
  8. </view>
  9. </ie-card>
  10. </view>
  11. </template>
  12. <script lang="ts" setup>
  13. import { getNewsListNoToken } from '@/api/modules/news';
  14. import { News } from '@/types/news';
  15. const newsList = ref<News[]>([]);
  16. const emit = defineEmits<{
  17. detail: [id: number | string]
  18. }>();
  19. const handleClick = async (data: News) => {
  20. emit('detail', data.id);
  21. }
  22. const loadData = async () => {
  23. const { rows } = await getNewsListNoToken({
  24. pageNum: 1,
  25. pageSize: 5
  26. });
  27. newsList.value = rows;
  28. }
  29. onLoad(() => {
  30. loadData();
  31. });
  32. </script>
  33. <style lang="scss" scoped></style>