sxtkPage.vue 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  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 {
  42. ref
  43. } from "vue";
  44. import banbenConfirmDialog from './banbenConfirmDialog.vue';
  45. let jiaocaiData = ref(null)
  46. let currentBanbenList = ref([])
  47. let currentNianjiName = ref('L1')
  48. let currentBanbenIndex = ref(null)
  49. const banbenName = ref(null)
  50. const jiaocaiRef = ref(null);
  51. const jcContent = ref(null);
  52. function selectNianji(item, index) {
  53. currentNianjiName.value = item.nianji
  54. currentBanbenList.value = item.banbenList
  55. banbenName.value = ''
  56. }
  57. function jcConfirm() {
  58. uni.downloadFile({
  59. url: httpUrl.value,
  60. success: function (res) {
  61. var filePath = res.tempFilePath;
  62. uni.openDocument({
  63. filePath: filePath,
  64. showMenu: true,
  65. success: function (res) {
  66. console.log('打开文档成功');
  67. jiaocaiRef.value.handleClose();
  68. }
  69. });
  70. }
  71. });
  72. /* uni.navigateTo({
  73. url: '/pages/pdfPage/pdfPage?banben=' + banbenName.value + '&nianji=' + currentNianjiName.value
  74. }); */
  75. }
  76. function selectBanben(item, index) {
  77. console.log('item', item);
  78. if (!currentNianjiName.value) {
  79. toast("请选择年级")
  80. return false
  81. }
  82. banbenName.value = item
  83. }
  84. function handleBack() {
  85. uni.redirectTo({
  86. url: '/pages/my/index'
  87. });
  88. }
  89. function handleConfirm() {
  90. // 确认逻辑
  91. if (banbenName.value && currentNianjiName.value) {
  92. jcContent.value = "用户你好,鹅状元将为您随机生成《" + banbenName.value + "》100道试题."
  93. console.log('jcContent.value', jcContent.value);
  94. jiaocaiRef.value.handleShow();
  95. } else {
  96. toast("请选择年级和对应的教学版本")
  97. return false
  98. }
  99. }
  100. function getInfo() {
  101. selectTiku({}).then(res => {
  102. // jiaocaiData.value = [{
  103. // "nianji": "L1",
  104. // "banbenList": ["人教版"]
  105. // },
  106. // {
  107. // "nianji": "L2",
  108. // "banbenList": ["人教版222", "人教版222333"]
  109. // }
  110. // ]
  111. jiaocaiData.value = res.data
  112. // 默认显示第一个年级的版本列表
  113. if (jiaocaiData.value && jiaocaiData.value.length > 0) {
  114. currentBanbenList.value = jiaocaiData.value[0].banbenList
  115. }
  116. })
  117. }
  118. onLoad((options) => {
  119. if (options.banben && options.nianji) {
  120. currentNianjiName.value = options.nianji
  121. banbenName.value = options.banben
  122. }
  123. getInfo()
  124. })
  125. </script>