|
@@ -31,7 +31,8 @@ export default defineComponent({
|
|
|
title: subjectName + '曲目评测',
|
|
|
behaviorId: getRandomKey(),
|
|
|
musicList: [] as any,
|
|
|
- rankingScore: 0
|
|
|
+ rankingScore: 0,
|
|
|
+ hiddenProperty: null as any
|
|
|
}
|
|
|
},
|
|
|
async mounted() {
|
|
@@ -48,8 +49,39 @@ export default defineComponent({
|
|
|
}
|
|
|
})
|
|
|
await this.getMusicInfo()
|
|
|
+
|
|
|
+ this.hiddenProperty =
|
|
|
+ 'hidden' in document
|
|
|
+ ? 'hidden'
|
|
|
+ : 'webkitHidden' in document
|
|
|
+ ? 'webkitHidden'
|
|
|
+ : 'mozHidden' in document
|
|
|
+ ? 'mozHidden'
|
|
|
+ : null
|
|
|
+ const visibilityChangeEvent = this.hiddenProperty.replace(
|
|
|
+ /hidden/i,
|
|
|
+ 'visibilitychange'
|
|
|
+ )
|
|
|
+ document.addEventListener(visibilityChangeEvent, this.onVisibilityChange)
|
|
|
+ },
|
|
|
+ unmounted() {
|
|
|
+ if (this.hiddenProperty) {
|
|
|
+ const visibilityChangeEvent = this.hiddenProperty.replace(
|
|
|
+ /hidden/i,
|
|
|
+ 'visibilitychange'
|
|
|
+ )
|
|
|
+ document.removeEventListener(
|
|
|
+ visibilityChangeEvent,
|
|
|
+ this.onVisibilityChange
|
|
|
+ )
|
|
|
+ }
|
|
|
},
|
|
|
methods: {
|
|
|
+ onVisibilityChange() {
|
|
|
+ if (!document[this.hiddenProperty]) {
|
|
|
+ this.getMusicInfo()
|
|
|
+ }
|
|
|
+ },
|
|
|
async getMusicInfo() {
|
|
|
try {
|
|
|
const { data } = await request.post(
|
|
@@ -161,7 +193,7 @@ export default defineComponent({
|
|
|
<div class={styles.musicName}>{item.musicSheetName}</div>
|
|
|
),
|
|
|
label: () =>
|
|
|
- item.userId ? (
|
|
|
+ item.score ? (
|
|
|
<div class={[styles.labelClass, styles.labelScore]}>
|
|
|
我的评分:{item.score}
|
|
|
</div>
|