Browse Source

fix: #12243bug修复

TIANYONG 4 weeks ago
parent
commit
a94bd123ad

+ 2 - 1
.vscode/extensions.json

@@ -1,3 +1,4 @@
 {
-  "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"]
+  "recommendations": [
+    "Vue.volar""]
 }

+ 6 - 2
src/helpers/formateMusic.ts

@@ -913,8 +913,12 @@ export const formateTimes = (osmd: OpenSheetMusicDisplay) => {
 	let differFrom = 0;
 	// let testIdx = 0;
 	let repeatIdx = 0; // 循环的次数
-	// 当多选声部的时候 ,取选择的第一个声部
-	const firstTrackName = state.combinePartIndexs.length>1 ? state.partListNames[state.combinePartIndexs[0]] : state.canSelectTracks[0] || "";
+	/**
+	 * 当多选声部的时候 ,取选择的第一个声部
+	 * 总谱渲染时,需要取第一个渲染的声轨名字,canSelectTracks返回的声轨名字可能不是第一个,顺序有问题,需要用state.osmd.Sheet.Instruments
+	 */
+	// const firstTrackName = state.combinePartIndexs.length>1 ? state.partListNames[state.combinePartIndexs[0]] : state.canSelectTracks[0] || "";
+	const firstTrackName = state.combinePartIndexs.length>1 ? state.partListNames[state.combinePartIndexs[0]] : (state.osmd.Sheet.Instruments[0].Name || state.osmd.Sheet.Instruments[0].NameLabel.text || "");
 	const currentTrackIndex = state.isCombineRender && state.combinePartIndexs.length > 1 ? state.combinePartIndexs[0] : 0;
 	while (!iterator.EndReached) {
 		// console.log({ ...iterator });

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

@@ -437,8 +437,8 @@ export default defineComponent({
     });
     /** 模式切换按钮 */
     const toggleBtn = computed(() => {
-      // 上课页面不显示
-      if(state.isAttendClass) return { display: false, disabled: false };
+      // 上课页面不显示,作业模式也不显示
+      if(state.isAttendClass || query.workRecord) return { display: false, disabled: false };
       // 老师端,打击乐&节奏练习不显示
       if (state.isPercussion && state.platform === IPlatform.PC) return { display: false, disabled: false };
       if(state.isCombineRender) return { display: false, disabled: false };

+ 1 - 1
src/view/plugins/move-music-score/index.tsx

@@ -366,7 +366,7 @@ async function setModelPostion(item: any, x: number, y: number, repeatEdit?: boo
 			// 	tsX = item.xRem * clientWidth/10
 			// 	tsY = item.yRem * clientWidth/10
 			// }
-			if (item.noteIdx >= 0 && !repeatEdit) {
+			if (item.noteIdx >= 0 && !repeatEdit && moveData.noteCoords[item.noteIdx]) {
 				if (!moveData.noteCoords.length) {
 					await initNoteCoord()
 				}