lex il y a 1 an
Parent
commit
ef6b57aa19

+ 13 - 2
src/tenant/music/music-detail/new-index.tsx

@@ -15,6 +15,7 @@ import {
   onUnmounted,
   reactive,
   ref,
+  toRaw,
   watch
 } from 'vue'
 import umiRequest from 'umi-request'
@@ -549,6 +550,7 @@ export default defineComponent({
       partIndex: 0,
       partXmlIndex: 0,
       partList: [] as any[],
+      tempPartList: [] as any[],
       xmlPartList: [] as any[]
     })
     /** 渲染五线谱 */
@@ -614,6 +616,7 @@ export default defineComponent({
             part.index = item.value
           }
         })
+        staffData.tempPartList = JSON.parse(JSON.stringify(staffData.partList))
         staffData.partList = instrumentSort(staffData.partList)
         staffData.partXmlIndex = staffData.partList[0].index || 0
 
@@ -624,6 +627,7 @@ export default defineComponent({
         //
       }
     }
+
     const musicIframeLoad = () => {
       const iframeRef: any = document.getElementById('staffIframeRef')
       if (iframeRef && iframeRef.contentWindow.renderXml) {
@@ -648,7 +652,8 @@ export default defineComponent({
         return {
           text: item.track + (instrumentName ? `(${instrumentName})` : ''),
           value: index,
-          xmlValue: item.index
+          xmlValue: item.index,
+          track: item.track
         }
       })
     })
@@ -884,8 +889,14 @@ export default defineComponent({
                     color="linear-gradient(270deg, #FF3C81 0%, #FF76A6 100%)"
                     onClick={() => {
                       player.value && player.value.stop()
+                      const item: any = partColumns.value.find(
+                        (c: any) => c.value === staffData.partIndex
+                      )
+                      const index = staffData.tempPartList.findIndex(
+                        (i: any) => i.track === item?.track
+                      )
                       musicBuy(musicDetail.value, () => {}, {
-                        'part-index': staffData.partIndex || 0,
+                        'part-index': index || 0,
                         sett: staff.radio
                       })
                     }}

+ 10 - 1
src/views/music/music-detail/index.tsx

@@ -571,6 +571,7 @@ export default defineComponent({
       iframeRef: null as any,
       partIndex: 0,
       partXmlIndex: 0,
+      tempPartList: [] as any[],
       partList: [] as any[],
       xmlPartList: [] as any[]
     })
@@ -636,6 +637,7 @@ export default defineComponent({
             part.index = item.value
           }
         })
+        staffData.tempPartList = JSON.parse(JSON.stringify(staffData.partList))
         staffData.partList = instrumentSort(staffData.partList)
         staffData.partXmlIndex = staffData.partList[0].index || 0
 
@@ -670,7 +672,8 @@ export default defineComponent({
         return {
           text: item.track + (instrumentName ? `(${instrumentName})` : ''),
           value: index,
-          xmlValue: item.index
+          xmlValue: item.index,
+          track: item.track
         }
       })
     })
@@ -990,6 +993,12 @@ export default defineComponent({
                     color="linear-gradient(180deg, #59E5D5 0%, #2DC7AA 100%)"
                     onClick={() => {
                       player.value && player.value.stop()
+                      const item: any = partColumns.value.find(
+                        (c: any) => c.value === staffData.partIndex
+                      )
+                      const index = staffData.tempPartList.findIndex(
+                        (i: any) => i.track === item?.track
+                      )
                       musicBuy(musicDetail.value, () => {}, {
                         'part-index': staffData.partIndex || 0,
                         sett: staff.radio