index.tsx 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. import MHeader from '@/components/m-header';
  2. import MSticky from '@/components/m-sticky';
  3. import { defineComponent } from 'vue';
  4. import styles from './index.module.less';
  5. import { useRouter } from 'vue-router';
  6. import { Image, showToast } from 'vant';
  7. import AiExam from './images/ai-exam.png';
  8. import WoringPractice from './images/woring-practice.png';
  9. import WoringStat from './images/woring-stat.png';
  10. import request from '@/helpers/request';
  11. import { browser } from '@/helpers/utils';
  12. import { postMessage } from '@/helpers/native-message';
  13. import WoringGuide from '@/custom-plugins/guide-page/woring-guide';
  14. export default defineComponent({
  15. name: 'wroing-book',
  16. setup() {
  17. const router = useRouter();
  18. /** 错题练习 */
  19. const onErrorPractice = async () => {
  20. try {
  21. const { data } = await request.post(
  22. '/edu-app/studentUnitExamination/errorEdition',
  23. {
  24. hideLoading: false,
  25. data: {
  26. page: 1,
  27. rows: 50
  28. }
  29. }
  30. );
  31. const temp = data || {};
  32. if (temp.total > 0) {
  33. router.push({
  34. path: '/error-question-mode'
  35. });
  36. } else {
  37. setTimeout(() => {
  38. showToast('暂无错题');
  39. }, 100);
  40. }
  41. } catch {
  42. //
  43. }
  44. };
  45. return () => (
  46. <div class={styles.woringBook}>
  47. <MSticky position="top">
  48. <MHeader border={false} background="transparent">
  49. {{
  50. content: () => (
  51. <div class={styles.woringHeader}>
  52. <i
  53. onClick={() => {
  54. if (browser().isApp) {
  55. postMessage({
  56. api: 'goBack'
  57. });
  58. } else {
  59. router.back();
  60. }
  61. }}
  62. class={[
  63. 'van-badge__wrapper van-icon van-icon-arrow-left van-nav-bar__arrow',
  64. styles.leftArrow
  65. ]}></i>
  66. <span class={styles.title}>
  67. <i></i>
  68. </span>
  69. </div>
  70. )
  71. }}
  72. </MHeader>
  73. </MSticky>
  74. <div class={styles.woringSecgtion}>
  75. <Image
  76. {...{ id: 'woring-0' }}
  77. lazyLoad
  78. src={WoringStat}
  79. class={styles.woringImg}
  80. onClick={() => router.push('wroing-stat')}
  81. />
  82. {/* 错题练习 */}
  83. <Image
  84. {...{ id: 'woring-1' }}
  85. lazyLoad
  86. src={WoringPractice}
  87. class={styles.woringImg}
  88. onClick={onErrorPractice}
  89. />
  90. <Image
  91. {...{ id: 'woring-2' }}
  92. lazyLoad
  93. src={AiExam}
  94. class={styles.woringImg}
  95. onClick={() => router.push('ai-exam')}
  96. />
  97. </div>
  98. <WoringGuide></WoringGuide>
  99. </div>
  100. );
  101. }
  102. });