Browse Source

Merge branch 'hqyDev' of http://git.dayaedu.com/lex/classroom-instruments into online

黄琪勇 3 months ago
parent
commit
ce2b7bb29c

+ 4 - 0
dev-dist/sw.js

@@ -82,7 +82,11 @@ define(['./workbox-88bf3160'], (function (workbox) { 'use strict';
     "revision": "3ca0b8505b4bec776b69afdba2768812"
   }, {
     "url": "index.html",
+<<<<<<< Updated upstream
     "revision": "0.4v8s4holqi"
+=======
+    "revision": "0.m978hf0c288"
+>>>>>>> Stashed changes
   }], {});
   workbox.cleanupOutdatedCaches();
   workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("index.html"), {

+ 1 - 1
index.html

@@ -16,7 +16,7 @@
   <meta name="viewport" content="width=device-width,initial-scale=1.0">
   <meta name="apple-mobile-web-app-capable" content="yes" />
   <!-- 自动将HTTP请求升级成安全的HTTPS请求 -->
-  <!-- <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" /> -->
+  <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" />
   <!-- 设置苹果工具栏颜色 -->
   <meta name="apple-mobile-web-app-status-bar-style" content="black" />
   <!-- 忽略页面中的数字识别为电话,忽略email识别 -->

+ 5 - 1
public/version.json

@@ -1 +1,5 @@
-{"version":1734950731618}
+<<<<<<< HEAD
+{"version":1734950731618}
+=======
+{"version":1735290171366}
+>>>>>>> 9b587ebd3181593b05bf1cf8ca7e91319427c30f

+ 1 - 1
src/utils/urlUtils.ts

@@ -43,7 +43,7 @@ export function vaildPPTUrl() {
   } else if (/dev/.test(url)) {
     returnUrl = 'https://dev.kt.colexiu.com/classroom-ppt';
   } else if (/localhost/.test(url)) {
-    returnUrl = 'http://192.168.3.122:9527';
+    returnUrl = 'http://localhost:9527';
   } else {
     returnUrl = 'https://mec.colexiu.com/classroom-ppt';
   }

+ 12 - 6
src/views/attend-class/component/pptList.tsx

@@ -2,6 +2,7 @@ import { defineComponent, ref, onMounted, onUnmounted } from 'vue';
 import styles from './pptList.module.less';
 import { vaildPPTUrl } from '/src/utils/urlUtils';
 import { useUserStore } from '/src/store/modules/users';
+import { useRoute } from 'vue-router';
 
 export default defineComponent({
   name: 'pptList',
@@ -10,19 +11,23 @@ export default defineComponent({
       type: Object,
       default: () => ({})
     },
-    fromType: {
-      type: String, // 'PLATFORM' | 'TEACHER' | 'CLASS'
-      default: 'TEACHER'
+    instrumentId: {
+      type: String,
+      default: ''
     }
   },
-  emits: ['initPPT', 'changeSlideIndex'],
+  emits: ['initPPT', 'changeSlideIndex', 'init'],
   setup(props, { emit, expose }) {
+    const route = useRoute();
+    const query = route.query;
     const userStore = useUserStore();
     const iframeRef = ref<HTMLIFrameElement>();
     const src = `${vaildPPTUrl()}/#/pptScreen?id=${
       props.pptData.id
-    }&Authorization=${userStore.getToken}&hideFullScreen=true&fromType=${
-      props.fromType
+    }&instrumentId=${props.instrumentId}&Authorization=${
+      userStore.getToken
+    }&hideFullScreen=true&fromType=${
+      query.fromType === 'PLATFORM' ? 'PLATFORM' : 'TEACHER'
     }`;
     // 上一页下一页
     function handleChangeSlide(type: 'prev' | 'next') {
@@ -40,6 +45,7 @@ export default defineComponent({
         emit('changeSlideIndex', content);
       }
     }
+    emit('init');
     onMounted(() => {
       window.addEventListener('message', handleMessage);
     });

+ 23 - 5
src/views/attend-class/index.tsx

@@ -221,7 +221,9 @@ export default defineComponent({
     const pptData = reactive({
       pptEl: null as any,
       slidesLen: 1,
-      activeLen: 0
+      activeLen: 0,
+      disable: false,
+      isAnimationed: true
     });
 
     const activeData = reactive({
@@ -891,7 +893,7 @@ export default defineComponent({
           return;
         } else if (
           type === 'down' &&
-          pptData.activeLen < pptData.slidesLen - 1
+          (pptData.activeLen < pptData.slidesLen - 1 || !pptData.isAnimationed)
         ) {
           pptData.pptEl?.handleChangeSlide('next');
           return;
@@ -1162,6 +1164,7 @@ export default defineComponent({
     // 是否允许上一页
     const isUpArrow = computed(() => {
       if (data.coursewareType === 'PPT') {
+        if (pptData.disable) return false;
         if (pptData.activeLen > 0) {
           return true;
         }
@@ -1236,7 +1239,11 @@ export default defineComponent({
     // 是否允许下一页
     const isDownArrow = computed(() => {
       if (data.coursewareType === 'PPT') {
-        if (pptData.activeLen < pptData.slidesLen - 1) {
+        if (pptData.disable) return false;
+        if (
+          pptData.activeLen < pptData.slidesLen - 1 ||
+          !pptData.isAnimationed
+        ) {
           return true;
         }
       }
@@ -1971,12 +1978,23 @@ export default defineComponent({
                           ref={el => {
                             pptData.pptEl = el;
                           }}
-                          onInitPPT={({ slidesLen }) => {
+                          onInit={() => {
+                            pptData.disable = true;
+                          }}
+                          onInitPPT={({ slidesLen, isAnimationed }) => {
+                            pptData.disable = false;
                             pptData.slidesLen = slidesLen;
+                            pptData.isAnimationed = isAnimationed;
+                            pptData.activeLen = 0;
                           }}
-                          onChangeSlideIndex={({ slideIndex }) => {
+                          onChangeSlideIndex={({
+                            slideIndex,
+                            isAnimationed
+                          }) => {
                             pptData.activeLen = slideIndex;
+                            pptData.isAnimationed = isAnimationed;
                           }}
+                          instrumentId={data.instrumentId}
                           pptData={m}></PptList>
                       )}
                     </div>

+ 33 - 11
src/views/prepare-lessons/components/lesson-main/courseware-presets/index.tsx

@@ -610,12 +610,18 @@ export default defineComponent({
               getCoursewareList();
               eventGlobal.emit('openCoursewareChanged');
               const { teacherSaveFlag, id, chapterKnowledgeList } = res.data;
-              handleRouterPPT({
-                teacherSaveFlag,
-                id,
-                pptId:
-                  chapterKnowledgeList[0]?.chapterKnowledgeMaterialList[0]?.id
-              });
+              const instrumentIdTab = prepareStore.getInstrumentId;
+              handleRouterPPT(
+                {
+                  teacherSaveFlag,
+                  id,
+                  pptId:
+                    chapterKnowledgeList[0]?.chapterKnowledgeMaterialList[0]?.id
+                },
+                pptCourseware.subjects.includes(instrumentIdTab)
+                  ? instrumentIdTab
+                  : pptCourseware.subjects[0]
+              );
             }
           });
         }
@@ -632,16 +638,29 @@ export default defineComponent({
       pptCourseware.openFlagEnable = item.openFlagEnable;
       pptCourseware.pptCoursewareShow = true;
     }
-    async function handleRouterPPT(item: Record<string, any>) {
+    async function handleRouterPPT(
+      item: Record<string, any>,
+      instrumentId: string
+    ) {
+      const teacherSaveFlag = item.teacherSaveFlag;
       // 当teacherSaveFlag为false时候,需要把平台数据转为老师自己的课件
-      if (!item.teacherSaveFlag) {
-        await api_coursewareToTeacherCourseware(item.id);
+      if (!teacherSaveFlag) {
+        const dataRes = await api_coursewareToTeacherCourseware(item.id);
         item.teacherSaveFlag = true;
+        // 这里需要拿最新的id
+        item.pptId =
+          dataRes.data.chapterKnowledgeList[0].chapterKnowledgeMaterialList[0].id;
       }
       const href = `${vaildPPTUrl()}/#/pptEditor?id=${
         item.pptId
-      }&Authorization=${userStore.getToken}`;
+      }&Authorization=${
+        userStore.getToken
+      }&instrumentId=${instrumentId}&lessonCoursewareKnowledgeId=${
+        prepareStore.getSelectKey
+      }&fromType=TEACHER`;
       window.open(href);
+      // 刷新一下列表
+      !teacherSaveFlag && getCoursewareList();
     }
     onMounted(async () => {
       await useCatchStore().getSubjects();
@@ -815,7 +834,10 @@ export default defineComponent({
                             if (item.coursewareType === 'PPT') {
                               if (type === 'PPT') {
                                 // 进入 ppt 编辑页面
-                                handleRouterPPT(item);
+                                handleRouterPPT(
+                                  item,
+                                  prepareStore.getInstrumentId
+                                );
                               } else {
                                 handlePptEdit(item);
                               }

+ 18 - 2
src/views/prepare-lessons/components/lesson-main/courseware-presets/select-related/index.module.less

@@ -53,7 +53,23 @@
     border-radius: 12px;
     border: 1px solid #EFF0F2;
     overflow: hidden;
-
+    .statusCon{
+      position: absolute;
+      top: 2px;
+      left: 2px;
+      z-index: 9;
+      display: flex;
+      align-items: center;
+      transform: scale(0.8);
+      .status {
+        background: rgba(0, 0, 0, 0.5);
+        border-radius: 4px;
+        font-weight: 600;
+        font-size: max(12px, 11Px);
+        color: #FFFFFF;
+        padding: 2px 6px;
+      }
+    }
     :global {
       .n-image {
         width: 118px;
@@ -160,4 +176,4 @@
       cursor: pointer;
     }
   }
-}
+}

+ 2 - 1
src/views/prepare-lessons/components/lesson-main/courseware-presets/select-related/index.tsx

@@ -71,7 +71,8 @@ export default defineComponent({
             name: item.name,
             coverImg: firstItem?.bizInfo.coverImg,
             type: firstItem?.bizInfo.type,
-            isAdd: item.addFlag
+            isAdd: item.addFlag,
+            coursewareType: item.coursewareType
           });
         });
 

+ 5 - 0
src/views/prepare-lessons/components/lesson-main/courseware-presets/select-related/item.tsx

@@ -16,6 +16,11 @@ export default defineComponent({
     return () => (
       <div class={styles.itemModal}>
         <div class={styles.itemCover}>
+          <div class={styles.statusCon}>
+            <div class={styles.status}>
+              {props.item.coursewareType === 'PPT' ? 'PPT' : '数字化'}
+            </div>
+          </div>
           <NImage src={props.item.coverImg} objectFit="cover" previewDisabled />
 
           <div class={styles.function}>

+ 1 - 1
src/views/prepare-lessons/model/courseware-type/index.module.less

@@ -152,7 +152,7 @@
         font-weight: 600;
         font-size: max(12px, 11Px);
         color: #FFFFFF;
-        padding: 2px 10px;
+        padding: 2px 6px;
         & + .status {
           margin-left: 8px;
         }

+ 1 - 1
src/views/prepare-lessons/model/courseware-type/index.tsx

@@ -76,7 +76,7 @@ export default defineComponent({
           onClick={() => emit('click')}>
           <div class={styles.statusCon}>
             <div class={styles.status}>
-              {props.item.coursewareType === 'PPT' ? 'PPT' : '数字化课件'}
+              {props.item.coursewareType === 'PPT' ? 'PPT' : '数字化'}
             </div>
             {props.isShowOpenFlag && props.item.openFlag && (
               <div class={styles.status}>公开</div>