|
@@ -242,7 +242,7 @@ export default defineComponent({
|
|
|
// 'data.list[data.listActive]'
|
|
|
// );
|
|
|
musicsrc = `${vaildMusicScoreUrl()}/instrument/?modelType=practise&id=${
|
|
|
- data.list[data.listActive].xmlFileUrl
|
|
|
+ data.list[data.listActive]?.xmlFileUrl
|
|
|
}&Authorization=${userStore.getToken}/#/preview`;
|
|
|
} else {
|
|
|
musicsrc = '';
|
|
@@ -309,6 +309,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 musicIframeLoad = () => {
|
|
|
const token = userStore.getToken;
|
|
|
const details = data.list[data.listActive];
|
|
@@ -356,20 +371,48 @@ export default defineComponent({
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- const _actions = [
|
|
|
- {
|
|
|
- value: 'staff',
|
|
|
- label: '五线谱'
|
|
|
- },
|
|
|
- {
|
|
|
- value: 'first',
|
|
|
- label: '首调'
|
|
|
- },
|
|
|
- {
|
|
|
- value: 'fixed',
|
|
|
- label: '固定调'
|
|
|
+ const _actions = computed(() => {
|
|
|
+ const details = data.list[data.listActive];
|
|
|
+ const { scoreType, isConvertibleScore } = details || {};
|
|
|
+
|
|
|
+ const action: any[] = [
|
|
|
+ {
|
|
|
+ value: 'first',
|
|
|
+ label: '首调'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: 'fixed',
|
|
|
+ label: '固定调'
|
|
|
+ }
|
|
|
+ ];
|
|
|
+ // 首调 固定调 并且 不显示可转谱 则不显示五线谱
|
|
|
+ if (
|
|
|
+ !(
|
|
|
+ ['JIAN', 'FIRST'].includes(scoreType) && isConvertibleScore === false
|
|
|
+ ) &&
|
|
|
+ !(isConvertibleScore === undefined || isConvertibleScore === null)
|
|
|
+ ) {
|
|
|
+ action.unshift({
|
|
|
+ value: 'staff',
|
|
|
+ label: '五线谱'
|
|
|
+ });
|
|
|
}
|
|
|
- ];
|
|
|
+ return action;
|
|
|
+ });
|
|
|
+ // const _actions = [
|
|
|
+ // {
|
|
|
+ // value: 'staff',
|
|
|
+ // label: '五线谱'
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // value: 'first',
|
|
|
+ // label: '首调'
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // value: 'fixed',
|
|
|
+ // label: '固定调'
|
|
|
+ // }
|
|
|
+ // ];
|
|
|
|
|
|
// 解析xml,获取分轨信息
|
|
|
const analyzeXml = async () => {
|
|
@@ -400,24 +443,33 @@ export default defineComponent({
|
|
|
// );
|
|
|
// }
|
|
|
// showMusicImg: 'first' as 'staff' | 'first' | 'fixed',
|
|
|
- const { defaultScore, transferFlag } =
|
|
|
- details.musicalInstruments[0] || {};
|
|
|
- // console.log(
|
|
|
- // details.musicalInstruments[0],
|
|
|
- // 'details.musicalInstruments[0]'
|
|
|
- // );
|
|
|
- let musicImgType: 'staff' | 'first' | 'fixed' = 'staff';
|
|
|
+
|
|
|
+ // const { defaultScore, transferFlag } =
|
|
|
+ // details.musicalInstruments[0] || {};
|
|
|
+ // let musicImgType: 'staff' | 'first' | 'fixed' = 'staff';
|
|
|
+ // musicImgType =
|
|
|
+ // defaultScore === 'STAVE'
|
|
|
+ // ? 'staff'
|
|
|
+ // : defaultScore === 'JIAN'
|
|
|
+ // ? 'fixed'
|
|
|
+ // : defaultScore === 'FIRST'
|
|
|
+ // ? 'first'
|
|
|
+ // : 'staff';
|
|
|
+ // console.log(musicImgType, 'musicImgType1');
|
|
|
+ // data.showMusicImg = musicImgType;
|
|
|
+ // data.showTransBtn = transferFlag;
|
|
|
+ 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';
|
|
|
- console.log(musicImgType, 'musicImgType1');
|
|
|
+ : 'first';
|
|
|
data.showMusicImg = musicImgType;
|
|
|
- data.showTransBtn = transferFlag;
|
|
|
+ data.showTransBtn = checkConverTible(isConvertibleScore, scoreType);
|
|
|
}
|
|
|
};
|
|
|
|
|
@@ -432,7 +484,7 @@ export default defineComponent({
|
|
|
item =>
|
|
|
item.getElementsByTagName('part-name')?.[0]?.textContent?.trim() || ''
|
|
|
);
|
|
|
- const parts: any = xmlParse.getElementsByTagName('part');
|
|
|
+ // const parts: any = xmlParse.getElementsByTagName('part');
|
|
|
|
|
|
/** 第一分谱如果是约定的配置分谱则跳过 */
|
|
|
if (partListNames[0]?.toLocaleUpperCase?.() === 'COMMON') {
|
|
@@ -465,31 +517,44 @@ export default defineComponent({
|
|
|
.filter((item: any) => item.canselect)
|
|
|
.sort((a: any, b: any) => a.sortId - b.sortId);
|
|
|
data.trackList = arr;
|
|
|
- let track = arr.find(
|
|
|
- (item: any) => item.value === data.musicInstrumentIndex
|
|
|
- )?.track;
|
|
|
+ // let track = arr.find(
|
|
|
+ // (item: any) => item.value === data.musicInstrumentIndex
|
|
|
+ // )?.track;
|
|
|
// track = track
|
|
|
// .replace(/[0-9]+/g, '')
|
|
|
// .replace(/\s/g, '')
|
|
|
// .toLocaleLowerCase();
|
|
|
- track = trackToCode(track);
|
|
|
- let musicRenderType: 'staff' | 'first' | 'fixed' = 'staff';
|
|
|
- let canTrans = true;
|
|
|
- data.list[data.listActive]?.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;
|
|
|
+ // track = trackToCode(track);
|
|
|
+ // let musicRenderType: 'staff' | 'first' | 'fixed' = 'staff';
|
|
|
+ // let canTrans = true;
|
|
|
+ // data.list[data.listActive]?.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.list[data.listActive];
|
|
|
+ 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.listActive,
|
|
@@ -839,7 +904,7 @@ export default defineComponent({
|
|
|
{/* 转谱按钮 */}
|
|
|
{data.showTransBtn && (
|
|
|
<NPopselect
|
|
|
- options={_actions}
|
|
|
+ options={_actions.value}
|
|
|
trigger="hover"
|
|
|
v-model:value={data.showMusicImg}
|
|
|
onUpdate:value={async (val: any) => {
|