|
@@ -314,13 +314,13 @@ export default defineComponent({
|
|
|
repeatedBeats: false, // 是否重复节拍时长
|
|
|
evaluationStandard: 'FREQUENCY', // 评分标准 节奏 AMPLITUDE 音准 FREQUENCY 分贝 DECIBELS
|
|
|
multiTracksSelection: [] as any, // 声轨
|
|
|
- multiInstrumentSelection: [] as any, // 乐器
|
|
|
musicSheetExtend: {} as any, //所属人信息
|
|
|
musicImg: '', // 五线谱图片
|
|
|
musicFirstImg: '', //首调图片
|
|
|
musicJianImg: '', // 简谱固定调
|
|
|
isEvxml: false, // 是否是evxml
|
|
|
isShowFingering: true, // 是否显示指法
|
|
|
+ solmizationFileUrl:null, // 唱名文件
|
|
|
})
|
|
|
const state = reactive({
|
|
|
loading: false,
|
|
@@ -380,17 +380,17 @@ export default defineComponent({
|
|
|
musicSheetSoundList.push({
|
|
|
musicSheetId: props.data.id,
|
|
|
audioFileUrl: state.fSongFile,
|
|
|
- audioPlayType: 'SING'
|
|
|
+ audioPlayType: 'SING',
|
|
|
+ solmizationFileUrl:forms.solmizationFileUrl
|
|
|
})
|
|
|
audioPlayTypes.push("SING")
|
|
|
}
|
|
|
if (musicSheetType == 'SINGLE') {
|
|
|
- if (forms.musicSheetSoundList_YZ && forms.musicSheetSoundList_YZ.length > 0) {
|
|
|
+ if (forms.musicalInstrumentIdList) {
|
|
|
audioPlayTypes.push("PLAY")
|
|
|
}
|
|
|
forms.musicSheetSoundList_YZ.forEach((musicSheetSound: any) => {
|
|
|
- if (forms.musicalInstrumentIdList.includes(musicSheetSound.musicalInstrumentId) &&
|
|
|
- forms.multiInstrumentSelection.includes(musicSheetSound.musicalInstrumentId)) {
|
|
|
+ if (forms.musicalInstrumentIdList.includes(musicSheetSound.musicalInstrumentId)) {
|
|
|
musicSheetSoundList.push({
|
|
|
...musicSheetSound,
|
|
|
musicSheetId: props.data.id,
|
|
@@ -424,21 +424,39 @@ export default defineComponent({
|
|
|
|
|
|
|
|
|
const obj = {
|
|
|
- ...forms,
|
|
|
+ musicCategoryId: forms.musicCategoryId,
|
|
|
+ musicCover: forms.musicCover,
|
|
|
+ name: forms.name,
|
|
|
+ appAuditFlag: forms.appAuditFlag,
|
|
|
+ subjectIds: forms.subjectIds.join(','),
|
|
|
+ remark: forms.remark,
|
|
|
audioPlayTypes: audioPlayTypes.join(','),
|
|
|
- musicTag: '-1',
|
|
|
- multiTracksSelection: musicSheetType == 'SINGLE' ? "" : forms.multiTracksSelection.join(','),
|
|
|
- // musicSheetSoundList: forms.musicSheetSoundList.filter((next: any) => {
|
|
|
- // return !!next.audioFileUrl && forms.multiTracksSelection.includes(next.track)
|
|
|
- // }),
|
|
|
- musicSheetSoundList: musicSheetSoundList,
|
|
|
musicalInstrumentIds: forms.musicalInstrumentIdList.join(','),
|
|
|
+ composer: forms.composer,
|
|
|
+ musicSheetType: forms.musicSheetType,
|
|
|
+ isUseSystemBeat: forms.isUseSystemBeat,
|
|
|
+ isShowFingering: forms.isShowFingering,
|
|
|
+ isPlayBeat: forms.isPlayBeat,
|
|
|
+ multiTracksSelection: forms.multiTracksSelection.join(','),
|
|
|
+ playSpeed: forms.playSpeed,
|
|
|
+ playMode: forms.playMode,
|
|
|
+ xmlFileUrl: forms.xmlFileUrl,
|
|
|
+ musicImg: forms.musicImg,
|
|
|
+ musicFirstImg: forms.musicFirstImg,
|
|
|
+ musicJianImg: forms.musicJianImg,
|
|
|
extConfigJson: JSON.stringify({
|
|
|
repeatedBeats: forms.repeatedBeats ? 1 : 0,
|
|
|
gradualTimes: forms.graduals,
|
|
|
isEvxml: forms.isEvxml ? 1 : 0,
|
|
|
}),
|
|
|
- subjectIds: forms.subjectIds.join(',')
|
|
|
+ // availableType: forms.availableType,
|
|
|
+ sourceType: forms.sourceType,
|
|
|
+ audioType: forms.audioType,
|
|
|
+ status: forms.status,
|
|
|
+ evaluationStandard: forms.evaluationStandard,
|
|
|
+ musicSheetAccompanimentList:forms.musicSheetAccompanimentList,
|
|
|
+ musicSheetSoundList: musicSheetSoundList,
|
|
|
+ musicTag: '-1',
|
|
|
}
|
|
|
if (forms.audioType == 'MIDI') {
|
|
|
obj.musicSheetSoundList = []
|
|
@@ -856,13 +874,6 @@ export default defineComponent({
|
|
|
forms.musicSheetExtend = data.musicSheetExtend
|
|
|
|
|
|
state.musicSheetSoundList = data.musicSheetSoundList ? data.musicSheetSoundList : []
|
|
|
- // 范唱
|
|
|
- for (let i = 0; i < state.musicSheetSoundList.length; i++) {
|
|
|
- if (state.musicSheetSoundList[i].audioPlayType == 'SING') {
|
|
|
- state.fSongFile = state.musicSheetSoundList[i].audioFileUrl
|
|
|
- break
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
let musicSheetAccompanimentList = data.musicSheetAccompanimentList ? data.musicSheetAccompanimentList : []
|
|
|
musicSheetAccompanimentList.forEach((next: any) => {
|
|
@@ -877,6 +888,13 @@ export default defineComponent({
|
|
|
|
|
|
// 初始化演奏
|
|
|
for (let i = 0; i < state.musicSheetSoundList.length; i++) {
|
|
|
+ if (state.musicSheetSoundList[i].audioPlayType == 'SING') {
|
|
|
+ // 范唱 唱名
|
|
|
+ state.fSongFile = state.musicSheetSoundList[i].audioFileUrl
|
|
|
+ forms.solmizationFileUrl = state.musicSheetSoundList[i].solmizationFileUrl
|
|
|
+ }
|
|
|
+
|
|
|
+ // 乐器演奏原音
|
|
|
for (let j = 0; j < forms.musicSheetSoundList_YZ.length; j++) {
|
|
|
let musicalInstrumentId = state.musicSheetSoundList[i].musicalInstrumentId;
|
|
|
if (musicalInstrumentId && musicalInstrumentId == forms.musicSheetSoundList_YZ[j].musicalInstrumentId) {
|
|
@@ -885,12 +903,6 @@ export default defineComponent({
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- for (let i = 0; i < state.musicSheetSoundList.length; i++) {
|
|
|
- if (state.musicSheetSoundList[i].musicalInstrumentId) {
|
|
|
- forms.multiInstrumentSelection.push(state.musicSheetSoundList[i].musicalInstrumentId)
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
|
|
|
setOwnerName()
|
|
|
axios.get(data.xmlFileUrl).then((res: any) => {
|
|
@@ -1042,19 +1054,19 @@ export default defineComponent({
|
|
|
/>
|
|
|
</NFormItemGi>
|
|
|
<NFormItemGi
|
|
|
- label="多声轨渲染"
|
|
|
+ label="谱面渲染"
|
|
|
path="musicSheetType"
|
|
|
rule={[
|
|
|
{
|
|
|
required: true,
|
|
|
- message: '请选择多声轨渲染',
|
|
|
+ message: '请选择谱面渲染',
|
|
|
trigger: 'change'
|
|
|
}
|
|
|
]}
|
|
|
>
|
|
|
<NRadioGroup v-model:value={forms.musicSheetType}>
|
|
|
- <NRadio value={'SINGLE'}>是</NRadio>
|
|
|
- <NRadio value={'CONCERT'}>否</NRadio>
|
|
|
+ <NRadio value={'SINGLE'}>多声轨</NRadio>
|
|
|
+ <NRadio value={'CONCERT'}>单声轨</NRadio>
|
|
|
</NRadioGroup>
|
|
|
</NFormItemGi>
|
|
|
</NGrid>
|
|
@@ -1427,6 +1439,34 @@ export default defineComponent({
|
|
|
/>
|
|
|
</NFormItemGi>
|
|
|
</NGrid>
|
|
|
+ <NGrid cols={2}>
|
|
|
+ <NFormItemGi
|
|
|
+ label="上传唱名"
|
|
|
+ path="solmizationFileUrl"
|
|
|
+ rule={[
|
|
|
+ {
|
|
|
+ required: false,
|
|
|
+ message: '请选择上传唱名',
|
|
|
+ trigger: ['change', 'input']
|
|
|
+ }
|
|
|
+ ]}
|
|
|
+ >
|
|
|
+ <UploadFile
|
|
|
+ desc={'上传范唱'}
|
|
|
+ disabled={state.previewMode}
|
|
|
+ size={10}
|
|
|
+ key={'xmlFileUrl'}
|
|
|
+ v-model:fileList={forms.solmizationFileUrl}
|
|
|
+ tips="仅支持上传.mp3格式文件"
|
|
|
+ listType="image"
|
|
|
+ accept=".mp3"
|
|
|
+ bucketName="cloud-coach"
|
|
|
+ text="点击上传范唱文件"
|
|
|
+ onRemove={() => {
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ </NFormItemGi>
|
|
|
+ </NGrid>
|
|
|
</>
|
|
|
)}
|
|
|
<NAlert showIcon={false} style={{marginBottom: '12px'}}>
|
|
@@ -1475,17 +1515,6 @@ export default defineComponent({
|
|
|
multiple
|
|
|
maxTagCount={2}
|
|
|
onUpdateValue={async (value: any) => {
|
|
|
- state.instrumentList.forEach((instrument: any) => {
|
|
|
- // if (value.includes(instrument.value)) {
|
|
|
- // forms.musicSheetSoundList_YZ.push({
|
|
|
- // 'musicSheetId': props.data.id,
|
|
|
- // 'musicalInstrumentId': instrument.id + '',
|
|
|
- // 'musicalInstrumentName': instrument.name,
|
|
|
- // 'audioFileUrl': null,
|
|
|
- // 'audioPlayType':'PLAY'
|
|
|
- // });
|
|
|
- // }
|
|
|
- })
|
|
|
}}
|
|
|
/>
|
|
|
</NFormItemGi>
|
|
@@ -1511,7 +1540,7 @@ export default defineComponent({
|
|
|
accept=".mp3"
|
|
|
bucketName="cloud-coach"
|
|
|
text="点击上传伴奏文件"
|
|
|
- max={10}
|
|
|
+ max={1}
|
|
|
desc={'上传伴奏文件'}
|
|
|
onUpload:success={(file) => {
|
|
|
state.musicSheetAccompanimentUrls = [state.musicSheetAccompanimentUrls,file.url].filter(Boolean).join(',')
|
|
@@ -1596,231 +1625,194 @@ export default defineComponent({
|
|
|
</NFormItem>
|
|
|
</>
|
|
|
)}
|
|
|
- {/*渲染声轨*/}
|
|
|
- {/*单曲:从可用乐器数据渲染*/}
|
|
|
- {/*合奏:从xml中解析*/}
|
|
|
- {forms.musicSheetType == 'SINGLE' && (
|
|
|
- <>
|
|
|
- <NGrid cols={1}>
|
|
|
- <NFormItemGi
|
|
|
- label={'页面渲染声轨'}
|
|
|
- path="multiInstrumentSelection"
|
|
|
- rule={[
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: `页面渲染声轨`,
|
|
|
- trigger: 'change',
|
|
|
- type: 'array'
|
|
|
- }
|
|
|
- ]}
|
|
|
+ <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.multiInstrumentSelection}
|
|
|
- onUpdateValue={(value: any) => {
|
|
|
- forms.multiInstrumentSelection = value
|
|
|
- }}
|
|
|
- >
|
|
|
- <NGrid yGap={2} cols={6}>
|
|
|
- {forms.musicalInstrumentIdList.map((item: any) => (
|
|
|
- <NGi>
|
|
|
- <NCheckbox value={item} label={state.instrumentIdNameMap.get(item)}/>
|
|
|
- </NGi>
|
|
|
- ))}
|
|
|
- </NGrid>
|
|
|
- </NCheckboxGroup>
|
|
|
- </NFormItemGi>
|
|
|
- </NGrid>
|
|
|
- {forms.musicSheetSoundList_YZ.map((item: any, index: any) => {
|
|
|
+ <NRadio value={'all'}>全选</NRadio>
|
|
|
+ <NRadio value={'allUncheck'}>重置</NRadio>
|
|
|
+ <NRadio value={'invert'}>反选</NRadio>
|
|
|
+ </NRadioGroup>
|
|
|
+ </NGi>
|
|
|
+ {state.partListNames && state.partListNames.length > 0 && (
|
|
|
+ <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>
|
|
|
+ ))}
|
|
|
+ </NGrid>
|
|
|
+ </NCheckboxGroup>
|
|
|
+ </NFormItemGi>
|
|
|
+ </NGi>
|
|
|
+ )}
|
|
|
+ </NGrid>
|
|
|
+ </NFormItemGi>
|
|
|
+ </NGrid>
|
|
|
+
|
|
|
+ {/*单曲*/}
|
|
|
+ {forms.musicSheetType == 'SINGLE' && forms.playMode === 'MP3' && forms.musicSheetSoundList_YZ.map((item: any, index: any) => {
|
|
|
+ return (
|
|
|
+ <>
|
|
|
+ <NGrid cols={1}>
|
|
|
+ {forms.musicalInstrumentIdList.includes(item.musicalInstrumentId) && (
|
|
|
+ <NFormItemGi
|
|
|
+ span={12}
|
|
|
+ label={item.musicalInstrumentName}
|
|
|
+ path={`musicSheetSoundList_YZ[${index}].audioFileUrl`}
|
|
|
+ rule={[
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: `请上传乐器演奏文件`
|
|
|
+ }
|
|
|
+ ]}
|
|
|
+ >
|
|
|
+ <UploadFile
|
|
|
+ desc={'乐器演奏文件'}
|
|
|
+ disabled={state.previewMode}
|
|
|
+ size={100}
|
|
|
+ v-model:fileList={item.audioFileUrl}
|
|
|
+ tips="仅支持上传.mp3格式文件"
|
|
|
+ listType="image"
|
|
|
+ accept=".mp3"
|
|
|
+ text={"点击上传MP3文件"}
|
|
|
+ bucketName="cloud-coach"
|
|
|
+ />
|
|
|
+ </NFormItemGi>
|
|
|
+ )}
|
|
|
+ </NGrid>
|
|
|
+ </>
|
|
|
+ )
|
|
|
+ })
|
|
|
+ }
|
|
|
+ {/*合奏*/}
|
|
|
+ {forms.musicSheetType == 'CONCERT' && forms.playMode === 'MP3' && forms.musicSheetSoundList_YY.length > 0 && (
|
|
|
+ <>
|
|
|
+ {forms.musicSheetSoundList_YY.map((item: any, index: number) => {
|
|
|
return (
|
|
|
<>
|
|
|
- <NGrid cols={1}>
|
|
|
- {forms.musicalInstrumentIdList.includes(item.musicalInstrumentId) && forms.multiInstrumentSelection.includes(item.musicalInstrumentId) && (
|
|
|
+ {(!containOther(item.track) ||
|
|
|
+ (item.track?.toLocaleUpperCase?.() != 'COMMON' &&
|
|
|
+ forms.multiTracksSelection.includes(item.track))) && (
|
|
|
+ <NGrid
|
|
|
+ class={styles.audioSection}
|
|
|
+ // v-show={forms.multiTracksSelection.indexOf(item.track) > -1}
|
|
|
+ >
|
|
|
<NFormItemGi
|
|
|
span={12}
|
|
|
- label={item.musicalInstrumentName}
|
|
|
- path={`musicSheetSoundList_YZ[${index}].audioFileUrl`}
|
|
|
+ label="原音"
|
|
|
+ path={`musicSheetSoundList_YY[${index}].audioFileUrl`}
|
|
|
rule={[
|
|
|
{
|
|
|
+ // required: forms.multiTracksSelection.indexOf(forms.musicSheetSoundList_YY[index].audioFileUrl) > -1,
|
|
|
required: true,
|
|
|
- message: `请上传乐器演奏文件`
|
|
|
+ message: `请上传${
|
|
|
+ item.track ? item.track + '的' : '第' + (index + 1) + '个'
|
|
|
+ }原音`
|
|
|
}
|
|
|
]}
|
|
|
>
|
|
|
<UploadFile
|
|
|
- desc={'乐器演奏文件'}
|
|
|
+ desc={'原音文件'}
|
|
|
disabled={state.previewMode}
|
|
|
size={100}
|
|
|
v-model:fileList={item.audioFileUrl}
|
|
|
tips="仅支持上传.mp3格式文件"
|
|
|
listType="image"
|
|
|
accept=".mp3"
|
|
|
- text={"点击上传MP3文件"}
|
|
|
bucketName="cloud-coach"
|
|
|
/>
|
|
|
</NFormItemGi>
|
|
|
- )}
|
|
|
- </NGrid>
|
|
|
- </>
|
|
|
- )
|
|
|
- })
|
|
|
- }
|
|
|
-
|
|
|
- </>
|
|
|
- )}
|
|
|
-
|
|
|
- {forms.musicSheetType == 'CONCERT' && (
|
|
|
- <>
|
|
|
- <NGrid cols={1}>
|
|
|
- <NFormItemGi
|
|
|
- label={'用户可切换声轨'}
|
|
|
- path="multiTracksSelection"
|
|
|
- rule={[
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: `请选择用户可切换声轨`,
|
|
|
- trigger: 'change',
|
|
|
- type: 'array'
|
|
|
- }
|
|
|
- ]}
|
|
|
- >
|
|
|
- <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>
|
|
|
- {state.partListNames && state.partListNames.length > 0 && (
|
|
|
- <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>
|
|
|
- ))}
|
|
|
- </NGrid>
|
|
|
- </NCheckboxGroup>
|
|
|
- </NFormItemGi>
|
|
|
- </NGi>
|
|
|
- )}
|
|
|
- </NGrid>
|
|
|
- </NFormItemGi>
|
|
|
- </NGrid>
|
|
|
- {/* 只有播放类型为mp3时才会有原音 */}
|
|
|
- {forms.playMode === 'MP3' && forms.musicSheetSoundList_YY.length > 0 && (
|
|
|
- <>
|
|
|
- {forms.musicSheetSoundList_YY.map((item: any, index: number) => {
|
|
|
- return (
|
|
|
- <>
|
|
|
- {(!containOther(item.track) ||
|
|
|
- (item.track?.toLocaleUpperCase?.() != 'COMMON' &&
|
|
|
- forms.multiTracksSelection.includes(item.track))) && (
|
|
|
- <NGrid
|
|
|
- class={styles.audioSection}
|
|
|
- // v-show={forms.multiTracksSelection.indexOf(item.track) > -1}
|
|
|
+ {state.partListNames.length > 0 && (
|
|
|
+ <NFormItemGi
|
|
|
+ span={12}
|
|
|
+ label="所属轨道"
|
|
|
+ path={`musicSheetSoundList_YY[${index}].track`}
|
|
|
+ rule={[
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请选择所属轨道'
|
|
|
+ }
|
|
|
+ ]}
|
|
|
>
|
|
|
- <NFormItemGi
|
|
|
- span={12}
|
|
|
- label="原音"
|
|
|
- path={`musicSheetSoundList_YY[${index}].audioFileUrl`}
|
|
|
- rule={[
|
|
|
- {
|
|
|
- // required: forms.multiTracksSelection.indexOf(forms.musicSheetSoundList_YY[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 > 0 && (
|
|
|
- <NFormItemGi
|
|
|
- span={12}
|
|
|
- label="所属轨道"
|
|
|
- path={`musicSheetSoundList_YY[${index}].track`}
|
|
|
- rule={[
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '请选择所属轨道'
|
|
|
+ <NSelect
|
|
|
+ placeholder="请选择所属轨道"
|
|
|
+ value={item.track}
|
|
|
+ options={initPartsListStatus(item.track)}
|
|
|
+ onUpdateValue={(value: any) => {
|
|
|
+ const track = item.track
|
|
|
+
|
|
|
+ if (track) {
|
|
|
+ // 声轨交换
|
|
|
+ forms.musicSheetSoundList_YY.forEach((next: any) => {
|
|
|
+ if (next.track == value) {
|
|
|
+ next.track = track
|
|
|
}
|
|
|
- ]}
|
|
|
- >
|
|
|
- <NSelect
|
|
|
- placeholder="请选择所属轨道"
|
|
|
- value={item.track}
|
|
|
- options={initPartsListStatus(item.track)}
|
|
|
- onUpdateValue={(value: any) => {
|
|
|
- const track = item.track
|
|
|
-
|
|
|
- if (track) {
|
|
|
- // 声轨交换
|
|
|
- forms.musicSheetSoundList_YY.forEach((next: any) => {
|
|
|
- if (next.track == value) {
|
|
|
- next.track = track
|
|
|
- }
|
|
|
- })
|
|
|
-
|
|
|
- const index = forms.multiTracksSelection.indexOf(item.track)
|
|
|
- forms.multiTracksSelection.splice(index, 1)
|
|
|
- } else {
|
|
|
- forms.musicSheetSoundList_YY = forms.musicSheetSoundList_YY.filter(
|
|
|
- (next: any) => {
|
|
|
- return next.track != value
|
|
|
- }
|
|
|
- )
|
|
|
+ })
|
|
|
+
|
|
|
+ const index = forms.multiTracksSelection.indexOf(item.track)
|
|
|
+ forms.multiTracksSelection.splice(index, 1)
|
|
|
+ } else {
|
|
|
+ forms.musicSheetSoundList_YY = forms.musicSheetSoundList_YY.filter(
|
|
|
+ (next: any) => {
|
|
|
+ return next.track != value
|
|
|
}
|
|
|
+ )
|
|
|
+ }
|
|
|
|
|
|
- if (value && !forms.multiTracksSelection.includes(value)) {
|
|
|
- forms.multiTracksSelection.push(value)
|
|
|
- }
|
|
|
- item.track = value
|
|
|
- }}
|
|
|
- />
|
|
|
- </NFormItemGi>
|
|
|
- )}
|
|
|
- <NGi class={styles.btnRemove}>
|
|
|
- <NButton
|
|
|
- type="primary"
|
|
|
- text
|
|
|
- // disabled={forms.musicSheetSoundList_YY.length === 1}
|
|
|
- onClick={() => removeSys(index)}
|
|
|
- >
|
|
|
- 删除
|
|
|
- </NButton>
|
|
|
- </NGi>
|
|
|
- </NGrid>
|
|
|
+ if (value && !forms.multiTracksSelection.includes(value)) {
|
|
|
+ forms.multiTracksSelection.push(value)
|
|
|
+ }
|
|
|
+ item.track = value
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ </NFormItemGi>
|
|
|
)}
|
|
|
- </>
|
|
|
- )
|
|
|
- })}
|
|
|
- </>
|
|
|
- )}
|
|
|
+ <NGi class={styles.btnRemove}>
|
|
|
+ <NButton
|
|
|
+ type="primary"
|
|
|
+ text
|
|
|
+ // disabled={forms.musicSheetSoundList_YY.length === 1}
|
|
|
+ onClick={() => removeSys(index)}
|
|
|
+ >
|
|
|
+ 删除
|
|
|
+ </NButton>
|
|
|
+ </NGi>
|
|
|
+ </NGrid>
|
|
|
+ )}
|
|
|
+ </>
|
|
|
+ )
|
|
|
+ })}
|
|
|
</>
|
|
|
)}
|
|
|
|