<template>
|
<div id="app">
|
<!-- <demo v-if="activeBook.name == 'demo'"></demo>
|
<exerciseTherapyTechniques v-if="activeBook.name == 'exerciseTherapyTechniques'"></exerciseTherapyTechniques>
|
<MSDiseaseRehabilitation v-if="activeBook.name == 'MSDiseaseRehabilitation'"></MSDiseaseRehabilitation>
|
<prosthodontics v-if="activeBook.name == 'prosthodontics'"></prosthodontics>
|
<normalHumanBodyStructureFunction v-if="activeBook.name == 'normalHumanBodyStructureFunction'">
|
</normalHumanBodyStructureFunction>
|
<physiology v-if="activeBook.name == 'physiology'"></physiology>
|
<clinicalDiseasesSynopsis v-if="activeBook.name == 'clinicalDiseasesSynopsis'"></clinicalDiseasesSynopsis>
|
<speechTherapyTechniques v-if="activeBook.name == 'speechTherapyTechniques'"></speechTherapyTechniques>
|
<orthodontics v-if="activeBook.name == 'orthodontics'"></orthodontics>
|
<physicalFactorTherapyTechnology v-if="activeBook.name == 'physicalFactorTherapyTechnology'">
|
</physicalFactorTherapyTechnology>
|
<occupationalTherapyTechniques v-if="activeBook.name == 'occupationalTherapyTechniques'">
|
</occupationalTherapyTechniques>
|
<rehabilitationMedicineIntroduction v-if="activeBook.name == 'rehabilitationMedicineIntroduction'">
|
</rehabilitationMedicineIntroduction>
|
<rehabilitationAssessmentTechniques v-if="activeBook.name == 'rehabilitationAssessmentTechniques'">
|
</rehabilitationAssessmentTechniques>
|
<rehabilitationPsychology v-if="activeBook.name == 'rehabilitationPsychology'"></rehabilitationPsychology>
|
<humanKinematicsFundamentals v-if="activeBook.name == 'humanKinematicsFundamentals'"></humanKinematicsFundamentals> -->
|
<preventiveDentistry v-if="activeBook.name == 'preventiveDentistry'"></preventiveDentistry>
|
<!-- <oralImaging v-if="activeBook.name == 'oralImaging'"></oralImaging>
|
<clinicalDiseasesSummary v-if="activeBook.name == 'clinicalDiseasesSummary'"></clinicalDiseasesSummary>
|
<digitalDentalRestorationTechnology v-if="activeBook.name == 'digitalDentalRestorationTechnology'">
|
</digitalDentalRestorationTechnology>
|
<clinicalMedicalSummary v-if="activeBook.name == 'clinicalMedicalSummary'"></clinicalMedicalSummary>
|
<CTExaminationTechnology v-if="activeBook.name == 'CTExaminationTechnology'"></CTExaminationTechnology>
|
<medicalImagingAnatomy v-if="activeBook.name == 'medicalImagingAnatomy'"></medicalImagingAnatomy>
|
<MRIExaminationTechnology v-if="activeBook.name == 'MRIExaminationTechnology'"></MRIExaminationTechnology>
|
<dentalMorphologyFunction v-if="activeBook.name == 'dentalMorphologyFunction'"></dentalMorphologyFunction>
|
<oralAnatomicalPhysiology v-if="activeBook.name == 'oralAnatomicalPhysiology'"></oralAnatomicalPhysiology>
|
<oralFixedRestorationTechnology v-if="activeBook.name == 'oralFixedRestorationTechnology'">
|
</oralFixedRestorationTechnology>
|
<RPDtechnology v-if="activeBook.name == 'RPDtechnology'"></RPDtechnology>
|
<oralcomprehensiveSkills v-if="activeBook.name == 'oralcomprehensiveSkills'"></oralcomprehensiveSkills>
|
<completeDentureTechnology v-if="activeBook.name == 'completeDentureTechnology'"></completeDentureTechnology>
|
<oralMaxillofacialSurgery v-if="activeBook.name == 'oralMaxillofacialSurgery'"></oralMaxillofacialSurgery>
|
<oralHistopathology v-if="activeBook.name == 'oralHistopathology'"></oralHistopathology>
|
<TCMRehabilitationTechnology v-if="activeBook.name == 'TCMRehabilitationTechnology'"></TCMRehabilitationTechnology> -->
|
</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"),
|
// exerciseTherapyTechniques: () => import("@/books/exerciseTherapyTechniques/view/index.vue"),
|
// MSDiseaseRehabilitation: () => import("@/books/MSDiseaseRehabilitation/view/index.vue"),
|
// prosthodontics: () => import("@/books/prosthodontics/view/index.vue"),
|
// normalHumanBodyStructureFunction: () => import("@/books/normalHumanBodyStructureFunction/view/index.vue"),
|
// physiology: () => import("@/books/physiology/view/index.vue"),
|
// clinicalDiseasesSynopsis: () => import("@/books/clinicalDiseasesSynopsis/view/index.vue"),
|
// speechTherapyTechniques: () => import("@/books/speechTherapyTechniques/view/index.vue"),
|
// orthodontics: () => import("@/books/orthodontics/view/index.vue"),
|
// physicalFactorTherapyTechnology: () => import("@/books/physicalFactorTherapyTechnology/view/index.vue"),
|
// occupationalTherapyTechniques: () => import("@/books/occupationalTherapyTechniques/view/index.vue"),
|
// rehabilitationMedicineIntroduction: () => import("@/books/rehabilitationMedicineIntroduction/view/index.vue"),
|
// rehabilitationAssessmentTechniques: () => import("@/books/rehabilitationAssessmentTechniques/view/index.vue"),
|
// rehabilitationPsychology: () => import("@/books/rehabilitationPsychology/view/index.vue"),
|
// humanKinematicsFundamentals: () => import("@/books/humanKinematicsFundamentals/view/index.vue"),
|
preventiveDentistry: () => import("./books/preventiveDentistry/view/index.vue"),
|
// oralImaging: () => import("./books/oralImaging/view/index.vue"),
|
// clinicalDiseasesSummary: () => import("./books/clinicalDiseasesSummary/view/index.vue"),
|
// digitalDentalRestorationTechnology: () => import("./books/digitalDentalRestorationTechnology/view/index.vue"),
|
// clinicalMedicalSummary: () => import("./books/clinicalMedicalSummary/view/index.vue"),
|
// CTExaminationTechnology: () => import("./books/CTExaminationTechnology/view/index.vue"),
|
// medicalImagingAnatomy: () => import("./books/medicalImagingAnatomy/view/index.vue"),
|
// MRIExaminationTechnology: () => import("./books/MRIExaminationTechnology/view/index.vue"),
|
// dentalMorphologyFunction: () => import("./books/dentalMorphologyFunction/view/index.vue"),
|
// oralAnatomicalPhysiology: () => import("./books/oralAnatomicalPhysiology/view/index.vue"),
|
// oralFixedRestorationTechnology: () => import("./books/oralFixedRestorationTechnology/view/index.vue"),
|
// RPDtechnology: () => import("./books/RPDtechnology/view/index.vue"),
|
// oralcomprehensiveSkills: () => import("./books/oralcomprehensiveSkills/view/index.vue"),
|
// completeDentureTechnology: () => import("./books/completeDentureTechnology/view/index.vue"),
|
// oralMaxillofacialSurgery: () => import("./books/oralMaxillofacialSurgery/view/index.vue"),
|
// oralHistopathology: () => import("./books/oralHistopathology/view/index.vue"),
|
// TCMRehabilitationTechnology: () => import("./books/TCMRehabilitationTechnology/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 {
|
// preventiveDentistry // 21 口腔预防医学
|
// oralImaging // 29 口腔影像学
|
// clinicalDiseasesSummary // 30 临床疾病概要(口腔)
|
// digitalDentalRestorationTechnology // 31 数字化口腔修复技术
|
// clinicalMedicalSummary // 33 临床医学概要
|
// CTExaminationTechnology // 37 CT检查技术
|
// medicalImagingAnatomy // 34 医学影像解剖学
|
// MRIExaminationTechnology // 38 MRI检查技术
|
// 新增
|
// dentalMorphologyFunction // 27 牙体形态与功能
|
// oralAnatomicalPhysiology // 22 口腔解剖生理学
|
// oralFixedRestorationTechnology // 24 口腔固定修复工艺技术
|
// RPDtechnology // 25 可摘局部义齿工艺技术
|
// oralcomprehensiveSkills // 23 口腔综合技能训练
|
// completeDentureTechnology // 26 全口义齿工艺技术
|
// oralMaxillofacialSurgery // 20 口腔颌面外科学
|
// oralHistopathology // 19 口腔组织病理学
|
// TCMRehabilitationTechnology // 12 中医康复技术
|
this.activeBook = await this.config.getBookConfig(
|
process.env.VUE_APP_RESOURCE_CTX +
|
(process.env.VUE_APP_ENV == "product"
|
? process.env.VUE_APP_BOOK_ID
|
: "preventiveDentistry")
|
);
|
|
// 测试试读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() {
|
},
|
},
|
};
|
</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>
|