index.vue 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <template>
  2. <view class="meeting-info-container">
  3. <view class="u-page">
  4. <item-list :ds="indexList" :onItemClick="onContentClick" />
  5. </view>
  6. </view>
  7. </template>
  8. <script>
  9. import { fetchContentInfo } from '@/common/api';
  10. import { CONTENT_TYPE, MEETING_TYPE } from '@/common/EnumConst';
  11. import ItemList from '@/components/ItemList/index.vue';
  12. import { getImageUrl, setStorageObj, storageKey } from '@/util';
  13. export default {
  14. components: {
  15. ItemList,
  16. },
  17. data() {
  18. return {
  19. keyword: '',
  20. indexList: [],
  21. };
  22. },
  23. onLoad() {
  24. this.loadmore();
  25. },
  26. methods: {
  27. onContentClick(item) {
  28. setStorageObj(storageKey.regtheme, {
  29. type: MEETING_TYPE.conference.value,
  30. id: item.id,
  31. });
  32. uni.navigateTo({
  33. url: `/pasbrg/pages/regtheme/index?type=${MEETING_TYPE.conference.value}&id=${item.id}`,
  34. });
  35. },
  36. async loadmore(keyword = '') {
  37. const res = await fetchContentInfo({
  38. pageNum: 1,
  39. pageSize: 99,
  40. contentType: CONTENT_TYPE.conference,
  41. title: keyword,
  42. });
  43. this.indexList = res.rows.map(item => {
  44. return {
  45. id: item.id,
  46. imgUrl: getImageUrl(item.thumbnail),
  47. title: item.title,
  48. date: item.createTime,
  49. };
  50. });
  51. },
  52. onSearch(val) {
  53. this.loadmore(val);
  54. },
  55. },
  56. onShareAppMessage() {
  57. return {
  58. title: '',
  59. };
  60. },
  61. };
  62. </script>
  63. <style lang="scss" src="./index.scss">
  64. </style>