Browse Source

feat: 使用多个code匹配指法

TIANYONG 1 month ago
parent
commit
5b44ced1bb
2 changed files with 19 additions and 2 deletions
  1. 18 1
      src/state.ts
  2. 1 1
      vite.config.ts

+ 18 - 1
src/state.ts

@@ -26,6 +26,7 @@ import { HANDLE_WORK_ADD } from "/src/page-instrument/custom-plugins/work-index"
 import { speedBeatTo, unitImgs } from "/src/helpers/beatConfig"
 import IndexedDBService from "/src/utils/indexedDB";
 import { musicalInstrumentCodeInfo, instruments, fixInstrumentNameCode } from "/src/constant/instruments";
+import { match } from "assert";
 
 const query: any = getQuery();
 
@@ -1347,9 +1348,11 @@ const getMusicInfo = async (res: any) => {
   const { track, index, musicalInstrumentId } = state.isSimplePage ? { track:tracks[0], index: state.partIndex, musicalInstrumentId: '' } : initMusicSource(res.data, tracks, partIndex, workRecordInstrumentId)
   // 这里返回的track可能和实际的对不上,所以重新筛选一下
   const realTrack = musicalInstrumentId && res.data?.musicalInstruments?.length ? res.data?.musicalInstruments.find((item: any) => item?.id == musicalInstrumentId)?.code?.split(',')?.[0] : '';
+  const instrumentCodes = musicalInstrumentId && res.data?.musicalInstruments?.length ? res.data?.musicalInstruments.find((item: any) => item?.id == musicalInstrumentId)?.code : '';
   const musicInfo = {
     ...res.data,
-    track: res.data.musicSheetType === 'CONCERT' ? track : realTrack
+    track: res.data.musicSheetType === 'CONCERT' ? track : realTrack,
+    instrumentCodes,
   };
   console.log("🚀 ~ musicInfo:", musicInfo);
   setState(musicInfo, index);
@@ -1712,6 +1715,20 @@ const setState = (data: any, index: number) => {
   }
 
   let code = matchVoicePart(state.trackId, "CONCERT")
+  /**
+   * 曲子:中音萨克斯教程2-4,返回的乐器code是"Alto Sax,Alto Saxophone",使用第一个Alto Sax去找,找不到对应的指法,这种情况下需要使用多个code去匹配指法
+   * 如果当前的第一code找不到,用instrumentCodes去找,
+   * 
+   * */ 
+  if (data.instrumentCodes && code == 1 || !code) {
+    for (let name of data.instrumentCodes.split(',')) {
+      let matchCode = matchVoicePart(name, "CONCERT")
+      if (matchCode && matchCode !== 1) {
+        code = matchCode
+        break;
+      }
+    }
+  }
   if (code == 1 || !code) {
     code = fixInstrumentNameCode(state.trackId)
   }

+ 1 - 1
vite.config.ts

@@ -81,7 +81,7 @@ export default defineConfig({
     // https: true,
     proxy: {
       "^/instrument/.*": {
-        target: "https://dev.gym.lexiaoya.cn",
+        target: "https://test.gym.lexiaoya.cn",
         changeOrigin: true,
         rewrite: (path) => path.replace(/^\/instrument/, ""),
       },