index.tsx 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. import { Cell, CellGroup, Collapse, CollapseItem, Image, Rate } from 'vant'
  2. import { defineComponent } from 'vue'
  3. import styles from './index.module.less'
  4. import iconTeacher from '@common/images/icon_teacher.png'
  5. import { moneyFormat } from '@/helpers/utils'
  6. import dayjs from 'dayjs'
  7. export default defineComponent({
  8. name: 'OrderPractice',
  9. props: {
  10. item: {
  11. type: Object,
  12. default: {}
  13. }
  14. },
  15. data() {
  16. return {
  17. collapse: [1]
  18. }
  19. },
  20. render() {
  21. const item = this.item
  22. console.log(item.classTime)
  23. return (
  24. <div class={styles.videoOrder}>
  25. <CellGroup border={false}>
  26. <Cell
  27. center
  28. v-slots={{
  29. title: () => (
  30. <div class={[styles.title]}>
  31. <span class={styles.tag}>VIP定制课</span>
  32. <span class={[styles.courseGroupName, 'van-ellipsis']}>{item.courseGroupName}</span>
  33. </div>
  34. )
  35. }}
  36. />
  37. <Cell
  38. center
  39. border={false}
  40. title={item.teacherName}
  41. titleClass={styles.teacher}
  42. v-slots={{
  43. icon: () => (
  44. <Image
  45. class={styles.userLogo}
  46. src={item.avatar || iconTeacher}
  47. />
  48. ),
  49. default: () => (
  50. <>
  51. <span class={styles.price}>
  52. <i>¥</i>
  53. {moneyFormat(item.coursePrice)}
  54. </span>
  55. /{item.classTime.length}课时
  56. </>
  57. )
  58. }}
  59. />
  60. <Cell border={false}>
  61. <Collapse border={false} v-model={this.collapse}>
  62. <CollapseItem
  63. title="课程详情"
  64. name={1}
  65. class={styles.collapseItem}
  66. >
  67. <div class={styles.classItem}>
  68. {item.classTime.map((item: any) => {
  69. const dateTime = `${item.classDate} ${dayjs(
  70. item.startTime
  71. ).format('HH:mm')}-${dayjs(item.endTime).format('HH:mm')}`
  72. return <div class={styles.time}>{dateTime}</div>
  73. })}
  74. </div>
  75. </CollapseItem>
  76. </Collapse>
  77. </Cell>
  78. </CellGroup>
  79. </div>
  80. )
  81. }
  82. })