| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 | import { Cell, Icon, Image, Rate } from 'vant'import { defineComponent } from 'vue'import styles from './practice-item.module.less'import iconEdu from './images/icon_edu.png'import iconMusicMan from './images/icon_music_man.png'import iconNew from './images/icon_new.png'import iconTeacher from '@/common/images/icon_teacher.png'export default defineComponent({  name: 'practiceItem',  props: {    item: {      type: Object,      default: {}    },    onClick: {      type: Function,      default: (item: any) => {}    }  },  computed: {    subjectNameList() {      const { configSubject } = this.item      return configSubject ? configSubject.split(',') : []    },    starGrade() {      const { starGrade } = this.item      return Number(starGrade) || 0    }  },  render() {    return (      <Cell        center        border={false}        class={styles.practiceItem}        onClick={() => {          this.onClick(this.item)        }}        v-slots={{          icon: () => (            <div class={styles.piCoverContainer}>              <Image                class={styles.piCover}                fit="cover"                src={this.item.avatar || iconTeacher}              />              {/* <Image src={iconMusicMan} class={styles.tag} /> */}              {/* <Image src={iconNew} class={styles.tag} /> */}            </div>          ),          title: () => (            <div>              <div class={[styles.piTitle, 'van-ellipsis']}>                <p class={styles.piNameSubject}>                  <span class={styles.piName}>                    {this.item.userName || `游客${this.item.teacherId || ''}`}                  </span>                  {/* {this.subjectNameList.map(                    (item: string, index: number) =>                      index <= 1 && <span class={styles.subject}>{item}</span>                  )} */}                </p>                {this.starGrade ? (                  <Rate                    readonly                    modelValue={this.starGrade}                    iconPrefix="iconfont"                    color="#FFC459"                    void-icon="star_default"                    icon="star_active"                    size={11}                  />                ) : (                  <span style={{ fontSize: '12px', color: '#999999' }}>                    暂无评分                  </span>                )}              </div>              <div class={styles.piContent}>                {this.item.schoolSubject && (                  <p class={styles.edu}>                    <Icon                      size={14}                      name={iconEdu}                      style={{ paddingRight: '5px' }}                    />                    <span>{this.item.schoolSubject}</span>                  </p>                )}                <p class={styles.courseInfo}>                  <span class={styles.classNum}>                    已上课程                    <i>{this.item.expTime}</i>节                  </span>                  <span class={styles.priceTime}>                    {this.item.subjectPrice > 0 && (                      <>                        <i>¥{this.item.subjectPrice}</i>/                      </>                    )}                    {this.item.courseMinutes}                    分钟                  </span>                </p>              </div>            </div>          )        }}      />    )  }})
 |