details.tsx 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  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. console.log(record)
  20. if (Array.isArray(record?.courseScheduleTeacherAttendanceList)) {
  21. record.courseScheduleTeacherAttendanceList.forEach((n: any) => {
  22. n.times =
  23. (n?.startTime ? dayjs(n.startTime).format('YYYY-MM-DD HH:mm') : '') +
  24. ' ~ ' +
  25. (n?.endTime ? dayjs(n.endTime).format('HH:mm') : '')
  26. n.signInTime = n?.signInTime?.split(' ')[1]
  27. n.signOutTime = n?.signOutTime?.split(' ')[1]
  28. })
  29. }
  30. return () => (
  31. <div>
  32. <OSticky>
  33. <OHeader />
  34. </OSticky>
  35. {!!record && (
  36. <div class={styles.wrap}>
  37. <div class={[styles.item, styles.listItem]}>
  38. <Cell
  39. border={false}
  40. center
  41. class={styles.listItem}
  42. title="补助标准"
  43. value={`${record.standardSalary}元/天`}
  44. />
  45. <Cell
  46. border={false}
  47. center
  48. class={styles.listItem}
  49. title="补助课程"
  50. value={courseEmnu[record.courseType]}
  51. />
  52. <Cell
  53. border={false}
  54. center
  55. class={styles.listItem}
  56. valueClass={styles.valueColor}
  57. title="课件使用未达标"
  58. value={`-${record.reduceSalary}元`}
  59. />
  60. <Cell
  61. border={false}
  62. center
  63. class={styles.listItem}
  64. valueClass={styles.valueColor}
  65. title="早退"
  66. value={`-0.00元`}
  67. />
  68. <Cell
  69. border={false}
  70. center
  71. class={styles.listItem}
  72. title="实际补助金额"
  73. value={`${record.actualSalary}元`}
  74. />
  75. </div>
  76. {record?.courseScheduleTeacherAttendanceList?.map(
  77. (item: ICourseScheduleTeacherAttendance) => (
  78. <div class={styles.item}>
  79. <Cell center>
  80. {{
  81. title: () => (
  82. <div class={styles.itemTitle}>
  83. <img class={styles.titleIcon} src={iconTime} />
  84. <span>{item.times}</span>
  85. </div>
  86. )
  87. }}
  88. </Cell>
  89. <div class={styles.itemContent}>
  90. <div class={styles.itemContentTitle}>
  91. <span>
  92. {item.classGroupName}-{item.teacherName}
  93. </span>
  94. <span
  95. class={styles.itemContentTitleDetail}
  96. style={{
  97. color:
  98. item.coursewarePlayTime >= item.adviseStudyTimeSecond
  99. ? '#358AF5'
  100. : '#F44541'
  101. }}
  102. >
  103. 课件使用:{getSecondRPM(item.coursewarePlayTime)}/
  104. {getSecondRPM(item.adviseStudyTimeSecond)}分钟
  105. </span>
  106. </div>
  107. <div class={styles.itemContentLabel}>{item.orchestraName}</div>
  108. <div class={styles.times}>
  109. <div class={[styles.timesItem, styles.startTime]}>
  110. <div class={styles.startTimeTop}>
  111. <span>签到时间</span>
  112. <img src={item.signInStatus === 'NORMAL' ? iconPrimary : iconError} />
  113. </div>
  114. <div class={styles.startTimeBottom}>{item.signInTime}</div>
  115. </div>
  116. <div class={[styles.timesItem, styles.endTime]}>
  117. <div class={styles.startTimeTop}>
  118. <span>签退时间</span>
  119. <img src={item.signOutStatus === 'NORMAL' ? iconPrimary : iconError} />
  120. </div>
  121. <div class={styles.startTimeBottom}>{item.signOutTime}</div>
  122. </div>
  123. </div>
  124. </div>
  125. </div>
  126. )
  127. )}
  128. </div>
  129. )}
  130. {!record && <OEmpty tips="暂无明细" />}
  131. </div>
  132. )
  133. }
  134. })