|
@@ -5,12 +5,12 @@ import { getFingeringConfig, ITypeFingering } from "./fingering-config";
|
|
|
|
|
|
export default defineComponent({
|
|
|
name: "fingering",
|
|
|
- emits: ['open'],
|
|
|
+ emits: ["open"],
|
|
|
setup(props, { emit }) {
|
|
|
const fingerData = reactive({
|
|
|
relationshipIndex: 0,
|
|
|
subject: null as unknown as ITypeFingering,
|
|
|
- delay: 0
|
|
|
+ delay: 0,
|
|
|
});
|
|
|
const getFingeringData = async () => {
|
|
|
fingerData.subject = await getFingeringConfig(state.fingeringInfo.name);
|
|
@@ -27,13 +27,13 @@ export default defineComponent({
|
|
|
const doubeClick = () => {
|
|
|
const nowTime = Date.now();
|
|
|
if (nowTime - fingerData.delay < 300) {
|
|
|
- emit('open')
|
|
|
+ emit("open");
|
|
|
return;
|
|
|
}
|
|
|
fingerData.delay = nowTime;
|
|
|
- }
|
|
|
+ };
|
|
|
return () => {
|
|
|
- console.log('音高', realKey.value)
|
|
|
+ // console.log("音高", realKey.value);
|
|
|
const relationship = fingerData.subject?.relationship?.[realKey.value] || [];
|
|
|
const rs: number[] = Array.isArray(relationship[1])
|
|
|
? relationship[fingerData.relationshipIndex]
|
|
@@ -53,18 +53,23 @@ export default defineComponent({
|
|
|
})}
|
|
|
</div>
|
|
|
|
|
|
- <div
|
|
|
- class={[styles.tizhi, canTizhi && styles.canDisplay]}
|
|
|
- onClick={() =>
|
|
|
- (fingerData.relationshipIndex = fingerData.relationshipIndex === 0 ? 1 : 0)
|
|
|
- }
|
|
|
- >
|
|
|
- 替指
|
|
|
- </div>
|
|
|
+ {state.fingeringInfo.hasTizhi && (
|
|
|
+ <div
|
|
|
+ class={[styles.tizhi, canTizhi && styles.canDisplay]}
|
|
|
+ onClick={() =>
|
|
|
+ (fingerData.relationshipIndex = fingerData.relationshipIndex === 0 ? 1 : 0)
|
|
|
+ }
|
|
|
+ >
|
|
|
+ 替指
|
|
|
+ </div>
|
|
|
+ )}
|
|
|
</div>
|
|
|
) : (
|
|
|
- <div onClick={() => doubeClick()} class={[styles.fingeringContainer, styles.vertical, state.fingeringInfo.name]}>
|
|
|
- <div class={styles.imgs}>
|
|
|
+ <div
|
|
|
+ onClick={() => doubeClick()}
|
|
|
+ class={[styles.fingeringContainer, styles.vertical, state.fingeringInfo.name]}
|
|
|
+ >
|
|
|
+ <div class={styles.imgs} style={{ transform: state.fingeringInfo.transform }}>
|
|
|
<img src={fingerData.subject?.json?.full} />
|
|
|
{rs.map((key: number | string, index: number) => {
|
|
|
const nk: string = typeof key === "string" ? key.replace("active-", "") : String(key);
|
|
@@ -72,20 +77,22 @@ export default defineComponent({
|
|
|
})}
|
|
|
</div>
|
|
|
|
|
|
- <div
|
|
|
- style={{ display: state.fingeringInfo.disabledFinger ? "none" : "" }}
|
|
|
- class={styles.rightContent}
|
|
|
- >
|
|
|
- <span class={[styles.yidiao, rs.includes(0) && styles.canDisplay]}>转调</span>
|
|
|
+ {state.fingeringInfo.hasTizhi && (
|
|
|
<div
|
|
|
- class={[styles.tizhi, canTizhi && styles.canDisplay]}
|
|
|
- onClick={() =>
|
|
|
- (fingerData.relationshipIndex = fingerData.relationshipIndex === 0 ? 1 : 0)
|
|
|
- }
|
|
|
+ style={{ display: state.fingeringInfo.disabledFinger ? "none" : "" }}
|
|
|
+ class={styles.rightContent}
|
|
|
>
|
|
|
- 替指
|
|
|
+ <span class={[styles.yidiao, rs.includes(0) && styles.canDisplay]}>转调</span>
|
|
|
+ <div
|
|
|
+ class={[styles.tizhi, canTizhi && styles.canDisplay]}
|
|
|
+ onClick={() =>
|
|
|
+ (fingerData.relationshipIndex = fingerData.relationshipIndex === 0 ? 1 : 0)
|
|
|
+ }
|
|
|
+ >
|
|
|
+ 替指
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ )}
|
|
|
</div>
|
|
|
)}
|
|
|
</>
|