|
@@ -70,8 +70,8 @@ export default defineComponent({
|
|
|
};
|
|
|
|
|
|
const setState = (data: any, index: number) => {
|
|
|
+ // console.log("🚀 ~ data:", data)
|
|
|
state.scrollContainer = "scrollContainer";
|
|
|
- state.appName = "COLEXIU";
|
|
|
state.detailId = data.id;
|
|
|
state.xmlUrl = data.xmlFileUrl;
|
|
|
state.partIndex = index;
|
|
@@ -90,19 +90,20 @@ export default defineComponent({
|
|
|
}
|
|
|
}
|
|
|
state.isOpenMetronome = data.mp3Type === "MP3_METRONOME" ? true : false;
|
|
|
- state.needTick = true; // data.isOpenMetronome;
|
|
|
+ state.needTick = data.isOpenMetronome;
|
|
|
state.isShowFingering = data.showFingering ? true : false;
|
|
|
state.music = data.audioFileUrl;
|
|
|
state.accompany = data.metronomeUrl || data.metronomeUrl;
|
|
|
state.midiUrl = data.midiUrl;
|
|
|
state.parentCategoriesId = data.musicTag;
|
|
|
state.playMode = data.audioType === "MP3" ? "mp3" : "midi";
|
|
|
- state.originSpeed = state.speed = data.playSpeed;
|
|
|
+ state.originSpeed = state.speed = data.speed;
|
|
|
state.track = data.track;
|
|
|
state.enableNotation = data.notation ? true : false;
|
|
|
|
|
|
// 映射声部ID
|
|
|
- state.subjectId = mappingVoicePart(state.track as any, "COLEXIU");
|
|
|
+ state.subjectId = mappingVoicePart(state.subjectId as any, "ORCHESTRA");
|
|
|
+ console.log("🚀 ~ state.subjectId:", state.subjectId)
|
|
|
// 是否打击乐
|
|
|
state.isPercussion = state.subjectId == 23 || state.subjectId == 113 || state.subjectId == 121 || isRhythmicExercises();
|
|
|
|
|
@@ -130,7 +131,8 @@ export default defineComponent({
|
|
|
state.osmd = osmd;
|
|
|
const saveSpeed = (store.get("speeds") || {})[state.examSongId];
|
|
|
const bpm = (osmd as any).bpm || osmd.Sheet.userStartTempoInBPM;
|
|
|
- state.originSpeed = state.speed = saveSpeed || bpm || 100;
|
|
|
+ // state.originSpeed =
|
|
|
+ // state.speed = saveSpeed || bpm || 100;
|
|
|
state.times = formateTimes(osmd);
|
|
|
console.log("🚀 ~ state.times:", state.times);
|
|
|
try {
|
|
@@ -153,7 +155,12 @@ export default defineComponent({
|
|
|
paddingBottom: state.fingeringInfo.height,
|
|
|
},
|
|
|
fingerBox: {
|
|
|
+ position: 'absolute',
|
|
|
+ width: '100%',
|
|
|
height: state.fingeringInfo.height,
|
|
|
+ left: 0,
|
|
|
+ bottom:0,
|
|
|
+ background: 'var(--container-background)'
|
|
|
},
|
|
|
};
|
|
|
} else {
|
|
@@ -166,7 +173,7 @@ export default defineComponent({
|
|
|
width: state.fingeringInfo.width,
|
|
|
height: "100%",
|
|
|
right: 0,
|
|
|
- top: 0,
|
|
|
+ top: 0, //"calc(var(--header-height) / 2)",
|
|
|
},
|
|
|
};
|
|
|
}
|
|
@@ -209,6 +216,11 @@ export default defineComponent({
|
|
|
<div
|
|
|
class={[styles.detail, state.setting.eyeProtection && "eyeProtection"]}
|
|
|
style={{ paddingLeft: detailData.paddingLeft, opacity: state.setting.camera ? `${state.setting.cameraOpacity / 100}` : ''}}
|
|
|
+ onClick={(e: Event) => {
|
|
|
+ if (state.playState === "play") {
|
|
|
+ detailData.headerHide = !detailData.headerHide;
|
|
|
+ }
|
|
|
+ }}
|
|
|
>
|
|
|
{!state.musicRendered && (
|
|
|
<div class={styles.skeleton}>
|
|
@@ -222,11 +234,6 @@ export default defineComponent({
|
|
|
id="scrollContainer"
|
|
|
style={{ ...fingerConfig.value.container }}
|
|
|
class={[styles.container, !state.setting.displayCursor && "hideCursor"]}
|
|
|
- onClick={(e: Event) => {
|
|
|
- if (state.playState === "play") {
|
|
|
- detailData.headerHide = !detailData.headerHide;
|
|
|
- }
|
|
|
- }}
|
|
|
>
|
|
|
{/* 曲谱渲染 */}
|
|
|
{!detailData.isLoading && <MusicScore onRendered={handleRendered} />}
|
|
@@ -239,13 +246,13 @@ export default defineComponent({
|
|
|
{evaluatingData.rendered && <EvaluatModel />}
|
|
|
</>
|
|
|
)}
|
|
|
- {/* 指法 */}
|
|
|
- {state.setting.displayFingering && state.fingeringInfo?.name && (
|
|
|
- <div style={{ ...fingerConfig.value.fingerBox }}>
|
|
|
- <Fingering />
|
|
|
- </div>
|
|
|
- )}
|
|
|
</div>
|
|
|
+ {/* 指法 */}
|
|
|
+ {state.setting.displayFingering && state.fingeringInfo?.name && (
|
|
|
+ <div style={{ ...fingerConfig.value.fingerBox }}>
|
|
|
+ <Fingering />
|
|
|
+ </div>
|
|
|
+ )}
|
|
|
|
|
|
{/* 公用的插件 */}
|
|
|
<div class={styles.plugins}>
|