|
@@ -37,6 +37,7 @@ import MusicSheetOwnerDialog from '@views/music-library/music-sheet/modal/musicS
|
|
|
import {sysApplicationPage} from '@views/menu-manage/api'
|
|
|
import {filterPointCategory} from '@views/teaching-manage/unit-test'
|
|
|
import MusicCreateImg from './music-create-img'
|
|
|
+import {TABS_ROUTES} from "@/store/mutation-types";
|
|
|
|
|
|
/**
|
|
|
* 获取指定元素下一个Note元素
|
|
@@ -337,7 +338,7 @@ export default defineComponent({
|
|
|
musicSheetAccompanimentUrls: '' as any,
|
|
|
musicSheetAccompanimentUrlList: [] as any,
|
|
|
instrumentData: [],
|
|
|
- instrumentList: [],
|
|
|
+ instrumentList: [] as any,
|
|
|
instrumentIdNameMap: new Map() as any,
|
|
|
subjectList: [] as any,
|
|
|
showMusicSheetOwnerDialog: false, //所属人弹框
|
|
@@ -371,6 +372,46 @@ export default defineComponent({
|
|
|
if (error) {
|
|
|
return
|
|
|
}
|
|
|
+ // 校验合奏时声轨与乐器是否存在不匹配情况
|
|
|
+ if (forms.musicSheetType == 'CONCERT') {
|
|
|
+ let set = [] as any;
|
|
|
+ const {data} = await musicalInstrumentPage({page: 1, rows: 9999})
|
|
|
+ data.rows.map((row: any) => {
|
|
|
+ if (row.code) {
|
|
|
+ row.code.split(',').forEach((code: string) => {
|
|
|
+ let temp = code.replaceAll(' ', '')
|
|
|
+ set.push(temp.toLocaleLowerCase())
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ let unDefinedTrack = [] as any
|
|
|
+ forms.multiTracksSelection.forEach((item: any) => {
|
|
|
+ if (item) {
|
|
|
+ let contain = false;
|
|
|
+ let code = item.replaceAll(' ', '').toLocaleLowerCase()
|
|
|
+ for (let i = 0; i < set.length; i++) {
|
|
|
+ if (set[i].startsWith(code) || set[i].endsWith(code)) {
|
|
|
+ contain = true
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!contain) {
|
|
|
+ unDefinedTrack.push(item)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ if (unDefinedTrack.length > 0) {
|
|
|
+ dialog.warning({
|
|
|
+ title: '提示',
|
|
|
+ content: `声轨未配置:${unDefinedTrack.join(',')}`,
|
|
|
+ positiveText: '确定',
|
|
|
+ onPositiveClick: () => {
|
|
|
+ },
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
if (!state.isAutoSave) {
|
|
|
state.isAutoSave = true
|
|
|
state.productOpen = true
|
|
@@ -619,18 +660,18 @@ export default defineComponent({
|
|
|
part = part || 'noPartName'
|
|
|
}
|
|
|
return {
|
|
|
- value: part,
|
|
|
- label: part
|
|
|
+ value: part.trim(),
|
|
|
+ label: part.trim()
|
|
|
}
|
|
|
})
|
|
|
|
|
|
// 处理空数据
|
|
|
- if (partListNames.length === 1 && forms.details.id && !partListNames[0].value) {
|
|
|
- partListNames[0] = {
|
|
|
- value: forms.details.multiTracksSelection,
|
|
|
- label: forms.details.multiTracksSelection
|
|
|
- }
|
|
|
- }
|
|
|
+ // if (partListNames.length === 1 && forms.details.id && !partListNames[0].value) {
|
|
|
+ // partListNames[0] = {
|
|
|
+ // value: forms.details.multiTracksSelection,
|
|
|
+ // label: forms.details.multiTracksSelection
|
|
|
+ // }
|
|
|
+ // }
|
|
|
|
|
|
partListNames = partListNames.filter((n: any) => n.value?.toLocaleUpperCase?.() != 'COMMON')
|
|
|
|
|
@@ -712,7 +753,7 @@ export default defineComponent({
|
|
|
onPositiveClick: async () => {
|
|
|
const sound = forms.musicSheetSoundList_YY[index]
|
|
|
const track = sound.track
|
|
|
- if (track) {
|
|
|
+ if (track != null) {
|
|
|
const selectIndex = forms.multiTracksSelection.indexOf(track)
|
|
|
if (selectIndex > -1) {
|
|
|
forms.multiTracksSelection.splice(selectIndex, 1)
|
|
@@ -776,6 +817,33 @@ export default defineComponent({
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ const changeSubject = async (subjectIdList: []) => {
|
|
|
+ state.instrumentList = []
|
|
|
+ if (!subjectIdList || subjectIdList.length == 0) {
|
|
|
+ forms.musicalInstrumentIdList = []
|
|
|
+ return
|
|
|
+ }
|
|
|
+ let enableFlag = null;
|
|
|
+ if (props.type === 'add') {
|
|
|
+ enableFlag = true;
|
|
|
+ }
|
|
|
+ let tempMusicalInstrumentIdList = [] as any
|
|
|
+ const {data} = await musicalInstrumentPage({page: 1, rows: 999, subjectIds: subjectIdList, enableFlag: enableFlag});
|
|
|
+ data.rows.map((item: any) => {
|
|
|
+ tempMusicalInstrumentIdList.push(item.id + '')
|
|
|
+ state.instrumentList.push(
|
|
|
+ {
|
|
|
+ label: item.name,
|
|
|
+ value: item.id + '',
|
|
|
+ disabled: !item.enableFlag
|
|
|
+ }
|
|
|
+ )
|
|
|
+ })
|
|
|
+ forms.musicalInstrumentIdList = forms.musicalInstrumentIdList.filter((item: any) => {
|
|
|
+ return tempMusicalInstrumentIdList.includes(item)
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
onMounted(async () => {
|
|
|
state.loading = true
|
|
|
if (props.type === 'preview') {
|
|
@@ -789,7 +857,6 @@ export default defineComponent({
|
|
|
try {
|
|
|
const {data} = await musicalInstrumentPage({page: 1, rows: 999})
|
|
|
const tempList = data.rows || []
|
|
|
- state.instrumentData = tempList
|
|
|
tempList.forEach((item: any) => {
|
|
|
item.label = item.name
|
|
|
item.value = item.id + ''
|
|
@@ -805,7 +872,8 @@ export default defineComponent({
|
|
|
'audioPlayType': 'PLAY'
|
|
|
});
|
|
|
})
|
|
|
- state.instrumentList = tempList
|
|
|
+ state.instrumentData = tempList
|
|
|
+ // state.instrumentList = tempList
|
|
|
} catch {
|
|
|
}
|
|
|
}
|
|
@@ -876,9 +944,8 @@ export default defineComponent({
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
- forms.musicalInstrumentIdList = data.musicalInstrumentIds
|
|
|
- ? data.musicalInstrumentIds.split(',')
|
|
|
- : []
|
|
|
+ forms.musicalInstrumentIdList = data.musicalInstrumentIds ? data.musicalInstrumentIds.split(',') : []
|
|
|
+ await changeSubject(forms.subjectIds)
|
|
|
forms.musicCategoryId = data.musicCategoryId
|
|
|
forms.audioType = data.audioType
|
|
|
forms.isPlayBeat = data.isPlayBeat
|
|
@@ -939,12 +1006,12 @@ export default defineComponent({
|
|
|
state.partListNames = getPartListNames(res?.data as any) as any
|
|
|
|
|
|
// 初始化音轨和原音
|
|
|
- forms.multiTracksSelection = data.multiTracksSelection ? data.multiTracksSelection.split(',') : []
|
|
|
+ forms.multiTracksSelection = data.multiTracksSelection ? data.multiTracksSelection.trim().split(',') : ['']
|
|
|
|
|
|
if (state.musicSheetSoundList.length === 1 && state.musicSheetSoundList[0].track === 'P1') {
|
|
|
forms.musicSheetSoundList_YY.push({
|
|
|
audioFileUrl: state.musicSheetSoundList[0].audioFileUrl, // 原音
|
|
|
- track: state.partListNames[0].value || null, // 轨道
|
|
|
+ track: state.partListNames[0].value || '', // 轨道
|
|
|
audioPlayType: 'PLAY'
|
|
|
})
|
|
|
} else {
|
|
@@ -952,7 +1019,8 @@ export default defineComponent({
|
|
|
state.partListNames.forEach((item: any) => {
|
|
|
let audioFileUrl = null
|
|
|
state.musicSheetSoundList.forEach((next: any) => {
|
|
|
- if (next.track && next.track == item.value) {
|
|
|
+ let track = next.track ? next.track : ''
|
|
|
+ if (track.trim() == item.value) {
|
|
|
audioFileUrl = next.audioFileUrl
|
|
|
}
|
|
|
})
|
|
@@ -967,10 +1035,10 @@ export default defineComponent({
|
|
|
// 处理没有声轨,但有原音
|
|
|
if (data.musicSheetType == 'CONCERT') {
|
|
|
state.musicSheetSoundList.forEach((next: any) => {
|
|
|
- if (!tracks.includes(next.track) && next.audioPlayType == 'PLAY') {
|
|
|
+ if (next.track && !tracks.includes(next.track.trim()) && next.audioPlayType == 'PLAY') {
|
|
|
forms.musicSheetSoundList_YY.push({
|
|
|
audioFileUrl: next.audioFileUrl, // 原音
|
|
|
- track: next.track ? next.track : null, // 轨道
|
|
|
+ track: next.track ? next.track.trim() : '', // 轨道
|
|
|
audioPlayType: 'PLAY'
|
|
|
})
|
|
|
}
|
|
@@ -986,9 +1054,9 @@ export default defineComponent({
|
|
|
state.subjectList = state.subjectList.filter((next: any) => {
|
|
|
return next.enableFlag == true
|
|
|
})
|
|
|
- state.instrumentList = state.instrumentList.filter((next: any) => {
|
|
|
- return next.enableFlag == true
|
|
|
- })
|
|
|
+ // state.instrumentList = state.instrumentList.filter((next: any) => {
|
|
|
+ // return next.enableFlag == true
|
|
|
+ // })
|
|
|
}
|
|
|
state.loading = false
|
|
|
})
|
|
@@ -1078,52 +1146,24 @@ export default defineComponent({
|
|
|
/>
|
|
|
</NFormItemGi>
|
|
|
<NFormItemGi
|
|
|
- label="谱面渲染"
|
|
|
- path="musicSheetType"
|
|
|
- rule={[
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '请选择谱面渲染',
|
|
|
- trigger: 'change'
|
|
|
- }
|
|
|
- ]}
|
|
|
- >
|
|
|
- <NRadioGroup v-model:value={forms.musicSheetType}>
|
|
|
- <NRadio value={'SINGLE'}>多声轨</NRadio>
|
|
|
- <NRadio value={'CONCERT'}>单声轨</NRadio>
|
|
|
- </NRadioGroup>
|
|
|
- </NFormItemGi>
|
|
|
- </NGrid>
|
|
|
- <NGrid cols={2}>
|
|
|
- <NFormItemGi
|
|
|
- label="适用声部"
|
|
|
- path="isAllSubject"
|
|
|
+ label="曲目分类"
|
|
|
+ path="musicCategoryId"
|
|
|
rule={[
|
|
|
{
|
|
|
required: true,
|
|
|
- message: '请选择适用声部',
|
|
|
- }
|
|
|
- ]}
|
|
|
- >
|
|
|
- <NRadioGroup v-model:value={forms.isAllSubject}>
|
|
|
- <NRadio value={false}>部分声部</NRadio>
|
|
|
- <NRadio value={true}>全部声部</NRadio>
|
|
|
- </NRadioGroup>
|
|
|
- </NFormItemGi>
|
|
|
- <NFormItemGi
|
|
|
- label="速度"
|
|
|
- path="playSpeed"
|
|
|
- rule={[
|
|
|
- {
|
|
|
- required: false,
|
|
|
- message: '请输入速度'
|
|
|
+ message: '请选择曲目分类',
|
|
|
+ trigger: ['change']
|
|
|
}
|
|
|
]}
|
|
|
>
|
|
|
- <NInputNumber
|
|
|
- placeholder="请输入速度"
|
|
|
- v-model:value={forms.playSpeed}
|
|
|
- style="width:100%"
|
|
|
+ <NCascader
|
|
|
+ valueField="id"
|
|
|
+ labelField="name"
|
|
|
+ children-field="musicSheetCategoriesList"
|
|
|
+ placeholder="请选择分类"
|
|
|
+ v-model:value={forms.musicCategoryId}
|
|
|
+ options={state.musicSheetCategories}
|
|
|
+ clearable
|
|
|
/>
|
|
|
</NFormItemGi>
|
|
|
</NGrid>
|
|
@@ -1236,27 +1276,6 @@ export default defineComponent({
|
|
|
v-model:value={forms.appAuditFlag}
|
|
|
/>
|
|
|
</NFormItemGi>
|
|
|
- <NFormItemGi
|
|
|
- label="曲目分类"
|
|
|
- path="musicCategoryId"
|
|
|
- rule={[
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '请选择曲目分类',
|
|
|
- trigger: ['change']
|
|
|
- }
|
|
|
- ]}
|
|
|
- >
|
|
|
- <NCascader
|
|
|
- valueField="id"
|
|
|
- labelField="name"
|
|
|
- children-field="musicSheetCategoriesList"
|
|
|
- placeholder="请选择分类"
|
|
|
- v-model:value={forms.musicCategoryId}
|
|
|
- options={state.musicSheetCategories}
|
|
|
- clearable
|
|
|
- />
|
|
|
- </NFormItemGi>
|
|
|
</NGrid>
|
|
|
<NAlert showIcon={false} style={{marginBottom: '12px'}}>
|
|
|
曲目设置
|
|
@@ -1354,6 +1373,165 @@ export default defineComponent({
|
|
|
</NFormItemGi>
|
|
|
</NGrid>
|
|
|
|
|
|
+ <NGrid cols={2}>
|
|
|
+ <NFormItemGi
|
|
|
+ label="谱面渲染"
|
|
|
+ path="musicSheetType"
|
|
|
+ rule={[
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请选择谱面渲染',
|
|
|
+ trigger: 'change'
|
|
|
+ }
|
|
|
+ ]}
|
|
|
+ >
|
|
|
+ <NRadioGroup v-model:value={forms.musicSheetType}>
|
|
|
+ <NRadio value={'SINGLE'}>多声轨</NRadio>
|
|
|
+ <NRadio value={'CONCERT'}>单声轨</NRadio>
|
|
|
+ </NRadioGroup>
|
|
|
+ </NFormItemGi>
|
|
|
+ <NFormItemGi
|
|
|
+ label="适用声部"
|
|
|
+ path="isAllSubject"
|
|
|
+ rule={[
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请选择适用声部',
|
|
|
+ }
|
|
|
+ ]}
|
|
|
+ >
|
|
|
+ <NRadioGroup v-model:value={forms.isAllSubject}>
|
|
|
+ <NRadio value={false}>部分声部</NRadio>
|
|
|
+ <NRadio value={true}>全部声部</NRadio>
|
|
|
+ </NRadioGroup>
|
|
|
+ </NFormItemGi>
|
|
|
+ </NGrid>
|
|
|
+ {!forms.isAllSubject && (
|
|
|
+ <NGrid cols={2}>
|
|
|
+ <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}
|
|
|
+ onUpdateValue={async (val: any) => {
|
|
|
+ await changeSubject(val)
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ </NFormItemGi>
|
|
|
+ <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}
|
|
|
+ onUpdateValue={async (value: any) => {
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ </NFormItemGi>
|
|
|
+ </NGrid>
|
|
|
+ )}
|
|
|
+ <NGrid cols={2}>
|
|
|
+ <NFormItemGi
|
|
|
+ label="速度"
|
|
|
+ path="playSpeed"
|
|
|
+ rule={[
|
|
|
+ {
|
|
|
+ required: false,
|
|
|
+ message: '请输入速度'
|
|
|
+ }
|
|
|
+ ]}
|
|
|
+ >
|
|
|
+ <NInputNumber
|
|
|
+ placeholder="请输入速度"
|
|
|
+ v-model:value={forms.playSpeed}
|
|
|
+ style="width:100%"
|
|
|
+ />
|
|
|
+ </NFormItemGi>
|
|
|
+ </NGrid>
|
|
|
+ <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)
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ <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>
|
|
|
+
|
|
|
+
|
|
|
<NAlert showIcon={false} style={{marginBottom: '12px'}}>
|
|
|
演唱文件
|
|
|
</NAlert>
|
|
@@ -1555,55 +1733,6 @@ export default defineComponent({
|
|
|
</NRadioGroup>
|
|
|
</NFormItemGi>
|
|
|
</NGrid>
|
|
|
- {!forms.isAllSubject && (
|
|
|
- <NGrid cols={2}>
|
|
|
- <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}
|
|
|
- />
|
|
|
- </NFormItemGi>
|
|
|
- <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}
|
|
|
- onUpdateValue={async (value: any) => {
|
|
|
- }}
|
|
|
- />
|
|
|
- </NFormItemGi>
|
|
|
- </NGrid>
|
|
|
- )}
|
|
|
<NGrid cols={2}>
|
|
|
{forms.playMode === 'MP3' && (
|
|
|
<NFormItemGi
|
|
@@ -1738,67 +1867,12 @@ export default defineComponent({
|
|
|
</NFormItem>
|
|
|
</>
|
|
|
)}
|
|
|
- <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)
|
|
|
- }}
|
|
|
- >
|
|
|
- <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.isAllSubject && forms.musicSheetSoundList_YZ.map((item: any, index: any) => {
|
|
|
return (
|
|
|
<>
|
|
|
- <NGrid cols={1}>
|
|
|
- {forms.musicalInstrumentIdList.includes(item.musicalInstrumentId) && (
|
|
|
+ {forms.musicalInstrumentIdList.includes(item.musicalInstrumentId) && (
|
|
|
+ <NGrid class={styles.audioSection}>
|
|
|
<NFormItemGi
|
|
|
span={12}
|
|
|
label={item.musicalInstrumentName}
|
|
@@ -1822,8 +1896,8 @@ export default defineComponent({
|
|
|
bucketName="cloud-coach"
|
|
|
/>
|
|
|
</NFormItemGi>
|
|
|
- )}
|
|
|
- </NGrid>
|
|
|
+ </NGrid>
|
|
|
+ )}
|
|
|
</>
|
|
|
)
|
|
|
})
|
|
@@ -1873,7 +1947,7 @@ export default defineComponent({
|
|
|
path={`musicSheetSoundList_YY[${index}].track`}
|
|
|
rule={[
|
|
|
{
|
|
|
- required: true,
|
|
|
+ required: false,
|
|
|
message: '请选择所属轨道'
|
|
|
}
|
|
|
]}
|