|
@@ -315,7 +315,9 @@ export default defineComponent({
|
|
|
musicSheetExtend: {} as any, //所属人信息
|
|
|
musicImg: '', // 五线谱图片
|
|
|
musicFirstImg: '', //首调图片
|
|
|
- musicJianImg: '' // 简谱固定调
|
|
|
+ musicJianImg: '', // 简谱固定调
|
|
|
+ isEvxml: false, // 是否是evxml
|
|
|
+ isShowFingering: true, // 是否显示指法
|
|
|
})
|
|
|
const state = reactive({
|
|
|
loading: false,
|
|
@@ -373,7 +375,8 @@ export default defineComponent({
|
|
|
musicalInstrumentIds: forms.musicalInstrumentIdList.join(','),
|
|
|
extConfigJson: JSON.stringify({
|
|
|
repeatedBeats: forms.repeatedBeats ? 1 : 0,
|
|
|
- gradualTimes: forms.graduals
|
|
|
+ gradualTimes: forms.graduals,
|
|
|
+ isEvxml: forms.isEvxml ? 1 : 0,
|
|
|
}),
|
|
|
subjectIds: forms.subjectIds.join(',')
|
|
|
}
|
|
@@ -401,6 +404,8 @@ export default defineComponent({
|
|
|
|
|
|
// 上传XML,初始化音轨 音轨速度 乐器、声部
|
|
|
const readFileInputEventAsArrayBuffer = (file: any) => {
|
|
|
+ // 是否是evxml
|
|
|
+ // forms.isEvxml = file?.name?.includes('.evxml') ? true : false;
|
|
|
const xmlRead = new FileReader()
|
|
|
xmlRead.onload = (res) => {
|
|
|
try {
|
|
@@ -511,7 +516,11 @@ export default defineComponent({
|
|
|
const partList: any =
|
|
|
xmlParse.getElementsByTagName('part-list')?.[0]?.getElementsByTagName('score-part') || []
|
|
|
let partListNames = Array.from(partList).map((item: any) => {
|
|
|
- const part = item.getElementsByTagName('part-name')?.[0].textContent || ''
|
|
|
+ let part = item.getElementsByTagName('part-name')?.[0]?.textContent || ''
|
|
|
+ // evxml没有分轨,需要手动设置一个默认的名称,用于上传原音
|
|
|
+ if (forms.isEvxml) {
|
|
|
+ part = part || 'noPartName'
|
|
|
+ }
|
|
|
return {
|
|
|
value: part,
|
|
|
label: part
|
|
@@ -541,6 +550,7 @@ export default defineComponent({
|
|
|
forms.playSpeed = 100
|
|
|
}
|
|
|
}
|
|
|
+ // console.log('xml声轨',partListNames,state.xmlFirstSpeed)
|
|
|
return partListNames
|
|
|
}
|
|
|
|
|
@@ -744,6 +754,7 @@ export default defineComponent({
|
|
|
forms.sourceType = data.sourceType
|
|
|
forms.appAuditFlag = data.appAuditFlag ? 1 : 0
|
|
|
forms.midiFileUrl = data.midiFileUrl
|
|
|
+ forms.isShowFingering = data.isShowFingering
|
|
|
forms.subjectIds = []
|
|
|
if (data.subjectIds) {
|
|
|
const subjectIds = data.subjectIds.split(',') || []
|
|
@@ -769,6 +780,7 @@ export default defineComponent({
|
|
|
const extConfigJson = data.extConfigJson ? JSON.parse(data.extConfigJson) : {}
|
|
|
forms.graduals = extConfigJson.gradualTimes || {}
|
|
|
forms.repeatedBeats = !!extConfigJson.repeatedBeats
|
|
|
+ forms.isEvxml = !!extConfigJson.isEvxml
|
|
|
} catch (error) {}
|
|
|
forms.evaluationStandard = data.evaluationStandard
|
|
|
forms.musicSheetExtend = data.musicSheetExtend
|
|
@@ -1109,7 +1121,7 @@ export default defineComponent({
|
|
|
v-model:value={forms.playSpeed}
|
|
|
style="width:100%"
|
|
|
/>
|
|
|
- </NFormItemGi>
|
|
|
+ </NFormItemGi>
|
|
|
</NGrid>
|
|
|
<NAlert showIcon={false} style={{ marginBottom: '12px' }}>
|
|
|
曲目上传
|
|
@@ -1251,7 +1263,7 @@ export default defineComponent({
|
|
|
v-model:fileList={forms.xmlFileUrl}
|
|
|
tips="仅支持上传.xml/.mxml格式文件"
|
|
|
listType="image"
|
|
|
- accept=".xml,.mxml"
|
|
|
+ accept=".xml,.mxml,.evxml"
|
|
|
bucketName="cloud-coach"
|
|
|
text="点击上传XML文件"
|
|
|
onReadFileInputEventAsArrayBuffer={readFileInputEventAsArrayBuffer}
|
|
@@ -1332,7 +1344,22 @@ export default defineComponent({
|
|
|
<NRadio value={'SINGLE'}>是</NRadio>
|
|
|
<NRadio value={'CONCERT'}>否</NRadio>
|
|
|
</NRadioGroup>
|
|
|
- </NFormItemGi>
|
|
|
+ </NFormItemGi>
|
|
|
+ <NFormItemGi
|
|
|
+ label="是否显示指法"
|
|
|
+ path="isShowFingering"
|
|
|
+ rule={[
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请选择是否显示指法'
|
|
|
+ }
|
|
|
+ ]}
|
|
|
+ >
|
|
|
+ <NRadioGroup v-model:value={forms.isShowFingering}>
|
|
|
+ <NRadio value={true}>是</NRadio>
|
|
|
+ <NRadio value={false}>否</NRadio>
|
|
|
+ </NRadioGroup>
|
|
|
+ </NFormItemGi>
|
|
|
</NGrid>
|
|
|
|
|
|
{forms.musicSheetType && (
|