Explorar o código

feat: 多分轨修改

TIANYONG hai 1 ano
pai
achega
a57fdd831c
Modificáronse 2 ficheiros con 22 adicións e 1 borrados
  1. 1 1
      osmd-extended
  2. 21 0
      src/helpers/formateMusic.ts

+ 1 - 1
osmd-extended

@@ -1 +1 @@
-Subproject commit 6b9005864c66e2974afa983ad59cac7a1eaf20b7
+Subproject commit 6addc3723d5cf6cb64a68794df42a8ca8969010c

+ 21 - 0
src/helpers/formateMusic.ts

@@ -513,6 +513,27 @@ export const onlyVisible = (xml: string, partIndex: number): string => {
 	return new XMLSerializer().serializeToString(appoggianceFormate(xmlParse));
 };
 
+export const onlyVisible2 = (xml: string): string => {
+	if (!xml) return "";
+	// console.log('原始xml')
+	const detailId = state.examSongId + "";
+	const xmlParse = new DOMParser().parseFromString(xml, "text/xml");
+	const partList = xmlParse.getElementsByTagName("part-list")?.[0]?.getElementsByTagName("score-part") || [];
+	const partListNames = Array.from(partList).map((item) => item.getElementsByTagName("part-name")?.[0]?.textContent?.trim() || "");
+
+
+	state.partListNames = partListNames;
+
+	Array.from(partList).forEach((part) => {
+		let partListName = part.getElementsByTagName("part-name")?.[0]?.textContent?.trim();
+		if (!state.canSelectTracks.includes(partListName)) {
+			part.parentNode?.removeChild(part);
+		}
+	});
+	// console.log(xmlParse)
+	return new XMLSerializer().serializeToString(appoggianceFormate(xmlParse));
+};
+
 // 倚音后连音线
 export const appoggianceFormate = (xmlParse: Document): Document => {
 	if (!xmlParse) return xmlParse;