Browse Source

Merge branch 'iteration-20240407-bug--fix' into jenkins-main

lex-xin 7 months ago
parent
commit
44925d1f77

+ 3 - 3
src/views/coursewarePlay/component/video-play.tsx

@@ -379,7 +379,7 @@ export default defineComponent({
           ></video>
           <div class={styles.videoSection}></div>
         </div>
-        
+
 
         <div
           class={[styles.controls, data.showBar ? '' : styles.hide]}
@@ -391,7 +391,7 @@ export default defineComponent({
           //   emit('close')
           // }}
         >
-          
+
           <div class={styles.slider}>
             <div class={styles.time}>
               <div>{getSecondRPM(data.currentTime)}</div>/<div>{getSecondRPM(data.duration)}</div>
@@ -438,7 +438,7 @@ export default defineComponent({
           </div>
         </div>
 
-        
+
 
         <div
           style={{

+ 43 - 21
src/views/exercise-after-class/index.tsx

@@ -100,14 +100,14 @@ export default defineComponent({
       timer: null as any,
       item: null as any
     })
-    const onTitleTip = (type: "phaseGoals" | "checkItem", text: string) => {
+    const onTitleTip = (type: 'phaseGoals' | 'checkItem', text: string) => {
       console.log(type, text, 'text')
       handleStopVideo()
       popupData.pointOpen = true
       popupData.pointContent = text
-      if(type === "checkItem") {
+      if (type === 'checkItem') {
         popupData.pointTitle = '检查事项'
-      } else if(type === "phaseGoals") {
+      } else if (type === 'phaseGoals') {
         popupData.pointTitle = '阶段目标'
       }
     }
@@ -174,10 +174,21 @@ export default defineComponent({
             autoplay: state.user.data?.vipMember ? true : false //自动播放
           }
         })
-        
-        data.itemList = data.trainings.filter((n: any) => n.materialId == route.query.materialId)
-        data.videoData = data.itemList[0]
-        console.log(data.trainings, 'trainings', data.itemList)
+        const tempTrainList =
+          data.trainings.filter((n: any) => n.materialId == route.query.materialId) || []
+        tempTrainList.forEach((item: any) => {
+          if (
+            item.trainingTimes != 0 &&
+            item.trainingContent.practiceTimes === item.trainingTimes + ''
+          ) {
+            item.autoplay = false
+          }
+        })
+
+        data.itemList = tempTrainList
+
+        data.videoData = tempTrainList[0]
+
         handleExerciseCompleted()
       }
     }
@@ -200,7 +211,6 @@ export default defineComponent({
       setRecord(trainings)
       handleCheckVip()
 
-      console.log(activeData.model, data.itemList, 'itemList')
     })
     // 返回
     const goback = () => {
@@ -210,8 +220,8 @@ export default defineComponent({
     const swipeRef = ref()
     const popupData = reactive({
       pointOpen: false,
-      pointContent: "", 
-      pointTitle: "",
+      pointContent: '',
+      pointTitle: '',
       firstIndex: 0,
       open: false,
       activeIndex: -1,
@@ -406,7 +416,7 @@ export default defineComponent({
             touchable={false}
             duration={0}
           >
-            {data.itemList.map((m: any, mIndex: number) => {
+            {data.itemList.map((m: any) => {
               return (
                 <SwipeItem>
                   <>
@@ -433,14 +443,20 @@ export default defineComponent({
             {activeData.model && (
               <div class={styles.headerContainer} ref={headeRef}>
                 <div class={styles.backBtn}>
-                  <Icon name={iconBack}  onClick={() => goback()} />
+                  <Icon name={iconBack} onClick={() => goback()} />
                   <div class={styles.titleSection}>
                     <div class={styles.title}>{popupData.tabName}</div>
-                      <div class={styles.titleContent}>
-                        <p>{data.itemList[0]?.materialName}</p>
-                        {/* {data.detail?.lessonTargetDesc ? <span onClick={() => onTitleTip('phaseGoals', data.detail?.lessonTargetDesc)}>阶段目标</span>: ""} */}
-                        {data.itemList[0]?.checkItem ? <span onClick={() => onTitleTip('checkItem', data.itemList[0]?.checkItem)}>检查事项</span> : ""}
-                      </div>
+                    <div class={styles.titleContent}>
+                      <p>{data.itemList[0]?.materialName}</p>
+                      {/* {data.detail?.lessonTargetDesc ? <span onClick={() => onTitleTip('phaseGoals', data.detail?.lessonTargetDesc)}>阶段目标</span>: ""} */}
+                      {data.itemList[0]?.checkItem ? (
+                        <span onClick={() => onTitleTip('checkItem', data.itemList[0]?.checkItem)}>
+                          检查事项
+                        </span>
+                      ) : (
+                        ''
+                      )}
+                    </div>
                   </div>
                 </div>
                 {/* 判断作业是否过期 */}
@@ -488,10 +504,16 @@ export default defineComponent({
           class={[styles.popup, styles.popupPoint]}
           round
           style={{ background: 'transparent !important' }}
-          v-model:show={popupData.pointOpen}>
-          <CoursewareTips show onClose={() => {
-            popupData.pointOpen = false
-          }} content={popupData.pointContent} titleName={popupData.pointTitle} />
+          v-model:show={popupData.pointOpen}
+        >
+          <CoursewareTips
+            show
+            onClose={() => {
+              popupData.pointOpen = false
+            }}
+            content={popupData.pointContent}
+            titleName={popupData.pointTitle}
+          />
         </Popup>
       </div>
     )

+ 19 - 15
src/views/exercise-after-class/video-class.tsx

@@ -3,11 +3,11 @@ import styles from './index.module.less'
 import { Slider } from 'vant'
 import iconplay from '../coursewarePlay/image/icon-play.svg'
 import iconpause from '../coursewarePlay/image/icon-pause.svg'
-import iconVideobg from '../coursewarePlay/image/icon-videobg.png'
+// import iconVideobg from '../coursewarePlay/image/icon-videobg.png'
 import { getSecondRPM } from '@/helpers/utils'
 import TCPlayer from 'tcplayer.js'
 import 'tcplayer.js/dist/tcplayer.min.css'
-import useErrorLog from '@/hooks/useErrorLog';
+import useErrorLog from '@/hooks/useErrorLog'
 export default defineComponent({
   name: 'video-class',
   props: {
@@ -24,7 +24,7 @@ export default defineComponent({
   },
   emits: ['loadedmetadata', 'togglePlay', 'ended', 'reset', 'error', 'close', 'changeModal'],
   setup(props, { emit }) {
-    const errorLog = useErrorLog();
+    const errorLog = useErrorLog()
     const { item, modal } = toRefs(props)
     const videoItem = ref()
     const videoID = 'video' + Date.now() + Math.floor(Math.random() * 100)
@@ -58,17 +58,12 @@ export default defineComponent({
           item.value.videoEle = videoEle
           item.value.loaded = true
           emit('loadedmetadata', videoItem.value)
-
+          item.value.muted = false
+          videoItem.value?.muted(false)
+          videoItem.value?.volume(1)
           if (item.value.autoplay && videoItem.value) {
-            item.value.muted = false
-            videoItem.value?.muted(false)
-            videoItem.value?.volume(1)
-            // videoItem.value?.pause()
             videoItem.value?.play()
           } else {
-            item.value.muted = false
-            videoItem.value?.muted(false)
-            videoItem.value?.volume(1)
             videoItem.value?.pause()
           }
         })
@@ -109,7 +104,7 @@ export default defineComponent({
         })
 
         // 视频播放异常
-        videoItem.value.on('error', (e:any) => {
+        videoItem.value.on('error', (e: any) => {
           emit('error')
           errorLog._uploadErrorLog(e)
         })
@@ -145,11 +140,20 @@ export default defineComponent({
       __init()
     })
 
+    // watch(
+    //   () => props.item,
+    //   () => {
+    //     // item.value.videoEle?.pause()
+    //     // __init()
+    //   }
+    // )
     watch(
       () => props.item,
       () => {
-        // item.value.videoEle?.pause()
-        __init()
+        videoItem.value?.currentTime(0)
+        setTimeout(() => {
+          __init()
+        }, 60)
       }
     )
     return () => (
@@ -169,7 +173,7 @@ export default defineComponent({
               playsinline="false"
               preload="auto"
               class="player"
-              poster={iconVideobg}
+              // poster={iconVideobg}
               data-vid={item.value.id}
               src={item.value.content}
             >

+ 17 - 9
src/views/exercise-record/index.tsx

@@ -197,6 +197,15 @@ export default defineComponent({
       getList()
     }
 
+    const dropDownTop = () => {
+      nextTick(() => {
+        console.log(document.querySelectorAll('.van-dropdown-item--down')[0])
+        ;(
+          document.querySelectorAll('.van-dropdown-item--down')[0] as any
+        ).style.top = `calc(var(--van-nav-bar-height) + ${globalState.navBarHeight || 0}px`
+      })
+    }
+
     return () => (
       <div class={[!state.listState.dataShow ? 'emptyRootContainer' : '', styles.exerciseRecord]}>
         <OSticky
@@ -237,20 +246,20 @@ export default defineComponent({
                       )}
 
                       <div class={styles.searchTitle}>时间段</div>
-                      <div class={[styles.searchTypeGroup, styles.searchTypeFlex2]}>
+                      <div class={[styles.searchTypeGroup, styles.searchTypeFlex2]} onClick={() => {
+                        state.showPopoverTime = true
+                        dropDownTop()
+                      }}>
                         <div
                           class={styles.searchTypeItem}
-                          onClick={() => (state.showPopoverTime = true)}
                         >
                           {forms.startTime}
                         </div>
                         <div
                           class={styles.searchTypeItemLine}
-                          onClick={() => (state.showPopoverTime = true)}
                         ></div>
                         <div
                           class={styles.searchTypeItem}
-                          onClick={() => (state.showPopoverTime = true)}
                         >
                           {forms.endTime}
                         </div>
@@ -327,11 +336,7 @@ export default defineComponent({
                 onClick={() => {
                   // console.log(dropdownItemRef.value, dropdownMenuRef.value)
                   dropdownItemRef.value?.toggle()
-                  nextTick(() => {
-                    ;(
-                      document.querySelectorAll('.van-dropdown-item--down')[0] as any
-                    ).style.top = `calc(var(--van-nav-bar-height) + ${globalState.navBarHeight}px`
-                  })
+                  dropDownTop()
                 }}
               >
                 {forms.startTime}~{forms.endTime}
@@ -417,6 +422,9 @@ export default defineComponent({
 
         <Calendar
           v-model:show={state.showPopoverTime}
+          onUpdate:show={() => {
+            dropDownTop()
+          }}
           firstDayOfWeek={1}
           showConfirm={false}
           type="range"

+ 2 - 1
src/views/unit-test/unit-create/uni-test.module.less

@@ -16,6 +16,7 @@
     border-radius: 4px 8px 8px 4px;
     box-shadow: 0px 2px 6px 0px rgba(221, 168, 133, 0.67);
     overflow: hidden;
+    flex-shrink: 0;
 
     :global {
       .van-image__loading {
@@ -158,4 +159,4 @@
     height: 100%;
     display: block;
   }
-}
+}