|
@@ -513,6 +513,27 @@ export const onlyVisible = (xml: string, partIndex: number): string => {
|
|
return new XMLSerializer().serializeToString(appoggianceFormate(xmlParse));
|
|
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 => {
|
|
export const appoggianceFormate = (xmlParse: Document): Document => {
|
|
if (!xmlParse) return xmlParse;
|
|
if (!xmlParse) return xmlParse;
|