details.tsx 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. import { Cell, Grid, GridItem } from 'vant'
  2. import { defineComponent, onMounted, PropType } from 'vue'
  3. import styles from '../index.module.less'
  4. import iconA from '../images/icon-photo.png'
  5. import iconTime from '../images/icon-time.png'
  6. import iconPrimary from '../images/icon-primary.png'
  7. import iconError from '../images/icon-error.png'
  8. import { courseEmnu } from '@/constant'
  9. import { courseSalaryRecordDetailItem } from './exercise-detail'
  10. import OSticky from '@/components/o-sticky'
  11. import OHeader from '@/components/o-header'
  12. import OEmpty from '@/components/o-empty'
  13. import dayjs from 'dayjs'
  14. import { getSecondRPM } from '@/helpers/utils'
  15. export default defineComponent({
  16. name: 'subsidy-detail',
  17. setup() {
  18. const record: ICourseSalaryRecordDetailItem = courseSalaryRecordDetailItem.value! || ''
  19. if (Array.isArray(record?.courseScheduleTeacherAttendanceList)) {
  20. record.courseScheduleTeacherAttendanceList.forEach((n: any) => {
  21. n.times =
  22. (n?.startTime ? dayjs(n.startTime).format('YYYY-MM-DD HH:mm') : '') +
  23. ' ~ ' +
  24. (n?.endTime ? dayjs(n.endTime).format('HH:mm') : '')
  25. n.signInTime = n?.signInTime?.split(' ')[1]
  26. n.signOutTime = n?.signOutTime?.split(' ')[1]
  27. })
  28. }
  29. return () => (
  30. <div>
  31. <OSticky>
  32. <OHeader />
  33. </OSticky>
  34. {!!record && (
  35. <div class={styles.wrap}>
  36. <div class={[styles.item, styles.listItem]}>
  37. <Cell
  38. border={false}
  39. center
  40. class={styles.listItem}
  41. title="补助标准"
  42. value={`${record.standardSalary}元/天`}
  43. />
  44. <Cell
  45. border={false}
  46. center
  47. class={styles.listItem}
  48. title="补助课程"
  49. value={courseEmnu[record.courseType]}
  50. />
  51. <Cell
  52. border={false}
  53. center
  54. class={styles.listItem}
  55. title="课件使用未达标"
  56. value={`-${record.reduceSalary}元`}
  57. />
  58. <Cell border={false} center class={styles.listItem} title="早退" value={`-0.00元`} />
  59. <Cell
  60. border={false}
  61. center
  62. class={styles.listItem}
  63. title="实际补助金额"
  64. value={`${record.actualSalary}元`}
  65. />
  66. </div>
  67. {record?.courseScheduleTeacherAttendanceList?.map(
  68. (item: ICourseScheduleTeacherAttendance) => (
  69. <div class={styles.item}>
  70. <Cell center>
  71. {{
  72. title: () => (
  73. <div class={styles.itemTitle}>
  74. <img class={styles.titleIcon} src={iconTime} />
  75. <span>{item.times}</span>
  76. </div>
  77. )
  78. }}
  79. </Cell>
  80. <div class={styles.itemContent}>
  81. <div class={styles.itemContentTitle}>
  82. <span>
  83. {item.classGroupName}-{item.teacherName}
  84. </span>
  85. <span
  86. class={styles.itemContentTitleDetail}
  87. style={{ color: 1 ? '#358AF5' : '#F44541' }}
  88. >
  89. 课件使用:{getSecondRPM(item.coursewarePlayTime)}/{getSecondRPM(item.adviseStudyTimeSecond)}分钟
  90. </span>
  91. </div>
  92. <div class={styles.itemContentLabel}>{item.orchestraName}</div>
  93. <div class={styles.times}>
  94. <div class={[styles.timesItem, styles.startTime]}>
  95. <div class={styles.startTimeTop}>
  96. <span>签到时间</span>
  97. <img src={item.signInStatus === 'NORMAL' ? iconPrimary : iconError} />
  98. </div>
  99. <div class={styles.startTimeBottom}>{item.signInTime}</div>
  100. </div>
  101. <div class={[styles.timesItem, styles.endTime]}>
  102. <div class={styles.startTimeTop}>
  103. <span>签退时间</span>
  104. <img src={item.signOutStatus === 'NORMAL' ? iconPrimary : iconError} />
  105. </div>
  106. <div class={styles.startTimeBottom}>{item.signOutTime}</div>
  107. </div>
  108. </div>
  109. </div>
  110. </div>
  111. )
  112. )}
  113. </div>
  114. )}
  115. {!record && <OEmpty tips="暂无明细" />}
  116. </div>
  117. )
  118. }
  119. })