From 39a97e8e27d52ca0729cb6b0294a37717d063d0a Mon Sep 17 00:00:00 2001 From: litian <2804272236@qq.com> Date: 星期四, 22 八月 2024 16:57:55 +0800 Subject: [PATCH] 试读页 --- src/views/readerPages/webHome.vue | 250 +++++++++++++++++++++++++++++++++++++------------ 1 files changed, 188 insertions(+), 62 deletions(-) diff --git a/src/views/readerPages/webHome.vue b/src/views/readerPages/webHome.vue index 34bd1d5..ebbb875 100644 --- a/src/views/readerPages/webHome.vue +++ b/src/views/readerPages/webHome.vue @@ -141,7 +141,7 @@ <div>闄勫姞棰�</div> <div :class="exercisesType == 'additional' ? 'text' : 'line'"></div> </div> - <hr class="hr" v-if="bookConfig.textbookComponents.indexOf('AFC1A288') > -1" /> + <!-- <hr class="hr" v-if="bookConfig.textbookComponents.indexOf('AFC1A288') > -1" /> <div class="tabItem hover" @click="selectExercisesType('wrong')" @@ -149,8 +149,8 @@ > <div>閿欓鏈�</div> <div :class="exercisesType == 'wrong' ? 'text' : 'line'"></div> - </div> - <hr class="hr" v-if="bookConfig.textbookComponents.indexOf('A434F2C0') > -1" /> + </div> --> + <!-- <hr class="hr" v-if="bookConfig.textbookComponents.indexOf('A434F2C0') > -1" /> <div class="tabItem hover" @click="selectExercisesType('collection')" @@ -158,7 +158,7 @@ > <div>鏀惰棌澶�</div> <div :class="exercisesType == 'collection' ? 'text' : 'line'"></div> - </div> + </div> --> </div> </div> <!-- 鐩綍 --> @@ -363,14 +363,23 @@ v-else-if="item.icon && activeClassify != 'image'" /> <!-- <el-icon v-else-if="activeClassify == 'image'" size="30"></el-icon> --> - <el-icon v-else-if="activeClassify == 'audio'" size="30"><Headset /></el-icon> - <el-icon v-else-if="activeClassify == 'video'" size="30" + <!-- <el-icon v-else-if="activeClassify == 'audio'" size="30"><Headset /></el-icon> --> + <!-- <el-icon v-else-if="activeClassify == 'video'" size="30" ><VideoCamera - /></el-icon> - <el-icon v-else-if="activeClassify == 'other'" size="30"><Files /></el-icon> - <el-icon v-else-if="activeClassify == 'exercises'" size="30" - ><Tickets - /></el-icon> + /></el-icon> --> + <!-- <el-icon v-else-if="activeClassify == 'other'" size="30"><Files /></el-icon> --> + <img + src="@/assets/images/resource/yp-mr.png" + v-else-if="activeClassify == 'audio'" + /> + <img + src="@/assets/images/resource/sp-mr.png" + v-else-if="activeClassify == 'video'" + /> + <img + src="@/assets/images/resource/qt-mr.png" + v-else-if="activeClassify == 'other'" + /> <div class="handleBox" v-if="showHandle == index"> <div class="delImg"> <el-icon @@ -423,11 +432,25 @@ ><Download /></el-icon> <!-- 鏀惰棌鎸夐挳 --> - <img - :src="collectResourceList.findIndex(citem => citem.id == item.id) > -1 ? isHeart : heart " - class="icon hover" - style="width: 15px;" - @click="handleCollectResource(item.id,item.md5 ? item.md5 : '',item.resourcePath ? item.resourcePath : '',item.resourceType,item.resourceType == '瑙嗛' || '闊抽' ? 'bits' : 'json',item.resourceName)" /> + <img + :src=" + collectResourceList.findIndex((citem) => citem.id == item.id) > -1 + ? isHeart + : heart + " + class="icon hover" + style="width: 15px" + @click=" + handleCollectResource( + item.id, + item.md5 ? item.md5 : '', + item.resourcePath ? item.resourcePath : '', + item.resourceType, + item.resourceType == '瑙嗛' || '闊抽' ? 'bits' : 'json', + item.resourceName + ) + " + /> </div> </div> </div> @@ -535,6 +558,11 @@ </div> </div> </div> + <!-- 棰樺簱搴曢儴鏀惰棌澶瑰拰閿欓闆� --> + <ul class="question-bottom" v-if="activeMenu == '棰樺簱'"> + <li @click="selectExercisesType('collection')">鏀惰棌澶�</li> + <li @click="selectExercisesType('wrong')">閿欓鏈�</li> + </ul> <!-- 鑿滃崟鍐呭鏀惰捣 --> <div class="menuStateBox" v-if="menuState.open"> <svg @@ -810,6 +838,10 @@ </div> </div> </div> + <!-- 璇煶闃呰缁勪欢 --> + <!-- <div class="voice-reader"> + <voiceReader /> + </div> --> </div> <!-- 鏁欏缁勪欢 --> <div class="toolBox"> @@ -1237,6 +1269,16 @@ :type="examinationData.type" :infoType="examinationData.infoType" /> + <!-- 璁$畻鍣� --> + <el-dialog + title="璁$畻鍣�" + align-center + v-model="calculatorVisble" + width="550" + style="height: 548px" + > + <calculator /> + </el-dialog> </template> <script setup lang="ts"> @@ -1246,6 +1288,7 @@ import { useRouter, useRoute } from 'vue-router' import useClipboard from 'vue-clipboard3' import examination from '../examination/index.vue' +import calculator from '../components/calculator.vue' const { toClipboard } = useClipboard() const MG: any = inject('MG') const toolClass = inject('toolClass') @@ -1258,6 +1301,7 @@ import dictionary from '@/views/components/dictionary.vue' import newWord from '@/views/components/newWord.vue' import wrongQuestion from '@/views/components/wrongQuestion.vue' +import voiceReader from '@/views/components/voiceReader.vue' import { ElMessage, ElMessageBox, valueEquals } from 'element-plus' import logo from '@/assets/images/header/logo.png' import mulu from '@/assets/images/menu/mulu.png' @@ -1367,9 +1411,15 @@ const bookConfig = ref({}) const activeCatalog = ref() const reMarResult = ref() +const bookInfo = ref() +const isBuy = ref(false) +const tryPageCount = ref(0) onMounted(() => { if (token) { getUserInfo() + } + if (localStorage.getItem('bookId')) { + getBookInfo() } setTimeout(() => { canvasWith.value = document.querySelector('.content-box').offsetWidth @@ -1400,12 +1450,14 @@ window.qiankunActions.onGlobalStateChange((state, prev) => { console.log('鐖跺眰state鍙樺寲', state) window.qiankunState = state - - if (window.qiankunState && window.qiankunState.initTestBook) { - window.qiankunState.initTestBook( - localStorage.getItem('bookId') + '', - localStorage.getItem('tryPageCount') - ) + if (isBuy.value) { + if (window.qiankunState && window.qiankunState.initTestBook) { + window.qiankunState.initTestBook(localStorage.getItem('bookId') + '') + } + } else { + if (window.qiankunState && window.qiankunState.initTestBook) { + window.qiankunState.initTestBook(localStorage.getItem('bookId') + '', tryPageCount.value) + } } }) @@ -1517,6 +1569,44 @@ // } // } // ) + +//鏍规嵁refcode鑾峰彇鍥句功淇℃伅 + +const getBookInfo = () => { + const obj = { + storeInfo: 'jsek_digitalTextbooks', + path: '*', + queryType: '*', + coverSize: { + width: 150 + }, + paging: { + start: 0, + size: 6 + }, + filterList: [ + { + value: 'Normal', + field: 'state' + } + ], + fields: { + author: [], + RefCodes: [localStorage.getItem('bookId')], + probationPage: [] + } + } + MG.store.getProductList(obj).then((res) => { + console.log(res.datas, '鍥句功淇℃伅') + bookInfo.value = res.datas[0] + if (res.datas[0].purchasedSaleMethodIdList.includes(res.datas[0].defaultSaleMethodId)) { + isBuy.value = true + } else { + isBuy.value = false + } + tryPageCount.value = Number(res.datas[0].probationPage) + }) +} const getUserInfo = () => { MG.identity.getCurrentAppUser().then((res) => { @@ -1685,7 +1775,8 @@ { icon: huabi, name: '鐢荤瑪', - isShow: bookConfig.value.textbookComponents.indexOf('800109C0') > -1 + // isShow: bookConfig.value.textbookComponents.indexOf('800109C0') > -1 + isShow:true }, { icon: baiban, @@ -1786,8 +1877,8 @@ const handleNodeClick = (data) => { console.log(data) - if (localStorage.getItem('tryPageCount')) { - if (data.start < localStorage.getItem('tryPageCount')) { + if (!isBuy.value) { + if (data.start < tryPageCount.value) { headerData.process = data.start if (window.qiankunState && window.qiankunState.gotoPage) window.qiankunState.gotoPage(data.chapter, data.start) @@ -2098,12 +2189,11 @@ activeClassify.value = item.key resourceDataList.value = [] searchText.value = '' - if(resourceType.value == 'collect') { + if (resourceType.value == 'collect') { getCollectResource() } else { getResourceData() } - } const searchBtn = () => { if (searchShow.value) { @@ -2115,17 +2205,17 @@ // 鑾峰彇鏀惰棌鐨勮祫婧� const getCollectResource = () => { - if(token) { + if (token) { MG.identity - .getUserKey({ - domain: 'collectResource', - keys: [bookConfig.value.bookId] - }) - .then((res) => { - if (res.length) { - collectResourceList.value = JSON.parse(res[0].value) - console.log('鏀惰棌璧勬簮鍒楄〃', collectResourceList.value) - if(collectResourceList.value.length > 0) { + .getUserKey({ + domain: 'collectResource', + keys: [bookConfig.value.bookId] + }) + .then((res) => { + if (res.length) { + collectResourceList.value = JSON.parse(res[0].value) + console.log('鏀惰棌璧勬簮鍒楄〃', collectResourceList.value) + if (collectResourceList.value.length > 0) { let imgCount = 0 let audioCount = 0 let videoCount = 0 @@ -2200,9 +2290,11 @@ } }) } + } + } else { + resourceDataList.value = [] } - } - }) + }) } else { ElMessageBox.confirm('璇峰厛鐧诲綍锛�', { confirmButtonText: '鍘荤櫥褰�', @@ -2223,27 +2315,27 @@ } } // 鏀惰棌鎸夐挳 -const handleCollectResource = (id,md5,resourcePath,resourceType,source,resourceName) => { - if(collectResourceList.value.findIndex(item => item.id == id) > -1) { - collectResourceList.value = collectResourceList.value.filter(item => item.id != id) - } else { - collectResourceList.value.push({ - id, - md5, - resourcePath:resourcePath.replace(bookConfig.value.resourceUrl + '/',''), - resourceType, - source, - resourceName - }) - } - MG.identity.setUserKey({ +const handleCollectResource = (id, md5, resourcePath, resourceType, source, resourceName) => { + if (collectResourceList.value.findIndex((item) => item.id == id) > -1) { + collectResourceList.value = collectResourceList.value.filter((item) => item.id != id) + } else { + collectResourceList.value.push({ + id, + md5, + resourcePath: resourcePath.replace(bookConfig.value.resourceUrl + '/', ''), + resourceType, + source, + resourceName + }) + } + MG.identity.setUserKey({ setKeyRequests: [ { - domain: "collectResource", - key:bookConfig.value.bookId, - value: JSON.stringify(collectResourceList.value), - }, - ], + domain: 'collectResource', + key: bookConfig.value.bookId, + value: JSON.stringify(collectResourceList.value) + } + ] }) } @@ -2340,18 +2432,18 @@ //閿欓鏈� const wrongQuestionVisble = ref(false) const selectExercisesType = (type) => { - exercisesType.value = type - searchText.value = '' if (type == 'exercises') { getExercisesList() + exercisesType.value = type + searchText.value = '' } else if (type == 'additional') { getAdditionalList() + exercisesType.value = type + searchText.value = '' } else if (type == 'wrong') { openExaminationDialog(true, {}, 'errorQuestion') - questionList.value = [] } else { openExaminationDialog(true, {}, 'collectQuestion') - questionList.value = [] } } // 棰樺垪琛ㄧ偣鍑� @@ -2690,6 +2782,7 @@ const siweiVisble = ref(false) const modelToolVisble = ref(false) const shengciVisble = ref(false) +const calculatorVisble = ref(false) const activeTool = ref(0) const toolState = reactive({ open: true @@ -2718,6 +2811,10 @@ case '鐢熻瘝鍗$墖': resourceUrl.value = bookConfig.value.resourceUrl shengciVisble.value = true + break + case '璁$畻鍣�': + calculatorVisble.value = true + break } } else { ElMessageBox.confirm('璇峰厛鐧诲綍锛�', { @@ -4112,6 +4209,7 @@ } } .menuContent { + // position: relative; width: 300px; flex-shrink: 0; height: calc(100vh - 48px); @@ -4531,6 +4629,29 @@ .screenshotList { height: calc(100% - 60px); overflow-y: auto; + } + .questionList { + height: 83%; + } + .question-bottom { + position: absolute; + bottom: 0; + display: flex; + justify-content: space-evenly; + width: 300px; + padding: 20px 0; + background-color: #fff; + li { + cursor: pointer; + width: 65px; + height: 65px; + border: 1px solid #cfcfcf; + border-radius: 10px; + background-color: #f9f9f9; + display: flex; + justify-content: center; + align-items: center; + } } } .menuStateBox { @@ -5097,4 +5218,9 @@ width: 100%; } } +.voice-reader { + position: absolute; + bottom: 30px; + left: 50px; +} </style> -- Gitblit v1.9.1