瀏覽代碼

Merge branch 'temp-register'

lex 1 年之前
父節點
當前提交
80964feb4b

+ 3 - 1
src/components/layout/index.module.less

@@ -225,6 +225,8 @@
       }
 
       .optons {
+        margin-top: 18px;
+        margin-bottom: 14px;
         width: 32px;
         height: 32px;
         margin-right: 24px;
@@ -501,4 +503,4 @@
     }
   }
 
-}
+}

+ 36 - 7
src/components/layout/index.tsx

@@ -5,7 +5,8 @@ import {
   ref,
   reactive,
   onUnmounted,
-  watch
+  watch,
+  computed
 } from 'vue';
 import LayoutSilder from './layoutSilder';
 import LayoutTop from './layoutTop';
@@ -347,6 +348,27 @@ export default defineComponent({
         }
       }
     );
+
+    // 帮助指引状态
+    const helpNoteList = reactive({
+      baseListTab: ''
+    });
+    const helpNoteStatus = computed(() => {
+      const routePath = route.path;
+      const hidePath = [
+        '/classDetail',
+        '/classStudentDetail',
+        '/notation',
+        '/xiaoku-ai'
+      ];
+      // 单独判断个人信息页面[学校设置]有引导
+      if (route.path === '/setting') {
+        return helpNoteList.baseListTab === 'school' ? true : false;
+      } else {
+        return hidePath.includes(routePath) ? false : true;
+      }
+    });
+
     onMounted(() => {
       initMoveable();
       // // initMoveableClass();
@@ -360,6 +382,10 @@ export default defineComponent({
       initBoxRectInfo(subdEl, boxBoundaryInfo);
       // // initBoundaryWrap(classEl, classBoundaryInfo);
       window.addEventListener('resize', resetSize);
+
+      eventGlobal.on('base-setting-emit', (val: string) => {
+        helpNoteList.baseListTab = val;
+      });
     });
 
     const resetSize = () => {
@@ -674,12 +700,15 @@ export default defineComponent({
               </div>
             </div>
             <div>
-              <div
-                class={styles.booxToolItem}
-                onClick={() => startShowModal('iconNote')}>
-                <img src={iconNote} alt="" />
-                帮助指引
-              </div>
+              {helpNoteStatus.value && (
+                <div
+                  class={styles.booxToolItem}
+                  onClick={() => startShowModal('iconNote')}>
+                  <img src={iconNote} alt="" />
+                  帮助指引
+                </div>
+              )}
+
               <div
                 class={styles.booxToolItem}
                 onClick={() => startShowModal('iconPen')}>

+ 2 - 2
src/components/layout/layoutTop.tsx

@@ -92,13 +92,13 @@ export default defineComponent({
                   <div
                     class={styles.optons}
                     onClick={() => (showSuggestionViseble.value = true)}>
-                    <NImage src={opinionIcon} previewDisabled></NImage>
+                    <img src={opinionIcon}></img>
                   </div>
                 ),
                 default: '意见反馈'
               }}
             </NTooltip>
-            {/* </div> */}
+
             <div onClick={() => (showImGroup.value = true)}>
               <NBadge
                 value={noReadCount.value}

+ 2 - 2
src/custom-plugins/guide-page/teacher-guide.tsx

@@ -133,9 +133,9 @@ export default defineComponent({
       try {
         if (name !== 'base-setting') return;
         if (!guideInfo.value) {
-          guideInfo.value = { classGuide: false };
+          guideInfo.value = { teacherGuide: false };
         } else {
-          guideInfo.value.classGuide = false;
+          guideInfo.value.teacherGuide = false;
         }
         try {
           await setGuidance({

+ 5 - 4
src/views/attend-class/component/audio-pay.tsx

@@ -37,7 +37,8 @@ export default defineComponent({
     let vudio: any = null;
 
     // 切换音频播放
-    const onToggleAudio = (e?: MouseEvent) => {
+    const onToggleAudio = (e?: any) => {
+      console.log(e, 'e', e);
       e?.stopPropagation();
       if (audio.value.paused) {
         onInit(audio.value, canvas.value);
@@ -47,7 +48,7 @@ export default defineComponent({
         audio.value?.pause();
       }
       audioForms.paused = audio.value?.paused;
-
+      e.target?.focus();
       emit('togglePlay', audioForms.paused);
     };
 
@@ -182,13 +183,13 @@ export default defineComponent({
           }}>
           <div class={styles.actions}>
             <div class={styles.actionWrap}>
-              <button class={styles.actionBtn} onClick={onToggleAudio}>
+              <div class={styles.actionBtn} onClick={onToggleAudio}>
                 {audioForms.paused ? (
                   <img class={styles.playIcon} src={iconplay} />
                 ) : (
                   <img class={styles.playIcon} src={iconpause} />
                 )}
-              </button>
+              </div>
             </div>
             <div class={styles.time}>
               <div

+ 2 - 1
src/views/attend-class/component/audio.module.less

@@ -104,6 +104,7 @@
     height: 60px;
     padding: 4px 0;
     background: transparent;
+    cursor: pointer;
 
     &>img {
       width: 100%;
@@ -135,4 +136,4 @@
       transition: all .2s;
     }
   }
-}
+}

+ 3 - 3
src/views/attend-class/component/musicScore.tsx

@@ -36,9 +36,9 @@ export default defineComponent({
     const renderError = ref(false);
     const renderSuccess = ref(false);
     const origin = /(localhost|192)/.test(location.host)
-      ? // ? 'https://test.lexiaoya.cn'
-        'http://localhost:3000/instrument.html'
-      : location.origin + '/instrument';
+      ? 'https://test.lexiaoya.cn/instrument'
+      : // 'http://localhost:3000/instrument.html'
+        location.origin + '/instrument';
     const src = `${origin}?showGuide=true&platform=pc&zoom=1.2&modelType=practise&id=${props.music.content}&Authorization=${userStore.getToken}`;
     const checkView = () => {
       fetch(src)

+ 17 - 0
src/views/attend-class/index.tsx

@@ -58,6 +58,8 @@ import { px2vw } from '/src/utils';
 import PlaceholderTone from '/src/components/layout/modals/placeholderTone';
 import { state as globalState } from '/src/state';
 import Chapter from './model/chapter';
+import { useRouter } from 'vue-router';
+import { useUserStore } from '@/store/modules/users';
 
 import iconBeatIcon from './new-image/icon-beatIcon.png';
 import iconChange from './new-image/icon-change.png';
@@ -113,6 +115,8 @@ export default defineComponent({
   setup(props, { emit }) {
     const message = useMessage();
     const route = useRoute();
+    const router = useRouter();
+    const users = useUserStore();
     /** 设置播放容器 16:9 */
     const parentContainer = reactive({
       width: '100vw'
@@ -247,6 +251,19 @@ export default defineComponent({
           handlePreAndNext('down');
         }
       }
+
+      if (ev.data?.api === 'onLogin') {
+        const documentDom: any = document;
+        documentDom.exitFullscreen
+          ? documentDom.exitFullscreen()
+          : documentDom.mozCancelFullScreen
+          ? documentDom.mozCancelFullScreen()
+          : documentDom.webkitExitFullscreen
+          ? documentDom.webkitExitFullscreen()
+          : '';
+        users.logout();
+        router.replace('/login');
+      }
     };
 
     onMounted(() => {

+ 11 - 1
src/views/prepare-lessons/components/lesson-main/train/index.module.less

@@ -116,7 +116,17 @@
   display: flex;
   flex-flow: row wrap;
   justify-content: flex-start;
-  gap: 20px;
+  gap: 20px 2%;
+
+  &>div {
+    width: 49% !important;
+  }
+
+  .itemBlock {
+    &>div {
+      width: 100% !important;
+    }
+  }
 }
 
 .trainEditModal {

+ 8 - 2
src/views/setting/index.tsx

@@ -5,6 +5,7 @@ import PersonInfo from './components/personInfo';
 import SchoolInfo from './components/schoolInfo/index';
 import { useUserStore } from '/src/store/modules/users';
 import { useRoute } from 'vue-router';
+import { eventGlobal } from '/src/utils';
 export default defineComponent({
   name: 'base-setting',
   setup(props, { emit, attrs }) {
@@ -13,11 +14,13 @@ export default defineComponent({
     const route = useRoute();
     if (route.query.activeTab) {
       activeTab.value = route.query.activeTab;
+      eventGlobal.emit('base-setting-emit', activeTab.value);
     }
     watch(
       () => route.query.activeTab,
       val => {
         activeTab.value = val;
+        eventGlobal.emit('base-setting-emit', val);
       }
     );
     return () => (
@@ -26,9 +29,12 @@ export default defineComponent({
           class={styles.customTabs}
           v-model:value={activeTab.value}
           size="large"
-          animated
+          // animated
           pane-wrapper-style="margin: 0 -4px"
-          pane-style="padding-left: 4px; padding-right: 4px; box-sizing: border-box;">
+          pane-style="padding-left: 4px; padding-right: 4px; box-sizing: border-box;"
+          onUpdate:value={(val: any) => {
+            eventGlobal.emit('base-setting-emit', val);
+          }}>
           <NTabPane name="person" tab="个人信息">
             <PersonInfo></PersonInfo>
           </NTabPane>