<template>
|
<div id="app">
|
<demo v-if="activeBook.name == 'demo'"></demo>
|
</div>
|
</template>
|
<script>
|
// 解决ERROR ResizeObserver loop completed with undelivered notifications.//问题的
|
const debounce = (fn, delay) => {
|
let timer = null;
|
return function () {
|
let context = this;
|
let args = arguments;
|
clearTimeout(timer);
|
timer = setTimeout(function () {
|
fn.apply(context, args);
|
}, delay);
|
};
|
};
|
// 解决ERROR ResizeObserver loop completed with undelivered notifications.
|
const _ResizeObserver = window.ResizeObserver;
|
window.ResizeObserver = class ResizeObserver extends _ResizeObserver {
|
constructor(callback) {
|
callback = debounce(callback, 16);
|
super(callback);
|
}
|
};
|
export default {
|
name: "App",
|
components: {
|
demo: () => import("@/books/demo/view/index.vue"),
|
},
|
data() {
|
return {
|
activeBook: {},
|
};
|
},
|
async created() {
|
if (this.setGlobalState) {
|
this.setGlobalState({
|
initTestBook: async (bookId, tryPageCount) => {
|
this.activeBook = await this.config.getBookConfig(
|
process.env.VUE_APP_RESOURCE_CTX + process.env.VUE_APP_BOOK_ID
|
);
|
this.config.activeBook = this.activeBook;
|
this.config.goodsStore = this.activeBook.storeRefcode;
|
if (tryPageCount) {
|
this.activeBook.tryPageCount = tryPageCount;
|
}
|
if (
|
(this.$store.state.qiankun, this.$store.state.qiankun.getBookConfig)
|
) {
|
this.$store.state.qiankun.getBookConfig({
|
bookConfig: this.activeBook,
|
});
|
}
|
},
|
});
|
} else {
|
// demo
|
this.activeBook = await this.config.getBookConfig(
|
process.env.VUE_APP_RESOURCE_CTX +
|
(process.env.VUE_APP_ENV == "product"
|
? process.env.VUE_APP_BOOK_ID
|
: "demo")
|
);
|
|
// 测试试读30页
|
// this.activeBook.tryPageCount = 10;
|
// this.config.activeBook = this.activeBook;
|
|
// 旅游社处理跨域问题
|
// this.activeBook = this.config.activeBook;
|
this.config.activeBook = this.activeBook;
|
this.config.goodsStore = this.activeBook.storeRefcode;
|
}
|
},
|
methods: {
|
but() {
|
console.log(this.activeBook, "this.activeBook789");
|
},
|
},
|
};
|
</script>
|
|
<style lang="less">
|
html,
|
body {
|
width: 100%;
|
height: 100%;
|
margin: 0 !important;
|
}
|
|
#app {
|
width: 100%;
|
height: 100%;
|
}
|
|
.highLight {
|
border: 1px dashed rgba(255, 255, 255, 0);
|
border-radius: 5px;
|
padding: 3px 0;
|
cursor: pointer;
|
}
|
|
.highLight:hover {
|
border: 1px dashed #949494 !important;
|
}
|
|
.underline {
|
border: 1px dashed rgba(255, 255, 255, 0);
|
padding: 5px 0;
|
border-radius: 5px;
|
text-decoration: underline;
|
text-decoration-style: wavy;
|
text-underline-thickness: 2px;
|
cursor: pointer;
|
}
|
|
.underline:hover {
|
border: 1px dashed #949494 !important;
|
}
|
|
.notesline {
|
padding-bottom: 2px;
|
border-bottom: 2px solid;
|
cursor: pointer;
|
}
|
|
/* swiper */
|
.swiper-container {
|
width: 100%;
|
height: 100%;
|
}
|
|
.swiper-pagination-bullet-active {
|
background-color: #0093ff;
|
}
|
|
.swiper-button-prev,
|
.swiper-button-next {
|
width: 27px;
|
height: 44px;
|
margin-top: -22px;
|
z-index: 10;
|
cursor: pointer;
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
color: #0093ff;
|
}
|
|
.swiper-button-prev:after,
|
.swiper-button-next:after {
|
font-family: swiper-icons;
|
font-size: 30px;
|
text-transform: none !important;
|
letter-spacing: 0;
|
text-transform: none;
|
font-variant: initial;
|
line-height: 1;
|
}
|
|
.imgBox {
|
position: relative;
|
}
|
|
.imgBox img {
|
max-width: 100%;
|
max-height: 100%;
|
width: auto;
|
height: auto;
|
position: absolute;
|
top: 0;
|
right: 0;
|
bottom: 0;
|
left: 0;
|
margin: auto;
|
}
|
|
.openImgBox img {
|
cursor: zoom-in;
|
}
|
</style>
|