Browse Source

修改mp3播放

lex 2 years ago
parent
commit
62cf795f68

+ 4 - 4
public/project/initiation.html

@@ -339,7 +339,7 @@
           checkPhone: true,
           showPopup: false,
           code: '',
-          canSignUp: true,
+          canSignUp: '',
         }
       },
       async mounted() {
@@ -384,9 +384,9 @@
           if (orchestraDetail.data.code === 200 && orchestraDetail.data.data) {
             this.orchestraName = orchestraDetail.data.data.name || ''
 
-            if (!orchestraDetail.data.data.canSignUp) {
+            if (orchestraDetail.data.data.status !== 'INITIATION_SURVEY') {
               vant.showToast('乐团启蒙阶段已结束')
-              this.canSignUp = orchestraDetail.data.data.canSignUp
+              this.canSignUp = orchestraDetail.data.data.status
               return
             }
           }
@@ -479,7 +479,7 @@
           }
         },
         async onSubmit() {
-          if (!this.canSignUp) {
+          if (this.canSignUp !== 'INITIATION_SURVEY') {
             vant.showToast('乐团启蒙阶段已结束')
             return
           }

+ 4 - 4
public/project/preRegister.html

@@ -356,7 +356,7 @@
           checkPhone: true,
           showPopup: false,
           code: '',
-          canSignUp: true
+          canSignUp: ''
         }
       },
       async mounted() {
@@ -400,9 +400,9 @@
           var orchestraDetail = await axios.get('/api-student/open/orchestra/detail/' + this.orchestraId)
           if (orchestraDetail.data.code === 200) {
             this.orchestraName = orchestraDetail.data.data.name || ''
-            if (!orchestraDetail.data.data.canSignUp) {
+            if (orchestraDetail.data.data.status !== 'PRE_REGISTER') {
               vant.showToast('乐团预报名阶段已结束')
-              this.canSignUp = orchestraDetail.data.data.canSignUp
+              this.canSignUp = orchestraDetail.data.data.status
               return
             }
           }
@@ -533,7 +533,7 @@
           }
         },
         async onSubmit() {
-          if (!this.canSignUp) {
+          if (this.canSignUp !== 'PRE_REGISTER') {
             vant.showToast('乐团预报名阶段已结束')
             return
           }

+ 4 - 2
src/views/unit-test/examination-mode/index.tsx

@@ -27,7 +27,7 @@ import PlayQuestion from '../model/play-question'
 import request from '@/helpers/request'
 import dayjs from 'dayjs'
 import ResultFinish from '../model/result-finish'
-import { QuestionType } from '../unit'
+import { eventUnit, QuestionType } from '../unit'
 import { useRect } from '@vant/use'
 
 export default defineComponent({
@@ -288,6 +288,7 @@ export default defineComponent({
           style={{ marginBottom: '12px' }}
           lazyRender
           onChange={(index: number) => {
+            eventUnit.emit('unitAudioStop')
             state.currentIndex = index
             resizeSwipeItemHeight()
           }}
@@ -429,7 +430,8 @@ export default defineComponent({
           v-model:show={state.visiableExam}
           message="考试已结束"
           messageAlign="center"
-          onConfirm={() => {
+          onConfirm={async () => {
+            await onConfirmExam()
             state.visiableResult = true
           }}
         />

+ 11 - 1
src/views/unit-test/model/anser-title/index.tsx

@@ -3,6 +3,7 @@ import { computed, defineComponent } from 'vue'
 import { QuestionType, QuestionTypeName } from '../../unit'
 import styles from './index.module.less'
 import iconPassCheck from '../../images/icon-pass-check.png'
+import UnitAudio from '../unit-audio'
 
 export default defineComponent({
   name: 'answer-title',
@@ -69,7 +70,16 @@ export default defineComponent({
             <div v-html={props.extra.questionDetail}></div>
             {mediaUrls.value &&
               mediaUrls.value.map(
-                (url: any) => url && <Image class={styles.unitTitleImg} src={url} />
+                (url: any) =>
+                  url && (
+                    <>
+                      {url.substr(-3) === 'mp3' ? (
+                        <UnitAudio src={url} class={styles.valueAudio} />
+                      ) : (
+                        <Image class={styles.unitTitleImg} src={url} />
+                      )}
+                    </>
+                  )
               )}
           </div>
         ) : (

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

@@ -27,7 +27,7 @@ import KeepLookQuestion from '../model/keep-look-question'
 import PlayQuestion from '../model/play-question'
 import ErrorMode from '../model/error-mode'
 import ResultFinish from '../model/result-finish'
-import { QuestionType } from '../unit'
+import { eventUnit, QuestionType } from '../unit'
 import request from '@/helpers/request'
 import { useRect } from '@vant/use'
 import OHeader from '@/components/o-header'
@@ -348,6 +348,7 @@ export default defineComponent({
           lazyRender
           height={state.swipeHeight}
           onChange={(index: number) => {
+            eventUnit.emit('unitAudioStop')
             state.currentIndex = index
             resizeSwipeItemHeight()
           }}

+ 3 - 3
src/views/unit-test/unit-create/modals/newspaper-item.tsx

@@ -24,21 +24,21 @@ export default defineComponent({
               <div class={styles.itemBottomDot}>
                 <p class={styles.dotMain}>
                   {props.item?.totalScore || 0}
-                  <span>分</span>
+                  {/* <span>分</span> */}
                 </p>
                 <p class={styles.dotSub}> 总分</p>
               </div>
               <div class={styles.itemBottomDot}>
                 <p class={styles.dotMain} style={{ color: '#F67146' }}>
                   {props.item?.passScore || 0}
-                  <span>分</span>
+                  {/* <span>分</span> */}
                 </p>
                 <p class={styles.dotSub}>合格分 </p>
               </div>
               <div class={styles.itemBottomDot}>
                 <p class={styles.dotMain}>
                   {props.item?.questionNum || 0}
-                  <span>分</span>{' '}
+                  {/* <span>分</span>{' '} */}
                 </p>
                 <p class={styles.dotSub}>题目数量 </p>
               </div>

+ 50 - 19
src/views/unit-test/unit-create/uni-last.tsx

@@ -31,7 +31,7 @@ export default defineComponent({
     const activeName = ref('one')
     // const catchList = store
     const forms = ref({} as any)
-    const data = reactive({
+    const datas = reactive({
       loading: true,
       list: [] as any,
       uniDetail: {} as any
@@ -63,29 +63,60 @@ export default defineComponent({
           state.platformApi + `/classGroup/detail/${forms.value.classGroupId}`
         )
         forms.value.preStudentNum = data.preStudentNum || 0
+      } catch (e) {
+        console.log(e)
+      }
+    }
+
+    // 获取详情
+    const getCourseLessonDetail = async () => {
+      try {
+        //   const query = route.query
+        // // api-teacher/lessonCoursewareExaminationMapper/detailByCourseId
+        // // 判断是从课程结束后,还是正常创建
+        const { data } = await request.post(
+          state.platformApi + `/lessonCoursewareExaminationMapper/detailByCourseId`,
+          {
+            requestType: 'form',
+            data: {
+              courseScheduleId: route.query.courseScheduleId
+            }
+          }
+        )
+
+        forms.value.classGroupId = route.query.courseScheduleId
+        forms.value.classGroupName = data.classGroupName
+        forms.value.testName = data.lessonCoursewareExaminationMapperName
         forms.value.orchestraName = data.orchestraName
-        forms.value.classGroupName = data.name
+        forms.value.coursewareName = data.LessonCoursewareName
+        forms.value.lessonCoursewareId = data.lessonCoursewareExaminationMapper.lessonCoursewareId
+        forms.value.preStudentNum = data.studentNum || 0
+
+        const details = data.lessonCoursewareExaminationMapper.details || []
+        details.forEach((item: any) => {
+          datas.uniDetail[item.level] = item
+        })
       } catch (e) {
         console.log(e)
       }
     }
+
     onMounted(() => {
       forms.value = { ...JSON.parse(sessionStorage.getItem('unit-create') || '{}') } as any
-      const query = route.query
-      if (query.classGroupId) {
-        forms.value.classGroupId = query.classGroupId
-      }
-      if (query.testId) {
-        forms.value.testId = query.testId
-      }
       console.log(forms.value)
-      if (!forms.value.classGroupId) {
-        showToast('请选择班级')
-        return
+      const query = route.query
+      // api-teacher/lessonCoursewareExaminationMapper/detailByCourseId
+      // 判断是从课程结束后,还是正常创建
+      if (query.courseScheduleId) {
+        getCourseLessonDetail()
+      } else {
+        if (!forms.value.classGroupId) {
+          showToast('请选择班级')
+          return
+        }
+        getClassDetail()
+        getStudentUni()
       }
-      getClassDetail()
-      // getList()
-      getStudentUni()
     })
     const getStudentUni = async () => {
       try {
@@ -99,7 +130,7 @@ export default defineComponent({
           }
         )
         res.data.details.forEach((item: any) => {
-          data.uniDetail[item.level] = item
+          datas.uniDetail[item.level] = item
         })
       } catch (e) {
         console.log(e)
@@ -182,13 +213,13 @@ export default defineComponent({
               shrink
             >
               <Tab name="one" title="I类学生">
-                <NewspaperItem item={data.uniDetail[1]}></NewspaperItem>
+                <NewspaperItem item={datas.uniDetail[1]}></NewspaperItem>
               </Tab>
               <Tab name="two" title="II类学生">
-                <NewspaperItem item={data.uniDetail[2]}></NewspaperItem>
+                <NewspaperItem item={datas.uniDetail[2]}></NewspaperItem>
               </Tab>
               <Tab name="three" title="III类学生">
-                <NewspaperItem item={data.uniDetail[3]}></NewspaperItem>
+                <NewspaperItem item={datas.uniDetail[3]}></NewspaperItem>
               </Tab>
             </Tabs>
           </div>

+ 2 - 1
src/views/unit-test/unit-detail/index.tsx

@@ -11,7 +11,7 @@ import DragQuestion from '../model/drag-question'
 import KeepLookQuestion from '../model/keep-look-question'
 import PlayQuestion from '../model/play-question'
 import request from '@/helpers/request'
-import { QuestionType } from '../unit'
+import { eventUnit, QuestionType } from '../unit'
 import { useRect } from '@vant/use'
 import { state as baseState } from '@/state'
 
@@ -226,6 +226,7 @@ export default defineComponent({
           style={{ paddingBottom: '12px' }}
           height={state.swipeHeight}
           onChange={(index: number) => {
+            eventUnit.emit('unitAudioStop')
             state.currentIndex = index
             // .swipe-item-question
             // const t = setInterval(() => {