瀏覽代碼

Update music-list.tsx

lex 1 年之前
父節點
當前提交
8ea619822e
共有 1 個文件被更改,包括 29 次插入13 次删除
  1. 29 13
      src/views/accompany/music-list.tsx

+ 29 - 13
src/views/accompany/music-list.tsx

@@ -210,19 +210,35 @@ export default defineComponent({
       partIndex: 0,
       partList: [] as any[]
     })
-    const getPartNames = async (xmlUrl: string) => {
-      const partNames: any[] = []
-      showLoadingToast('加载中...')
+    const getPartNames = async (item: any) => {
+      let partNames: any[] = []
+      // showLoadingToast('加载中...')
+      // try {
+      //   const res = await fetch(xmlUrl).then((response) => response.text())
+      //   const xml = new DOMParser().parseFromString(res, 'text/xml')
+      //   let parts = Array.from(xml.getElementsByTagName('part-name'))
+      //   parts = parts.filter((n) => !n.textContent?.toLocaleUpperCase()?.includes('COMMON'))
+      //   for (let i = 0; i < parts.length; i++) {
+      //     const name = getInstrumentName(parts[i].textContent || '')
+      //     partNames.push({ text: name ? parts[i].textContent + `(${name})` : parts[i].textContent || '', value: i })
+      //   }
+      //   closeToast()
+      // } catch (error) {
+      //   console.log(error)
+      // }
       try {
-        const res = await fetch(xmlUrl).then((response) => response.text())
-        const xml = new DOMParser().parseFromString(res, 'text/xml')
-        let parts = Array.from(xml.getElementsByTagName('part-name'))
-        parts = parts.filter((n) => !n.textContent?.toLocaleUpperCase()?.includes('COMMON'))
-        for (let i = 0; i < parts.length; i++) {
-          const name = getInstrumentName(parts[i].textContent || '')
-          partNames.push({ text: name ? parts[i].textContent + `(${name})` : parts[i].textContent || '', value: i })
-        }
-        closeToast()
+        const { data } = await request.get('/api-teacher/musicSheet/detail/' + item.id)
+        let partList = data.background || []
+        partList = partList.filter(
+          (item: any) => !item.track?.toLocaleUpperCase()?.includes('COMMON')
+        )
+        partNames = partList.map((item: any, index: number) => {
+          const instrumentName = getInstrumentName(item.track)
+          return {
+            text: item.track + (instrumentName ? `(${instrumentName})` : ''),
+            value: index
+          }
+        })
       } catch (error) {
         console.log(error)
       }
@@ -236,7 +252,7 @@ export default defineComponent({
         staffData.open = true
         return Promise.resolve()
       }
-      staffData.musicXml[item.id] = await getPartNames(item.xmlFileUrl)
+      staffData.musicXml[item.id] = await getPartNames(item)
       staffData.instrumentName = item.id
       staffData.open = true
     }