mo 1 år sedan
förälder
incheckning
462658af5b

+ 17 - 3
src/custom-plugins/guide-page/courseware-detail.tsx

@@ -6,8 +6,8 @@ import { getImage } from "./images";
 import {getGuidance,setGuidance} from './api'
 export default defineComponent({
   name: "courseware-detail",
-  emits: ["close"],
-  setup(props, { emit }) {
+  emits: ["close","changeShowGuide"],
+  setup(props, { emit,}) {
     const data = reactive({
       box: {},
       show: false,
@@ -38,7 +38,11 @@ export default defineComponent({
       step: 0,
     });
     const tipShow = ref(false)
+
     const guideInfo = ref({} as any)
+    console.log('调用')
+    // setGuidance({guideTag:'guideInfo',guideValue:'{}'})
+
     const getAllGuidance = async()=>{
       try{
         const res = await getGuidance({guideTag:'guideInfo'})
@@ -48,7 +52,10 @@ export default defineComponent({
           guideInfo.value = {}
         }
         if (guideInfo.value &&guideInfo.value.coursewareDetail) {
+
           tipShow.value = false;
+          emit('changeShowGuide',tipShow.value)
+
         } else {
           tipShow.value = true;
         }
@@ -58,7 +65,10 @@ export default defineComponent({
       // const guideInfo = localStorage.getItem('teacher-guideInfo');
 
     }
-
+    watch(()=>tipShow.value,(value)=>{
+      emit('changeShowGuide',tipShow.value)
+    },{
+    })
     getAllGuidance()
   //  const guideInfo = localStorage.getItem('guideInfo')
   //  if(guideInfo&&JSON.parse(guideInfo).coursewareDetail){
@@ -103,6 +113,9 @@ export default defineComponent({
     };
 
     const endGuide = async()=>{
+      if(! tipShow.value){
+        return
+      }
       // let guideInfo = JSON.parse(localStorage.getItem('guideInfo')|| '{}') || null
       if(!guideInfo.value){
         guideInfo.value = {coursewareDetail:true}
@@ -115,6 +128,7 @@ export default defineComponent({
       }catch(e){
         console.log(e)
       }
+      console.log('调用detail完成')
       tipShow.value = false
     //  localStorage.setItem('endC')
     }

+ 1 - 0
src/custom-plugins/guide-page/courseware-list.tsx

@@ -192,6 +192,7 @@ export default defineComponent({
         console.log(e)
       }
       // localStorage.setItem('guideInfo',JSON.stringify(guideInfo))
+      console.log('调用list完成')
       tipShow.value = false
     //  localStorage.setItem('endC')
     }

+ 8 - 0
src/views/courseware-list/component/book/index.module.less

@@ -83,6 +83,9 @@
     overflow: hidden;
     white-space: nowrap;
     text-overflow: ellipsis;
+    display: flex;
+    flex-direction: row;
+    align-items: center;
   }
   .des {
     line-height: 16px;
@@ -156,4 +159,9 @@
   .wrapItem {
     padding-left: 20px;
   }
+  .preIcon {
+    width: 22px;
+    height: 13px;
+    margin-right: 5px;
+  }
 }

+ 40 - 13
src/views/courseware-list/component/book/index.tsx

@@ -10,6 +10,7 @@ import {
 import styles from './index.module.less';
 import icon_back from '../../image/icon_back.svg';
 import icon_play from '../../image/icon_class.png';
+import pre from '../../image/pre.png'
 import { useRouter } from 'vue-router';
 import { listenerMessage, postMessage } from '@/helpers/native-message';
 import { showToast } from 'vant';
@@ -54,7 +55,7 @@ export default defineComponent({
     });
     const showGuide = ref(false);
     const isend = ref(false)
-    const isHandMove = ref(false)
+    const CoursewareDetailRef = ref()
     const handleCreate = (key: string, url: string) => {
       return new Promise((resolve, reject) => {
         const _s = document.head.querySelector(`script[data-key="${key}"]`);
@@ -75,6 +76,7 @@ export default defineComponent({
       //   await handleCreate('turn', '/book/turn.js');
       console.log('初始化完成');
     };
+    const isFirest = ref(true)
     let book: any = null;
     let timer: any = null;
     const handleBook = () => {
@@ -86,7 +88,6 @@ export default defineComponent({
       book.turn({
         autoCenter: true,
         duration: 1000,
-        disable: false,
         acceleration: true, // 是否启动硬件加速 如果为触摸设备必须为true
         // pages: 11, // 页码总数
         elevation: 50, // 转换期间页面的高度
@@ -95,8 +96,11 @@ export default defineComponent({
         gradients: true, // 是否显示翻页阴影效果
         // display: 'single', //设置单页还是双页
       })
+
+
       book.bind('start', (event: Event, pageObject: any, corner: any) => {
         // console.log(event, 'last', pageObject.next)
+
         if (corner == 'tl' || corner == 'tr') {
           event.preventDefault();
 
@@ -104,21 +108,33 @@ export default defineComponent({
         if (data.isClick) {
           nextTick(() => {
             data.isClick = false
-            console.log(corner, 'corner')
             if (corner == 'tl' || corner == 'tr') {
               event.preventDefault();
 
             } else {
               book.turn('page', pageObject.next);
             }
-
           })
         }
       });
       book.bind('turned', (event: Event, page: any, corner: any) => {
-        setTimeout(() => {
+        // setTimeout(() => {
+        // }, 1000);
+
+        if (isFirest.value) {
+          console.log('第一次进来禁用', page)
+          isFirest.value = false
+          book.turn('disabled', true);
           showGuide.value = true;
-        }, 1000);
+        }
+
+        // setTimeout(() => {
+
+        // }, 500)
+        // nextTick(() => {
+        //
+        // })
+
 
         // if (page + 1 === book.turn('pages')) {
         //   // noanimateClose()
@@ -175,9 +191,6 @@ export default defineComponent({
               data.show = true;
               timer = setTimeout(() => {
                 book.turn('page', 2);
-                setTimeout(() => {
-                  showGuide.value = true;
-                }, 1500);
               }, 500);
 
 
@@ -218,6 +231,7 @@ export default defineComponent({
       listenerMessage('webViewOnResume', () => {
         data.lastTime = localStorage.getItem(lastTimeKey);
       });
+
     });
     const getList = () => {
       if (!props.bookData?.lessonList) return;
@@ -254,6 +268,7 @@ export default defineComponent({
       () => props.show,
       () => {
         if (props.show) {
+
           getList();
           nextTick(() => {
             handleBook();
@@ -308,6 +323,17 @@ export default defineComponent({
 
       return false
     }
+
+    const changeShowGuide = (flag: boolean) => {
+      showGuide.value = flag
+      if (flag) {
+        console.log('changeShowGuide禁用')
+        book.turn('disabled', true);
+      } else {
+        console.log('changeShowGuide取消禁用')
+        book.turn('disabled', false);
+      }
+    }
     return () => (
       <div class={[styles.book, data.show ? '' : styles.bookHide]} onClick={() => handleClose()} onTouchmove={() => {
         console.log('sdfds')
@@ -358,11 +384,12 @@ export default defineComponent({
                                 <div
                                   class={styles.name}
                                   style={{ lineHeight: '20Px' }}>
-                                  {item.name}
-                                  {/* <TheNoticeBar text={item.name} isAnimation={isStartAnimate(item)}></TheNoticeBar> */}
                                   {data.lastTime === item.id && (
-                                    <span class={styles.last}>上次观看</span>
+                                    <img src={pre} alt="" class={styles.preIcon} />
                                   )}
+                                  {item.name}
+                                  {/* <TheNoticeBar text={item.name} isAnimation={isStartAnimate(item)}></TheNoticeBar> */}
+
                                 </div>
                               </div >
                             </>
@@ -395,7 +422,7 @@ export default defineComponent({
             </div >
           )}
         </div >
-        {showGuide.value ? <CoursewareDetail></CoursewareDetail> : null}
+        {showGuide.value ? <CoursewareDetail onChangeShowGuide={changeShowGuide} ref={CoursewareDetailRef}></CoursewareDetail> : null}
       </div >
     );
   }

BIN
src/views/courseware-list/image/pre.png


+ 2 - 2
src/views/courseware-list/index.tsx

@@ -438,8 +438,7 @@ export default defineComponent({
             )}
           </div>
         </div>
-
-        <TheBook
+       <TheBook
           show={data.showBook}
           bookData={data.bookData}
           tab={data.tab}
@@ -448,6 +447,7 @@ export default defineComponent({
             data.showBook = false;
           }}
         />
+
         {isShowGuide.value ? <CoursewareList></CoursewareList> : null}
 
         <Popup v-model:show={popoverShow.value} class={styles.popupContainer}>