瀏覽代碼

返回编号

lex 11 月之前
父節點
當前提交
0d40d6585c
共有 1 個文件被更改,包括 37 次插入0 次删除
  1. 37 0
      src/views/music-library/music-sheet/modal/music-operationV2.tsx

+ 37 - 0
src/views/music-library/music-sheet/modal/music-operationV2.tsx

@@ -523,6 +523,9 @@ export default defineComponent({
               ) {
                 musicSheetSoundList.push({
                   ...musicSheetSound,
+                  musicalInstrumentId:
+                    musicSheetSound.musicalInstrumentId ||
+                    instrumentCodeToInstrumentId(musicSheetSound.track),
                   musicSheetId: props.data.id,
                   audioPlayType: 'PLAY'
                 })
@@ -916,6 +919,40 @@ export default defineComponent({
       }
     }
 
+    // 通过乐器编码返回乐器编号
+    const instrumentCodeToInstrumentId = (code: string) => {
+      const codeIdMap = new Map<string, []>() as any
+      const codeMapKeys: string[] = []
+      state.instrumentData.forEach((data: any) => {
+        if (!data.disabled) {
+          const codes = data.code.split(/[,,]/)
+          codes.forEach((code: string) => {
+            let codeTemp = code.replaceAll(' ', '').toLowerCase()
+            codeMapKeys.push(codeTemp)
+            if (codeIdMap.has(codeTemp)) {
+              codeIdMap.get(codeTemp).push(data.id + '')
+            } else {
+              const arr = [] as any
+              arr.push(data.id + '')
+              codeIdMap.set(codeTemp, arr)
+            }
+          })
+        }
+      })
+
+      if (!code) {
+        return ''
+      }
+      code = code.replaceAll(' ', '').toLowerCase()
+      const tempCode = getInstrumentName(codeMapKeys, code)
+      if (codeIdMap.has(tempCode)) {
+        const result = codeIdMap.get(tempCode)
+        console.log('result:', result)
+        return result[0] || ''
+      }
+      return ''
+    }
+
     // 获取xml中所有轨道 乐器
     const getPartListNames = (xml: any) => {
       if (!xml) return []