litian
2024-08-22 39a97e8e27d52ca0729cb6b0294a37717d063d0a
试读页
3个文件已修改
129 ■■■■ 已修改文件
src/App.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main.ts 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/readerPages/webHome.vue 122 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/App.vue
@@ -120,12 +120,8 @@
let bookId = getUrlParam('bookId')
let token = getUrlParam('token')
let tryPageCount = getUrlParam('tryPageCount')
if(bookId){
  localStorage.setItem('bookId', bookId)
}
if(tryPageCount){
  localStorage.setItem('tryPageCount', tryPageCount)
}
if(token && token != null && token != 'null'){
src/main.ts
@@ -18,13 +18,10 @@
// 路由执行之前的一些操作
router.beforeEach((to, from, next) => {
  console.log(to, from)
  const isInternalLink = from.fullPath.includes('/testBookReader')
  if (isInternalLink) {
    console.log('通过内部链接进入项目')
    sessionStorage.removeItem('loginCtx')
  } else {
    console.log(loginCtx, '通过外部链接进入项目')
    sessionStorage.setItem('loginCtx', loginCtx)
  }
src/views/readerPages/webHome.vue
@@ -368,9 +368,18 @@
                        ><VideoCamera
                      /></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'" />
                      <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
@@ -424,10 +433,24 @@
                          /></el-icon>
                          <!-- 收藏按钮 -->
                           <img 
                            :src="collectResourceList.findIndex(citem => citem.id == item.id) > -1 ? isHeart : heart  "
                            :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)" />
                            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>
@@ -1247,7 +1270,13 @@
    :infoType="examinationData.infoType"
  />
  <!-- 计算器 -->
   <el-dialog title="计算器" align-center v-model="calculatorVisble" width="550" style="height:548px">
  <el-dialog
    title="计算器"
    align-center
    v-model="calculatorVisble"
    width="550"
    style="height: 548px"
  >
    <calculator />
   </el-dialog>
</template>
@@ -1382,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
@@ -1415,12 +1450,14 @@
  window.qiankunActions.onGlobalStateChange((state, prev) => {
    console.log('父层state变化', state)
    window.qiankunState = state
    if (isBuy.value) {
    if (window.qiankunState && window.qiankunState.initTestBook) {
      window.qiankunState.initTestBook(
        localStorage.getItem('bookId') + '',
        localStorage.getItem('tryPageCount')
      )
        window.qiankunState.initTestBook(localStorage.getItem('bookId') + '')
      }
    } else {
      if (window.qiankunState && window.qiankunState.initTestBook) {
        window.qiankunState.initTestBook(localStorage.getItem('bookId') + '', tryPageCount.value)
      }
    }
  })
@@ -1532,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) => {
@@ -1700,7 +1775,8 @@
    {
      icon: huabi,
      name: '画笔',
      isShow: bookConfig.value.textbookComponents.indexOf('800109C0') > -1
      // isShow: bookConfig.value.textbookComponents.indexOf('800109C0') > -1
      isShow:true
    },
    {
      icon: baiban,
@@ -1801,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)
@@ -2118,7 +2194,6 @@
  } else {
    getResourceData()
  }
}
const searchBtn = () => {
  if (searchShow.value) {
@@ -2241,8 +2316,8 @@
}
// 收藏按钮
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)
  if (collectResourceList.value.findIndex((item) => item.id == id) > -1) {
    collectResourceList.value = collectResourceList.value.filter((item) => item.id != id)
    } else {
      collectResourceList.value.push({
        id,
@@ -2256,11 +2331,11 @@
    MG.identity.setUserKey({
    setKeyRequests: [
      {
        domain: "collectResource",
        domain: 'collectResource',
        key:bookConfig.value.bookId,
        value: JSON.stringify(collectResourceList.value),
      },
    ],
        value: JSON.stringify(collectResourceList.value)
      }
    ]
  })
}
@@ -2357,7 +2432,6 @@
//错题本
const wrongQuestionVisble = ref(false)
const selectExercisesType = (type) => {
  if (type == 'exercises') {
    getExercisesList()
      exercisesType.value = type
@@ -4557,7 +4631,7 @@
        overflow-y: auto;
      }
      .questionList {
        height:83%
        height: 83%;
      }
      .question-bottom {
        position: absolute;