|  | @@ -23,6 +23,7 @@ import useDrag from "/src/hooks/useDrag";
 | 
											
												
													
														|  |  import Dragbom from "/src/hooks/useDrag/dragbom";
 |  |  import Dragbom from "/src/hooks/useDrag/dragbom";
 | 
											
												
													
														|  |  import useDragGuidance from "/src/hooks/useDrag/useDragGuidance";
 |  |  import useDragGuidance from "/src/hooks/useDrag/useDragGuidance";
 | 
											
												
													
														|  |  import { FINER_INSTRUMENT_POINT } from "./fingeringPoint";
 |  |  import { FINER_INSTRUMENT_POINT } from "./fingeringPoint";
 | 
											
												
													
														|  | 
 |  | +import { useClickAway } from "@vant/use";
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  export default defineComponent({
 |  |  export default defineComponent({
 | 
											
												
													
														|  |    name: "viewFigner",
 |  |    name: "viewFigner",
 | 
											
										
											
												
													
														|  | @@ -232,6 +233,7 @@ export default defineComponent({
 | 
											
												
													
														|  |      // 切换当前模式
 |  |      // 切换当前模式
 | 
											
												
													
														|  |      const onChangeFingeringModel = (e: any) => {
 |  |      const onChangeFingeringModel = (e: any) => {
 | 
											
												
													
														|  |        e.stopPropagation();
 |  |        e.stopPropagation();
 | 
											
												
													
														|  | 
 |  | +      isMoreFunShow.value = false;
 | 
											
												
													
														|  |        //
 |  |        //
 | 
											
												
													
														|  |        if (playAction.listenLock) return;
 |  |        if (playAction.listenLock) return;
 | 
											
												
													
														|  |        if (playAction.showAnswerLoading) return;
 |  |        if (playAction.showAnswerLoading) return;
 | 
											
										
											
												
													
														|  | @@ -785,6 +787,7 @@ export default defineComponent({
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      /** 音符切换 */
 |  |      /** 音符切换 */
 | 
											
												
													
														|  |      const noteChangeShow = () => {
 |  |      const noteChangeShow = () => {
 | 
											
												
													
														|  | 
 |  | +      isMoreFunShow.value = false;
 | 
											
												
													
														|  |        if (playStatus.action) {
 |  |        if (playStatus.action) {
 | 
											
												
													
														|  |          if (playAction.listenLock) return;
 |  |          if (playAction.listenLock) return;
 | 
											
												
													
														|  |          playAction.resetAction = true;
 |  |          playAction.resetAction = true;
 | 
											
										
											
												
													
														|  | @@ -816,7 +819,9 @@ export default defineComponent({
 | 
											
												
													
														|  |      };
 |  |      };
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      // 开始播放音阶
 |  |      // 开始播放音阶
 | 
											
												
													
														|  | -    const onGamutPlayOrPause = async () => {
 |  | 
 | 
											
												
													
														|  | 
 |  | +    const onGamutPlayOrPause = async (e:Event) => {
 | 
											
												
													
														|  | 
 |  | +      e.stopPropagation();
 | 
											
												
													
														|  | 
 |  | +      isMoreFunShow.value = false;
 | 
											
												
													
														|  |        playAction.resetAction = false;
 |  |        playAction.resetAction = false;
 | 
											
												
													
														|  |        if (playStatus.gamut) {
 |  |        if (playStatus.gamut) {
 | 
											
												
													
														|  |          playStatus.gamut = false;
 |  |          playStatus.gamut = false;
 | 
											
										
											
												
													
														|  | @@ -881,7 +886,9 @@ export default defineComponent({
 | 
											
												
													
														|  |        userAnswer: {} as any, // 用户答的数据
 |  |        userAnswer: {} as any, // 用户答的数据
 | 
											
												
													
														|  |        timer: null as any,
 |  |        timer: null as any,
 | 
											
												
													
														|  |      });
 |  |      });
 | 
											
												
													
														|  | -    const onActionPlay = async () => {
 |  | 
 | 
											
												
													
														|  | 
 |  | +    const onActionPlay = async (e:Event) => {
 | 
											
												
													
														|  | 
 |  | +      e.stopPropagation();
 | 
											
												
													
														|  | 
 |  | +      isMoreFunShow.value = false;
 | 
											
												
													
														|  |        playAction.resetAction = false;
 |  |        playAction.resetAction = false;
 | 
											
												
													
														|  |        if (playAction.listenLock) return;
 |  |        if (playAction.listenLock) return;
 | 
											
												
													
														|  |        if (playAction.showAnswerLoading) return;
 |  |        if (playAction.showAnswerLoading) return;
 | 
											
										
											
												
													
														|  | @@ -954,7 +961,9 @@ export default defineComponent({
 | 
											
												
													
														|  |      };
 |  |      };
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      // 显示答案
 |  |      // 显示答案
 | 
											
												
													
														|  | -    const onShowAnswer = async () => {
 |  | 
 | 
											
												
													
														|  | 
 |  | +    const onShowAnswer = async (e:Event) => {
 | 
											
												
													
														|  | 
 |  | +      e.stopPropagation();
 | 
											
												
													
														|  | 
 |  | +      isMoreFunShow.value = false;
 | 
											
												
													
														|  |        if (playAction.listenLock) return;
 |  |        if (playAction.listenLock) return;
 | 
											
												
													
														|  |        playAction.showAnswerLoading = true;
 |  |        playAction.showAnswerLoading = true;
 | 
											
												
													
														|  |        scrollAnswer(playAction.standardAnswer.realKey);
 |  |        scrollAnswer(playAction.standardAnswer.realKey);
 | 
											
										
											
												
													
														|  | @@ -1258,6 +1267,11 @@ export default defineComponent({
 | 
											
												
													
														|  |        tnoteShowBoxClass = "tnoteShowBoxClass_drag";
 |  |        tnoteShowBoxClass = "tnoteShowBoxClass_drag";
 | 
											
												
													
														|  |        tnoteShowBoxDragData = useDrag([`${tnoteShowBoxClass} .dragTopBox`, `${tnoteShowBoxClass} .dragbomBox`], tnoteShowBoxClass, toRef(data, "tnoteShow"), storeData.user.id as string);
 |  |        tnoteShowBoxDragData = useDrag([`${tnoteShowBoxClass} .dragTopBox`, `${tnoteShowBoxClass} .dragbomBox`], tnoteShowBoxClass, toRef(data, "tnoteShow"), storeData.user.id as string);
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  | 
 |  | +    const moreFunDom = ref()
 | 
											
												
													
														|  | 
 |  | +    const isMoreFunShow = ref(false)
 | 
											
												
													
														|  | 
 |  | +    useClickAway(moreFunDom, () => {
 | 
											
												
													
														|  | 
 |  | +			isMoreFunShow.value = false;
 | 
											
												
													
														|  | 
 |  | +		});
 | 
											
												
													
														|  |      return () => {
 |  |      return () => {
 | 
											
												
													
														|  |        const relationship = fingerData.subject?.relationship?.[data.realKey] || [];
 |  |        const relationship = fingerData.subject?.relationship?.[data.realKey] || [];
 | 
											
												
													
														|  |        const rs: number[] = Array.isArray(relationship[1]) ? relationship[fingerData.relationshipIndex] : relationship;
 |  |        const rs: number[] = Array.isArray(relationship[1]) ? relationship[fingerData.relationshipIndex] : relationship;
 | 
											
										
											
												
													
														|  | @@ -1502,6 +1516,7 @@ export default defineComponent({
 | 
											
												
													
														|  |                                        class={styles.noteBtn}
 |  |                                        class={styles.noteBtn}
 | 
											
												
													
														|  |                                        onClick={(e: any) => {
 |  |                                        onClick={(e: any) => {
 | 
											
												
													
														|  |                                          e.stopPropagation();
 |  |                                          e.stopPropagation();
 | 
											
												
													
														|  | 
 |  | +                                        isMoreFunShow.value = false;
 | 
											
												
													
														|  |                                          scrollNoteBox("left");
 |  |                                          scrollNoteBox("left");
 | 
											
												
													
														|  |                                        }}
 |  |                                        }}
 | 
											
												
													
														|  |                                      >
 |  |                                      >
 | 
											
										
											
												
													
														|  | @@ -1517,7 +1532,10 @@ export default defineComponent({
 | 
											
												
													
														|  |                                    {!!data.tones.length && data.fingeringMode === "scaleMode" && (
 |  |                                    {!!data.tones.length && data.fingeringMode === "scaleMode" && (
 | 
											
												
													
														|  |                                      <>
 |  |                                      <>
 | 
											
												
													
														|  |                                        {fingerData.fingeringInfo.name == "hulusi-flute" ? (
 |  |                                        {fingerData.fingeringInfo.name == "hulusi-flute" ? (
 | 
											
												
													
														|  | -                                        <div id="finger-note-1" class={[styles.note, styles.btnGrToggleBtn]} onClick={() => (data.tnoteShow = true)}>
 |  | 
 | 
											
												
													
														|  | 
 |  | +                                        <div id="finger-note-1" class={[styles.note, styles.btnGrToggleBtn]} onClick={() => {
 | 
											
												
													
														|  | 
 |  | +                                          isMoreFunShow.value = false;
 | 
											
												
													
														|  | 
 |  | +                                          data.tnoteShow = true
 | 
											
												
													
														|  | 
 |  | +                                        }}>
 | 
											
												
													
														|  |                                            <img draggable={false} src={noteImg} />
 |  |                                            <img draggable={false} src={noteImg} />
 | 
											
												
													
														|  |                                            <div class={styles.nameBox}>
 |  |                                            <div class={styles.nameBox}>
 | 
											
												
													
														|  |                                              <div class={styles.name}>全按作</div>
 |  |                                              <div class={styles.name}>全按作</div>
 | 
											
										
											
												
													
														|  | @@ -1532,7 +1550,10 @@ export default defineComponent({
 | 
											
												
													
														|  |                                            </div>
 |  |                                            </div>
 | 
											
												
													
														|  |                                          </div>
 |  |                                          </div>
 | 
											
												
													
														|  |                                        ) : (
 |  |                                        ) : (
 | 
											
												
													
														|  | -                                        <div id="finger-note-1" class={[styles.note, styles.btnGrToggleBtn]} onClick={() => (data.tnoteShow = true)}>
 |  | 
 | 
											
												
													
														|  | 
 |  | +                                        <div id="finger-note-1" class={[styles.note, styles.btnGrToggleBtn]} onClick={() => {
 | 
											
												
													
														|  | 
 |  | +                                          isMoreFunShow.value = false;
 | 
											
												
													
														|  | 
 |  | +                                          data.tnoteShow = true
 | 
											
												
													
														|  | 
 |  | +                                        }}>
 | 
											
												
													
														|  |                                            <img draggable={false} src={noteImg} />
 |  |                                            <img draggable={false} src={noteImg} />
 | 
											
												
													
														|  |                                            <div>
 |  |                                            <div>
 | 
											
												
													
														|  |                                              <div class={styles.name}>
 |  |                                              <div class={styles.name}>
 | 
											
										
											
												
													
														|  | @@ -1582,6 +1603,7 @@ export default defineComponent({
 | 
											
												
													
														|  |                                              onTouchstart={(e: any) => {
 |  |                                              onTouchstart={(e: any) => {
 | 
											
												
													
														|  |                                                e.stopPropagation();
 |  |                                                e.stopPropagation();
 | 
											
												
													
														|  |                                                e.preventDefault();
 |  |                                                e.preventDefault();
 | 
											
												
													
														|  | 
 |  | +                                              isMoreFunShow.value = false;
 | 
											
												
													
														|  |                                                isTouch = true;
 |  |                                                isTouch = true;
 | 
											
												
													
														|  |                                                startNotePress(note, false);
 |  |                                                startNotePress(note, false);
 | 
											
												
													
														|  |                                              }}
 |  |                                              }}
 | 
											
										
											
												
													
														|  | @@ -1630,6 +1652,7 @@ export default defineComponent({
 | 
											
												
													
														|  |                                        class={styles.noteBtn}
 |  |                                        class={styles.noteBtn}
 | 
											
												
													
														|  |                                        onClick={(e: any) => {
 |  |                                        onClick={(e: any) => {
 | 
											
												
													
														|  |                                          e.stopPropagation();
 |  |                                          e.stopPropagation();
 | 
											
												
													
														|  | 
 |  | +                                        isMoreFunShow.value = false;
 | 
											
												
													
														|  |                                          scrollNoteBox("right");
 |  |                                          scrollNoteBox("right");
 | 
											
												
													
														|  |                                        }}
 |  |                                        }}
 | 
											
												
													
														|  |                                      >
 |  |                                      >
 | 
											
										
											
												
													
														|  | @@ -1643,14 +1666,15 @@ export default defineComponent({
 | 
											
												
													
														|  |                                              </div>
 |  |                                              </div>
 | 
											
												
													
														|  |                                      )}
 |  |                                      )}
 | 
											
												
													
														|  |                                  </div>
 |  |                                  </div>
 | 
											
												
													
														|  | -                                <div class={styles.moreFun}>
 |  | 
 | 
											
												
													
														|  | 
 |  | +                                <div ref={moreFunDom} class={styles.moreFun} onClick={()=>{ isMoreFunShow.value = !isMoreFunShow.value }}>
 | 
											
												
													
														|  |                                    更多功能
 |  |                                    更多功能
 | 
											
												
													
														|  | -                                  <div class={styles.btnBox}>
 |  | 
 | 
											
												
													
														|  | 
 |  | +                                  <div class={[styles.btnBox, isMoreFunShow.value ? styles.isMoreFunShow : ""]} >
 | 
											
												
													
														|  |                                      <div class={styles.btnCon}>
 |  |                                      <div class={styles.btnCon}>
 | 
											
												
													
														|  |                                        <div
 |  |                                        <div
 | 
											
												
													
														|  |                                          class={[styles.btnGr]}
 |  |                                          class={[styles.btnGr]}
 | 
											
												
													
														|  |                                          onClick={(e) => {
 |  |                                          onClick={(e) => {
 | 
											
												
													
														|  |                                            e.stopPropagation();
 |  |                                            e.stopPropagation();
 | 
											
												
													
														|  | 
 |  | +                                          isMoreFunShow.value = false;
 | 
											
												
													
														|  |                                            //
 |  |                                            //
 | 
											
												
													
														|  |                                            // 播放音阶时不能切换
 |  |                                            // 播放音阶时不能切换
 | 
											
												
													
														|  |                                            if (playStatus.gamut) {
 |  |                                            if (playStatus.gamut) {
 | 
											
										
											
												
													
														|  | @@ -1672,6 +1696,7 @@ export default defineComponent({
 | 
											
												
													
														|  |                                            class={styles.btnGr}
 |  |                                            class={styles.btnGr}
 | 
											
												
													
														|  |                                            onClick={(e) => {
 |  |                                            onClick={(e) => {
 | 
											
												
													
														|  |                                              e.stopPropagation();
 |  |                                              e.stopPropagation();
 | 
											
												
													
														|  | 
 |  | +                                            isMoreFunShow.value = false;
 | 
											
												
													
														|  |                                              data.viewIndex++;
 |  |                                              data.viewIndex++;
 | 
											
												
													
														|  |                                              if (data.viewIndex > data.viewTotal) {
 |  |                                              if (data.viewIndex > data.viewTotal) {
 | 
											
												
													
														|  |                                                if (["pan-flute", "ocarina", "whistling"].includes(data.subject)) {
 |  |                                                if (["pan-flute", "ocarina", "whistling"].includes(data.subject)) {
 | 
											
										
											
												
													
														|  | @@ -1692,6 +1717,7 @@ export default defineComponent({
 | 
											
												
													
														|  |                                          class={styles.btnGr}
 |  |                                          class={styles.btnGr}
 | 
											
												
													
														|  |                                          onClick={(e) => {
 |  |                                          onClick={(e) => {
 | 
											
												
													
														|  |                                            e.stopPropagation();
 |  |                                            e.stopPropagation();
 | 
											
												
													
														|  | 
 |  | +                                          isMoreFunShow.value = false;
 | 
											
												
													
														|  |                                            resetElement();
 |  |                                            resetElement();
 | 
											
												
													
														|  |                                            data.tipShow = !data.tipShow;
 |  |                                            data.tipShow = !data.tipShow;
 | 
											
												
													
														|  |                                            onResize();
 |  |                                            onResize();
 | 
											
										
											
												
													
														|  | @@ -1708,9 +1734,6 @@ export default defineComponent({
 | 
											
												
													
														|  |                                {data.fingeringMode !== "scaleMode" && (
 |  |                                {data.fingeringMode !== "scaleMode" && (
 | 
											
												
													
														|  |                                  <div
 |  |                                  <div
 | 
											
												
													
														|  |                                    class={styles.optionBtns}
 |  |                                    class={styles.optionBtns}
 | 
											
												
													
														|  | -                                  onClick={(e: any) => {
 |  | 
 | 
											
												
													
														|  | -                                    e.stopPropagation();
 |  | 
 | 
											
												
													
														|  | -                                  }}
 |  | 
 | 
											
												
													
														|  |                                  >
 |  |                                  >
 | 
											
												
													
														|  |                                    <Button class={[styles.oBtn, styles.gamut, playStatus.action && styles.disabled]} round onClick={onGamutPlayOrPause}>
 |  |                                    <Button class={[styles.oBtn, styles.gamut, playStatus.action && styles.disabled]} round onClick={onGamutPlayOrPause}>
 | 
											
												
													
														|  |                                      {playStatus.gamut ? "暂停" : "播放音阶"}
 |  |                                      {playStatus.gamut ? "暂停" : "播放音阶"}
 |