소스 검색

Merge branch 'feature-2025-1-10' into online

TIANYONG 4 달 전
부모
커밋
532f4efba6

+ 7 - 7
src/views/fill-questionnaire/index.tsx

@@ -262,16 +262,16 @@ export default defineComponent({
         const { data } = await request.get(
           '/edu-app/open/schoolMeetingQuestion/detail?openId=' + forms.openId
         );
-        // console.log(12222,data)
+        console.log(12222,data)
         forms.provinceCode = data.provinceCode
         forms.cityCode = data.cityCode
         forms.districtCode = data.districtCode
         const primarySchool = ['一年级','二年级','三年级','四年级','五年级','六年级',], juniorSchool = ['六年级','七年级','八年级','九年级'];
-        if (primarySchool.includes(forms.currentGrade) && (route.query.meetingType === 'primarySchoolNo' || route.query.meetingType === 'primarySchoolYes')) {
+        if (primarySchool.includes(data.currentGrade) && (route.query.meetingType === 'primarySchoolNo' || route.query.meetingType === 'primarySchoolYes')) {
           forms.currentClass = data.currentClass
           forms.currentGrade = data.currentGrade
         }
-        if (juniorSchool.includes(forms.currentGrade) && (route.query.meetingType === 'juniorSchoolNo' || route.query.meetingType === 'juniorSchool')) {
+        if (juniorSchool.includes(data.currentGrade) && (route.query.meetingType === 'juniorSchoolNo' || route.query.meetingType === 'juniorSchool')) {
           forms.currentClass = data.currentClass
           forms.currentGrade = data.currentGrade
         }
@@ -282,7 +282,7 @@ export default defineComponent({
         forms.schoolName = data.schoolName
         forms.supportFlag = data.supportFlag
         forms.participationFlag = data.participationFlag
-        forms.areaName = data.provinceName + ' ' + data.cityName + ' ' + data.districtName
+        forms.areaName = data.provinceName + ' ' + data.cityName + ' ' + (data.districtName || '')
         const gradeIdx = gradeList.find(item => item.text === data.currentGrade)?.value || 1
         // @ts-ignore
         const classIdx = classList.find(item => item.text === data.currentClass)?.value || 1
@@ -551,7 +551,7 @@ export default defineComponent({
           <div class={styles.formItem}>
             <p>1. 学校</p>
             {
-              forms.areaName || forms.schoolName ?
+              forms.schoolName ?
               <div class={[styles.valDone, forms.schoolName && styles.valDone2, forms.schoolStatus && styles.openVal]} onClick={() => forms.schoolStatus = true}>
                 {forms.schoolName && <span class={styles.vdSchool}>{forms.schoolName}</span>}
                 <span class={styles.vdArea}>{forms.areaName}</span>
@@ -669,7 +669,7 @@ export default defineComponent({
         </div>
 
         {/* 是否在微信中打开 */}
-        <OWxTip />
+        {/* <OWxTip /> */}
 
         {forms.imgCodeStatus ? (
           <MImgCode
@@ -713,7 +713,7 @@ export default defineComponent({
             onConfirm={({ selectedOptions }) => {
               forms.provinceCode = selectedOptions[0].value;
               forms.cityCode = selectedOptions[1].value;
-              forms.districtCode = selectedOptions[2]?.value;
+              forms.districtCode = selectedOptions[2]?.value || null;
 
               forms.areaName = selectedOptions
                 .map((item: any) => item?.text)

+ 1 - 1
src/views/intention-questionnaire/index.tsx

@@ -225,7 +225,7 @@ export default defineComponent({
         </div>
 
         {/* 是否在微信中打开 */}
-        <OWxTip />
+        {/* <OWxTip /> */}
 
 
         <div class={styles.bottomBtn}>

+ 128 - 121
src/views/intention-questionnaire/initVideo.ts

@@ -2,136 +2,143 @@ import TCPlayer from 'tcplayer.js';
 import 'tcplayer.js/dist/tcplayer.css';
 
 export const _initVideo = (type: string, forms: any, videoRef: any) => {
-    let player = type === 'one' ? forms.player1 : forms.player2;
-    // _initVideo('one', forms, forms.player1, videoIntervalRef, forms.introductionVideo, forms.coverImg, forms.player1Speed, forms.videoLoading1)
-    const videoUrl = type === 'one' ? forms.introductionVideo : forms.introductionVideo2;
-    const coverImg = type === 'one' ? forms.coverImg : forms.coverImg2;
-    let playerSpeed = type === 'one' ? forms.playerSpeed1 : forms.playerSpeed2;
-    let videoLoading = type === 'one' ? forms.videoLoading1 : forms.videoLoading2;
-    const videoId = type === 'one' ? 'register-video' : 'register-video2'
-    const Button = TCPlayer.getComponent('Button');
-    const BigPlayButton = TCPlayer.getComponent('BigPlayButton');
-    BigPlayButton.prototype.createEl = function () {
-      const el = Button.prototype.createEl.call(this);
-      const _html =
-        '<button><svg width="50px" height="50px" viewBox="0 0 50 50" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="播放/播放" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><circle id="椭圆形" stroke="#FFFFFF" stroke-width="1.20385619" fill-opacity="0.3" fill="#000000" stroke-linecap="square" cx="25" cy="25" r="24.4114519"></circle><g id="视频/暂停" transform="translate(17.2619, 13.0952)" fill="#FFFFFF"><path d="M12.1943373,5.31370674 L19.8894148,18.3953385 C20.5636212,19.5414893 20.1810346,21.0171804 19.0348838,21.6913868 C18.6648746,21.9090393 18.2434029,22.0238095 17.8141251,22.0238095 L2.42397011,22.0238095 C1.09422728,22.0238095 0.0162577307,20.94584 0.0162577307,19.6160971 C0.0162577307,19.1868194 0.131027981,18.7653477 0.34868043,18.3953385 L8.04375794,5.31370674 C8.71796432,4.1675559 10.1936554,3.78496932 11.3398063,4.4591757 C11.6926653,4.66673986 11.9867731,4.96084767 12.1943373,5.31370674 Z" id="三角形" transform="translate(10.119, 11.9048) rotate(-270) translate(-10.119, -11.9048)"></path></g></g></svg></button>';
+  let player = type === 'one' ? forms.player1 : forms.player2;
+  // _initVideo('one', forms, forms.player1, videoIntervalRef, forms.introductionVideo, forms.coverImg, forms.player1Speed, forms.videoLoading1)
+  const videoUrl =
+    type === 'one' ? forms.introductionVideo : forms.introductionVideo2;
+  const coverImg = type === 'one' ? forms.coverImg : forms.coverImg2;
+  let playerSpeed = type === 'one' ? forms.playerSpeed1 : forms.playerSpeed2;
+  let videoLoading = type === 'one' ? forms.videoLoading1 : forms.videoLoading2;
+  const videoId = type === 'one' ? 'register-video' : 'register-video2';
+  const Button = TCPlayer.getComponent('Button');
+  const BigPlayButton = TCPlayer.getComponent('BigPlayButton');
+  BigPlayButton.prototype.createEl = function () {
+    const el = Button.prototype.createEl.call(this);
+    const _html =
+      '<button><svg width="50px" height="50px" viewBox="0 0 50 50" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="播放/播放" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><circle id="椭圆形" stroke="#FFFFFF" stroke-width="1.20385619" fill-opacity="0.3" fill="#000000" stroke-linecap="square" cx="25" cy="25" r="24.4114519"></circle><g id="视频/暂停" transform="translate(17.2619, 13.0952)" fill="#FFFFFF"><path d="M12.1943373,5.31370674 L19.8894148,18.3953385 C20.5636212,19.5414893 20.1810346,21.0171804 19.0348838,21.6913868 C18.6648746,21.9090393 18.2434029,22.0238095 17.8141251,22.0238095 L2.42397011,22.0238095 C1.09422728,22.0238095 0.0162577307,20.94584 0.0162577307,19.6160971 C0.0162577307,19.1868194 0.131027981,18.7653477 0.34868043,18.3953385 L8.04375794,5.31370674 C8.71796432,4.1675559 10.1936554,3.78496932 11.3398063,4.4591757 C11.6926653,4.66673986 11.9867731,4.96084767 12.1943373,5.31370674 Z" id="三角形" transform="translate(10.119, 11.9048) rotate(-270) translate(-10.119, -11.9048)"></path></g></g></svg></button>';
 
-      el.appendChild(
-        TCPlayer.dom.createEl('div', {
-          className: 'vjs-button-icon',
-          innerHTML: _html
-        })
-      );
-      return el;
-    };
-    player = TCPlayer(videoId, {
-      appID: '',
-      controls: true,
-      plugins: {}
-    }); // player-container-id 为播放器容器 ID,必须与 html 中一致
-    if (player) {
-      player.src(videoUrl); // url 播放地址
-      player.poster(coverImg || '');
+    el.appendChild(
+      TCPlayer.dom.createEl('div', {
+        className: 'vjs-button-icon',
+        innerHTML: _html
+      })
+    );
+    return el;
+  };
+  player = TCPlayer(videoId, {
+    appID: '',
+    controls: true,
+    plugins: {}
+  }); // player-container-id 为播放器容器 ID,必须与 html 中一致
+  if (player) {
+    player.src(videoUrl); // url 播放地址
+    player.poster(coverImg || '');
 
-      // player.on('loadstart', () => {})
-      player.on('ready', (item: any) => {
-        console.log('ready', item);
+    // player.on('loadstart', () => {})
+    player.on('ready', (item: any) => {
+      console.log('ready', item);
 
-        // player.pause()
-      });
-      player.on('loadedmetadata', () => {
-        console.log('loadedmetadata');
-        videoLoading = false;
-        if (type === 'one') {
-            forms.videoLoading1 = false
-        } else {
-            forms.videoLoading2 = false
-        }
-      });
+      // player.pause()
+    });
+    player.on('loadedmetadata', () => {
+      console.log('loadedmetadata');
+      videoLoading = false;
+      if (type === 'one') {
+        forms.videoLoading1 = false;
+      } else {
+        forms.videoLoading2 = false;
+      }
+    });
 
-      // 速度变化时
-      player.on('ratechange', () => {
-        playerSpeed =
-          playerSpeed < player.playbackRate()
-            ? player.playbackRate()
-            : playerSpeed;
-      });
+    // 速度变化时
+    player.on('ratechange', () => {
+      playerSpeed =
+        playerSpeed < player.playbackRate()
+          ? player.playbackRate()
+          : playerSpeed;
+    });
 
-      player.on('seeking', () => {
-        console.log('seeking');
-        videoRef.isActive.value && videoRef.pause();
-      });
+    player.on('seeking', () => {
+      console.log('seeking');
+      videoRef.isActive.value && videoRef.pause();
+    });
 
-      // // 拖动结束时
-      player.on('seeked', () => {
-        console.log('seeked');
-        videoRef.isActive.value && videoRef.pause();
-      });
+    // // 拖动结束时
+    player.on('seeked', () => {
+      console.log('seeked');
+      videoRef.isActive.value && videoRef.pause();
+    });
 
-      // 正在搜索中
-      player.on('waiting', () => {
-        // console.log('waiting pause')
-        videoRef.isActive.value && videoRef.pause();
-      });
+    // 正在搜索中
+    player.on('waiting', () => {
+      // console.log('waiting pause')
+      videoRef.isActive.value && videoRef.pause();
+    });
 
-      // 如何视频在缓存不会触发
-      player.on('timeupdate', () => {
-        // console.log('timeupdate', player.currentTime())
-        // 判断视频计时器是否暂停,如果暂停则恢复
-        // 添加 「forms.player.playing」 是由会跳转到上次播放时间,会触发些方法
-        if (
-          !videoRef.isActive.value &&
-          player.currentTime() > 0 &&
-          !player.paused()
-        ) {
-          // console.log('timeupdate play')
-          videoRef.resume();
-        }
-      });
-
-      // 视屏播放时暂停
-      player.on('ended', () => {
-        player.pause();
-      });
-
-      // 开始播放
-      player.on('play', () => {
-          // 视频一播放
-          if (player.id() === 'register-video') {
-            forms.player2.pause()
-          }
-          // 视频二播放
-          if (player.id() === 'register-video2') {
-            forms.player1.pause()
-          }
-        // console.log('play');
-        // 判断视频计时器是否暂停,如果暂停则恢复
+    // 如何视频在缓存不会触发
+    player.on('timeupdate', () => {
+      // console.log('timeupdate', player.currentTime())
+      // 判断视频计时器是否暂停,如果暂停则恢复
+      // 添加 「forms.player.playing」 是由会跳转到上次播放时间,会触发些方法
+      if (
+        !videoRef.isActive.value &&
+        player.currentTime() > 0 &&
+        !player.paused()
+      ) {
+        // console.log('timeupdate play')
         videoRef.resume();
-      });
+      }
+    });
+
+    // 视屏播放时暂停
+    player.on('ended', () => {
+      player.pause();
+    });
 
-      // 暂停播放
-      player.on('pause', () => {
-        // console.log('pause', videoRef.isActive.value);
+    // 开始播放
+    player.on('play', () => {
+      // 视频一播放
+      if (player.id() === 'register-video') {
+        forms.player2.pause();
+      }
+      // 视频二播放
+      if (player.id() === 'register-video2') {
+        forms.player1.pause();
+      }
+      // console.log('play');
+      // 判断视频计时器是否暂停,如果暂停则恢复
+      videoRef.resume();
+    });
 
-        videoRef.pause();
-      });
+    // 暂停播放
+    player.on('pause', () => {
+      // console.log('pause', videoRef.isActive.value);
 
-      player.on('fullscreenchange', () => {
-        if (player.isFullscreen()) {
-          console.log('fullscreen');
-          const i = document.createElement('i');
-          i.id = 'fullscreen-back';
-          i.className = 'van-icon van-icon-arrow-left video-back';
-          i.addEventListener('click', () => {
-            player.exitFullscreen();
-          });
-          document.getElementsByClassName('video-js')[0].appendChild(i);
-        } else {
-          console.log('exitfullscreen');
-          const i = document.getElementById('fullscreen-back');
-          i && i.remove();
-        }
-      });
-      return player
-    }
-}
+      videoRef.pause();
+    });
+    let isFullscreen = false;
+    player.on('fullscreenchange', () => {
+      console.log('fullscreen fullscreenchange', player.isFullscreen());
+      // if (player.isFullscreen()) {
+      if (isFullscreen) {
+        isFullscreen = false;
+        const i = document.getElementById('fullscreen-back');
+        i && i.remove();
+      } else {
+        isFullscreen = true;
+        const i = document.createElement('i');
+        i.id = 'fullscreen-back';
+        i.className = 'van-icon van-icon-arrow-left video-back';
+        i.addEventListener('click', () => {
+          player.exitFullscreen();
+        });
+        document.getElementById(videoId)?.appendChild(i);
+      }
+      // } else {
+      //   const i = document.getElementById('fullscreen-back');
+      //   i && i.remove();
+      // }
+    });
+    return player;
+  }
+};

+ 39 - 31
src/views/intention-questionnaire/show.tsx

@@ -93,18 +93,18 @@ export default defineComponent({
           },
           '*'
         )
-        const videoRef: any = document.querySelector('#register-video')
-        const videoRef2: any = document.querySelector('#register-video2')
-        if(videoRef) {
-          const rect = videoRef?.getBoundingClientRect()
-          console.log(rect)
-          videoRef.style.height = rect.width / 16 * 9 + 'px'
-        }
-        if(videoRef2) {
-          const rect = videoRef2?.getBoundingClientRect()
-          console.log(rect)
-          videoRef2.style.height = rect.width / 16 * 9 + 'px'
-        }
+        // const videoRef: any = document.querySelector('#register-video')
+        // const videoRef2: any = document.querySelector('#register-video2')
+        // if(videoRef) {
+        //   const rect = videoRef?.getBoundingClientRect()
+        //   console.log(rect)
+        //   videoRef.style.height = rect.width / 16 * 9 + 'px'
+        // }
+        // if(videoRef2) {
+        //   const rect = videoRef2?.getBoundingClientRect()
+        //   console.log(rect)
+        //   videoRef2.style.height = rect.width / 16 * 9 + 'px'
+        // }
       })
       _initVideo('one', forms, videoIntervalRef)
       _initVideo('two', forms, videoIntervalRef2)
@@ -184,29 +184,37 @@ export default defineComponent({
           <div class={styles.contentBody} v-html={forms.contentA}></div>
           <div class={styles.contentBody}>
             <div class={styles.cbTitle}>一、什么是音乐(器乐)课堂数字化转型<span>(详见视频介绍)</span></div>
-            <div class={[styles['video-content']]}>
-              <video
-                id="register-video"
-                class={styles['video']}
-                src={forms.introductionVideo}
-                playsinline={true}
-                poster={forms.coverImg}
-                preload="auto"></video>
-            </div> 
+            <div class={styles.videoBoxCon}>
+              <div class={styles.videoBox}>
+                <div class={[styles['video-content']]}>
+                  <video
+                    id="register-video"
+                    class={styles['video']}
+                    src={forms.introductionVideo}
+                    playsinline={true}
+                    poster={forms.coverImg}
+                    preload="auto"></video>
+                </div> 
+              </div>
+            </div>
           </div>
           <div class={styles.contentBody} v-html={forms.contentB}></div>
           <div class={styles.contentBody} v-html={forms.contentC}></div>
           <div class={styles.contentBody}>
-            <div class={styles.cbTitle}>四、什么是器乐数字 Ai<span>(详见视频介绍)</span></div>          
-            <div class={[styles['video-content']]}>
-              <video
-                id="register-video2"
-                class={styles['video']}
-                src={forms.introductionVideo2}
-                playsinline={true}
-                poster={forms.coverImg2}
-                preload="auto"></video>
-            </div>  
+            <div class={styles.cbTitle}>四、什么是器乐数字 Ai<span>(详见视频介绍)</span></div>   
+            <div class={styles.videoBoxCon}>
+              <div class={styles.videoBox}>       
+                <div class={[styles['video-content']]}>
+                  <video
+                    id="register-video2"
+                    class={styles['video']}
+                    src={forms.introductionVideo2}
+                    playsinline={true}
+                    poster={forms.coverImg2}
+                    preload="auto"></video>
+                </div>  
+              </div>
+            </div>
           </div>          
           <div class={styles.contentBody} v-html={forms.contentD}></div>
         </div>