subscriptionSourceMarket.vue 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <template>
  2. <view>
  3. <!-- 订阅列表 -->
  4. <uni-list>
  5. <uni-list-item v-for="(item, index) in subscriptionSourceList" :key="item.id" :title="item.title"
  6. :note="item.subTitle" :rightText="item.paidOption == 'PAID' ? '付费' : '免费'" link :clickable="true"
  7. @click="goSubscriptionSourceDetail(item)" />
  8. </uni-list>
  9. <uni-load-more status="no-more" v-if="!subscriptionSourceList || subscriptionSourceList.length == 0" />
  10. </view>
  11. </template>
  12. <script setup>
  13. import { ref } from 'vue';
  14. import { onPullDownRefresh, onShow } from "@dcloudio/uni-app";
  15. import { subscriptionApi } from '@/apis/apis.js';
  16. import router from '@/common/router.js';
  17. // 属性
  18. /**
  19. * 订阅源列表
  20. */
  21. const subscriptionSourceList = ref([]);
  22. // 方法
  23. /**
  24. * 加载数据
  25. */
  26. const loadData = async () => {
  27. subscriptionSourceList.value = await subscriptionApi.querySubscriptionSource();
  28. };
  29. /**
  30. * 跳转到订阅源详情页面
  31. */
  32. const goSubscriptionSourceDetail = (dataObj) => {
  33. uni.navigateTo({
  34. url: router.SUBSCRIPTION_SOURCE_DETAIL_PAGE + `?id=${dataObj.id}`
  35. });
  36. };
  37. // 生命周期
  38. onShow(() => {
  39. loadData();
  40. });
  41. onPullDownRefresh(() => {
  42. loadData();
  43. uni.stopPullDownRefresh();
  44. });
  45. </script>
  46. <style lang="scss" scoped></style>