|
@@ -18,16 +18,18 @@ import { getQuery } from "/src/utils/queryString";
|
|
import Evaluating, { evaluatingData } from "/src/view/evaluating";
|
|
import Evaluating, { evaluatingData } from "/src/view/evaluating";
|
|
import MeasureSpeed from "/src/view/plugins/measure-speed";
|
|
import MeasureSpeed from "/src/view/plugins/measure-speed";
|
|
import Selection from "/src/view/selection";
|
|
import Selection from "/src/view/selection";
|
|
|
|
+import { mappingVoicePart, subjectFingering } from "/src/view/fingering/fingering-config";
|
|
|
|
+import Fingering from "/src/view/fingering";
|
|
|
|
|
|
//特殊教材分类id
|
|
//特殊教材分类id
|
|
const classids = [1, 30, 97]; // [大雅金唐, 竖笛教程, 声部训练]
|
|
const classids = [1, 30, 97]; // [大雅金唐, 竖笛教程, 声部训练]
|
|
export default defineComponent({
|
|
export default defineComponent({
|
|
name: "music-list",
|
|
name: "music-list",
|
|
setup() {
|
|
setup() {
|
|
- const route = useRoute()
|
|
|
|
|
|
+ const route = useRoute();
|
|
const query: any = {
|
|
const query: any = {
|
|
...getQuery(),
|
|
...getQuery(),
|
|
- ...route.query
|
|
|
|
|
|
+ ...route.query,
|
|
};
|
|
};
|
|
|
|
|
|
const paramsId = route.params.id as string;
|
|
const paramsId = route.params.id as string;
|
|
@@ -119,8 +121,12 @@ export default defineComponent({
|
|
state.track = data.track;
|
|
state.track = data.track;
|
|
state.isOpenPrepare = true;
|
|
state.isOpenPrepare = true;
|
|
|
|
|
|
|
|
+ // 映射声部ID
|
|
|
|
+ state.subjectId = mappingVoicePart(state.subjectId, "GYM");
|
|
// 是否打击乐
|
|
// 是否打击乐
|
|
state.isPercussion = state.subjectId == 23 || state.subjectId == 113 || state.subjectId == 121 || isRhythmicExercises();
|
|
state.isPercussion = state.subjectId == 23 || state.subjectId == 113 || state.subjectId == 121 || isRhythmicExercises();
|
|
|
|
+
|
|
|
|
+ state.fingeringInfo = subjectFingering[state.subjectId];
|
|
};
|
|
};
|
|
|
|
|
|
const setCustom = () => {
|
|
const setCustom = () => {
|
|
@@ -159,22 +165,33 @@ export default defineComponent({
|
|
<div class={styles.headHeight}>
|
|
<div class={styles.headHeight}>
|
|
<Transition name="van-slide-down">{detailData.svgRendered && <HeaderTop />}</Transition>
|
|
<Transition name="van-slide-down">{detailData.svgRendered && <HeaderTop />}</Transition>
|
|
</div>
|
|
</div>
|
|
- <div class={[styles.container, state.setting.eyeProtection && 'eyeProtection', !state.setting.displayCursor && 'hideCursor']} id="mainContainer">
|
|
|
|
|
|
+ <div class={[styles.container, state.setting.eyeProtection && "eyeProtection", !state.setting.displayCursor && "hideCursor"]} id="mainContainer">
|
|
|
|
+ {/* 曲谱渲染和点击层 */}
|
|
{!detailData.isLoading && (
|
|
{!detailData.isLoading && (
|
|
<div id="musicAndSelection">
|
|
<div id="musicAndSelection">
|
|
<MusicScore onRendered={handleRendered} />
|
|
<MusicScore onRendered={handleRendered} />
|
|
{detailData.showSelection && <Selection />}
|
|
{detailData.showSelection && <Selection />}
|
|
</div>
|
|
</div>
|
|
)}
|
|
)}
|
|
|
|
+ {/* 播放 */}
|
|
{!detailData.isLoading && <AudioList />}
|
|
{!detailData.isLoading && <AudioList />}
|
|
|
|
+ {/* 评测 */}
|
|
{state.modeType === "evaluating" && (
|
|
{state.modeType === "evaluating" && (
|
|
<>
|
|
<>
|
|
<Evaluating />
|
|
<Evaluating />
|
|
{evaluatingData.rendered && <EvaluatModel />}
|
|
{evaluatingData.rendered && <EvaluatModel />}
|
|
</>
|
|
</>
|
|
)}
|
|
)}
|
|
|
|
+ {/* 指法 */}
|
|
|
|
+ {/* {state.setting.displayFingering && <Fingering />} */}
|
|
</div>
|
|
</div>
|
|
- <div class={styles.plugins}>{detailData.svgRendered && <MeasureSpeed />}</div>
|
|
|
|
|
|
+
|
|
|
|
+ {/* 公用的插件 */}
|
|
|
|
+ {detailData.svgRendered && (
|
|
|
|
+ <div class={styles.plugins}>
|
|
|
|
+ <MeasureSpeed />
|
|
|
|
+ </div>
|
|
|
|
+ )}
|
|
</div>
|
|
</div>
|
|
);
|
|
);
|
|
},
|
|
},
|