index.vue 3.0 KB

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