sxtkPage.vue 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <template>
  2. <view class="ezy-sxtk-page">
  3. <view class="icon-title-navBar-box">
  4. <view @click="handleBack" class="nav-bar-icon"></view>
  5. <text class="nav-bar-title">数学题库</text>
  6. </view>
  7. <view class="ezy-tab-border sxtk-tab-border">
  8. <view class="tab-img"></view>
  9. <view class="sxtk-tab-box">
  10. <view v-for="(item,index) in jiaocaiData" :key="index" class="tab-item"
  11. @click="selectNianji(item,index)" :class="{'active': currentNianjiName == item.nianji}">
  12. <view class="tab-nianji-item">{{item.nianji}}</view>
  13. </view>
  14. </view>
  15. <view class="sxtk-line"></view>
  16. <view class="sxtk-banben-body">
  17. <view v-for="(item,index) in currentBanbenList" :key="index" class="banben-item"
  18. :class="{'active': banbenName == item}" @click="selectBanben(item,index)">
  19. <view class="banben-text-item">{{item}}</view>
  20. </view>
  21. </view>
  22. <view class="sxtk-line"></view>
  23. <button class="sxtk-confirm-btn" @click="handleConfirm"></button>
  24. </view>
  25. <banbenConfirmDialog ref="jiaocaiRef" @confirm-btn="jcConfirm" :content="jcContent"></banbenConfirmDialog>
  26. <CustomTabBar ></CustomTabBar>
  27. </view>
  28. </template>
  29. <script setup>
  30. import {
  31. onLoad
  32. } from '@dcloudio/uni-app';
  33. import CustomTabBar from '@/components/custom-tabbar/custom-tabbar.vue';
  34. import {
  35. selectTiku
  36. } from '@/api/my.js'
  37. import {
  38. toast,
  39. getUserIdentity
  40. } from "@/utils/common";
  41. import * as httpApi from "@/api/pdf.js"
  42. import {
  43. ref
  44. } from "vue";
  45. import banbenConfirmDialog from './banbenConfirmDialog.vue';
  46. let jiaocaiData = ref(null)
  47. let currentBanbenList = ref([])
  48. let currentNianjiName = ref('L1')
  49. let currentBanbenIndex = ref(null)
  50. const banbenName = ref(null)
  51. const jiaocaiRef = ref(null);
  52. const jcContent = ref(null);
  53. function selectNianji(item, index) {
  54. currentNianjiName.value = item.nianji
  55. currentBanbenList.value = item.banbenList
  56. banbenName.value = ''
  57. }
  58. function jcConfirm() {
  59. httpApi.getPDFUrl({
  60. banben:banbenName.value,
  61. nianji:currentNianjiName.value,
  62. }).then(res1 => {
  63. uni.downloadFile({
  64. url: res1.data,
  65. success: function (res) {
  66. var filePath = res.tempFilePath;
  67. uni.openDocument({
  68. filePath: filePath,
  69. showMenu: true,
  70. success: function (res) {
  71. console.log('打开文档成功');
  72. jiaocaiRef.value.handleClose();
  73. }
  74. });
  75. }
  76. });
  77. })
  78. /* uni.navigateTo({
  79. url: '/pages/pdfPage/pdfPage?banben=' + banbenName.value + '&nianji=' + currentNianjiName.value
  80. }); */
  81. }
  82. function selectBanben(item, index) {
  83. console.log('item', item);
  84. if (!currentNianjiName.value) {
  85. toast("请选择年级")
  86. return false
  87. }
  88. banbenName.value = item
  89. }
  90. function handleBack() {
  91. uni.redirectTo({
  92. url: '/pages/my/index'
  93. });
  94. }
  95. function handleConfirm() {
  96. // 确认逻辑
  97. if (banbenName.value && currentNianjiName.value) {
  98. jcContent.value = "用户你好,鹅状元将为您随机生成《" + banbenName.value + "》100道试题."
  99. console.log('jcContent.value', jcContent.value);
  100. jiaocaiRef.value.handleShow();
  101. } else {
  102. toast("请选择年级和对应的教学版本")
  103. return false
  104. }
  105. }
  106. function getInfo() {
  107. selectTiku({}).then(res => {
  108. // jiaocaiData.value = [{
  109. // "nianji": "L1",
  110. // "banbenList": ["人教版"]
  111. // },
  112. // {
  113. // "nianji": "L2",
  114. // "banbenList": ["人教版222", "人教版222333"]
  115. // }
  116. // ]
  117. jiaocaiData.value = res.data
  118. // 默认显示第一个年级的版本列表
  119. if (jiaocaiData.value && jiaocaiData.value.length > 0) {
  120. currentBanbenList.value = jiaocaiData.value[0].banbenList
  121. }
  122. })
  123. }
  124. onLoad((options) => {
  125. if (options.banben && options.nianji) {
  126. currentNianjiName.value = options.nianji
  127. banbenName.value = options.banben
  128. }
  129. getInfo()
  130. })
  131. </script>