index.vue 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. <template>
  2. <view class="exercise">
  3. <navbar />
  4. <view style="height:92rpx;"></view>
  5. <view class="exercise_items_box">
  6. <view class="exercise_items" v-for="(item, index) in pageList" :key="index">
  7. <uni-list>
  8. <!-- :note="isEnable(item.is_finish)?item.exercise_name + ' / ' + item.finish_time:item.exercise_name" -->
  9. <uni-list-item :title="item.exercise_name"
  10. :thumb="isEnable(item.is_finish)?'/static/gear_lv.png':'/static/gear.png'" thumb-size="sm"
  11. :note="isEnable(item.is_finish)?item.finish_time:''" showArrow :to="'/pages/common/AnswerReport?answer_record_id='+item.id+'&answer_mode='
  12. + item.answer_mode+'&exercise_share_record_id='+item.exercise_share_record_id+'&isTask=false'" />
  13. </uni-list>
  14. </view>
  15. <uni-load-more :status="status" :icon-size="14" :content-text="contentText" v-if="pageList.length > 0" />
  16. <view style="height:130rpx;"></view>
  17. </view>
  18. </view>
  19. </template>
  20. <script>
  21. import {
  22. PageQueryMyExerciseAnswerRecordList,
  23. SubmitAnswer
  24. } from '@/api/exercise.js';
  25. import {
  26. isEnable,
  27. answer_mode_list
  28. } from '@/pages/answer_question/common/data/common.js';
  29. export default {
  30. data() {
  31. return {
  32. isEnable,
  33. answer_mode_list,
  34. reload: false,
  35. status: 'more',
  36. contentText: {
  37. contentdown: '下拉加载更多',
  38. contentrefresh: '加载中',
  39. contentnomore: '加载完毕'
  40. },
  41. pageQueryData: {
  42. page_capacity: 50, // 每页容量,最大不能超过 50
  43. cur_page: 1, // 当前查询第几页,页码序号从 1 开始
  44. search_content: '', // 搜索内容,练习题名称,空查询所有
  45. status_list: [0, 1],
  46. },
  47. total: 0, //数据总条数
  48. pageList: [],
  49. }
  50. },
  51. onLoad() {
  52. this.loadMoreData();
  53. },
  54. // 监听触底
  55. onReachBottom() {
  56. let that = this;
  57. if (that.total <= that.pageList.length) {
  58. uni.showToast({
  59. title: '已加载全部数据',
  60. icon: "none"
  61. });
  62. that.status = 'noMore';
  63. } else {
  64. that.status = 'loading';
  65. that.pageQueryData.cur_page++;
  66. that.loadMoreData();
  67. }
  68. },
  69. methods: {
  70. //加载数据
  71. loadMoreData() {
  72. PageQueryMyExerciseAnswerRecordList(this.pageQueryData).then((res) => {
  73. if (res.status) {
  74. // console.log('cur_page', this.pageQueryData.cur_page);
  75. this.total = res.total_count;
  76. if (res.total_count > 0) {
  77. const dataMap = res.answer_record_list;
  78. this.pageList = this.reload ? dataMap : this.pageList.concat(dataMap);
  79. this.reload = false;
  80. }
  81. if (this.total === this.pageList.length) {
  82. this.reload = false;
  83. this.status = 'noMore'
  84. }
  85. }
  86. })
  87. },
  88. }
  89. }
  90. </script>
  91. <style lang="scss">
  92. .exercise_items_box {
  93. height: auto;
  94. padding: 8rpx 16rpx;
  95. .exercise_items {
  96. padding: 8rpx 0;
  97. /deep/ .uni-list {
  98. border-radius: 16rpx !important;
  99. .uni-list-item {
  100. padding: 16rpx 0;
  101. border-radius: 16rpx !important;
  102. .uni-list-item__content-title {
  103. color: #000;
  104. font-weight: 500;
  105. font-size: 36rpx;
  106. }
  107. .uni-list-item__content-note {
  108. font-weight: 400;
  109. font-size: 24rpx;
  110. }
  111. }
  112. .uni-icons {
  113. color: #000 !important;
  114. font-size: 24rpx !important;
  115. }
  116. }
  117. }
  118. }
  119. </style>