<template>
							 | 
						|
									<view class="yingbing-computed" :style="[computedStyle]">
							 | 
						|
										<reader-header :text="chapter.title || ''" v-if="headerShowSync"></reader-header>
							 | 
						|
										<web-view ref="webview" style="flex:1" src="/uni_modules/yingbing-ReadPage/hybrid/html/computed.html" @onPostMessage="onPostMessage"></web-view>
							 | 
						|
										<reader-footer v-if="footerShowSync"></reader-footer>
							 | 
						|
									</view>
							 | 
						|
								</template>
							 | 
						|
								
							 | 
						|
								<script>
							 | 
						|
									import ReaderHeader from '../../header/header.vue'
							 | 
						|
									import ReaderFooter from '../../footer/footer.vue'
							 | 
						|
									export default {
							 | 
						|
										inject: ['fontSize', 'fontFamily', 'lineHeight', 'topGap', 'bottomGap', 'slide', 'headerShow', 'footerShow', 'totalChapter'],
							 | 
						|
										components: {
							 | 
						|
											ReaderHeader,
							 | 
						|
											ReaderFooter
							 | 
						|
										},
							 | 
						|
										computed: {
							 | 
						|
											computedStyle () {
							 | 
						|
												return {
							 | 
						|
													'padding-top': this.topGap + 'px',
							 | 
						|
													'padding-bottom': this.bottomGap + 'px',
							 | 
						|
													'padding-left': this.slide + 'px',
							 | 
						|
													'padding-right': this.slide + 'px'
							 | 
						|
												}
							 | 
						|
											}
							 | 
						|
										},
							 | 
						|
										data () {
							 | 
						|
											return {
							 | 
						|
												chapter: {},//章节内容临时存储
							 | 
						|
												success: null,//成功回调
							 | 
						|
												fail: null,//失败回调,
							 | 
						|
												headerShowSync: false,//展示头部
							 | 
						|
												footerShowSync: false//展示底部
							 | 
						|
											}
							 | 
						|
										},
							 | 
						|
										beforeDestroy() {
							 | 
						|
											this.$refs.webview && this.$refs.webview.evalJS("destroyHandleTimer()")
							 | 
						|
										},
							 | 
						|
										methods: {
							 | 
						|
											start ({chapter, success, fail}) {
							 | 
						|
												this.chapter = chapter
							 | 
						|
												this.success = success
							 | 
						|
												this.fail = fail
							 | 
						|
												this.headerShowSync = typeof chapter.headerShow == 'boolean' ? chapter.headerShow : this.headerShow//判断是否显示头部
							 | 
						|
												this.footerShowSync = typeof chapter.footerShow == 'boolean' ? chapter.footerShow : this.footerShow//判断是否显示底部
							 | 
						|
												const style = {fontSize: this.fontSize, fontFamily: this.fontFamily, lineHeight: this.lineHeight, totalChapter: this.totalChapter}
							 | 
						|
												this.$nextTick(function () {
							 | 
						|
													setTimeout(() => {
							 | 
						|
														this.$refs.webview && this.$refs.webview.evalJS("start(" + encodeURIComponent(JSON.stringify(chapter)) + ', ' + encodeURIComponent(JSON.stringify(style)) + ")")
							 | 
						|
													}, 100)
							 | 
						|
												})
							 | 
						|
											},
							 | 
						|
											onPostMessage (e) {
							 | 
						|
												e.detail.data.forEach(item => {
							 | 
						|
													if ( item.handleSuccess ) {
							 | 
						|
														this.success && this.success(item.handleSuccess)
							 | 
						|
														this.success = null
							 | 
						|
														this.fail = null
							 | 
						|
														this.chapter = {}
							 | 
						|
													}
							 | 
						|
												})
							 | 
						|
											}
							 | 
						|
										}
							 | 
						|
									}
							 | 
						|
								</script>
							 | 
						|
								
							 | 
						|
								<style scoped>
							 | 
						|
									.yingbing-computed {
							 | 
						|
										position: absolute;
							 | 
						|
										top: 0;
							 | 
						|
										left: 0;
							 | 
						|
										right: 0;
							 | 
						|
										bottom: 0;
							 | 
						|
										transform: translateX(-1000px);
							 | 
						|
									}
							 | 
						|
								</style>
							 |