Quellcode durchsuchen

移调和删除选中

liushengqiang vor 1 Jahr
Ursprung
Commit
7d61735a1e
4 geänderte Dateien mit 34 neuen und 36 gelöschten Zeilen
  1. 18 34
      src/pc/home/index.tsx
  2. 14 1
      src/pc/home/noteData.ts
  3. 1 1
      src/pc/home/runtime.ts
  4. 1 0
      src/pc/types.ts

+ 18 - 34
src/pc/home/index.tsx

@@ -1282,11 +1282,22 @@ export default defineComponent({
 
 			// 删除音符
 			if (type === "delete") {
-				if (!data.active) return;
-				if (data.active.startChar === 0) return;
-				abcData.abc.measures[data.active.measureIndex].notes.splice(data.active.noteIndex, 1);
-				if (abcData.abc.measures[data.active.measureIndex].notes.length === 0) {
-					abcData.abc.measures.splice(data.active.measureIndex, 1);
+				if (data.multilList.length) {
+					for (let i = 0; i < data.multilList.length; i++) {
+						const item = data.multilList[i];
+						abcData.abc.measures[item.measureIndex].notes[item.noteIndex].is_delete = true;
+					}
+					for(let i = 0; i < abcData.abc.measures.length; i++){
+						abcData.abc.measures[i].notes = abcData.abc.measures[i].notes.filter((n) => n.is_delete !== true)
+					}
+					abcData.abc.measures = abcData.abc.measures.filter((n) => n.notes.length)
+				} else {
+					if (!data.active) return;
+					if (data.active.startChar === 0) return;
+					abcData.abc.measures[data.active.measureIndex].notes.splice(data.active.noteIndex, 1);
+					if (abcData.abc.measures[data.active.measureIndex].notes.length === 0) {
+						abcData.abc.measures.splice(data.active.measureIndex, 1);
+					}
 				}
 				await handleResetRender();
 				data.active = null as unknown as INoteActive;
@@ -1382,35 +1393,8 @@ export default defineComponent({
 			console.log(item);
 			const moveData = getKeyStep(item.value, abcData.abc.key, data.moveKeyType);
 			console.log("🚀 ~ item:", abcData.abc.key, "=>", item.value, moveData);
-			// 将所有的音符移调
-			// for (let i = 0; i < abcData.abc.measures.length; i++) {
-			// 	const measure = abcData.abc.measures[i];
-			// 	for (let j = 0; j < measure.notes.length; j++) {
-			// 		const note = measure.notes[j];
-			// 		if (note.content == "z") continue;
-			// 		const content = moveNoteKey(note.content, moveData);
-			// 		const _a = content.substring(0, 1);
-			// 		if (_a === "^" || _a === "_") {
-			// 			note.content = content.substring(1);
-			// 		} else {
-			// 			note.content = content;
-			// 		}
-			// 		console.log("🚀 ~ note.content:", note.content);
-			// 	}
-			// }
-			// // console.log(abcData.abc.visualTranspose, item.step, item.value)
-			// abcData.abc.key = item.value;
-			// const step =
-			// 	data.moveKeyType === "up"
-			// 		? item.step > 0
-			// 			? item.step
-			// 			: item.step + 12
-			// 		: data.moveKeyType === "down"
-			// 		? item.step < 0
-			// 			? item.step
-			// 			: item.step + 12
-			// 		: item.step;
-			abcData.abc.visualTranspose = item.step;
+			(window as any).visual_Key = item.value.split(':')[1];
+			abcData.abc.visualTranspose = moveData.step;
 			abcData.abc.visualKey = item.value;
 			popup.moveKeyShow = false;
 			if (data.playState) {

+ 14 - 1
src/pc/home/noteData.ts

@@ -247,7 +247,7 @@ export const ABC_KEYS: { [_: string]: any } = {
 		"K:A": { up: 9, down: -3, move: 0 },
 		"K:Bb": { up: 10, down: -2, move: 1 },
 		"K:B": { up: 11, down: -1, move: 0 },
-		"K:C": { up: 0, down: 0, move: 0 },
+		"K:Cb": { up: 0, down: 0, move: 0 },
 	},
 	"K:C#": {
 		"K:D": { up: 1, down: -11, move: 0 },
@@ -261,6 +261,7 @@ export const ABC_KEYS: { [_: string]: any } = {
 		"K:A": { up: 8, down: -4, move: 0 },
 		"K:Bb": { up: 9, down: -3, move: 1 },
 		"K:B": { up: 10, down: -2, move: 0 },
+		"K:Cb": { up: 10, down: -2, move: 0 },
 		"K:C": { up: 11, down: -1, move: 1 },
 		"K:C#": { up: 0, down: 0, move: 0 },
 		"K:Db": { up: 0, down: 0, move: 0 },
@@ -277,6 +278,7 @@ export const ABC_KEYS: { [_: string]: any } = {
 		"K:A": { up: 8, down: -4, move: 0 },
 		"K:Bb": { up: 9, down: -3, move: 1 },
 		"K:B": { up: 10, down: -2, move: 0 },
+		"K:Cb": { up: 10, down: -2, move: 0 },
 		"K:C": { up: 11, down: -1, move: 1 },
 		"K:C#": { up: 0, down: 0, move: 0 },
 		"K:Db": { up: 0, down: 0, move: 1 },
@@ -292,6 +294,7 @@ export const ABC_KEYS: { [_: string]: any } = {
 		"K:A": { up: 7, down: -5, move: 1 },
 		"K:Bb": { up: 8, down: -4, move: 0 },
 		"K:B": { up: 9, down: -3, move: 1 },
+		"K:Cb": { up: 9, down: -3, move: 1 },
 		"K:C": { up: 10, down: -2, move: 0 },
 		"K:C#": { up: 11, down: -1, move: 1 },
 		"K:Db": { up: 11, down: -1, move: 0 },
@@ -307,6 +310,7 @@ export const ABC_KEYS: { [_: string]: any } = {
 		"K:A": { up: 6, down: -6, move: 0 },
 		"K:Bb": { up: 7, down: -5, move: 1 },
 		"K:B": { up: 8, down: -4, move: 0 },
+		"K:Cb": { up: 8, down: -4, move: 0 },
 		"K:C": { up: 9, down: -3, move: 1 },
 		"K:C#": { up: 10, down: -2, move: 0 },
 		"K:Db": { up: 10, down: -2, move: 1 },
@@ -322,6 +326,7 @@ export const ABC_KEYS: { [_: string]: any } = {
 		"K:A": { up: 5, down: -7, move: 1 },
 		"K:Bb": { up: 6, down: -6, move: 0 },
 		"K:B": { up: 7, down: -5, move: 1 },
+		"K:Cb": { up: 7, down: -5, move: 1 },
 		"K:C": { up: 8, down: -4, move: 0 },
 		"K:C#": { up: 9, down: -3, move: 1 },
 		"K:Db": { up: 9, down: -3, move: 0 },
@@ -337,6 +342,7 @@ export const ABC_KEYS: { [_: string]: any } = {
 		"K:A": { up: 4, down: -8, move: 0 },
 		"K:Bb": { up: 5, down: -7, move: 1 },
 		"K:B": { up: 6, down: -6, move: 0 },
+		"K:Cb": { up: 6, down: -6, move: 0 },
 		"K:C": { up: 7, down: -5, move: 1 },
 		"K:C#": { up: 8, down: -4, move: 0 },
 		"K:Db": { up: 8, down: -4, move: 1 },
@@ -351,6 +357,7 @@ export const ABC_KEYS: { [_: string]: any } = {
 		"K:A": { up: 3, down: -9, move: 0 },
 		"K:Bb": { up: 4, down: -8, move: 1 },
 		"K:B": { up: 5, down: -7, move: 0 },
+		"K:Cb": { up: 5, down: -7, move: 0 },
 		"K:C": { up: 6, down: -6, move: 1 },
 		"K:C#": { up: 7, down: -5, move: 0 },
 		"K:Db": { up: 7, down: -5, move: 1 },
@@ -367,6 +374,7 @@ export const ABC_KEYS: { [_: string]: any } = {
 		"K:A": { up: 3, down: -9, move: 0 },
 		"K:Bb": { up: 4, down: -8, move: 1 },
 		"K:B": { up: 5, down: -7, move: 0 },
+		"K:Cb": { up: 5, down: -7, move: 0 },
 		"K:C": { up: 6, down: -6, move: 1 },
 		"K:C#": { up: 7, down: -5, move: 0 },
 		"K:Db": { up: 7, down: -5, move: 1 },
@@ -382,6 +390,7 @@ export const ABC_KEYS: { [_: string]: any } = {
 		"K:A": { up: 2, down: -10, move: 1 },
 		"K:Bb": { up: 3, down: -9, move: 0 },
 		"K:B": { up: 4, down: -8, move: 1 },
+		"K:Cb": { up: 4, down: -8, move: 1 },
 		"K:C": { up: 5, down: -7, move: 0 },
 		"K:C#": { up: 6, down: -6, move: 1 },
 		"K:Db": { up: 6, down: -6, move: 0 },
@@ -397,6 +406,7 @@ export const ABC_KEYS: { [_: string]: any } = {
 		"K:A": { up: 1, down: -11, move: 0 },
 		"K:Bb": { up: 2, down: -10, move: 1 },
 		"K:B": { up: 3, down: -9, move: 0 },
+		"K:Cb": { up: 3, down: -9, move: 0 },
 		"K:C": { up: 4, down: -8, move: 1 },
 		"K:C#": { up: 5, down: -7, move: 0 },
 		"K:Db": { up: 5, down: -7, move: 1 },
@@ -412,6 +422,7 @@ export const ABC_KEYS: { [_: string]: any } = {
 	"K:A": {
 		"K:Bb": { up: 1, down: -11, move: 0 },
 		"K:B": { up: 2, down: -10, move: 1 },
+		"K:Cb": { up: 2, down: -10, move: 1 },
 		"K:C": { up: 3, down: -9, move: 0 },
 		"K:C#": { up: 4, down: -8, move: 1 },
 		"K:Db": { up: 4, down: -8, move: 0 },
@@ -427,6 +438,7 @@ export const ABC_KEYS: { [_: string]: any } = {
 	},
 	"K:Bb": {
 		"K:B": { up: 1, down: -11, move: 0 },
+		"K:Cb": { up: 1, down: -11, move: 0 },
 		"K:C": { up: 2, down: -10, move: 1 },
 		"K:C#": { up: 3, down: -9, move: 0 },
 		"K:Db": { up: 3, down: -9, move: 1 },
@@ -456,6 +468,7 @@ export const ABC_KEYS: { [_: string]: any } = {
 		"K:A": { up: 10, down: -2, move: 1 },
 		"K:Bb": { up: 11, down: -1, move: 0 },
 		"K:B": { up: 0, down: 0, move: 0 },
+		"K:Cb": { up: 0, down: 0, move: 0 },
 	},
 };
 

+ 1 - 1
src/pc/home/runtime.ts

@@ -34,13 +34,13 @@ export const ABC_DATA = {
 	],
 	/** 调号 */
 	key: [
+		{ name: "C大调", value: "K:C", step: 0, icon: "icon-a-diaohao-cdadiaoaxiaodiao1" },
 		{ name: "F#大调", value: "K:F#", step: 6, icon: "icon-a-diaohao-fdadiaodxiaodiao" },
 		{ name: "F大调", value: "K:F", step: 5, icon: "icon-a-diaohao-fdadiaodxiaodiao1" },
 		{ name: "E大调", value: "K:E", step: 4, icon: "icon-a-diaohao-edadiaocxiaodiao" },
 		{ name: "Eb大调", value: "K:Eb", step: 3, icon: "icon-a-diaohao-ebdadiaocxiaodiao" },
 		{ name: "D大调", value: "K:D", step: 2, icon: "icon-a-diaohao-Ddaxiaoexiaodiao" },
 		{ name: "C#大调", value: "K:C#", step: 1, icon: "icon-a-diaohao-cdadiaoaxiaodiao" },
-		{ name: "C大调", value: "K:C", step: 0, icon: "icon-a-diaohao-cdadiaoaxiaodiao1" },
 		{ name: "B大调", value: "K:B", step: -1, icon: "icon-a-diaohao-bdadiaogxiaodiao" },
 		{ name: "Cb大调", value: "K:Cb", step: -1, icon: "icon-a-diaohao-cbdadiaoabxiaodiao" },
 		{ name: "Db大调", value: "K:Db", step: -1, icon: "icon-a-diaohao-dbdadiaobbxiaodiao" },

+ 1 - 0
src/pc/types.ts

@@ -31,6 +31,7 @@ export interface INote {
 	tieline: string
 	/** 分割 */
 	segno: string
+	is_delete?: boolean
 }
 export interface IMeasure {
 	/** 小节号 */