volunteer.vue 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <template>
  2. <ie-page bg-color="white">
  3. <ie-navbar bg-color="#FFFFFF" transparent custom-back :click-hover="false">
  4. <template #headerLeft>
  5. <view class="flex items-center gap-7 text-fore-subtitle text-sm font-medium">
  6. <ie-image is-oss src="/volunteer/index/navbar_title.png" custom-class="w-146"/>
  7. <text>·</text>
  8. <text>{{ examTypeName }}</text>
  9. </view>
  10. </template>
  11. <template #headerRight>
  12. <view class="flex items-center gap-5 text-fore-subtitle text-base font-medium">
  13. <ie-image is-oss src="/volunteer/index/navbar_location.png" custom-class="w-24"/>
  14. <text>{{ userStore.getLocation }}</text>
  15. </view>
  16. </template>
  17. </ie-navbar>
  18. <volunteer-banner :style="{marginTop: (baseStickyTop + 10) + 'px'}"/>
  19. <volunteer-menu/>
  20. <ie-gap/>
  21. <volunteer-policy/>
  22. <volunteer-echelon/>
  23. <template #tabbar>
  24. <ie-tabbar :active="1"/>
  25. </template>
  26. </ie-page>
  27. </template>
  28. <script lang="ts" setup>
  29. import {useUserStore} from '@/store/userStore';
  30. import {useTransferPage} from '@/hooks/useTransferPage';
  31. import {EnumDictName} from '@/common/enum';
  32. import {useDictStore} from "@/store/dictStore";
  33. import {useNavbar} from "@/hooks/useNavbar";
  34. import VolunteerBanner from "@/pagesMain/pages/volunteer/components/volunteer-banner.vue";
  35. import VolunteerMenu from "@/pagesMain/pages/volunteer/components/volunteer-menu.vue";
  36. import VolunteerPolicy from "@/pagesMain/pages/volunteer/components/volunteer-policy.vue";
  37. import VolunteerEchelon from "@/pagesMain/pages/volunteer/components/volunteer-tier.vue";
  38. const {transferTo} = useTransferPage();
  39. const userStore = useUserStore();
  40. const dictStore = useDictStore()
  41. const {baseStickyTop} = useNavbar();
  42. const examTypeName = computed(() => {
  43. return dictStore.getDictLabel(EnumDictName.EXAM_TYPE, userStore.getExamType)
  44. })
  45. // 为了让子组件触发页面滚动
  46. onPageScroll(() => { })
  47. </script>
  48. <style lang="scss" scoped></style>