look.vue 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <template>
  2. <view>
  3. <!-- 答题组件 -->
  4. <kz-question mode="VIEW" :title="cateName" :questions="questions" :questionCount="questionCount" :pageCount="pageCount" :currentPage="currentPage" :viewMode="mode" @loadQuestion="getQuestion"></kz-question>
  5. </view>
  6. </template>
  7. <script>
  8. export default {
  9. data() {
  10. return {
  11. cateId: 0,
  12. cateName: '',
  13. questions: [],
  14. questionCount: 0,
  15. pageCount: 100,
  16. currentPage: 0,
  17. lastPage: 0,
  18. mode: 'normal',
  19. }
  20. },
  21. onLoad(e) {
  22. this.cateId = e.cateId
  23. this.cateName = e?.cateName
  24. this.mode = e.mode
  25. console.log('mode', this.mode)
  26. this.getQuestion()
  27. },
  28. methods: {
  29. // 获取试题(包括延迟获取)
  30. getQuestion(page = 1, callback = null) {
  31. console.log('getQuestion', page, this.currentPage, this.lastPage)
  32. // 避免重复获取
  33. if (page <= this.currentPage || (this.lastPage && page > this.lastPage)) {
  34. return
  35. }
  36. // 请求参数
  37. let params = {
  38. page: page,
  39. page_count: this.pageCount,
  40. cate_id: this.cateId,
  41. mode: this.mode
  42. }
  43. this.http('question/train', params).then(res => {
  44. // 默认分页方式
  45. if (this.mode == 'normal') {
  46. this.questionCount = res.data.total
  47. this.currentPage = res.data.current_page
  48. this.lastPage = res.data.last_page
  49. this.questions = this.questions.concat(res.data.data)
  50. // this.questions = res.data.data
  51. } else {
  52. // 记忆、随机模式暂时只能获取全部题目了
  53. this.questions = res.data.data
  54. }
  55. if (callback) {
  56. callback()
  57. }
  58. })
  59. }
  60. }
  61. }
  62. </script>
  63. <style>
  64. </style>