소스 검색

优化播放与图片显示

lex 2 년 전
부모
커밋
4c61642b43
3개의 변경된 파일22개의 추가작업 그리고 4개의 파일을 삭제
  1. 1 1
      src/school/orchestra/orchestra-information.tsx
  2. 9 1
      src/views/unit-test/examination-mode/index.tsx
  3. 12 2
      src/views/unit-test/practice-mode/index.tsx

+ 1 - 1
src/school/orchestra/orchestra-information.tsx

@@ -172,7 +172,7 @@ export default defineComponent({
               {state.list.map((item: any, index: number) => (
                 <Cell center class={styles.cell} onClick={() => onDetail(item)}>
                   {{
-                    icon: () => <Image src={item.coverImage} class={styles.img} />,
+                    icon: () => <Image src={item.coverImage} class={styles.img} fit="cover" />,
                     title: () => (
                       <div>
                         <div class={[styles.title, 'van-ellipsis']}>{item.title}</div>

+ 9 - 1
src/views/unit-test/examination-mode/index.tsx

@@ -11,7 +11,7 @@ import {
   SwipeItem,
   Tag
 } from 'vant'
-import { defineComponent, nextTick, onMounted, reactive, ref } from 'vue'
+import { defineComponent, nextTick, onMounted, onUnmounted, reactive, ref } from 'vue'
 import { useRoute, useRouter } from 'vue-router'
 import styles from './index.module.less'
 import iconQuestionNums from '../images/icon-question-nums.png'
@@ -92,6 +92,7 @@ export default defineComponent({
       const minu = dayjs(startTime).add(timeMinutes, 'minute').diff(dayjs(nowTime))
       // 时间到了考试结束
       if (minu <= 0) {
+        eventUnit.emit('unitAudioStop')
         await onConfirmExam()
         state.visiableExam = true
       } else {
@@ -173,6 +174,7 @@ export default defineComponent({
         // 判断是否是最后一题
         // console.log(state.questionList.length, state.currentIndex, userAnswerList, '-----')
         if (state.questionList.length === state.currentIndex + 1) {
+          eventUnit.emit('unitAudioStop')
           state.visiableSure = true
           return
         }
@@ -253,6 +255,7 @@ export default defineComponent({
       //   router.back()
       // })
       state.quitStatus = true
+      eventUnit.emit('unitAudioStop')
     }
 
     const onAfter = () => {
@@ -270,6 +273,10 @@ export default defineComponent({
       window.addEventListener('popstate', onBack, false)
     })
 
+    onUnmounted(() => {
+      eventUnit.emit('unitAudioStop')
+    })
+
     return () => (
       <div class={styles.unitDetail}>
         <Cell center class={styles.unitSection} border={false}>
@@ -294,6 +301,7 @@ export default defineComponent({
                     format={'mm:ss'}
                     autoStart={false}
                     onFinish={async () => {
+                      eventUnit.emit('unitAudioStop')
                       await onConfirmExam()
                       state.visiableExam = true
                     }}

+ 12 - 2
src/views/unit-test/practice-mode/index.tsx

@@ -13,7 +13,7 @@ import {
   SwipeItem,
   Tag
 } from 'vant'
-import { computed, defineComponent, nextTick, onMounted, reactive, ref } from 'vue'
+import { computed, defineComponent, nextTick, onMounted, onUnmounted, reactive, ref } from 'vue'
 import { useRoute, useRouter } from 'vue-router'
 import styles from './index.module.less'
 import iconButtonList from '../images/icon-button-list.png'
@@ -150,6 +150,7 @@ export default defineComponent({
 
         // 判断是否是最后一题
         if (state.questionList.length === state.currentIndex + 1) {
+          eventUnit.emit('unitAudioStop')
           state.visiableSure = true
           return
         }
@@ -309,6 +310,7 @@ export default defineComponent({
       //   onAfter()
       // })
       state.quitStatus = true
+      eventUnit.emit('unitAudioStop')
     }
 
     const onAfter = () => {
@@ -325,6 +327,11 @@ export default defineComponent({
       window.history.pushState(null, '', document.URL)
       window.addEventListener('popstate', onBack, false)
     })
+
+    onUnmounted(() => {
+      // 关闭所有音频
+      eventUnit.emit('unitAudioStop')
+    })
     return () => (
       <div class={styles.unitDetail}>
         <OSticky position="top">
@@ -333,7 +340,10 @@ export default defineComponent({
               right: () => (
                 <span
                   style="color: var(--van-primary-color)"
-                  onClick={() => (state.visiableSure = true)}
+                  onClick={() => {
+                    eventUnit.emit('unitAudioStop')
+                    state.visiableSure = true
+                  }}
                 >
                   结束练习
                 </span>