index.vue 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <template>
  2. <ie-page ref="iePageRef" bg-color="white">
  3. <ie-navbar>
  4. <template #headerLeft>
  5. <view class="flex items-center">
  6. <uv-icon name="arrow-left" size="20px" color="#333"></uv-icon>
  7. <ie-image :is-oss="true" src="/study-title.png" custom-class="ml-8 w-148 h-36" mode="heightFix" />
  8. <view class="w-6 h-6 rounded-2 bg-black mx-12"></view>
  9. <view>
  10. <ie-dict :dict-name="EnumDictName.EXAM_TYPE" :dict-value="userStore.getExamType || '--'" />
  11. </view>
  12. </view>
  13. </template>
  14. </ie-navbar>
  15. <index-practice-entry />
  16. <index-menu />
  17. <index-banner />
  18. <henan-exam v-if="isVHS" :directed-school="firstDirectedSchool" />
  19. <hunan-exam v-else :directed-school="firstDirectedSchool" />
  20. </ie-page>
  21. </template>
  22. <script lang="ts" setup>
  23. import IndexMenu from './compoentns/index-menu.vue';
  24. import IndexBanner from './compoentns/index-banner.vue';
  25. import HunanExam from './compoentns/hunan-exam.vue';
  26. import HenanExam from './compoentns/henan-exam.vue';
  27. import IndexPracticeEntry from './compoentns/index-practice-entry.vue';
  28. import { EnumDictName, EnumExamType, EnumUserRole } from '@/common/enum';
  29. import { useUserStore } from '@/store/userStore';
  30. import { useTransferPage } from '@/hooks/useTransferPage';
  31. import IePage from '@/components/ie-page/ie-page.vue';
  32. import { useAuth } from '@/hooks/useAuth';
  33. const { transferTo } = useTransferPage();
  34. const userStore = useUserStore();
  35. const { hasPermission } = useAuth();
  36. // 通过 ref 获取 ie-page 组件实例
  37. const iePageRef = ref<InstanceType<typeof IePage>>();
  38. const { hasDirectedSchool, directedSchoolList, getExamType, isVHS } = storeToRefs(userStore);
  39. const firstDirectedSchool = computed(() => directedSchoolList.value[0] || {});
  40. const loadData = async () => {
  41. await userStore.getDirectedSchoolList();
  42. }
  43. onLoad(() => {
  44. loadData();
  45. });
  46. </script>
  47. <style></style>