|
@@ -35,17 +35,27 @@ export default defineComponent({
|
|
|
const router = useRouter()
|
|
|
const state = reactive({
|
|
|
tabIndex: 0,
|
|
|
- musicList: [] as IMusicItem[]
|
|
|
+ musicList: [] as IMusicItem[],
|
|
|
+ rankingMethod: ''
|
|
|
})
|
|
|
const getMusicList = async () => {
|
|
|
try {
|
|
|
const {
|
|
|
- data: { activityMusicVoList, shareUrl, subjectUrl }
|
|
|
+ data: {
|
|
|
+ rankingMethod,
|
|
|
+ subjectInfos,
|
|
|
+ activityMusicVoList,
|
|
|
+ shareUrl,
|
|
|
+ subjectUrl
|
|
|
+ }
|
|
|
} = await request.post(
|
|
|
`/api-student/open/activity/info/${route.query.id}`
|
|
|
)
|
|
|
- if (Array.isArray(activityMusicVoList)) {
|
|
|
- state.musicList = activityMusicVoList.map(n => {
|
|
|
+ state.rankingMethod = rankingMethod
|
|
|
+ const activityList =
|
|
|
+ rankingMethod === 'TOTAL_SCORE' ? subjectInfos : activityMusicVoList
|
|
|
+ if (Array.isArray(activityList)) {
|
|
|
+ state.musicList = activityList.map(n => {
|
|
|
n.rankingList = []
|
|
|
return n
|
|
|
})
|
|
@@ -61,7 +71,9 @@ export default defineComponent({
|
|
|
params: {
|
|
|
activityPlanId: route.query.id,
|
|
|
activityEvaluationId:
|
|
|
- state.musicList[state.tabIndex].evaluationId,
|
|
|
+ state.rankingMethod === 'TOTAL_SCORE'
|
|
|
+ ? state.musicList[state.tabIndex].subjectId
|
|
|
+ : state.musicList[state.tabIndex].evaluationId,
|
|
|
limit: 10
|
|
|
}
|
|
|
}
|
|
@@ -118,10 +130,17 @@ export default defineComponent({
|
|
|
titleInactiveColor="rgba(153,152,155,1)"
|
|
|
titleActiveColor="#fff"
|
|
|
onChange={index => getData()}
|
|
|
+ shrink
|
|
|
>
|
|
|
{state.musicList.map((item: IMusicItem) => {
|
|
|
return (
|
|
|
- <Tab title={item.musicSheetName}>
|
|
|
+ <Tab
|
|
|
+ title={
|
|
|
+ state.rankingMethod === 'TOTAL_SCORE'
|
|
|
+ ? item.subjectName
|
|
|
+ : item.musicSheetName
|
|
|
+ }
|
|
|
+ >
|
|
|
<div
|
|
|
class={[styles.tabContent, 'van-safe-area-bottom']}
|
|
|
style={{ height: `calc(100vh - ${imgHeight.value}px)` }}
|
|
@@ -166,9 +185,11 @@ export default defineComponent({
|
|
|
</div>
|
|
|
<div class={styles.right}>
|
|
|
<div class={styles.fraction}>{n.score}分</div>
|
|
|
- <div class={styles.time}>
|
|
|
- 第 {n.times} 次评测
|
|
|
- </div>
|
|
|
+ {state.rankingMethod !== 'TOTAL_SCORE' && (
|
|
|
+ <div class={styles.time}>
|
|
|
+ 第 {n.times} 次评测
|
|
|
+ </div>
|
|
|
+ )}
|
|
|
</div>
|
|
|
</div>
|
|
|
)
|