index.vue 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. <template>
  2. <view class="grades-terms-page">
  3. <view class="icon-title-navBar-box">
  4. <!-- 返回按钮↓ -->
  5. <view class="nav-bar-icon"></view>
  6. </view>
  7. <view class="grades-body">
  8. <view class="grades-change-title"></view>
  9. <text class="grades-title-desc">我们会根据您选择,为您匹配对应的学习内容</text>
  10. <view class="grades-terms-title terms-title-img"></view>
  11. <view class="grade-item-box">
  12. <view v-for="item in xueke_list" :key="item.id" @click="handleSelectXueke(item)"
  13. :class="['grade-item',{active: item.id == activeXueke}]">{{item.label}}</view>
  14. </view>
  15. <view class="grades-terms-title grades-title-img"></view>
  16. <view class="grade-item-box">
  17. <view v-for="item in nianji_list" :key="item.id" @click="handleSelectGrade(item)"
  18. :class="['grade-item', {active: item.id == activeNianji}]">{{item.label}}</view>
  19. </view>
  20. <view class="grade-line"></view>
  21. <button class="grade-confirm-btn" @click="handleConfirm"></button>
  22. </view>
  23. </view>
  24. </template>
  25. <script setup>
  26. import {
  27. reactive,
  28. toRefs
  29. } from "vue";
  30. import {
  31. nianji_list,
  32. xueke_list,
  33. } from "@/utils/constant.js";
  34. import {
  35. onLoad
  36. } from "@dcloudio/uni-app";
  37. import {getUserIdentity} from "@/utils/common.js"
  38. import cacheManager from "@/utils/cacheManager.js"
  39. function useSelectGrade() {
  40. const userCode = getUserIdentity();
  41. const data = reactive({
  42. activeNianji: null, // 当前年级
  43. activeXueke: null, // 当前学期
  44. });
  45. onLoad(({nianji,cardId}) => {
  46. if (userCode !== 'Visitor') {
  47. const {
  48. nianji: nianji_,
  49. cardId: cardId_
  50. } = cacheManager.get('auth');
  51. data.activeNianji = nianji_;
  52. data.activeXueke = cardId_;
  53. } else {
  54. data.activeNianji = nianji;
  55. data.activeXueke = cardId;
  56. }
  57. });
  58. // 选择 年级+学期
  59. function handleConfirm() {
  60. if (!data.activeNianji) {
  61. uni.showToast({
  62. title: "请选择年级",
  63. duration: 2000,
  64. });
  65. return;
  66. }
  67. if (!data.activeXueke) {
  68. uni.showToast({
  69. title: "请选择学科",
  70. duration: 2000,
  71. });
  72. return;
  73. }
  74. goDAOToStudy();
  75. }
  76. // 跳转 岛 学习
  77. function goDAOToStudy() {
  78. if (userCode !== 'Visitor') {
  79. const auth = cacheManager.get('auth');
  80. cacheManager.updateObject('auth', {
  81. nianji: data.activeNianji,
  82. zhangId: data.activeNianji == auth.nianji && data.activeXueke == auth.cardId ? auth.zhangId: 0,
  83. cardId: data.activeXueke,
  84. })
  85. // 数序
  86. uni.redirectTo({
  87. url: `/pages/study/index`
  88. })
  89. } else {
  90. // 数序
  91. uni.redirectTo({
  92. url: `/pages/study/index?nianji=${data.activeNianji}&cardId=${data.activeXueke}&zhangId=0`
  93. })
  94. }
  95. }
  96. return {
  97. ...toRefs(data),
  98. // 方法
  99. handleConfirm, // 选择年级+学科
  100. };
  101. }
  102. const {
  103. activeNianji,
  104. activeXueke,
  105. handleConfirm
  106. } = useSelectGrade()
  107. function handleSelectGrade(item) {
  108. activeNianji.value = item.id;
  109. }
  110. function handleSelectXueke(item) {
  111. activeXueke.value = item.id;
  112. }
  113. </script>