|
@@ -33,7 +33,8 @@ export default defineComponent({
|
|
|
const state = reactive({
|
|
|
tabIndex: 0,
|
|
|
musicList: [] as IMusicItem[],
|
|
|
- isSignup: false // 是否报名
|
|
|
+ isSignup: false, // 是否报名
|
|
|
+ isChallenge: false, // 是否挑战过
|
|
|
})
|
|
|
const getMusicList = async () => {
|
|
|
try {
|
|
@@ -43,16 +44,15 @@ export default defineComponent({
|
|
|
if (Array.isArray(data.activityMusicVoList)) {
|
|
|
state.musicList = data.activityMusicVoList.map(n => {
|
|
|
n.rankingList = []
|
|
|
- n.loaded = false
|
|
|
return n
|
|
|
})
|
|
|
+ state.isChallenge = data.activityMusicVoList.filter(n => n.join).length ? true :false
|
|
|
}
|
|
|
img.value = data.subjectUrl
|
|
|
state.isSignup = data.join ? true : false
|
|
|
} catch (error) {}
|
|
|
}
|
|
|
const getData = async () => {
|
|
|
- if (state.musicList[state.tabIndex].loaded) return
|
|
|
try {
|
|
|
const { data } = await request.get(
|
|
|
'/api-student/open/activityEvaluationRecord/queryRankingList',
|
|
@@ -67,7 +67,6 @@ export default defineComponent({
|
|
|
)
|
|
|
if (Array.isArray(data.rankingList)) {
|
|
|
state.musicList[state.tabIndex].rankingList = data.rankingList
|
|
|
- state.musicList[state.tabIndex].loaded = true
|
|
|
}
|
|
|
} catch (error) {}
|
|
|
}
|
|
@@ -141,7 +140,12 @@ export default defineComponent({
|
|
|
return (
|
|
|
<Tab title={item.musicSheetName}>
|
|
|
<div
|
|
|
- class={styles.tabContent}
|
|
|
+ class={[
|
|
|
+ styles.tabContent,
|
|
|
+ state.isSignup && !user.value.join
|
|
|
+ ? null
|
|
|
+ : styles.hasUser
|
|
|
+ ]}
|
|
|
style={{ height: `calc(100vh - ${imgHeight.value}px)` }}
|
|
|
>
|
|
|
<div class={styles.itemContent}>
|
|
@@ -160,22 +164,25 @@ export default defineComponent({
|
|
|
</div>
|
|
|
<div class={styles.center}>
|
|
|
<Image
|
|
|
- width="34px"
|
|
|
- height="34px"
|
|
|
+ width="38px"
|
|
|
+ height="38px"
|
|
|
fit="cover"
|
|
|
round
|
|
|
src={n.userAvatar || IconAvator}
|
|
|
/>
|
|
|
<div class={styles.user}>
|
|
|
- <div class={styles.name}>{n.username}</div>
|
|
|
- <div class={styles.tag}>
|
|
|
- <span>{n.userSubject}</span>
|
|
|
+ <div class={styles.userContent}>
|
|
|
+ <span class={styles.name}>{n.username}</span>
|
|
|
+ <span class={styles.tag}>
|
|
|
+ {n.userSubject}
|
|
|
+ </span>
|
|
|
</div>
|
|
|
+ <div class={styles.times}>{n.joinDate}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class={styles.right}>
|
|
|
<div class={styles.fraction}>{n.score}分</div>
|
|
|
- <div class={styles.time}>{n.joinDate}</div>
|
|
|
+ <div class={styles.time}>第 {n.times} 次评测</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
)
|
|
@@ -212,6 +219,24 @@ export default defineComponent({
|
|
|
}}
|
|
|
/>
|
|
|
</div>
|
|
|
+ ) : !state.isChallenge ? (
|
|
|
+ <div class={[styles.activeUser, 'van-safe-area-bottom']}>
|
|
|
+ <Cell
|
|
|
+ center
|
|
|
+ title={user.value.username}
|
|
|
+ label="您尚未评测哦!"
|
|
|
+ v-slots={{
|
|
|
+ icon: () => (
|
|
|
+ <Image
|
|
|
+ class={styles.avator}
|
|
|
+ fit="cover"
|
|
|
+ round
|
|
|
+ src={user.value.heardUrl || IconAvator}
|
|
|
+ />
|
|
|
+ )
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ </div>
|
|
|
) : user.value.join ? (
|
|
|
<div class={[styles.activeUser, 'van-safe-area-bottom']}>
|
|
|
<Cell
|