index.tsx 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import OHeader from '@/components/o-header'
  2. import OSticky from '@/components/o-sticky'
  3. import request from '@/helpers/request'
  4. import { state } from '@/state'
  5. import { Sticky, Tab, Tabs } from 'vant'
  6. import { defineComponent, onMounted, ref } from 'vue'
  7. import Practice from './component/practice'
  8. import Standard from './component/standard'
  9. import { resestState } from './create'
  10. import styles from './index.module.less'
  11. export default defineComponent({
  12. name: 'train-planning',
  13. setup() {
  14. const trainType = sessionStorage.getItem('trainType')
  15. const tabValue = ref(trainType || 'standard')
  16. const address = ref('')
  17. // sessionStorage.removeItem('trainType')
  18. const getSchoolDetail = async () => {
  19. try {
  20. const { data } = await request.get(`/api-school/school/detail/${state.user.data.school.id}`)
  21. address.value = data.address || ''
  22. } catch {
  23. //
  24. }
  25. }
  26. onMounted(() => {
  27. getSchoolDetail()
  28. })
  29. return () => (
  30. <div class={styles.train}>
  31. <OSticky position="top">
  32. <OHeader />
  33. <Tabs
  34. sticky
  35. lineWidth={20}
  36. lineHeight={4}
  37. v-model:active={tabValue.value}
  38. onChange={(val: any) => {
  39. // 切换时间重置表单数据
  40. resestState()
  41. sessionStorage.setItem('trainType', val)
  42. }}
  43. >
  44. <Tab title="标准训练" name="standard"></Tab>
  45. <Tab title="自定义训练" name="practice"></Tab>
  46. </Tabs>
  47. </OSticky>
  48. {tabValue.value === 'standard' && <Standard address={address.value} />}
  49. {tabValue.value === 'practice' && <Practice address={address.value} />}
  50. </div>
  51. )
  52. }
  53. })