Browse Source

Merge branch 'ktyq-test-new' of http://git.dayaedu.com/liushengqiang/music-score into ktyq-test-new

TIANYONG 11 months ago
parent
commit
7f869cd464

+ 13 - 0
src/page-instrument/header-top/index.tsx

@@ -555,6 +555,9 @@ export default defineComponent({
       if (res?.data?.api === "setPlayState") {
         togglePlay("paused", true);
       }
+      if (res?.data?.api === "startPlayState") {
+        togglePlay("play");
+      }
       // 上课页面,按钮方向
       if (res?.data?.api === "imagePos") {
         if (res?.data.data) {
@@ -590,6 +593,16 @@ export default defineComponent({
       if (query.showWebGuide === "false") {
         showWebGuide.value = false;
       }
+
+      document.addEventListener("keydown", (e: KeyboardEvent) => {
+        if (e.code === "Tab") {
+          e.stopPropagation();
+          e.preventDefault();
+          // onStartPlayState();
+          if (state.playState === "play") return;
+          togglePlay("play");
+        }
+      });
     });
 
     onUnmounted(() => {

+ 23 - 5
src/page-instrument/view-figner/change-subject/index.tsx

@@ -10,6 +10,10 @@ export default defineComponent({
       type: Array,
       default: () => [],
     },
+    changeSubjectShow: {
+      type: Boolean,
+      default: false,
+    },
     subject: {
       type: String,
       default: "",
@@ -71,9 +75,27 @@ export default defineComponent({
       }
     };
 
+    const onConfirm = () => {
+      if (state.selectList.length > 0 && !state.instrumentCode) {
+        showToast("请选择乐器");
+        return;
+      }
+      emit("confirm", state.instrumentCode || state.subjectValue);
+    };
+
     onMounted(() => {
       console.log(props.subjectList, "subjectList", props.subject, query);
       selectItem();
+      document.addEventListener("keydown", (e: KeyboardEvent) => {
+        if (e.code === "Tab") {
+          e.stopPropagation();
+          e.preventDefault();
+          // onStartPlayState();
+          if (props.changeSubjectShow) {
+            onConfirm();
+          }
+        }
+      });
     });
     return () => (
       <div class={[styles.changeSubject, query.platform === "pc" && styles.changeSubjectPc]}>
@@ -152,11 +174,7 @@ export default defineComponent({
             class={[styles.btn, styles.confirmBtn]}
             onClick={() => {
               console.log(state.selectList, state.instrumentCode);
-              if (state.selectList.length > 0 && !state.instrumentCode) {
-                showToast("请选择乐器");
-                return;
-              }
-              emit("confirm", state.instrumentCode || state.subjectValue);
+              onConfirm();
             }}
           ></div>
           {/* <Button

+ 4 - 0
src/page-instrument/view-figner/index.module.less

@@ -51,6 +51,10 @@
 
             &.tipHidden {
                 margin-right: -43%;
+
+                &>div {
+                    display: none;
+                }
             }
 
             .tipContentbox {

+ 19 - 0
src/page-instrument/view-figner/index.tsx

@@ -717,6 +717,17 @@ export default defineComponent({
             __init();
           }, 100);
         }
+      } else if (res.data.api === "startPlayState") {
+        onStartPlayState();
+      }
+    };
+
+    const onStartPlayState = () => {
+      if (!localStorage.getItem("fingerGuideKey")) return;
+      if (!(props.show && !data.loading && !data.loadingSoundFonts)) return;
+      if (data.changeSubjectShow) return;
+      if (data.fingeringMode === "fingeringMode" || data.fingeringMode === "listenMode") {
+        onActionPlay();
       }
     };
 
@@ -1032,6 +1043,13 @@ export default defineComponent({
       window.addEventListener("resize", onResize);
       const fingeringContainer = document.getElementById("fingeringContainer");
       fingeringContainer?.addEventListener("wheel", handleWheel);
+      document.addEventListener("keydown", (e: KeyboardEvent) => {
+        if (e.code === "Tab") {
+          e.stopPropagation();
+          e.preventDefault();
+          onStartPlayState();
+        }
+      });
     });
 
     onUnmounted(() => {
@@ -2078,6 +2096,7 @@ export default defineComponent({
             }}
           >
             <ChangeSubject
+              changeSubjectShow={data.changeSubjectShow}
               subjectList={data.subjects}
               subject={data.subject}
               onClose={() => (data.changeSubjectShow = false)}