Bläddra i källkod

fix: bug修复

TIANYONG 9 månader sedan
förälder
incheckning
9def979730

+ 1 - 1
src/page-instrument/api.ts

@@ -44,7 +44,7 @@ export const studentQueryUserInfo = async () => {
       const res = await request.get(`/student/queryUserInfo`);
       const data = res.data.student
       res.data = {
-        instrumentId: res.data.instrumentId,
+        instrumentId: res.data.instrumentId ? res.data.instrumentId.split(',')[0] : "",
         phone:data.phone,
         clientType:"STUDENT",
         id:data.id,

+ 8 - 0
src/page-instrument/evaluat-model/index.tsx

@@ -59,6 +59,7 @@ export default defineComponent({
       evaluatUpdateAudio: false,
       isSaveVideo: state.setting.camera && state.setting.saveToAlbum,
       shareMode: false,
+      isSkipDoing: false, // 跳转执行中
     });
     /**
      * 检测返回
@@ -321,6 +322,13 @@ export default defineComponent({
 
     /** 评测结果按钮处理 */
     const handleEvaluatResult = (type: "practise" | "tryagain" | "look" | "share" | "update" | "selfCancel") => {
+      if (evaluatModel.isSkipDoing) {
+        return;
+      }
+      evaluatModel.isSkipDoing = true;
+      setTimeout(() => {
+        evaluatModel.isSkipDoing = false;
+      }, 1000);
       if (type === "update") {
         if (state.isAppPlay) {
           evaluatModel.evaluatUpdateAudio = true;

+ 1 - 1
src/page-instrument/header-top/settting/index.tsx

@@ -142,7 +142,7 @@ export default defineComponent({
                             state.modeType === "evaluating" && 
                             <>                       
                                 {
-                                    !query.workRecord &&                                 
+                                    (!query.workRecord && !query.evaluatingRecord) &&                                 
                                     <div class={styles.cellBox}>
                                         <div class={styles.tit}>评测难度</div>
                                         <div class={styles.radioBox}>

+ 2 - 2
src/page-instrument/header-top/speed/index.tsx

@@ -115,7 +115,7 @@ export default defineComponent({
 				<div class={styles.content}>
 					<div class={styles.conBox}>
 						<div class={styles.tit}>速度</div>
-						<div class={[styles.spendCon, workData.trainingType === "PRACTICE" && styles.disableSpend]}>
+						<div class={[styles.spendCon, (workData.trainingType === "PRACTICE" || workData.trainingType === "EVALUATION") && styles.disableSpend]}>
 							<img src={headImg("cutImg.png")} class={[styles.btn]} onClick={minusSpeed} />
 							<div class={styles.sliderCon}>
 								<Slider class={styles.slider} max={270} min={speed.value < 45 ? speed.value : 45} v-model={speed.value}>
@@ -130,7 +130,7 @@ export default defineComponent({
 							</div>
 							<img src={headImg("addImg.png")} class={[styles.btn]} onClick={plusSpeed} />	
 						</div>
-						<div class={[styles.speedSel, workData.trainingType === "PRACTICE" && styles.disableSpend]}>
+						<div class={[styles.speedSel, (workData.trainingType === "PRACTICE" || workData.trainingType === "EVALUATION") && styles.disableSpend]}>
 							<div onClick={resetCurrentSpeed}>原速</div>
 							<div onClick={()=>{ speed.value = 70 }}>70</div>
 							<div onClick={()=>{ speed.value = 80 }}>80</div>

+ 2 - 2
src/page-instrument/view-evaluat-report/component/share-top/index.module.less

@@ -406,12 +406,12 @@
             .plyr__controls {
                 .plyr__controls__item.plyr__control {
                     .icon--pressed {
-                        background-size: 100% 100%;
+                        background-size: 100% 100% !important;
                         background: url("./image/pause2.png") no-repeat;
                     }
 
                     .icon--not-pressed {
-                        background-size: 100% 100%;
+                        background-size: 100% 100% !important;
                         background: url("./image/play2.png") no-repeat;
                     }
                 }

+ 6 - 6
src/page-instrument/view-evaluat-report/index.module.less

@@ -47,12 +47,12 @@
       pointer-events: none;
     }
 
-    .vf-stavenote {
-      path {
-        fill: #ADADAD;
-        stroke: #ADADAD;
-      }
-    }
+    // .vf-stavenote {
+    //   path {
+    //     fill: #ADADAD;
+    //     stroke: #ADADAD;
+    //   }
+    // }
   }
 
   .headHeight {

+ 9 - 2
src/state.ts

@@ -682,7 +682,7 @@ const dynamicShowPlaySpeed = (index: number) => {
 
 // 开始播放时,计算mp3的播放倍率
 export const initSetPlayRate = () => {
-  const item: any = (state.sectionStatus && state.section.length === 2) ? state.sectionFirst || state.section[0] : state.times[state.activeNoteIndex];
+  const item: any = (state.sectionStatus && state.section.length === 2) ? state.section[0] : state.times[state.activeNoteIndex];
   if (item && item.measureSpeed) {
     const ratio = state.speed / Math.floor(item.measureSpeed)
     // state.audiosInstance?.setSpeed(ratio)
@@ -694,7 +694,11 @@ export const initSetPlayRate = () => {
 // 重置播放倍率
 export const resetBaseRate = (idx?: number) => {
   const index = idx ? idx : 0;
-  const currentItem: any = state.times[index];
+  let currentItem: any = state.times[index];
+  // 如果是在预备小节点击原速,需要重置为选段第一小节的速度
+  if (state.section.length === 2 && state.sectionFirst && state.sectionFirst.MeasureNumberXML === currentItem.MeasureNumberXML) {
+    currentItem = state.section[0];
+  }
   const currentSpeed = currentItem?.measureSpeed ? currentItem.measureSpeed : state.originSpeed;
   console.log('速度2',currentSpeed)
   state.speed = currentSpeed
@@ -2143,6 +2147,9 @@ watch(
         if(measureNum > rightMeasureNumberXML){
           item.querySelector('.vf-custom-bg')?.setAttribute("fill", "transparent")
         }
+        if (measureNum >= leftMeasureNumberXML && measureNum <= rightMeasureNumberXML) {
+          item.querySelector('.vf-custom-bg')?.setAttribute("fill", "rgba(1, 193, 181, 0.15)")
+        }
         // 预备小节
         if(state.sectionFirst && measureNum === state.sectionFirst.MeasureNumberXML){
           item?.querySelector('.vf-custom-bg')?.setAttribute("fill", "rgba(255, 193, 48, 0.15)")

+ 12 - 8
src/view/music-score/index.tsx

@@ -85,7 +85,7 @@ export default defineComponent({
 			const container = document.getElementById("musicAndSelection");
 			if (!container || !musicData.score) return;
 			setGlobalMusicSheet();
-			if(!osmd){
+			//if(!osmd){
 				osmd = new OpenSheetMusicDisplay(container, {
 					drawTitle: false,
 					drawSubtitle: false,
@@ -104,14 +104,18 @@ export default defineComponent({
 					// ...this.opotions,
 					colorStemsLikeNoteheads: true, // 是否将音符柄的颜色设置为与它们的音符头相同,默认false
 					// drawingParameters: "compact" // 使用紧凑布局
+					drawLyrics: (((!state.accompany && !state.music ) || state.playType === 'sing' || !state.isEvxml) && !state.isSimplePage) ? true : false, // 演唱模式才渲染歌词,simple页面不显示歌词
+					drawPartNames: props.showPartNames, // 是否渲染声轨名称
+					defaultColorMusic: props.musicColor, // 颜色
+					renderSingleHorizontalStaffline: state.isSingleLine ? true : false
 				});
-			}
-			osmd.setOptions({
-				drawLyrics: (((!state.accompany && !state.music ) || state.playType === 'sing' || !state.isEvxml) && !state.isSimplePage) ? true : false, // 演唱模式才渲染歌词,simple页面不显示歌词
-				drawPartNames: props.showPartNames, // 是否渲染声轨名称
-				defaultColorMusic: props.musicColor, // 颜色
-				renderSingleHorizontalStaffline: state.isSingleLine ? true : false
-			})
+			//}
+			// osmd.setOptions({
+			// 	drawLyrics: (((!state.accompany && !state.music ) || state.playType === 'sing' || !state.isEvxml) && !state.isSimplePage) ? true : false, // 演唱模式才渲染歌词,simple页面不显示歌词
+			// 	drawPartNames: props.showPartNames, // 是否渲染声轨名称
+			// 	defaultColorMusic: props.musicColor, // 颜色
+			// 	renderSingleHorizontalStaffline: state.isSingleLine ? true : false
+			// })
 			// osmd.EngravingRules.CompactMode = true // 紧凑模式
 			// osmd.EngravingRules.PageRightMargin = state.isSingleLine ? (window.innerWidth+200)/10 : 2;
 			// osmd.EngravingRules.FixedMeasureWidth = state.isSingleLine ? true : false; // 是否固定小节的宽度(小节同一宽度渲染)

+ 25 - 13
src/view/plugins/toggleMusicSheet/choosePartName/index.tsx

@@ -39,20 +39,29 @@ export default defineComponent({
         if(selValues.value[0] === 999){
           selValues.value = []
         }
-        const index = selValues.value.indexOf(value)
-        if(index > -1){
-          if(selValues.value.length > 1){
-            selValues.value.splice(index, 1)
-          }
-        }else{
-          if(selValues.value.length >=4){
-            showToast({
-              position: "top",
-              message: "最多可选4个"
-            });
+        if (state.modeType !== 'practise') {
+          if (value == selValues.value[0]) {
             return
+          } else {
+            selValues.value = []
+            selValues.value.push(value)
+          }
+        } else {
+          const index = selValues.value.indexOf(value)
+          if(index > -1){
+            if(selValues.value.length > 1){
+              selValues.value.splice(index, 1)
+            }
+          }else{
+            if(selValues.value.length >=4){
+              showToast({
+                position: "top",
+                message: "最多可选4个"
+              });
+              return
+            }
+            selValues.value.push(value)
           }
-          selValues.value.push(value)
         }
       }
     }
@@ -77,7 +86,10 @@ export default defineComponent({
             }
             <div class={styles.titCon}>
               <div class={styles.tit}>选择声部</div>
-              <div class={styles.tips}>(最多可选4个)</div>
+              {
+                state.modeType === 'practise' && 
+                <div class={styles.tips}>(最多可选4个)</div>
+              }
             </div>
             <div class={[styles.content, styles.sheetCon]}>
               <div class={styles.boxCon}>