index.tsx 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. import OHeader from '@/components/o-header'
  2. import OSticky from '@/components/o-sticky'
  3. import { Button, Cell, CellGroup, Dialog, Icon, Image, Tab, Tabs, Tag } from 'vant'
  4. import { defineComponent, reactive } from 'vue'
  5. import styles from './index.module.less'
  6. import iconTimer from '../../images/icon-timer.png'
  7. import iconTeacher from '@common/images/icon_teacher.png'
  8. export default defineComponent({
  9. name: 'course-preview',
  10. setup() {
  11. const forms = reactive({
  12. conflictStatus: false,
  13. conflictMessage: '该时间段伴学指导在其他学校有课',
  14. tabValue: '1',
  15. courseValue: '1'
  16. })
  17. return () => (
  18. <div class={styles.coursePreview}>
  19. <OSticky position="top">
  20. <OHeader border={false} />
  21. <Tabs
  22. lineWidth={20}
  23. lineHeight={4}
  24. v-model:active={forms.tabValue}
  25. swipeThreshold={3}
  26. class={styles.orchestraTabs}
  27. >
  28. <Tab title="2022上学期团" name="1"></Tab>
  29. <Tab title="2022下学期团" name="2"></Tab>
  30. <Tab title="2022下学期团" name="2"></Tab>
  31. <Tab title="2022下学期团" name="2"></Tab>
  32. <Tab title="2022下学期团" name="2"></Tab>
  33. </Tabs>
  34. <Tabs
  35. swipeThreshold={3}
  36. class={styles.courseTabs}
  37. v-model:active={forms.courseValue}
  38. lineHeight={0}
  39. shrink
  40. >
  41. <Tab title="长笛班" name="1"></Tab>
  42. <Tab title="乐理班" name="1"></Tab>
  43. <Tab title="小号班" name="1"></Tab>
  44. <Tab title="长笛" name="1"></Tab>
  45. </Tabs>
  46. </OSticky>
  47. <CellGroup inset class={styles.cellGroup}>
  48. <Cell center class={styles.cellDatetime}>
  49. {{
  50. title: () => (
  51. <div class={styles.cellDate}>
  52. <Icon name={iconTimer} class={styles.iconTimer} />
  53. 2022-10-31
  54. </div>
  55. ),
  56. value: () => <span class={styles.cellTime}>45分钟</span>
  57. }}
  58. </Cell>
  59. <div class={styles.cellTimeRange}>14:00-15:30</div>
  60. <Cell center class={styles.cellTeacher}>
  61. {{
  62. icon: () => <Image src={iconTeacher} class={styles.img} />,
  63. title: () => (
  64. <div class={styles.teacherInfo}>
  65. <p class={styles.teacherName}>李老师</p>
  66. <Tag type="primary">乐理课</Tag>
  67. </div>
  68. ),
  69. value: () => (
  70. <Button round plain type="primary" class={styles.btn}>
  71. 调整
  72. </Button>
  73. )
  74. }}
  75. </Cell>
  76. </CellGroup>
  77. <Dialog
  78. v-model:show={forms.conflictStatus}
  79. message={forms.conflictMessage}
  80. messageAlign="left"
  81. confirmButtonText="知道了"
  82. cancelButtonText="暂不设置"
  83. showCancelButton
  84. onConfirm={() => {
  85. // forms.classStatus = true
  86. }}
  87. >
  88. {{
  89. title: () => (
  90. <div class={styles.dialogTitle}>
  91. <i></i>
  92. 课程冲突
  93. </div>
  94. )
  95. }}
  96. </Dialog>
  97. </div>
  98. )
  99. }
  100. })