|
@@ -4,7 +4,8 @@ import styles from './index.module.less'
|
|
|
|
|
|
// import iconUserNum from '@common/images/icon_user_num.png'
|
|
|
import defaultIcon from '@common/images/icon_teacher.png'
|
|
|
-import iconTimer from '@common/images/icon_timer2.png'
|
|
|
+import iconTimer from '@common/images/icon_timer4.png'
|
|
|
+import iconCourse from './images/icon-course.png'
|
|
|
// import IconXueli from '@common/images/icon-xueli.png'
|
|
|
// import IconJiaozi from '@common/images/icon-jiaozi.png'
|
|
|
// import item from '@/views/coupons/item'
|
|
@@ -16,12 +17,15 @@ import iconTimer from '@common/images/icon_timer2.png'
|
|
|
* @param {type} buyNum 购买用户数
|
|
|
* @param {type} payType 收费方式
|
|
|
* @param {type} type 课程类型
|
|
|
+ * @param {type} subjectName 科目名称
|
|
|
* @param {type} lessonPrice 价格
|
|
|
* @param {type} lessonCoverUrl 视频封面
|
|
|
* @param {type} lessonDesc 课程描述
|
|
|
* @param {type} lessonNum 课程数
|
|
|
* @param {type} lessonName 课程名称
|
|
|
* @param {type} relationType 赠送类型
|
|
|
+ * @param {type} completeCourseNum 已上课时
|
|
|
+ * @param {type} isShowCourse 是否显示课程
|
|
|
*/
|
|
|
interface UserType {
|
|
|
headUrl: string
|
|
@@ -31,6 +35,7 @@ interface UserType {
|
|
|
buyNum?: number
|
|
|
payType?: string
|
|
|
type?: string
|
|
|
+ subjectName?: string
|
|
|
lessonPrice: number
|
|
|
lessonNum?: number
|
|
|
lessonDesc?: string
|
|
@@ -39,6 +44,8 @@ interface UserType {
|
|
|
lessonName: string
|
|
|
auditVersion: number
|
|
|
relationType?: string
|
|
|
+ completeCourseNum?: number
|
|
|
+ isShowCourse?: boolean
|
|
|
}
|
|
|
|
|
|
export default defineComponent({
|
|
@@ -69,6 +76,7 @@ export default defineComponent({
|
|
|
render() {
|
|
|
return (
|
|
|
<div class={styles.userDetail}>
|
|
|
+ {this.userInfo.subjectName ? <span class={styles.subjectName}>{this.userInfo.subjectName}</span> : ""}
|
|
|
<Image
|
|
|
class={[styles.banner]}
|
|
|
src={this.userInfo.lessonCoverUrl}
|
|
@@ -78,24 +86,38 @@ export default defineComponent({
|
|
|
<Cell
|
|
|
title={this.userInfo.lessonName}
|
|
|
titleClass={styles.userTitle}
|
|
|
+ labelClass={styles.userLabel}
|
|
|
v-slots={{
|
|
|
label: () =>
|
|
|
this.userInfo.startTime && (
|
|
|
<span
|
|
|
- style={{
|
|
|
- display: 'flex',
|
|
|
- alignItems: 'center',
|
|
|
- fontSize: '13px',
|
|
|
- paddingTop: 'var(--van-cell-label-margin-top)'
|
|
|
- }}
|
|
|
+ class={styles.timers}
|
|
|
>
|
|
|
- <Icon
|
|
|
- name={iconTimer}
|
|
|
- size="16"
|
|
|
- style={{ marginRight: '5px' }}
|
|
|
- />
|
|
|
- 开课时间:
|
|
|
- {this.userInfo.startTime}
|
|
|
+ <div class={styles.timerSpan}>
|
|
|
+ <Icon
|
|
|
+ name={iconTimer}
|
|
|
+ size="16"
|
|
|
+ style={{ marginRight: '5px' }}
|
|
|
+ />
|
|
|
+ 开课时间:
|
|
|
+ {this.userInfo.startTime}
|
|
|
+ </div>
|
|
|
+
|
|
|
+ {this.showBuy && ['live', 'group'].includes(this.userInfo.type || '') && (
|
|
|
+ <div class={[styles.buyNum, styles.buyNumOther]}>
|
|
|
+ {this.userInfo.type === 'live' ? (
|
|
|
+ <span>
|
|
|
+ {this.userInfo.buyNum}人已
|
|
|
+ {this.userInfo.lessonPrice <= 0 &&
|
|
|
+ this.userInfo.auditVersion === 0
|
|
|
+ ? '领取'
|
|
|
+ : '购买'}
|
|
|
+ </span>
|
|
|
+ ) : this.userInfo.type === "group" ?
|
|
|
+ ((this.userInfo.mixStudentNum || 0 > 0) ? <>剩余{this.userInfo.mixStudentNum}个名额</> : '')
|
|
|
+ : ''}
|
|
|
+ </div>
|
|
|
+ )}
|
|
|
</span>
|
|
|
)
|
|
|
}}
|
|
@@ -113,23 +135,27 @@ export default defineComponent({
|
|
|
/>
|
|
|
),
|
|
|
title: () => (
|
|
|
- <div
|
|
|
- class={styles.name}
|
|
|
- onClick={() => {
|
|
|
- this.onUserDetail(this.userInfo)
|
|
|
- }}
|
|
|
- >
|
|
|
- <div class={styles.username}>
|
|
|
- {this.userInfo.username || `游客${this.userInfo.id || ''}`}
|
|
|
- {/* <div>
|
|
|
- {(this.userInfo as any).isDegree && (
|
|
|
- <img class={styles.iconTeacher} src={IconXueli} />
|
|
|
- )}
|
|
|
- {(this.userInfo as any).isTeacher && (
|
|
|
- <img class={styles.iconTeacher} src={IconJiaozi} />
|
|
|
- )}
|
|
|
- </div> */}
|
|
|
+ <div>
|
|
|
+ <div
|
|
|
+ class={styles.name}
|
|
|
+ onClick={() => {
|
|
|
+ this.onUserDetail(this.userInfo)
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ <div class={styles.username}>
|
|
|
+ {this.userInfo.username || `游客${this.userInfo.id || ''}`}
|
|
|
+ </div>
|
|
|
+ {this.showBuy && this.userInfo.type === 'video' && (
|
|
|
+ <div class={[styles.buyNum, styles.buyNumVideo]}>
|
|
|
+ {this.userInfo.buyNum}人学习
|
|
|
+ </div>
|
|
|
+ )}
|
|
|
</div>
|
|
|
+ {this.userInfo.isShowCourse ? <div class={styles.classInfo}>
|
|
|
+ <img src={iconCourse} class={styles.iconCourse} />
|
|
|
+ 已上课时<span>{this.userInfo.completeCourseNum || 0}</span>/总课时 <span>{this.userInfo.lessonNum || 0}</span>
|
|
|
+ </div> : ''}
|
|
|
+
|
|
|
</div>
|
|
|
),
|
|
|
value: () => (
|
|
@@ -140,7 +166,7 @@ export default defineComponent({
|
|
|
) : (
|
|
|
<>
|
|
|
{this.userInfo.lessonPrice > 0 && (
|
|
|
- <>¥{this.userInfo.lessonPrice}</>
|
|
|
+ <span class={styles.prices}><span class={styles.fix}>¥</span>{this.userInfo.lessonPrice}</span>
|
|
|
)}
|
|
|
{this.userInfo.lessonPrice <= 0 &&
|
|
|
this.userInfo.auditVersion !== 0 && <>¥{0}</>}
|
|
@@ -151,27 +177,10 @@ export default defineComponent({
|
|
|
</>
|
|
|
)}
|
|
|
<span
|
|
|
- style={{ color: '#999', fontSize: '14px', fontWeight: 400 }}
|
|
|
+ class={styles.classNum}
|
|
|
>
|
|
|
/{this.userInfo.lessonNum}课时
|
|
|
</span>
|
|
|
- {this.showBuy && (
|
|
|
- <div class={styles.buyNum}>
|
|
|
- {this.userInfo.type === 'live' ? (
|
|
|
- <>
|
|
|
- {this.userInfo.buyNum}人已
|
|
|
- {this.userInfo.lessonPrice <= 0 &&
|
|
|
- this.userInfo.auditVersion === 0
|
|
|
- ? '领取'
|
|
|
- : '购买'}
|
|
|
- </>
|
|
|
- ) : this.userInfo.type === "group" ?
|
|
|
- ((this.userInfo.mixStudentNum || 0 > 0) ? <>剩余{this.userInfo.mixStudentNum}个名额</> : '')
|
|
|
- : (
|
|
|
- <>{this.userInfo.buyNum}人学习</>
|
|
|
- )}
|
|
|
- </div>
|
|
|
- )}
|
|
|
</div>
|
|
|
)
|
|
|
}}
|