TIANYONG 8 månader sedan
förälder
incheckning
3cf54c6c35

+ 1 - 1
osmd-extended

@@ -1 +1 @@
-Subproject commit 0eb177f216cead288330588bc281a2d60aa0bcfc
+Subproject commit dd68ffab2f3f6e194b3886981036f05dcd1de4ca

+ 3 - 2
src/page-instrument/evaluat-model/index.tsx

@@ -358,7 +358,7 @@ export default defineComponent({
         // 再来一次,需要手动取消评测,不生成评测记录,不显示评测结果弹窗
         evaluatingData.oneselfCancleEvaluating = true;
         // handleCancelEvaluat();
-        handleEndEvaluat(true, 'selfCancel');
+        handleEndEvaluat(false, 'selfCancel');
         // evaluatingData.isBeginMask = true;
         evaluatingData.evaluatings = {};
         state.playState = "paused";
@@ -445,9 +445,10 @@ export default defineComponent({
       if (res?.checked) {
         handleConnect();
         handleStartBegin(calculateInfo.firstNoteTime);
+        evaluatingData.resulstMode = false;
         if (evaluatingData.isErrorState) {
           evaluatingData.isErrorState = false;
-          evaluatingData.resulstMode = false;
+          // evaluatingData.resulstMode = false;
         }
       }
     };

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

@@ -113,7 +113,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}>
@@ -128,7 +128,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>

+ 1 - 0
src/page-instrument/simple-detail/index.tsx

@@ -99,6 +99,7 @@ export default defineComponent({
 		onMounted(async () => {
 			const id = query.id || '';
 			state.isSimplePage = true;
+			state.partIndex = query["part-index"] ? Number(query["part-index"]) : 0;
 			await getMusicDetail(id, 'open');
 			detailData.isLoading = false;
 			state.isSingleLine = true;

+ 2 - 1
src/page-instrument/view-detail/index.tsx

@@ -343,6 +343,7 @@ export default defineComponent({
     const fingerConfig = computed<any>(() => {
       if (state.setting.displayFingering && state.fingeringInfo?.name) {
         if (state.fingeringInfo.direction === "transverse") {
+          console.log("横向指法", state.fingeringInfo.name);
           return {
             container: {
               //paddingBottom: headerColumnHide.value ? state.fingeringInfo.height : state.fingeringInfo.scaleData?.offset
@@ -360,7 +361,7 @@ export default defineComponent({
             }
           };
         } else {
-          console.log("指法", state.playBtnDirection, state.platform);
+          console.log("竖向指法", state.fingeringInfo.name, state.playBtnDirection, state.platform);
           // 老师端,竖向指法,需要根据功能按钮方向进行设置
           if (state.platform === IPlatform.PC) {
             return {

+ 1 - 1
src/state.ts

@@ -1404,7 +1404,7 @@ const getMusicInfo = async (res: any) => {
   downloadXmlStr.value = xmlString //给musice-score 赋值xmlString 以免加载2次
   const tracks = xmlToTracks(xmlString) //获取声轨列表
   // 设置音源  track 为当前的声轨 index为当前的
-  const { track, index, musicalInstrumentId } = state.isSimplePage ? { track:tracks[0], index:0, musicalInstrumentId: '' } : initMusicSource(res.data, tracks, partIndex, workRecordInstrumentId)
+  const { track, index, musicalInstrumentId } = state.isSimplePage ? { track:tracks[0], index: state.partIndex, musicalInstrumentId: '' } : initMusicSource(res.data, tracks, partIndex, workRecordInstrumentId)
   // 这里返回的track可能和实际的对不上,所以重新筛选一下
   const realTrack = musicalInstrumentId && res.data?.musicalInstruments?.length ? res.data?.musicalInstruments.find((item: any) => item?.id == musicalInstrumentId)?.code?.split(',')?.[0] : '';
   const musicInfo = {

+ 1 - 1
src/view/fingering/fingering-config.ts

@@ -472,7 +472,7 @@ export const subjectFingering = (subjectId: number | string): IFingering => {
         width: "3rem",
         orientation: 0,
         code: "葫芦丝",
-        hasTizhi: false,
+        hasTizhi: true,
         id: 35,
       };
     case "pan-flute": // 排箫

+ 1 - 1
src/view/fingering/fingering-relationships.ts

@@ -406,7 +406,7 @@ const relationships = {
 		74: [7, 6, 5, 95],
 		75: [7, 6, 4, 3, 95],
 		76: [7, 6, 95],
-		77: [7, 5, 4, 3, 2, 94],
+		77: [[7, 5, 4, 3, 2, 11, 91], [7, 5, 4, 3, 2, 94]],
 		78: [7, 5, 4, 94],
 		79: [7, 94],
 		80: [6, 94],

+ 3 - 2
src/view/music-score/index.tsx

@@ -1,5 +1,5 @@
 import { computed, defineComponent, onMounted, reactive, ref, onUnmounted } from "vue";
-import { formatXML, onlyVisible } from "../../helpers/formateMusic";
+import { formatXML, onlyVisible, getCustomInfo } from "../../helpers/formateMusic";
 // // @ts-ignore
 import { OpenSheetMusicDisplay } from "/osmd-extended/src";
 import state, { EnumMusicRenderType, IPlatform } from "/src/state";
@@ -77,7 +77,8 @@ export default defineComponent({
 				downloadXmlStr.value = await fetch(state.xmlUrl).then((response) => response.text())
 			}
 			const xmlStr = downloadXmlStr.value;
-			const xml = formatXML(xmlStr);
+			const parseXmlInfo = getCustomInfo(xmlStr);
+			const xml = formatXML(parseXmlInfo.parsedXML);			
 			musicData.score = state.isCombineRender ? xml : onlyVisible(xml, state.partIndex);
 			if (state.gradualTimes) {
 				state.gradual = getGradualLengthByXml(xml);