|
@@ -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';
|
|
@@ -57,8 +58,9 @@ export default defineComponent({
|
|
|
isClick: false
|
|
|
});
|
|
|
const showGuide = ref(false);
|
|
|
- const isend = ref(false);
|
|
|
- const isHandMove = ref(false);
|
|
|
+ const isend = ref(false)
|
|
|
+ const step = ref(0)
|
|
|
+ const CoursewareDetailRef = ref()
|
|
|
const handleCreate = (key: string, url: string) => {
|
|
|
return new Promise((resolve, reject) => {
|
|
|
const _s = document.head.querySelector(`script[data-key="${key}"]`);
|
|
@@ -79,6 +81,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 = () => {
|
|
@@ -90,7 +93,7 @@ export default defineComponent({
|
|
|
book.turn({
|
|
|
autoCenter: true,
|
|
|
duration: 1000,
|
|
|
- disable: false,
|
|
|
+ disabled: true,
|
|
|
acceleration: true, // 是否启动硬件加速 如果为触摸设备必须为true
|
|
|
// pages: 11, // 页码总数
|
|
|
elevation: 50, // 转换期间页面的高度
|
|
@@ -98,28 +101,44 @@ export default defineComponent({
|
|
|
height: data.height, // 高度 单位 px
|
|
|
gradients: true // 是否显示翻页阴影效果
|
|
|
// display: 'single', //设置单页还是双页
|
|
|
- });
|
|
|
+ })
|
|
|
+
|
|
|
+
|
|
|
book.bind('start', (event: Event, pageObject: any, corner: any) => {
|
|
|
// console.log(event, 'last', pageObject.next)
|
|
|
+ // if (isFirest.value) {
|
|
|
+ // console.log('第一次进来禁用', pageObject)
|
|
|
+ // isFirest.value = false
|
|
|
+ // book.turn('disabled', true);
|
|
|
+
|
|
|
+ // }
|
|
|
if (corner == 'tl' || corner == 'tr') {
|
|
|
event.preventDefault();
|
|
|
}
|
|
|
if (data.isClick) {
|
|
|
nextTick(() => {
|
|
|
- data.isClick = false;
|
|
|
- console.log(corner, 'corner');
|
|
|
+ data.isClick = false
|
|
|
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);
|
|
|
+
|
|
|
+ // console.log(page - 1, 'page')
|
|
|
+
|
|
|
+ // const index = (page - 1)
|
|
|
+ // console.log(data.list[index * step.value], data.list)
|
|
|
+
|
|
|
+ nextTick(() => {
|
|
|
showGuide.value = true;
|
|
|
- }, 500);
|
|
|
+ })
|
|
|
+
|
|
|
|
|
|
// if (page + 1 === book.turn('pages')) {
|
|
|
// // noanimateClose()
|
|
@@ -174,9 +193,6 @@ export default defineComponent({
|
|
|
data.show = true;
|
|
|
timer = setTimeout(() => {
|
|
|
book.turn('page', 2);
|
|
|
- setTimeout(() => {
|
|
|
- showGuide.value = true;
|
|
|
- }, 1500);
|
|
|
}, 500);
|
|
|
});
|
|
|
});
|
|
@@ -184,6 +200,8 @@ export default defineComponent({
|
|
|
}
|
|
|
};
|
|
|
const handleClose = (gotoOne = true) => {
|
|
|
+ showGuide.value = false
|
|
|
+ // book.turn('disabled', false);
|
|
|
if (isend.value) {
|
|
|
return;
|
|
|
}
|
|
@@ -214,23 +232,23 @@ export default defineComponent({
|
|
|
listenerMessage('webViewOnResume', () => {
|
|
|
data.lastTime = localStorage.getItem(lastTimeKey);
|
|
|
});
|
|
|
+
|
|
|
});
|
|
|
const getList = () => {
|
|
|
if (!props.bookData?.lessonList) return;
|
|
|
- const step = Math.floor((document.body.clientHeight * 0.8 - 40) / 50);
|
|
|
- console.log('🚀 ~ step:', step);
|
|
|
+ step.value = Math.floor((document.body.clientHeight * 0.8 - 40) / 50);
|
|
|
const list = [];
|
|
|
let listItem = [] as any[];
|
|
|
for (let i = 0; i < props.bookData.lessonList.length; i++) {
|
|
|
const item = props.bookData.lessonList[i];
|
|
|
- if (listItem.length >= step) {
|
|
|
+ if (listItem.length >= step.value) {
|
|
|
list.push([...listItem]);
|
|
|
listItem = [{ name: item.name }];
|
|
|
} else {
|
|
|
listItem.push({ name: item.name });
|
|
|
}
|
|
|
for (let j = 0; j < item.knowledgeList.length; j++) {
|
|
|
- if (listItem.length >= step) {
|
|
|
+ if (listItem.length >= step.value) {
|
|
|
list.push([...listItem]);
|
|
|
listItem = [item.knowledgeList[j]];
|
|
|
} else {
|
|
@@ -250,6 +268,7 @@ export default defineComponent({
|
|
|
() => props.show,
|
|
|
() => {
|
|
|
if (props.show) {
|
|
|
+
|
|
|
getList();
|
|
|
nextTick(() => {
|
|
|
handleBook();
|
|
@@ -304,8 +323,20 @@ export default defineComponent({
|
|
|
const isStartAnimate = (item: any) => {
|
|
|
// console.log(item) item.name.length > 9 ? true :
|
|
|
|
|
|
- return false;
|
|
|
- };
|
|
|
+ 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]}
|
|
@@ -361,11 +392,14 @@ 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} />
|
|
|
)}
|
|
|
+
|
|
|
+ <div class={styles.nameText}> {item.name}</div>
|
|
|
+
|
|
|
+ {/* <TheNoticeBar text={item.name} isAnimation={isStartAnimate(item)}></TheNoticeBar> */}
|
|
|
+
|
|
|
</div>
|
|
|
</div>
|
|
|
</>
|
|
@@ -397,9 +431,9 @@ export default defineComponent({
|
|
|
</div>
|
|
|
</div>
|
|
|
)}
|
|
|
- </div>
|
|
|
- {showGuide.value ? <CoursewareDetail></CoursewareDetail> : null}
|
|
|
- </div>
|
|
|
+ </div >
|
|
|
+ {/* {showGuide.value ? <CoursewareDetail onChangeShowGuide={changeShowGuide} ref={CoursewareDetailRef}></CoursewareDetail> : null} */}
|
|
|
+ </div >
|
|
|
);
|
|
|
}
|
|
|
});
|