teacherAtt-item.tsx 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import { defineComponent, reactive, ref } from 'vue'
  2. import styles from './teacherAtt-item.module.less'
  3. import clockIcon from '@/school/attendance/images/clock-icon.png'
  4. import errorIcon from '@/school/attendance/images/error-icon.png'
  5. import successIcon from '@/school/attendance/images/success-icon.png'
  6. import { Icon, ActionSheet } from 'vant'
  7. import dayjs from 'dayjs'
  8. import { useRouter } from 'vue-router'
  9. export default defineComponent({
  10. props: ['item'],
  11. name: 'teacherAtt-item',
  12. setup(props) {
  13. const router = useRouter()
  14. const gotoTeacherDetail = () => {
  15. router.push({
  16. path: '/teacher-attendDetail',
  17. query: { courseScheduleId: props.item.courseScheduleId }
  18. })
  19. }
  20. return () => (
  21. <>
  22. <div class={styles.itemWrap} onClick={gotoTeacherDetail}>
  23. <div class={styles.itemWrapTop}>
  24. <div class={styles.itemWrapTopLeft}>
  25. <div class={styles.clockWrap}>
  26. <img src={clockIcon} alt="" />
  27. </div>
  28. <p class={styles.leftTimer}>
  29. {dayjs(props.item.startTime).format('YYYY-MM-DD HH:mm')}
  30. {'-'}
  31. {dayjs(props.item.endTime).format('HH:mm')}
  32. </p>
  33. </div>
  34. <div class={styles.itemWrapTopRight}>
  35. <Icon name="arrow"></Icon>
  36. </div>
  37. </div>
  38. <div class={styles.itemWrapBottom}>
  39. <div class={styles.courseInfo}>
  40. <div class={styles.infoMsg}>
  41. <p class={styles.infoMsgMain}>{props.item.classGroupName}</p>
  42. <p class={styles.infoMsgSub}>{props.item.orchestraName}</p>
  43. </div>
  44. {props.item.subsidyFlag ? (
  45. <div class={styles.typeTag}>补助课</div>
  46. ) : (
  47. <div class={styles.typeTagNo}>非补助课</div>
  48. )}
  49. </div>
  50. <div class={styles.attInfo}>
  51. <div class={props.item.signInStatus === 'NORMAL' ? styles.passWrap : styles.goWrap}>
  52. <div class={styles.attInfoDot}>
  53. <div class={styles.attInfoDotTitle}>
  54. <span>签到时间</span>
  55. <img
  56. src={props.item.signInStatus === 'NORMAL' ? successIcon : errorIcon}
  57. alt=""
  58. />
  59. </div>
  60. <p class={styles.signTime}>
  61. {props.item.signInTime
  62. ? dayjs(props.item.signInTime).format('HH:mm:ss')
  63. : '未签到'}
  64. </p>
  65. </div>
  66. </div>
  67. <div class={props.item.signOutStatus === 'NORMAL' ? styles.passWrap : styles.goWrap}>
  68. <div class={styles.attInfoDot}>
  69. <div class={styles.attInfoDotTitle}>
  70. <span>签退时间</span>
  71. <img
  72. src={props.item.signOutStatus === 'NORMAL' ? successIcon : errorIcon}
  73. alt=""
  74. />
  75. </div>
  76. <p class={styles.signTime}>
  77. {props.item.signOutTime
  78. ? dayjs(props.item.signOutTime).format('HH:mm:ss')
  79. : '未签到'}
  80. </p>
  81. </div>
  82. </div>
  83. </div>
  84. </div>
  85. </div>
  86. </>
  87. )
  88. }
  89. })