From df82d3e1d42ed6b12b2d209251507c70625aa5d7 Mon Sep 17 00:00:00 2001 From: 闫增涛 <1829501689@qq.com> Date: 星期二, 05 十一月 2024 17:56:16 +0800 Subject: [PATCH] Merge branch 'master' of http://182.92.203.7:2001/r/TextbookReader --- src/views/readerPages/home.vue | 6 + src/views/readerPages/mobileHome.vue | 123 +++++++++++++++++++++++++++++++++++----- 2 files changed, 110 insertions(+), 19 deletions(-) diff --git a/src/views/readerPages/home.vue b/src/views/readerPages/home.vue index 8088850..0f45f5e 100644 --- a/src/views/readerPages/home.vue +++ b/src/views/readerPages/home.vue @@ -1,6 +1,6 @@ <template> <div class="homePage"> - <webHome v-if="!homeBoxHide" /> + <webHome v-if="homeBoxWebHide" /> <mobileHome v-if="homeBoxHide" /> </div> <div class="pdfDialog"> @@ -24,11 +24,11 @@ import mobileHome from '@/views//readerPages/mobileHome.vue' import preView from '../components/pdfview.vue' // import { da } from 'element-plus/es/locale' -const qiankunActions = inject('qiankunActions') const screenWidth = ref( window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth ) const homeBoxHide = ref(false) +const homeBoxWebHide = ref(false) const dialogState = reactive({ dialogVisible: false, pdfTitle: '', @@ -38,7 +38,9 @@ onMounted(() => { if (screenWidth.value < 420) { homeBoxHide.value = true + homeBoxWebHide.value = false } else { + homeBoxWebHide.value = true homeBoxHide.value = false } window.qiankunActions.setGlobalState({ diff --git a/src/views/readerPages/mobileHome.vue b/src/views/readerPages/mobileHome.vue index bdc6540..3d734dd 100644 --- a/src/views/readerPages/mobileHome.vue +++ b/src/views/readerPages/mobileHome.vue @@ -526,21 +526,17 @@ </div> </template> <script setup lang="ts"> -import { ref, reactive, watch, onMounted, onBeforeMount, inject } from 'vue' +import { ref, reactive, watch, onMounted, onBeforeUnmount,inject } from 'vue' import axios from 'axios' -import { useRouter, useRoute } from 'vue-router' import { ElMessage, ElMessageBox, valueEquals } from 'element-plus' import useClipboard from 'vue-clipboard3' const { toClipboard } = useClipboard() const MG: any = inject('MG') const toolClass = inject('toolClass') -const qiankunActions = inject('qiankunActions') import { loadMicroApp } from 'qiankun' import { microApps } from '@/child.ts' -//鑾峰彇璺敱鍣� -let router = useRouter() + //鑾峰彇褰撳墠璺敱鐨勪俊鎭� -let route = useRoute() import moment from 'moment' import bianji from '@/assets/images/operation/bianji.png' @@ -549,13 +545,25 @@ import search from '@/assets/images/operation/search.png' import search1 from '@/assets/images/operation/search1.png' import xuanzhong from '@/assets/images/operation/xuanzhong.png' - +let token = localStorage.getItem('token') +const bookInfo = ref() +const isBuy = ref(false) +const tryPageCount = ref(0) let microApp = null // 寰簲鐢ㄥ疄渚� const bookConfig = ref({}) +let userInfo = ref({}) //褰撳墠鏄剧ず绔犺妭 const activeCatalog = ref() +const currentChapter = ref(1) onMounted(() => { + if (token) { + getUserInfo() + } + if (localStorage.getItem('bookId')) { + getBookInfo() + } // 鍔犺浇寰簲鐢� + microApp = loadMicroApp(microApps[localStorage.getItem('bookId')], { sandbox: { strictStyleIsolation: true, @@ -567,17 +575,20 @@ 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) + } } }) // 瀹氫箟鐖跺眰鏂规硶 window.qiankunActions.setGlobalState({ + state: 1, disableSign: false, // windowSelection: (data) => { // // 缁戝畾瀛愬簲鐢ㄩ�夋嫨鐩戝惉浜嬩欢 @@ -628,15 +639,15 @@ }, catalogChange: (data) => { activeCatalog.value = data.showCatalogList - if (window.qiankunState.disableSign) { - // getSignData() - } + // if (window.qiankunState.disableSign) { + // // getSignData() + // } // getSignData() console.log(data, '绔犺妭鍒囨崲锛氱洰鍓嶆樉绀虹殑涓変釜绔犺妭') }, pageChange: (data) => { headerData.process = Number(data.page) - // currentChapter.value = data.catalog + currentChapter.value = data.catalog // console.log(data, '椤甸潰鍒囨崲锛氱洰鍓嶆樉绀洪〉闈㈠拰瀵瑰簲鐨勭珷鑺備俊鎭�') // if (catalogTree.value) { // catalogTree.value.setCurrentKey(Number(data.page)) @@ -657,6 +668,83 @@ } }) }) + +onBeforeUnmount(() => { + if (microApp) { + microApp.unmount() // 鍗歌浇寰簲鐢� + } +}) + +const getUserInfo = () => { + MG.identity.getCurrentAppUser().then((res) => { + if (res) { + let teacherRole = res.roleLinks.find((item) => item.role.refCode == 'teacher') + let teacherInfos = res.infoList.find((item) => item.type == 'teacherInfo') + let wechatInfo = res.infoList.find((item) => item.type == 'WeChat') + let studentInfo = res.infoList.find((item) => item.type == 'Default') + let phoneInfo = res.secretList.find((item) => item.type == 'MobilePhone') + let nameAndPassword = res.secretList.find((item) => item.type == 'LoginNameAndPassword') + + if (teacherRole && teacherInfos) { + userInfo.value = { + ...teacherInfos, + name: teacherInfos.name, + role: 'Teacher', + roleId: teacherRole.role.id + } + localStorage.setItem('userInfo', JSON.stringify(userInfo.value)) + } else if (wechatInfo) { + userInfo.value = { + ...wechatInfo, + phoneNumber: phoneInfo?.credential, + Email: emailInfo?.credential, + role: 'Student' + } + } else if (phoneInfo) { + userInfo.value = { + name: phoneInfo.credential + } + localStorage.setItem('userInfo', JSON.stringify(userInfo.value)) + } + } + }) +} +//鏍规嵁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) => { + 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 activeIndex = ref('0') @@ -1479,6 +1567,7 @@ } } +let dialogToolList = [] //閫変腑鏂囧瓧鎿嶄綔 //閫変腑鏂囧瓧宸ュ叿鏍� const showToolBox = ref(false) const toolActive = ref('') -- Gitblit v1.9.1