|
@@ -114,11 +114,10 @@ export default defineComponent({
|
|
|
const showGuide = ref(false);
|
|
|
|
|
|
const _actions = computed(() => {
|
|
|
- return [
|
|
|
- {
|
|
|
- value: 'staff',
|
|
|
- text: '五线谱'
|
|
|
- },
|
|
|
+ const details = data.musics[data.musicIndex];
|
|
|
+ let { scoreType, isConvertibleScore } = details || {};
|
|
|
+
|
|
|
+ let action: any[] = [
|
|
|
{
|
|
|
value: 'first',
|
|
|
text: '首调'
|
|
@@ -127,7 +126,20 @@ export default defineComponent({
|
|
|
value: 'fixed',
|
|
|
text: '固定调'
|
|
|
}
|
|
|
- ].map((item, index) => {
|
|
|
+ ];
|
|
|
+
|
|
|
+ if (
|
|
|
+ !(
|
|
|
+ ['JIAN', 'FIRST'].includes(scoreType) && isConvertibleScore === false
|
|
|
+ ) &&
|
|
|
+ !(isConvertibleScore === undefined || isConvertibleScore === null)
|
|
|
+ ) {
|
|
|
+ action.unshift({
|
|
|
+ value: 'staff',
|
|
|
+ text: '五线谱'
|
|
|
+ });
|
|
|
+ }
|
|
|
+ return action.map((item, index) => {
|
|
|
return {
|
|
|
...item,
|
|
|
color:
|
|
@@ -323,18 +335,6 @@ export default defineComponent({
|
|
|
|
|
|
// 根据musicSheetType返回的值,判断是否显示切换声轨按钮
|
|
|
const isEnsemble = computed(() => {
|
|
|
- // const musics = data.musics[data.musicIndex]?.musicalInstruments;
|
|
|
- // if (musics && musics.length) {
|
|
|
- // let list: any = [];
|
|
|
- // const arr = musics.forEach((item: any) => {
|
|
|
- // list.push({ name: item.name, code: item.code });
|
|
|
- // });
|
|
|
- // }
|
|
|
- // if (musics && musics.length > 1) {
|
|
|
- // return true;
|
|
|
- // } else {
|
|
|
- // return false;
|
|
|
- // }
|
|
|
if (data.musics.length) {
|
|
|
const musicSheetType = data.musics[data.musicIndex]?.musicSheetType;
|
|
|
if (musicSheetType === 'SINGLE') {
|
|
@@ -347,6 +347,21 @@ export default defineComponent({
|
|
|
}
|
|
|
});
|
|
|
|
|
|
+ // 判断是否可转谱 - 为空也可以转谱
|
|
|
+ const checkConverTible = (isConvertibleScore: any, scoreType: string) => {
|
|
|
+ if (
|
|
|
+ isConvertibleScore ||
|
|
|
+ isConvertibleScore === '' ||
|
|
|
+ isConvertibleScore === undefined ||
|
|
|
+ isConvertibleScore === null ||
|
|
|
+ (['JIAN', 'FIRST'].includes(scoreType) && !isConvertibleScore)
|
|
|
+ ) {
|
|
|
+ return true;
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
const getSubjecList = async () => {
|
|
|
try {
|
|
|
let subjectIds = state.user.data?.subjectId || '';
|
|
@@ -397,19 +412,18 @@ export default defineComponent({
|
|
|
}
|
|
|
} else {
|
|
|
// showMusicImg: 'first' as 'staff' | 'first' | 'fixed',
|
|
|
- const { defaultScore, transferFlag } =
|
|
|
- details.musicalInstruments[0] || {};
|
|
|
- let musicImgType: 'staff' | 'first' | 'fixed' = 'staff';
|
|
|
+ const { scoreType, isConvertibleScore } = details || {};
|
|
|
+ let musicImgType: 'staff' | 'first' | 'fixed' = 'first';
|
|
|
musicImgType =
|
|
|
- defaultScore === 'STAVE'
|
|
|
+ scoreType === 'STAVE'
|
|
|
? 'staff'
|
|
|
- : defaultScore === 'JIAN'
|
|
|
+ : scoreType === 'JIAN'
|
|
|
? 'fixed'
|
|
|
- : defaultScore === 'FIRST'
|
|
|
+ : scoreType === 'FIRST'
|
|
|
? 'first'
|
|
|
- : 'staff';
|
|
|
+ : 'first';
|
|
|
data.showMusicImg = musicImgType;
|
|
|
- data.showTransBtn = transferFlag;
|
|
|
+ data.showTransBtn = checkConverTible(isConvertibleScore, scoreType);
|
|
|
}
|
|
|
};
|
|
|
|
|
@@ -461,29 +475,38 @@ export default defineComponent({
|
|
|
let track = arr.find(
|
|
|
(item: any) => item.value === data.selectMusicInstrumentIndex
|
|
|
)?.track;
|
|
|
- // track = track
|
|
|
- // .replace(/[0-9]+/g, '')
|
|
|
- // .replace(/\s/g, '')
|
|
|
- // .toLocaleLowerCase();
|
|
|
track = trackToCode(track);
|
|
|
- // console.log(123,track)
|
|
|
- let musicRenderType: 'staff' | 'first' | 'fixed' = 'staff';
|
|
|
- let canTrans = true;
|
|
|
- data.musics[data.musicIndex]?.musicalInstruments.forEach((item: any) => {
|
|
|
- if (item.code.toLocaleLowerCase() === track.toLocaleLowerCase()) {
|
|
|
- musicRenderType =
|
|
|
- item.defaultScore === 'STAVE'
|
|
|
- ? 'staff'
|
|
|
- : item.defaultScore === 'JIAN'
|
|
|
- ? 'fixed'
|
|
|
- : item.defaultScore === 'FIRST'
|
|
|
- ? 'first'
|
|
|
- : 'staff';
|
|
|
- canTrans = item.transferFlag;
|
|
|
- }
|
|
|
- });
|
|
|
- data.showTransBtn = canTrans;
|
|
|
- data.showMusicImg = musicRenderType;
|
|
|
+
|
|
|
+ // let musicRenderType: 'staff' | 'first' | 'fixed' = 'staff';
|
|
|
+ // let canTrans = true;
|
|
|
+ // data.musics[data.musicIndex]?.musicalInstruments.forEach((item: any) => {
|
|
|
+ // if (item.code.toLocaleLowerCase() === track.toLocaleLowerCase()) {
|
|
|
+ // musicRenderType =
|
|
|
+ // item.defaultScore === 'STAVE'
|
|
|
+ // ? 'staff'
|
|
|
+ // : item.defaultScore === 'JIAN'
|
|
|
+ // ? 'fixed'
|
|
|
+ // : item.defaultScore === 'FIRST'
|
|
|
+ // ? 'first'
|
|
|
+ // : 'staff';
|
|
|
+ // canTrans = item.transferFlag;
|
|
|
+ // }
|
|
|
+ // });
|
|
|
+ // data.showTransBtn = canTrans;
|
|
|
+ // data.showMusicImg = musicRenderType;
|
|
|
+ const details = data.musics[data.musicIndex];
|
|
|
+ const { scoreType, isConvertibleScore } = details || {};
|
|
|
+ let musicImgType: 'staff' | 'first' | 'fixed' = 'first';
|
|
|
+ musicImgType =
|
|
|
+ scoreType === 'STAVE'
|
|
|
+ ? 'staff'
|
|
|
+ : scoreType === 'JIAN'
|
|
|
+ ? 'fixed'
|
|
|
+ : scoreType === 'FIRST'
|
|
|
+ ? 'first'
|
|
|
+ : 'first';
|
|
|
+ data.showMusicImg = musicImgType;
|
|
|
+ data.showTransBtn = checkConverTible(isConvertibleScore, scoreType);
|
|
|
};
|
|
|
watch(
|
|
|
() => data.musicIndex,
|