Browse Source

更新编号问题

lex 6 months ago
parent
commit
bfeb3b4d92
2 changed files with 90 additions and 63 deletions
  1. 88 61
      src/views/music-library/music-sheet/modal/music-operation.tsx
  2. 2 2
      vite.config.ts

+ 88 - 61
src/views/music-library/music-sheet/modal/music-operation.tsx

@@ -371,7 +371,10 @@ export default defineComponent({
             musicTag: '-1',
             multiTracksSelection: forms.multiTracksSelection.join(','),
             musicSheetSoundList: forms.musicSheetSoundList.filter((next: any) => {
-              return !!next.audioFileUrl && (!next.track || forms.multiTracksSelection.includes(next.track))
+              return (
+                !!next.audioFileUrl &&
+                (!next.track || forms.multiTracksSelection.includes(next.track))
+              )
             }),
             musicalInstrumentIds: forms.musicalInstrumentIdList.join(','),
             extConfigJson: JSON.stringify({
@@ -416,7 +419,12 @@ export default defineComponent({
         } catch (error) {}
 
         forms.musicSheetSoundList = forms.musicSheetSoundList.filter((item: any) => {
-         return (!item.track || !containOther(item.track) || (item.track?.toLocaleUpperCase?.() != 'COMMON' && forms.multiTracksSelection.includes(item.track)))
+          return (
+            !item.track ||
+            !containOther(item.track) ||
+            (item.track?.toLocaleUpperCase?.() != 'COMMON' &&
+              forms.multiTracksSelection.includes(item.track))
+          )
         })
         state.partListNames = getPartListNames(res?.target?.result as any) as any
         parseInstrumentAndSubject(res?.target?.result as any)
@@ -424,7 +432,7 @@ export default defineComponent({
 
         let map = new Map<String, String>()
         for (let i = 0; i < forms.musicSheetSoundList.length; i++) {
-          let track = forms.musicSheetSoundList[i].track;
+          let track = forms.musicSheetSoundList[i].track
           if (track) {
             map.set(track, forms.musicSheetSoundList[i])
           }
@@ -433,20 +441,24 @@ export default defineComponent({
         let newMusicSheetSoundList = []
         let tracks = [] as any
         for (let j = 0; j < state.partListNames.length; j++) {
-          let track = state.partListNames[j].value;
+          let track = state.partListNames[j].value
           if (map.has(track)) {
             newMusicSheetSoundList.push(map.get(track))
           } else {
-            newMusicSheetSoundList.push({audioFileUrl: null, track: track, musicalInstrumentId: null})
+            newMusicSheetSoundList.push({
+              audioFileUrl: null,
+              track: track,
+              musicalInstrumentId: null
+            })
           }
           tracks.push(track)
-          if(!forms.multiTracksSelection.includes(track)) {
+          if (!forms.multiTracksSelection.includes(track)) {
             forms.multiTracksSelection.push(track)
           }
         }
 
         for (let i = 0; i < forms.musicSheetSoundList.length; i++) {
-          let track = forms.musicSheetSoundList[i].track;
+          let track = forms.musicSheetSoundList[i].track
           if (!track || !tracks.includes(track)) {
             forms.musicSheetSoundList[i].track = null
             newMusicSheetSoundList.push(forms.musicSheetSoundList[i])
@@ -491,8 +503,13 @@ export default defineComponent({
 
     const validSoundNum = () => {
       return forms.musicSheetSoundList.filter((item: any) => {
-        return (!item.track || !containOther(item.track) || (item.track?.toLocaleUpperCase?.() != 'COMMON' && forms.multiTracksSelection.includes(item.track)))
-      }).length;
+        return (
+          !item.track ||
+          !containOther(item.track) ||
+          (item.track?.toLocaleUpperCase?.() != 'COMMON' &&
+            forms.multiTracksSelection.includes(item.track))
+        )
+      }).length
     }
 
     const parseInstrumentAndSubject = (xml: any) => {
@@ -500,10 +517,12 @@ export default defineComponent({
       const xmlParse = new DOMParser().parseFromString(xml, 'text/xml')
       // 乐器
       const instrumentCodeList: any = []
-      const instrumentEle = xmlParse.getElementsByTagName('virtual-instrument')
+      // const instrumentEle = xmlParse.getElementsByTagName('score-part')
+      const instrumentEle: any =
+        xmlParse.getElementsByTagName('part-list')?.[0]?.getElementsByTagName('score-part') || []
       for (let index = 0; index < instrumentEle.length; index++) {
         const note = instrumentEle[index]
-        let instrumentCode = note.getElementsByTagName('virtual-name')?.[0]?.textContent || ''
+        let instrumentCode = note.getElementsByTagName('part-name')?.[0]?.textContent || ''
         instrumentCode = instrumentCode.toLocaleLowerCase().trim()
         if (instrumentCode && !instrumentCodeList.includes(instrumentCode)) {
           instrumentCodeList.push(instrumentCode)
@@ -539,6 +558,7 @@ export default defineComponent({
         }
       })
       forms.musicalInstrumentIdList = []
+
       instrumentCodeList.forEach((code: string) => {
         if (codeIdMap.has(code)) {
           forms.musicalInstrumentIdList.push(codeIdMap.get(code))
@@ -736,14 +756,14 @@ export default defineComponent({
     // 声轨数据兼容
     const formatTrack = (track: string) => {
       if (!track) {
-        return '';
+        return ''
       }
-      const trim = track.trim().toUpperCase();
+      const trim = track.trim().toUpperCase()
       // 导入后的脏数据兼容
       if (trim == 'P1' || trim == 'NULL') {
-        return '';
+        return ''
       }
-      return track.trim();
+      return track.trim()
     }
 
     onMounted(async () => {
@@ -831,9 +851,8 @@ export default defineComponent({
               }
             })
             state.subjectList = state.subjectList.filter((subject: any) => {
-              return (!subject.disabled || subjectIds.includes(subject.value));
+              return !subject.disabled || subjectIds.includes(subject.value)
             })
-
           }
           forms.musicalInstrumentIdList = data.musicalInstrumentIds
             ? data.musicalInstrumentIds.split(',')
@@ -867,16 +886,20 @@ export default defineComponent({
               // 初始化音轨和原音
               let tracks = state.partListNames.map((next: any) => next.label)
               if (data.multiTracksSelection) {
-                forms.multiTracksSelection = data.multiTracksSelection.toLocaleUpperCase().split(',')
+                forms.multiTracksSelection = data.multiTracksSelection
+                  .toLocaleUpperCase()
+                  .split(',')
               } else {
-                forms.multiTracksSelection.push('');
+                forms.multiTracksSelection.push('')
               }
-              forms.multiTracksSelection = tracks.filter((next: any) => forms.multiTracksSelection.includes(next.toLocaleUpperCase()))
+              forms.multiTracksSelection = tracks.filter((next: any) =>
+                forms.multiTracksSelection.includes(next.toLocaleUpperCase())
+              )
 
               const existSoundList = data.musicSheetSoundList ? data.musicSheetSoundList : []
               // 如果只有一个原音文件,并且原音没有对应声轨,取xml解析中的第一个声轨绑定当当前原音
               if (existSoundList.length === 1 && !formatTrack(existSoundList[0].track)) {
-                let track = state.partListNames.length > 0 ? state.partListNames[0].value : null;
+                let track = state.partListNames.length > 0 ? state.partListNames[0].value : null
                 forms.musicSheetSoundList.push({
                   audioFileUrl: existSoundList[0].audioFileUrl, // 原音
                   musicalInstrumentId: existSoundList[0].musicalInstrumentId,
@@ -1494,44 +1517,45 @@ export default defineComponent({
                             }
                           ]}
                         >
-                          <NCheckboxGroup v-model:value={forms.multiTracksSelection}
-                                          onUpdateValue={(val: any) => {
-                                            if (state.partListNames.length != val.length) {
-                                              state.multiTracks = null
-                                            }else {
-                                              state.multiTracks = 'all'
-                                            }
-                                          //
-                                          //   let removeTracks = [] as any
-                                          //   for (let i = 0; i < forms.multiTracksSelection.length; i++) {
-                                          //     let track = forms.musicSheetSoundList[i].track
-                                          //     if (!val.includes(track)) {
-                                          //       removeTracks.push(track)
-                                          //     }
-                                          //   }
-                                          //   // 新增
-                                          //   for (let i = 0; i < val.length; i++) {
-                                          //     let track = val.value;
-                                          //     let contain = false
-                                          //     for (let j = 0; j < forms.musicSheetSoundList.length; j++) {
-                                          //       let track1 = forms.musicSheetSoundList[i].track;
-                                          //       if (track == track1) {
-                                          //         contain = true
-                                          //         break
-                                          //       }
-                                          //     }
-                                          //     if (!contain) {
-                                          //       forms.musicSheetSoundList.push({audioFileUrl: null, track: track, musicalInstrumentId: null})
-                                          //     }
-                                          //   }
-                                          //   // 删除
-                                          //   if (removeTracks.length > 0) {
-                                          //     forms.musicSheetSoundList = forms.musicSheetSoundList.filter((val: any) => {
-                                          //       return removeTracks.includes(val)
-                                          //     })
-                                          //   }
-                                          //   forms.multiTracksSelection = val
-                                          }}
+                          <NCheckboxGroup
+                            v-model:value={forms.multiTracksSelection}
+                            onUpdateValue={(val: any) => {
+                              if (state.partListNames.length != val.length) {
+                                state.multiTracks = null
+                              } else {
+                                state.multiTracks = 'all'
+                              }
+                              //
+                              //   let removeTracks = [] as any
+                              //   for (let i = 0; i < forms.multiTracksSelection.length; i++) {
+                              //     let track = forms.musicSheetSoundList[i].track
+                              //     if (!val.includes(track)) {
+                              //       removeTracks.push(track)
+                              //     }
+                              //   }
+                              //   // 新增
+                              //   for (let i = 0; i < val.length; i++) {
+                              //     let track = val.value;
+                              //     let contain = false
+                              //     for (let j = 0; j < forms.musicSheetSoundList.length; j++) {
+                              //       let track1 = forms.musicSheetSoundList[i].track;
+                              //       if (track == track1) {
+                              //         contain = true
+                              //         break
+                              //       }
+                              //     }
+                              //     if (!contain) {
+                              //       forms.musicSheetSoundList.push({audioFileUrl: null, track: track, musicalInstrumentId: null})
+                              //     }
+                              //   }
+                              //   // 删除
+                              //   if (removeTracks.length > 0) {
+                              //     forms.musicSheetSoundList = forms.musicSheetSoundList.filter((val: any) => {
+                              //       return removeTracks.includes(val)
+                              //     })
+                              //   }
+                              //   forms.multiTracksSelection = val
+                            }}
                           >
                             <NGrid yGap={2} cols={4}>
                               {state.partListNames.map((item: any) => (
@@ -1682,7 +1706,7 @@ export default defineComponent({
                               path={`musicSheetSoundList[${index}].track`}
                               rule={[
                                 {
-                                  required: validSoundNum() > 1 && item.track ==null,
+                                  required: validSoundNum() > 1 && item.track == null,
                                   message: '请选择所属轨道'
                                 }
                               ]}
@@ -1712,7 +1736,10 @@ export default defineComponent({
                                     )
                                   }
 
-                                  if (value != null && !forms.multiTracksSelection.includes(value)) {
+                                  if (
+                                    value != null &&
+                                    !forms.multiTracksSelection.includes(value)
+                                  ) {
                                     forms.multiTracksSelection.push(value)
                                   }
                                   item.track = value

+ 2 - 2
vite.config.ts

@@ -20,8 +20,8 @@ function pathResolve(dir: string) {
 
 // const proxyUrl = 'https://dev.lexiaoya.cn'
 // const proxyUrl = 'http://127.0.0.1:7293/'
-// const proxyUrl = 'https://resource.colexiu.com/'
-const proxyUrl = 'https://dev.resource.colexiu.com'
+const proxyUrl = 'https://mec.colexiu.com/'
+// const proxyUrl = 'https://dev.resource.colexiu.com'
 // https://test.resource.colexiu.com/
 
 export default ({ command, mode }: ConfigEnv): UserConfig => {