| 
					
				 | 
			
			
				@@ -1,4 +1,4 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import type {SelectOption} from 'naive-ui' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import type { SelectOption } from 'naive-ui' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   NAlert, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   NButton, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -16,22 +16,25 @@ import { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   NRadioGroup, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   NSelect, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   NSpace, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  NSpin, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   useDialog, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   useMessage 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } from 'naive-ui' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import {defineComponent, onMounted, PropType, reactive, ref} from 'vue' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import {musicSheetCategoriesQueryTree, musicSheetDetail, musicSheetSave} from '../../api' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { defineComponent, onMounted, onUnmounted, PropType, reactive, ref } from 'vue' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { musicSheetCategoriesQueryTree, musicSheetDetail, musicSheetSave } from '../../api' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import UploadFile from '@/components/upload-file' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import styles from './index.module.less' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import deepClone from '@/utils/deep.clone' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import axios from 'axios' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import {appKey, clientType, musicSheetSourceType, musicSheetType} from "@/utils/constant"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import {getMapValueByKey, getSelectDataFromObj} from "@/utils/objectUtil"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import {musicalInstrumentPage} from "@views/system-manage/subject-manage/api"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import {subjectPage} from "@views/system-manage/api"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import MusicSheetOwnerDialog from "@views/music-library/music-sheet/modal/musicSheetOwnerDialog"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import {sysApplicationPage} from "@views/menu-manage/api"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import {filterPointCategory} from "@views/teaching-manage/unit-test"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { appKey, clientType, musicSheetSourceType, musicSheetType } from '@/utils/constant' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { getMapValueByKey, getSelectDataFromObj } from '@/utils/objectUtil' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { musicalInstrumentPage } from '@views/system-manage/subject-manage/api' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { subjectPage } from '@views/system-manage/api' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import MusicSheetOwnerDialog from '@views/music-library/music-sheet/modal/musicSheetOwnerDialog' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { sysApplicationPage } from '@views/menu-manage/api' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { filterPointCategory } from '@views/teaching-manage/unit-test' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { api_uploadFile } from '@/plugins/uploadFile' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import MusicCreateImg from './music-create-img' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * 获取指定元素下一个Note元素 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -59,7 +62,7 @@ export const onlyVisible = (xml: any, partIndex: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (!xml) return '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   const xmlParse = new DOMParser().parseFromString(xml, 'text/xml') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   const partList = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      xmlParse.getElementsByTagName('part-list')?.[0]?.getElementsByTagName('score-part') || [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    xmlParse.getElementsByTagName('part-list')?.[0]?.getElementsByTagName('score-part') || [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   const parts = xmlParse.getElementsByTagName('part') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   const visiblePartInfo = partList[partIndex] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (visiblePartInfo) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -306,7 +309,10 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       repeatedBeats: false, // 是否重复节拍时长 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       evaluationStandard: 'FREQUENCY', // 评分标准 节奏 AMPLITUDE 音准 FREQUENCY 分贝 DECIBELS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       multiTracksSelection: [] as any, // 声轨 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      musicSheetExtend: {} as any,//所属人信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      musicSheetExtend: {} as any, //所属人信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      musicImg: '', // 五线谱图片 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      musicSvg: '', //首调图片 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      musicJianSvg: '' // 简谱固定调 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const state = reactive({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       loading: false, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -323,8 +329,13 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       showMusicSheetOwnerDialog: false, //所属人弹框 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       // musicSheetOwnerData: {}, //所属人信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       multiTracks: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      appData: [],// 应用列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ownerName: null as any,// 所属人名称描述 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      appData: [], // 应用列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ownerName: null as any, // 所属人名称描述 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      productOpen: false, // 是否打开自动生成图片 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      productItem: {} as any, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      productIfameSrc: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      isAutoSave: false // 是否自动保存 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const gradualData = reactive({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       list: [] as any[], 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -342,6 +353,11 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!state.isAutoSave) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          state.isAutoSave = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          state.productOpen = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           //extConfigJson: {"repeatedBeats":0,"gradualTimes":{"75":"02:38:60","77":"02:43:39"}} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           const obj = { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -349,10 +365,13 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             musicTag: '-1', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             multiTracksSelection: forms.multiTracksSelection.join(','), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             musicSheetSoundList: forms.musicSheetSoundList.filter((next: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              return !!next.audioFileUrl && forms.multiTracksSelection.includes(next.track); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              return !!next.audioFileUrl && forms.multiTracksSelection.includes(next.track) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             musicalInstrumentIds: forms.musicalInstrumentIdList.join(','), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            extConfigJson: JSON.stringify({repeatedBeats: forms.repeatedBeats ? 1 : 0, gradualTimes: forms.graduals}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            extConfigJson: JSON.stringify({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              repeatedBeats: forms.repeatedBeats ? 1 : 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              gradualTimes: forms.graduals 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             subjectIds: forms.subjectIds.join(',') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           if (forms.audioType == 'MIDI') { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -363,7 +382,7 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             await musicSheetSave(obj) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             message.success('添加成功') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } else if (props.type === 'edit') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            await musicSheetSave({...obj, id: props.data.id}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            await musicSheetSave({ ...obj, id: props.data.id }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             message.success('修改成功') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           emit('getList') 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -383,22 +402,25 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       xmlRead.onload = (res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           gradualData.list = getGradualLengthByXml(res?.target?.result as any).filter( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              (item: any) => item.length === 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            (item: any) => item.length === 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } catch (error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (error) {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         state.partListNames = getPartListNames(res?.target?.result as any) as any 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         parseInstrumentAndSubject(res?.target?.result as any) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 这里是如果没有当前音轨就重新写 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (let j = 0; j < state.partListNames.length; j++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           if (!forms.musicSheetSoundList[j]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            forms.musicSheetSoundList.push({audioFileUrl: null, track: null}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            forms.musicSheetSoundList.push({ audioFileUrl: null, track: null }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           forms.musicSheetSoundList[j].track = state.partListNames[j].value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 循环添加所在音轨的原音 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for (let index = forms.musicSheetSoundList.length; index < state.partListNames.length; index++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          let index = forms.musicSheetSoundList.length; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          index < state.partListNames.length; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          index++ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           const part = state.partListNames[index].value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           const sysData = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             ...forms.musicSheetSoundList[0], 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -411,10 +433,8 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (forms.musicSheetSoundList.length == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          forms.musicSheetSoundList.push({audioFileUrl: '', track: ''}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          forms.musicSheetSoundList.push({ audioFileUrl: '', track: '' }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       xmlRead.readAsText(file) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -454,7 +474,7 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (!xml) return [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const xmlParse = new DOMParser().parseFromString(xml, 'text/xml') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const partList = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          xmlParse.getElementsByTagName('part-list')?.[0]?.getElementsByTagName('score-part') || [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        xmlParse.getElementsByTagName('part-list')?.[0]?.getElementsByTagName('score-part') || [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const partListNames = Array.from(partList).map((item) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const part = item.getElementsByTagName('part-name')?.[0].textContent || '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -478,36 +498,38 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       // 乐器 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // const instrumentCodeList: any = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // const instrumentEle = xmlParse.getElementsByTagName('virtual-instrument'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // for (let index = 0; index < instrumentEle.length; index++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //   const note = instrumentEle[index] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //   const instrumentCode = note.getElementsByTagName('virtual-name')?.[0]?.textContent || ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //   if (instrumentCode && !instrumentCodeList.includes(instrumentCode)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //     instrumentCodeList.push(instrumentCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // const codeIdMap = new Map<string, string>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // state.instrumentData.forEach((data: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //   codeIdMap.set(data.code, data.id + ''); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // forms.musicalInstrumentIdList = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // instrumentCodeList.forEach((code: string) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //   if (codeIdMap.has(code)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //     forms.musicalInstrumentIdList.push(codeIdMap.get(code)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // // 声部 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // if (forms.musicalInstrumentIdList.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //   showBackSubject(forms.musicalInstrumentIdList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const instrumentCodeList: any = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const instrumentEle = xmlParse.getElementsByTagName('virtual-instrument') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      for (let index = 0; index < instrumentEle.length; index++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const note = instrumentEle[index] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const instrumentCode = note.getElementsByTagName('virtual-name')?.[0]?.textContent || '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (instrumentCode && !instrumentCodeList.includes(instrumentCode)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          instrumentCodeList.push(instrumentCode) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const codeIdMap = new Map<string, string>() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      state.instrumentData.forEach((data: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        codeIdMap.set(data.code, data.id + '') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      forms.musicalInstrumentIdList = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      instrumentCodeList.forEach((code: string) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (codeIdMap.has(code)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          forms.musicalInstrumentIdList.push(codeIdMap.get(code)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 声部 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (forms.musicalInstrumentIdList.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        showBackSubject(forms.musicalInstrumentIdList) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       return partListNames 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 判断选择的音轨是否在选中 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const initPartsListStatus = (track: string): any => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const _names = state.partListNames.filter((n: any) => n.value?.toLocaleUpperCase?.() != 'COMMON') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const _names = state.partListNames.filter( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        (n: any) => n.value?.toLocaleUpperCase?.() != 'COMMON' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const partListNames = deepClone(_names) || [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       partListNames.forEach((item: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const index = forms.musicSheetSoundList.findIndex((ground: any) => item.value == ground.track) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -528,13 +550,16 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 反显声部 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const showBackSubject = async (musicalInstrumentIdList: []) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const {data} = await subjectPage({page: 1, rows: 999, musicalInstrumentIdList: musicalInstrumentIdList}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const { data } = await subjectPage({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          page: 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          rows: 999, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          musicalInstrumentIdList: musicalInstrumentIdList 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const tempList = data.rows || [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         tempList.forEach((item: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           forms.subjectIds.push(item.id + '') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } catch { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } catch {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 添加原音 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -560,7 +585,7 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const checkMultiTracks = (value: string) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (!value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (value === 'all') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         forms.multiTracksSelection = [] 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -569,7 +594,7 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } else if (value === 'invert') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         state.partListNames.forEach((next: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          const indexOf = forms.multiTracksSelection.indexOf(next.value); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const indexOf = forms.multiTracksSelection.indexOf(next.value) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           if (indexOf > -1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             forms.multiTracksSelection.splice(indexOf, 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } else { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -581,26 +606,27 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const setOwnerName = (() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const setOwnerName = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (forms.sourceType == 'PLATFORM') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         state.ownerName = '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (!forms.musicSheetExtend || !forms.sourceType || !forms.musicSheetExtend?.userId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const appId = forms.musicSheetExtend.applicationId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const appId = forms.musicSheetExtend.applicationId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const app = state.appData.filter((next: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return next.id == appId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }) as any; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }) as any 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (app.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         state.ownerName = app[0].appName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (forms.sourceType == 'ORG') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         state.ownerName += '-' + forms.musicSheetExtend.organizationRole 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } else if (forms.sourceType == 'PERSON') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        state.ownerName += '-' + getMapValueByKey(forms.musicSheetExtend.clientType, new Map(Object.entries(clientType))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        state.ownerName += 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          '-' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          getMapValueByKey(forms.musicSheetExtend.clientType, new Map(Object.entries(clientType))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (forms.musicSheetExtend.userName) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           state.ownerName += '-' + forms.musicSheetExtend.userName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -608,7 +634,7 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           state.ownerName += '(' + forms.musicSheetExtend.phone + ')' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     onMounted(async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       state.loading = true 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -621,7 +647,7 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          const {data} = await musicalInstrumentPage({page: 1, rows: 999}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const { data } = await musicalInstrumentPage({ page: 1, rows: 999 }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           const tempList = data.rows || [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           state.instrumentData = tempList 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           tempList.forEach((item: any) => { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -630,8 +656,7 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             item.disabled = !item.enableFlag 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           state.instrumentList = tempList 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } catch { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       state.subjectList = deepClone(props.subjectList) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       state.subjectList.forEach((subject: any) => { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -640,13 +665,13 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       // 初始化应用 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const appKeys = Object.keys(appKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const appKeys = Object.keys(appKey) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const {data} = await sysApplicationPage({page: 1, rows: 999, parentId: 0}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const { data } = await sysApplicationPage({ page: 1, rows: 999, parentId: 0 }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const tempList = data.rows || [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const filter = tempList.filter((next: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           return appKeys.includes(next.appKey) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         filter.forEach((item: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           item.label = item.appName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           item.value = item.id 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -657,20 +682,19 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       // 获取分类信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          const {data} = await musicSheetCategoriesQueryTree({enable: true}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const { data } = await musicSheetCategoriesQueryTree({ enable: true }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           state.musicSheetCategories = filterPointCategory(data, 'musicSheetCategoriesList') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } catch (e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (e) {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (props.type === 'edit' || props.type === 'preview') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const detail = props.data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          const {data} = await musicSheetDetail({id: detail.id}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const { data } = await musicSheetDetail({ id: detail.id }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           forms.audioType = data.audioType 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           forms.musicSheetAccompanimentList = data.musicSheetAccompanimentList 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           data.musicSheetAccompanimentList?.forEach((next: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            state.musicSheetAccompanimentUrlList.push(next.audioFileUrl); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            state.musicSheetAccompanimentUrlList.push(next.audioFileUrl) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           forms.playMode = data.playMode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           forms.xmlFileUrl = data.xmlFileUrl 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -689,26 +713,26 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           forms.status = data.status 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           forms.musicCategoryId = data.musicCategoryId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          forms.musicSheetType = data.musicSheetType || "SINGLE" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          forms.musicSheetType = data.musicSheetType || 'SINGLE' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           forms.evaluationStandard = data.evaluationStandard 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           forms.musicalInstrumentIdList = data.musicalInstrumentIds.split(',') || [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           forms.subjectIds = data.subjectIds?.split(',') || [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           forms.sourceType = data.sourceType 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           forms.musicSheetExtend = data.musicSheetExtend 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          forms.repeatedBeats = data.isPlayBeat 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           // 获取渐变 和 是否多声部 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const extConfigJson = data.extConfigJson ? JSON.parse(data.extConfigJson) : {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             forms.graduals = extConfigJson.gradualTimes || {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          } catch (error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } catch (error) {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           setOwnerName() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           axios.get(data.xmlFileUrl).then((res: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (res?.data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               gradualData.list = getGradualLengthByXml(res?.data as any).filter( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  (item: any) => item.length === 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                (item: any) => item.length === 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               state.partListNames = getPartListNames(res?.data as any) as any 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -719,9 +743,7 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } catch (error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (error) {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 新增只能使用启用状态的数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         state.subjectList = state.subjectList.filter((next: any) => { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -732,20 +754,22 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       state.loading = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return () => ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        <div style="background: #fff; padding-top: 12px"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <div style="background: #fff; padding-top: 12px"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <NSpin show={state.loading}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           <NForm 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              class={styles.formContainer} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              model={forms} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              ref={formsRef} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              label-placement="left" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              label-width="130" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              disabled={state.previewMode} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            class={styles.formContainer} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            model={forms} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ref={formsRef} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            label-placement="left" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            label-width="130" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            disabled={state.previewMode} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <NAlert showIcon={false} style={{marginBottom: "12px"}}>曲目信息</NAlert> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <NAlert showIcon={false} style={{ marginBottom: '12px' }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              曲目信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </NAlert> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <NGrid cols={2}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               <NFormItemGi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   label="曲目名称" 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -759,10 +783,10 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 <NInput 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    v-model:value={forms.name} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    placeholder="请输入曲目名称" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    maxlength={25} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    showCount 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  v-model:value={forms.name} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  placeholder="请输入曲目名称" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  maxlength={25} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  showCount 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               </NFormItemGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               <NFormItemGi 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -776,184 +800,200 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <NInput v-model:value={forms.composer} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        placeholder="请输入音乐人名称" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        showCount 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        maxlength={14} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <NInput 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  v-model:value={forms.composer} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  placeholder="请输入音乐人名称" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  showCount 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  maxlength={14} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               </NFormItemGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             </NGrid> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <NGrid cols={2}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               <NFormItemGi label="曲目描述" path="remark"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 <NInput 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    placeholder="请输入曲目描述" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    type="textarea" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    rows={4} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    showCount 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    maxlength={200} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    v-model:value={forms.remark} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  placeholder="请输入曲目描述" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  type="textarea" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  rows={4} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  showCount 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  maxlength={200} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  v-model:value={forms.remark} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               </NFormItemGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <NFormItemGi label="曲目封面" path="musicCover" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                           rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                               required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                               message: "请上传曲目封面" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                           ]}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <NFormItemGi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                label="曲目封面" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                path="musicCover" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    message: '请上传曲目封面', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    trigger:['input','blur'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 <UploadFile 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    desc={'封面图'} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    disabled={state.previewMode} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    accept=".jpg,.jpeg,.png" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    tips="请上传大小1M以内的JPG、PNG图片" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    size={1} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    v-model:fileList={forms.musicCover} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    cropper 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    bucketName="cbs" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    options={{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      autoCrop: true, //是否默认生成截图框 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      enlarge: 2, //  图片放大倍数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      autoCropWidth: 200, //默框高度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      fixedBox: true, //是否固定截图框大认生成截图框宽度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      autoCropHeight: 200, //默认生成截图小 不允许改变 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      previewsCircle: false, //预览图是否是原圆形 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      title: '曲目封面' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  desc={'封面图'} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  disabled={state.previewMode} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  accept=".jpg,.jpeg,.png" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  tips="请上传大小1M以内的JPG、PNG图片" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  size={1} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  v-model:fileList={forms.musicCover} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  cropper 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  bucketName="cbs" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  options={{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    autoCrop: true, //是否默认生成截图框 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    enlarge: 2, //  图片放大倍数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    autoCropWidth: 200, //默框高度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    fixedBox: true, //是否固定截图框大认生成截图框宽度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    autoCropHeight: 200, //默认生成截图小 不允许改变 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    previewsCircle: false, //预览图是否是原圆形 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    title: '曲目封面' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               </NFormItemGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             </NGrid> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <NGrid cols={2}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               <NFormItemGi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  label="曲目类型" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  path="musicSheetType" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      message: '请选择曲目类型' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                label="曲目类型" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                path="musicSheetType" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    message: '请选择曲目类型', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    trigger:'change' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 <NSelect 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    placeholder="请选择曲目类型" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    v-model:value={forms.musicSheetType} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    options={getSelectDataFromObj(musicSheetType)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  placeholder="请选择曲目类型" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  v-model:value={forms.musicSheetType} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  options={getSelectDataFromObj(musicSheetType)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               </NFormItemGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               <NFormItemGi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  label="作者属性" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  path="sourceType" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      message: '请选择作者属性' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                label="作者属性" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                path="sourceType" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    message: '请选择作者属性', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    trigger:'change' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 <NSelect 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    v-model:value={forms.sourceType} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    options={getSelectDataFromObj(musicSheetSourceType)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    placeholder="请选择作者属性" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    onUpdateValue={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      // 发送变化,清理选择的所属人信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      forms.musicSheetExtend = {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      state.ownerName = null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      // forms.musicSheetExtend.userId = null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      // forms.musicSheetExtend.userName = null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      // forms.musicSheetExtend.applicationId = null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      // forms.musicSheetExtend.organizationRoleId = null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  v-model:value={forms.sourceType} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  options={getSelectDataFromObj(musicSheetSourceType)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  placeholder="请选择作者属性" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  onUpdateValue={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // 发送变化,清理选择的所属人信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    forms.musicSheetExtend = {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    state.ownerName = null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // forms.musicSheetExtend.userId = null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // forms.musicSheetExtend.userName = null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // forms.musicSheetExtend.applicationId = null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // forms.musicSheetExtend.organizationRoleId = null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               </NFormItemGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             </NGrid> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <NGrid cols={2}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               {forms.sourceType === 'PERSON' && ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  <NFormItemGi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      label="所属人" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      path="musicSheetExtend.userId" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          message: '请选择曲目所属人' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <NFormItemGi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  label="所属人" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  path="musicSheetExtend.userId" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      message: '请选择曲目所属人', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      trigger:['input','change'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  <NButton 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    disabled={state.previewMode || !forms.sourceType} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    type="primary" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    size="small" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    text 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //v-auth="orchestraSubsidyStandard/update1597887579789053953" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    onClick={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      state.showMusicSheetOwnerDialog = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    <NButton 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        disabled={state.previewMode || !forms.sourceType} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        type="primary" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        size="small" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        text 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        //v-auth="orchestraSubsidyStandard/update1597887579789053953" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        onClick={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          state.showMusicSheetOwnerDialog = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      {state.ownerName ? state.ownerName : '请选择所属人'} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    </NButton> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  </NFormItemGi>)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    {state.ownerName ? state.ownerName : '请选择所属人'} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  </NButton> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </NFormItemGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              )} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               {forms.sourceType === 'ORG' && ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  <NFormItemGi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      label="所属人" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      path="musicSheetExtend.organizationRoleId" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          message: '请选择曲目所属机构' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <NFormItemGi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  label="所属人" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  path="musicSheetExtend.organizationRoleId" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      message: '请选择曲目所属机构', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      trigger:['input','change'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  <NButton 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    disabled={state.previewMode || !forms.sourceType} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    type="primary" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    size="small" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    text 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //v-auth="orchestraSubsidyStandard/update1597887579789053953" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    onClick={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      state.showMusicSheetOwnerDialog = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    <NButton 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        disabled={state.previewMode || !forms.sourceType} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        type="primary" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        size="small" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        text 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        //v-auth="orchestraSubsidyStandard/update1597887579789053953" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        onClick={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          state.showMusicSheetOwnerDialog = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      {state.ownerName ? state.ownerName : '请选择所属机构'} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    </NButton> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  </NFormItemGi>)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <NFormItemGi label="速度" path="playSpeed" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                           rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                               required: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                               message: '请输入速度' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                           ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    {state.ownerName ? state.ownerName : '请选择所属机构'} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  </NButton> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </NFormItemGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              )} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <NFormItemGi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                label="速度" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                path="playSpeed" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    required: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    message: '请输入速度' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 <NInputNumber 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    placeholder="请输入速度" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    v-model:value={forms.playSpeed} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    style="width:100%" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  placeholder="请输入速度" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  v-model:value={forms.playSpeed} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  style="width:100%" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               </NFormItemGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             </NGrid> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <NGrid cols={2}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <NFormItemGi label="审核版本" path="appAuditFlag" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                           rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                               required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                               message: '请选择曲目所属人' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                           ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <NFormItemGi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                label="审核版本" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                path="appAuditFlag" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    message: '请选择审核版本', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    trigger:'change', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    type:'number' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 <NSelect 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    options={ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          label: '是', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          value: 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          label: '否', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          value: 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      ] as any 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    v-model:value={forms.appAuditFlag} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  options={ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        label: '是', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        value: 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        label: '否', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        value: 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    ] as any 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  v-model:value={forms.appAuditFlag} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               </NFormItemGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               <NFormItemGi label="曲目分类" path="musicCategoryId" 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -961,18 +1001,18 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                              { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                message: '请选择曲目分类', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                               trigger: ['input', 'blur'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                               trigger: ['change'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 <NCascader 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    valueField="id" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    labelField="name" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    children-field="musicSheetCategoriesList" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    placeholder="请选择分类" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    v-model:value={forms.musicCategoryId} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    options={state.musicSheetCategories} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    clearable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  valueField="id" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  labelField="name" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  children-field="musicSheetCategoriesList" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  placeholder="请选择分类" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  v-model:value={forms.musicCategoryId} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  options={state.musicSheetCategories} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  clearable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               </NFormItemGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             </NGrid> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -980,419 +1020,467 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               <NFormItemGi label="重复节拍时长" path="repeatedBeats" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                              { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                               required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                               required: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                message: '请选择是否重复节拍时长' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <NRadioGroup 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    v-model:value={forms.repeatedBeats} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <NRadioGroup v-model:value={forms.repeatedBeats}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   <NRadio value={true}>是</NRadio> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   <NRadio value={false}>否</NRadio> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 </NRadioGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               </NFormItemGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               <NFormItemGi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  label="评分标准" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  path="evaluationStandard" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      required: true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                label="评分标准" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                path="evaluationStandard" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    required: true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <NRadioGroup 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    v-model:value={forms.evaluationStandard} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <NRadioGroup v-model:value={forms.evaluationStandard}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   <NRadio value={'FREQUENCY'}>标准评测</NRadio> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   <NRadio value={'AMPLITUDE'}>打击乐(振幅)</NRadio> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   <NRadio value={'DECIBELS'}>节奏(分贝)</NRadio> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 </NRadioGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               </NFormItemGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             </NGrid> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <NAlert showIcon={false} style={{marginBottom: "12px"}}>曲目上传</NAlert> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <NAlert showIcon={false} style={{ marginBottom: '12px' }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              曲目上传 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </NAlert> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <NGrid cols={2}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <NFormItemGi label="播放模式" path="playMode" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                           rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                               required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                               message: '请选择播放模式' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                           ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <NFormItemGi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                label="播放模式" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                path="playMode" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    message: '请选择播放模式' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 <NRadioGroup 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    v-model:value={forms.playMode} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    onUpdateValue={(value: string | number | boolean) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      if (value === 'MP3') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        forms.playMode = 'MP3' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        forms.playMode = 'MIDI' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  v-model:value={forms.playMode} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  onUpdateValue={(value: string | number | boolean) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (value === 'MP3') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      forms.playMode = 'MP3' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      forms.playMode = 'MIDI' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   <NRadio value="MP3">MP3</NRadio> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   <NRadio value="MIDI">MID</NRadio> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 </NRadioGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               </NFormItemGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               {forms.playMode === 'MP3' && ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  <NFormItemGi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      label="伴奏类型" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      path="audioType" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          message: '请选择伴奏类型' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    <NRadioGroup 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        v-model:value={forms.audioType} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      <NRadio value={'HOMEMODE'}>自制伴奏</NRadio> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      <NRadio value={'COMMON'}>普通伴奏</NRadio> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    </NRadioGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  </NFormItemGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <NFormItemGi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  label="伴奏类型" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  path="audioType" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      message: '请选择伴奏类型' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  <NRadioGroup v-model:value={forms.audioType}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <NRadio value={'HOMEMODE'}>自制伴奏</NRadio> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <NRadio value={'COMMON'}>普通伴奏</NRadio> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  </NRadioGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </NFormItemGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               )} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             </NGrid> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <NGrid cols={2}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               {forms.playMode === 'MP3' && ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  <NFormItemGi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      label="上传伴奏" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      path="musicSheetAccompanimentList" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          required: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          message: '请选择上传.mp3' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    <UploadFile 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        disabled={state.previewMode} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        size={10} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        v-model:imageList={state.musicSheetAccompanimentUrlList} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        tips="仅支持上传.mp3格式文件" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        listType="image" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        accept=".mp3" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        bucketName="cloud-coach" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        text="点击上传伴奏文件" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        max={10} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        desc={'上传伴奏文件'} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        onUpload:success={(file) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          state.musicSheetAccompanimentUrls = [state.musicSheetAccompanimentUrls, file.url].filter(Boolean).join(',') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          state.musicSheetAccompanimentUrlList = state.musicSheetAccompanimentUrls?.split(',').filter(Boolean) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          forms.musicSheetAccompanimentList = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          for (let i = 0; i < state.musicSheetAccompanimentUrlList.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            forms.musicSheetAccompanimentList.push({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                              audioFileUrl: state.musicSheetAccompanimentUrlList[i], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                              sortNumber: i + 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        onRemove={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          state.musicSheetAccompanimentUrlList = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          state.musicSheetAccompanimentUrls = '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        // onReadFileInputEventAsArrayBuffer={readFileInputEventAsArrayBuffer} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        multiple={true} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  </NFormItemGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <NFormItemGi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  label="上传伴奏" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  path="musicSheetAccompanimentList" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      required: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      message: '请选择上传.mp3' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  <UploadFile 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    disabled={state.previewMode} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    size={10} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    v-model:imageList={state.musicSheetAccompanimentUrlList} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    tips="仅支持上传.mp3格式文件" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    listType="image" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    accept=".mp3" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    bucketName="cloud-coach" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    text="点击上传伴奏文件" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    max={10} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    desc={'上传伴奏文件'} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    onUpload:success={(file) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      state.musicSheetAccompanimentUrls = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        state.musicSheetAccompanimentUrls, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        file.url 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .filter(Boolean) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .join(',') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      state.musicSheetAccompanimentUrlList = state.musicSheetAccompanimentUrls 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        ?.split(',') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .filter(Boolean) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      forms.musicSheetAccompanimentList = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      for (let i = 0; i < state.musicSheetAccompanimentUrlList.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        forms.musicSheetAccompanimentList.push({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          audioFileUrl: state.musicSheetAccompanimentUrlList[i], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          sortNumber: i + 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    onRemove={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      state.musicSheetAccompanimentUrlList = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      state.musicSheetAccompanimentUrls = '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // onReadFileInputEventAsArrayBuffer={readFileInputEventAsArrayBuffer} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    multiple={true} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </NFormItemGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               )} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               {forms.playMode === 'MIDI' && ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  <NFormItemGi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      label="上传MID" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      path="midiFileUrl" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          message: '请选择上传.MID格式文件' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    <UploadFile 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        desc={'MIDI文件'} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        disabled={state.previewMode} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        size={10} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        v-model:fileList={forms.midiFileUrl} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        tips="仅支持上传.MID格式文件" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        listType="image" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        accept=".mid" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        bucketName="cloud-coach" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        text="点击上传MID文件" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        // onReadFileInputEventAsArrayBuffer={readFileInputEventAsArrayBuffer} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  </NFormItemGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              )} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <NFormItemGi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  label="上传XML" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  path="xmlFileUrl" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <NFormItemGi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  label="上传MID" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  path="midiFileUrl" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                       required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      message: '请选择上传XML' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      message: '请选择上传.MID格式文件' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <UploadFile 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    desc={'XML文件'} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  <UploadFile 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    desc={'MIDI文件'} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     disabled={state.previewMode} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     size={10} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    v-model:fileList={forms.xmlFileUrl} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    tips="仅支持上传.xml/.mxml格式文件" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    v-model:fileList={forms.midiFileUrl} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    tips="仅支持上传.MID格式文件" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     listType="image" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    accept=".xml,.mxml" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    accept=".mid" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     bucketName="cloud-coach" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    text="点击上传XML文件" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    onReadFileInputEventAsArrayBuffer={readFileInputEventAsArrayBuffer} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    onRemove={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      forms.multiTracksSelection = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      state.partListNames = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      forms.musicSheetSoundList = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      forms.musicalInstrumentIdList = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      forms.subjectIds = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    text="点击上传MID文件" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // onReadFileInputEventAsArrayBuffer={readFileInputEventAsArrayBuffer} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </NFormItemGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              )} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <NFormItemGi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                label="上传XML" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                path="xmlFileUrl" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    message: '请选择上传XML', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    trigger: ['change', 'input'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <UploadFile 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  desc={'XML文件'} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  disabled={state.previewMode} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  size={10} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  key={'xmlFileUrl'} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  v-model:fileList={forms.xmlFileUrl} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  tips="仅支持上传.xml/.mxml格式文件" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  listType="image" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  accept=".xml,.mxml" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  bucketName="cloud-coach" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  text="点击上传XML文件" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  onReadFileInputEventAsArrayBuffer={readFileInputEventAsArrayBuffer} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  onRemove={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    forms.multiTracksSelection = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    state.partListNames = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    forms.musicSheetSoundList = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    forms.musicalInstrumentIdList = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    forms.subjectIds = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               </NFormItemGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             </NGrid> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <NGrid cols={2}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <NFormItemGi label="可用声部" path="subjectIds" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                           rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                               required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                               message: '请选择可用声部' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                           ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <NFormItemGi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                label="可用声部" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                path="subjectIds" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    message: '请选择可用声部', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    trigger: 'change', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    type: 'array' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 <NSelect 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    v-model:value={forms.subjectIds} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    options={state.subjectList} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    multiple 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    filterable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    clearable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    placeholder="请选择可用声部" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    maxTagCount={2} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  v-model:value={forms.subjectIds} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  options={state.subjectList} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  multiple 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  filterable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  clearable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  placeholder="请选择可用声部" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  maxTagCount={2} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               </NFormItemGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <NFormItemGi label="可用乐器" path="musicalInstrumentIdList" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                           rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                               required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                               message: '请选择可用乐器' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                           ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <NFormItemGi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                label="可用乐器" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                path="musicalInstrumentIdList" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    message: '请选择可用乐器', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    trigger: 'change', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    type: 'array' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 <NSelect 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    placeholder="请选择可用乐器" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    options={state.instrumentList} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    v-model:value={forms.musicalInstrumentIdList} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    clearable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    multiple 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    maxTagCount={2} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  placeholder="请选择可用乐器" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  options={state.instrumentList} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  v-model:value={forms.musicalInstrumentIdList} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  clearable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  multiple 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  maxTagCount={2} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               </NFormItemGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             </NGrid> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            {(forms.musicSheetType) && ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <NGrid cols={1}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  <NFormItemGi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      label={`${forms.musicSheetType === 'SINGLE' ? '页面渲染声轨' : '用户可切换声轨'}`} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      path="multiTracksSelection" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          message: `请选择${forms.musicSheetType === 'SINGLE' ? '页面渲染声轨' : '用户可切换声轨'}` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    <NGrid style="padding-top: 4px;"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      <NGi span={24}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        <NRadioGroup 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            v-model:value={state.multiTracks} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            onUpdateValue={(value) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                              checkMultiTracks(value) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          <NRadio value={'all'}>全选</NRadio> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          <NRadio value={'allUncheck'}>重置</NRadio> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          <NRadio value={'invert'}>反选</NRadio> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        </NRadioGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      </NGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      <NGi span={24} style={"margin-top:5px"}><NFormItemGi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          label='' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          path="multiTracksSelection" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                              required: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            {forms.musicSheetType && ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <NGrid cols={1}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <NFormItemGi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  label={`${forms.musicSheetType === 'SINGLE' ? '页面渲染声轨' : '用户可切换声轨'}`} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  path="multiTracksSelection" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      message: `请选择${ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        forms.musicSheetType === 'SINGLE' ? '页面渲染声轨' : '用户可切换声轨' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      }`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      trigger:'change', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      type:'array' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  <NGrid style="padding-top: 4px;"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <NGi span={24}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      <NRadioGroup 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        v-model:value={state.multiTracks} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        onUpdateValue={(value) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          checkMultiTracks(value) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                       > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        <NCheckboxGroup 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            v-model:value={forms.multiTracksSelection} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          <NGrid yGap={2} cols={4} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <NRadio value={'all'}>全选</NRadio> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <NRadio value={'allUncheck'}>重置</NRadio> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <NRadio value={'invert'}>反选</NRadio> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      </NRadioGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    </NGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <NGi span={24} style={'margin-top:5px'}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      <NFormItemGi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        label="" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        path="multiTracksSelection" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            required: false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <NCheckboxGroup v-model:value={forms.multiTracksSelection}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          <NGrid yGap={2} cols={4}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             {state.partListNames.map((item: any) => ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                <NGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                  <NCheckbox value={item.value} label={item.label}/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                </NGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              <NGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                <NCheckbox value={item.value} label={item.label} /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              </NGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             ))} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                           </NGrid> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         </NCheckboxGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      </NFormItemGi></NGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    </NGrid> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  </NFormItemGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                </NGrid> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      </NFormItemGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    </NGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  </NGrid> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </NFormItemGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </NGrid> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            )} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <NGrid cols={2}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <NFormItemGi label="是否播放节拍器" path="isPlayBeat" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                           rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                               required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                               message: '请选择是否播放节拍器' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                           ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <NFormItemGi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                label="是否播放节拍器" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                path="isPlayBeat" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    message: '请选择是否播放节拍器' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <NRadioGroup 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    v-model:value={forms.isPlayBeat} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <NRadioGroup v-model:value={forms.isPlayBeat}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   <NRadio value={true}>是</NRadio> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   <NRadio value={false}>否</NRadio> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 </NRadioGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               </NFormItemGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               {forms.isPlayBeat && ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  <NFormItemGi label="播放方式" path="audioType" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                               rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                   required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                   message: '请选择播放方式' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                               ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    <NRadioGroup 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        v-model:value={forms.isUseSystemBeat} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      <NRadio value={true}>系统节拍器</NRadio> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      <NRadio value={false}>MP3节拍器</NRadio> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    </NRadioGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  </NFormItemGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <NFormItemGi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  label="播放方式" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  path="audioType" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      message: '请选择播放方式' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  <NRadioGroup v-model:value={forms.isUseSystemBeat}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <NRadio value={true}>系统节拍器</NRadio> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <NRadio value={false}>MP3节拍器</NRadio> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  </NRadioGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </NFormItemGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               )} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             </NGrid> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             {/* 只有播放类型为mp3时才会有原音 */} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             {forms.playMode === 'MP3' && forms.musicSheetSoundList.length > 0 && ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  {forms.musicSheetSoundList.map((item: any, index: number) => ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      <> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        {item.track?.toLocaleUpperCase?.() != 'COMMON' && forms.multiTracksSelection.indexOf(item.track) > -1 && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            <NGrid class={styles.audioSection} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                // v-show={forms.multiTracksSelection.indexOf(item.track) > -1} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                {forms.musicSheetSoundList.map((item: any, index: number) => ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  <> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    {item.track?.toLocaleUpperCase?.() != 'COMMON' && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      forms.multiTracksSelection.indexOf(item.track) > -1 && ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <NGrid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          class={styles.audioSection} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          // v-show={forms.multiTracksSelection.indexOf(item.track) > -1} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          <NFormItemGi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            span={12} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            label="原音" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            path={`musicSheetSoundList[${index}].audioFileUrl`} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                // required: forms.multiTracksSelection.indexOf(forms.musicSheetSoundList[index].audioFileUrl) > -1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                message: `请上传${ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                  item.track ? item.track + '的' : '第' + (index + 1) + '个' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                }原音` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            <UploadFile 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              desc={'原音文件'} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              disabled={state.previewMode} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              size={100} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              v-model:fileList={item.audioFileUrl} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              tips="仅支持上传.mp3格式文件" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              listType="image" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              accept=".mp3" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              bucketName="cloud-coach" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          </NFormItemGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          {state.partListNames.length > 1 && ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            <NFormItemGi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              span={12} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              label="所属轨道" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              path={`musicSheetSoundList[${index}].track`} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                  required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                  message: '请选择所属轨道' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                <NFormItemGi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    span={12} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    label="原音" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    path={`musicSheetSoundList[${index}].audioFileUrl`} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                      { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        // required: forms.multiTracksSelection.indexOf(forms.musicSheetSoundList[index].audioFileUrl) > -1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        message: `请上传${ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            item.track ? item.track + '的' : '第' + (index + 1) + '个' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        }原音` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    <UploadFile 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        desc={'原音文件'} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        disabled={state.previewMode} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        size={10} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        v-model:fileList={item.audioFileUrl} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        tips="仅支持上传.mp3格式文件" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        listType="image" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        accept=".mp3" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        bucketName="cloud-coach" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                </NFormItemGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                              {state.partListNames.length > 1 && ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                  <NFormItemGi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                      span={12} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                      label="所属轨道" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                      path={`musicSheetSoundList[${index}].track`} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                      rule={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                          required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                          message: '请选择所属轨道' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                      ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                  > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    <NSelect 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        placeholder="请选择所属轨道" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        v-model:value={item.track} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        options={initPartsListStatus(item.track)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                  </NFormItemGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                              )} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            </NGrid>} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      </> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  ))} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              <NSelect 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                placeholder="请选择所属轨道" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                v-model:value={item.track} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                options={initPartsListStatus(item.track)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            </NFormItemGi> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          )} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        </NGrid> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      )} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  </> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ))} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  <NButton 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      type="primary" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      dashed 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      block 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      disabled={state.partListNames.length <= forms.musicSheetSoundList.length} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      style={{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        marginBottom: '24px' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      onClick={createSys} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    添加原音 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  </NButton> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                </> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <NButton 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  type="primary" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  dashed 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  block 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  disabled={state.partListNames.length <= forms.musicSheetSoundList.length} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  style={{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    marginBottom: '24px' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  onClick={createSys} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  添加原音 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </NButton> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             )} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           </NForm> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </NSpin> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {props.type !== 'preview' && ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <NSpace justify="end" style="padding-top:12px"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <NButton type="default" onClick={() => emit('close')}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              取消 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </NButton> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <NButton 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              type="primary" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              onClick={() => onSubmit()} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              loading={btnLoading.value} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              disabled={btnLoading.value} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              确认 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </NButton> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </NSpace> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        )} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          {props.type !== 'preview' && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  <NSpace justify="end" style="padding-top:12px"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    <NButton type="default" onClick={() => emit('close')}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      取消 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    </NButton> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    <NButton 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        type="primary" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        onClick={() => onSubmit()} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        loading={btnLoading.value} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        disabled={btnLoading.value} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      确认 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    </NButton> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  </NSpace> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              )} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <NModal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          v-model:show={state.showMusicSheetOwnerDialog} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          preset="dialog" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          showIcon={false} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          maskClosable={false} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          title="所属人" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          style={{ width: '800px' }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <MusicSheetOwnerDialog 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            musicSheetExtend={forms.musicSheetExtend} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sourceType={forms.sourceType} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            appData={state.appData} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            onClose={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              state.showMusicSheetOwnerDialog = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            onChoseMusicSheetOwnerData={(musicSheetOwnerData) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              forms.musicSheetExtend = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ...musicSheetOwnerData 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              setOwnerName() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </NModal> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <NModal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              v-model:show={state.showMusicSheetOwnerDialog} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              preset="dialog" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              showIcon={false} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              maskClosable={false} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              title="所属人" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              style={{width: '800px'}} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <MusicSheetOwnerDialog 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                musicSheetExtend={forms.musicSheetExtend} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                sourceType={forms.sourceType} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                appData={state.appData} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                onClose={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  state.showMusicSheetOwnerDialog = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                onChoseMusicSheetOwnerData={(musicSheetOwnerData) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  forms.musicSheetExtend = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    ...musicSheetOwnerData 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  setOwnerName() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          </NModal> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <NModal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          class={styles.productModal} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          title="自动生成曲谱图片" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          v-model:show={state.productOpen} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          preset="dialog" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          closeOnEsc={false} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          maskClosable={false} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          showIcon={false} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <MusicCreateImg 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            xmlFileUrl={forms.xmlFileUrl || ''} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            onClose={() => (state.productOpen = false)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            onConfirm={async (item: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              // 保存 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                forms.musicImg = item.musicImg 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                forms.musicSvg = item.musicSvg 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                forms.musicJianSvg = item.musicJianSvg 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                onSubmit() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              } catch (e: any) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                console.log(e, 'e') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              setTimeout(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                state.isAutoSave = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              }, 50) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </NModal> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }) 
			 |