Browse Source

优化一些问题

黄琪勇 4 tháng trước cách đây
mục cha
commit
c747c24c92

+ 9 - 12
src/helpers/formateMusic.ts

@@ -366,7 +366,7 @@ export const onlyVisible = (xml: string, partIndex: number): string => {
 	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() || "");
+	//const partListNames = Array.from(partList).map((item) => item.getElementsByTagName("part-name")?.[0]?.textContent?.trim() || "");
 	const parts: any = xmlParse.getElementsByTagName("part");
 	// const firstTimeInfo = parts[0]?.getElementsByTagName('metronome')[0]?.parentElement?.parentElement?.cloneNode(true)
 	const firstMeasures = [...parts[0]?.getElementsByTagName("measure")];
@@ -376,14 +376,14 @@ export const onlyVisible = (xml: string, partIndex: number): string => {
 	const rehearsals = [...parts[0]?.getElementsByTagName("rehearsal")];
 
 	/** 第一分谱如果是约定的配置分谱则跳过 */
-	if (partListNames[0]?.toLocaleUpperCase?.() === "COMMON") {
-		partIndex++;
-		partListNames.shift();
-	}
+	// if (partListNames[0]?.toLocaleUpperCase?.() === "COMMON") {
+	// 	partIndex++;
+	// 	partListNames.shift();
+	// }
 	const visiblePartInfo = partList[partIndex];
 	// console.log(visiblePartInfo, partIndex)
 	// 根据后台已选择的分轨筛选出能切换的声轨
-	state.partListNames = partListNames;
+	//state.partListNames = partListNames;
 	// console.log('分轨名称',state.partListNames)
 	if (visiblePartInfo) {
 		const id = visiblePartInfo.getAttribute("id");
@@ -523,14 +523,11 @@ export const onlyVisible = (xml: string, partIndex: number): string => {
 export const onlyVisible2 = (xml: string): string => {
 	if (!xml) return "";
 	// console.log('原始xml')
-	const detailId = state.examSongId + "";
+	//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;
-
+	//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)) {

+ 1 - 0
src/page-instrument/component/the-music-list/list.tsx

@@ -106,6 +106,7 @@ export default defineComponent({
         ...query
       }
       queryObj.id = item.id
+      queryObj["part-index"] = ""
       forms.musicalInstrumentId && (queryObj.instrumentId = forms.musicalInstrumentId)
       location.href =
         location.origin +

+ 6 - 6
src/state.ts

@@ -1395,6 +1395,9 @@ const getMusicInfo = async (res: any) => {
       workRecordInstrumentId = res.data?.instrumentId
     }
   }
+  // multiTracksSelection 返回为空,默认代表全部分轨
+  state.canSelectTracks = res.data.multiTracksSelection === "null" || res.data.multiTracksSelection === "" || res.data.multiTracksSelection === null ? [] : res.data.multiTracksSelection?.split(',');
+  state.canSelectTracks = state.canSelectTracks.map((item: any)=>item.trim())
   /* 获取声轨列表 */
   let xmlString = await fetch(res.data.xmlFileUrl).then((response) => response.text());
   xmlString = xmlAddPartName(xmlString);
@@ -1464,7 +1467,6 @@ function initMusicSource(data: any, tracks: string[], partIndex: number, workRec
     if(state.isScoreRender && (partIndex===999 || (state.defaultScoreRender && partIndex===-1))){
         // 总谱渲染
         state.isCombineRender = true
-        state.partListNames = tracks
         banSongObj = musicSheetAccompanimentList.find((item: any) => {
           return item.audioPlayType === "SING"
         })
@@ -1484,8 +1486,8 @@ function initMusicSource(data: any, tracks: string[], partIndex: number, workRec
         index = 999
         musicalInstrumentId = ''
     }else{
-      // 合奏只显示一个声轨
-      track = tracks[partIndex===-1?0:partIndex]
+      // 合奏只显示一个声轨   当为-1时候,取tracks中 后端勾选了的第一个值
+      track =  partIndex === -1 ? tracks.find(value => state.canSelectTracks.includes(value))! : tracks[partIndex]
       // 根据当前的声轨 取数据
       musicObj = musicSheetSoundList.find((item: any) => {
         return item.audioPlayType === "PLAY" && item.track === track
@@ -1504,6 +1506,7 @@ function initMusicSource(data: any, tracks: string[], partIndex: number, workRec
       })
       musicalInstrumentId = musicObj?.musicalInstrumentId
     }
+    state.partListNames = tracks
   }
   // 当没有任何曲目的时候报错
   if (!musicObj?.audioFileUrl && !accompanyObj?.audioFileUrl && !fanSongObj?.audioFileUrl && !banSongObj?.audioFileUrl && !fanSongObj?.solmizationFileUrl && !fanSongObj?.femaleSolmizationFileUrl) {
@@ -1680,9 +1683,6 @@ const setState = (data: any, index: number) => {
     state.enableEvaluation = state.accompany || state.music ? true : false
   }
   state.isConcert = data.musicSheetType === "CONCERT" ? true : false;
-  // multiTracksSelection 返回为空,默认代表全部分轨
-  state.canSelectTracks = data.multiTracksSelection === "null" || data.multiTracksSelection === "" || data.multiTracksSelection === null ? [] : data.multiTracksSelection?.split(',');
-  state.canSelectTracks = state.canSelectTracks.map((item: any)=>item.trim())
   // 开启预备小节
   state.isOpenPrepare = true;
   state.extStyleConfigJson = data.extStyleConfigJson || {}

+ 2 - 2
vite.config.ts

@@ -76,8 +76,8 @@ export default defineConfig({
         // target: "https://kt.colexiu.com",
         // target: "https://test.lexiaoya.cn",
         // target: "https://kt.colexiu.com",
-        // target: "https://test.resource.colexiu.com", // 内容平台开发环境,内容平台开发,需在url链接上加上isCbs=true
-        target: "https://test.kt.colexiu.com",
+        target: "https://test.resource.colexiu.com", // 内容平台开发环境,内容平台开发,需在url链接上加上isCbs=true
+        //target: "https://test.kt.colexiu.com",
         // target: "https://mec.colexiu.com",
         changeOrigin: true,
         rewrite: (path) => path.replace(/^\/instrument/, ""),