闫增涛
2024-06-19 0d70f01c3553b6c33e5ee86f89f8d0fbd42825d5
src/views/readerPages/webHome.vue
@@ -123,6 +123,11 @@
              <div>习题</div>
              <div :class="exercisesType == 'exercises' ? 'text' : 'line'"></div>
            </div>
            <hr class="hr" v-if="bookConfig.textbookComponents.indexOf('A4821F71') > -1"/>
            <div class="tabItem hover" @click="selectExercisesType('additional')" v-if="bookConfig.textbookComponents.indexOf('A4821F71') > -1">
              <div>附加题</div>
              <div :class="exercisesType == 'additional' ? 'text' : 'line'"></div>
            </div>
            <hr class="hr" v-if="bookConfig.textbookComponents.indexOf('AFC1A288') > -1"/>
            <div class="tabItem hover" @click="selectExercisesType('wrong')" v-if="bookConfig.textbookComponents.indexOf('AFC1A288') > -1">
              <div>错题本</div>
@@ -130,7 +135,7 @@
            </div>
            <hr class="hr" v-if="bookConfig.textbookComponents.indexOf('A434F2C0') > -1"/>
            <div class="tabItem hover" @click="selectExercisesType('collection')" v-if="bookConfig.textbookComponents.indexOf('A434F2C0') > -1">
              <div>收藏</div>
              <div>收藏夹</div>
              <div :class="exercisesType == 'collection' ? 'text' : 'line'"></div>
            </div>
          </div>
@@ -461,7 +466,7 @@
          </div>
        </div>
        <div class="questionList" v-if="activeMenu == '题库'" v-loading="listLoading">
          <div class="resourceSearchBox">
          <div class="resourceSearchBox" v-if="exercisesType !== 'collection' && exercisesType !=='wrong'">
            <div class="inputBox">
              <el-input
                class="custom-input"
@@ -482,14 +487,14 @@
              <div v-for="(item, index) in questionList" :key="index" class="reMarkItem">
                <div
                  class="questionCon hover"
                  @click="JumpPosition(item)"
                  @click="clickQuestion(exercisesType,item)"
                  :title="item.resourceName"
                >
                  {{ item.resourceName }}
                </div>
              </div>
            </div>
            <div v-else>
            <div v-if="questionList.length == 0 && (exercisesType !== 'collection' && exercisesType !=='wrong')">
              <el-empty :image-size="60" description="暂无数据" />
            </div>
          </div>
@@ -1182,12 +1187,15 @@
      <wrongQuestion  />
    </div>
  </el-dialog>
  <!-- 答题器 -->
  <examination ref="examinationRef"  :activeBook="bookConfig" :info="examinationData.info" :type="examinationData.type" :infoType="examinationData.infoType" />
</template>
<script setup lang="ts">
import { ref, reactive, watch, onMounted, onBeforeMount, onBeforeUnmount, inject } from 'vue'
import { useRouter, useRoute } from 'vue-router'
import useClipboard from 'vue-clipboard3'
import examination from '../examination/index.vue'
const { toClipboard } = useClipboard()
const MG: any = inject('MG')
const toolClass = inject('toolClass')
@@ -1297,6 +1305,7 @@
import { loadMicroApp } from 'qiankun'
import { microApps } from '@/child.ts'
import { open } from 'fs'
let token = localStorage.getItem('token')
const canvasWith = ref(1000)
const canvasheight = ref(3000)
@@ -1543,7 +1552,7 @@
    {
      name: '题库',
      icon: question,
      isShow: bookConfig.value.textbookComponents.indexOf('3D3B4F55') > -1 || bookConfig.value.textbookComponents.indexOf('AFC1A288') > -1 || bookConfig.value.textbookComponents.indexOf('A434F2C0') > -1
      isShow: bookConfig.value.textbookComponents.indexOf('3D3B4F55') > -1 || bookConfig.value.textbookComponents.indexOf('AFC1A288') > -1 || bookConfig.value.textbookComponents.indexOf('A434F2C0') > -1 || bookConfig.value.textbookComponents.indexOf('A4821F71') > -1
    }
  ]
  teachToolsMenuData = [
@@ -2006,7 +2015,6 @@
//资源跳转到指定位置
const JumpPosition = (data) => {
  console.log(data, '跳转')
  if (window.qiankunState && window.qiankunState.gotoPage) {
    window.qiankunState.gotoPage(Number(data.chapterNum), Number(data.pagination))
  }
@@ -2036,6 +2044,13 @@
//习题
const exercisesType = ref('exercises') //习题类型
const questionList = ref([])
const examinationRef = ref() // 答题器实例
const examinationData = reactive({
  type:"",  // 答题类型  option 测试
  infoType:"",  // 数据来源  bits 比特后台  json  假数据
  info:{}, // 这套题的信息
})
// 获取习题
const getExercisesList = () => {
  if (token) {
    listLoading.value = true
@@ -2078,6 +2093,38 @@
  }
}
// 获取附加题
const getAdditionalList = () => {
  if (token) {
    listLoading.value = true
    questionList.value = []
    axios
      .get(bookConfig.value.resourceUrl + '/bits-question.json')
      .then((res) => {
        // 处理获取到的json数据
        if (res.data.data.length > 0) {
          questionList.value = res.data.data
          examinationData.infoType = res.data.type
        }
        listLoading.value = false
      })
      .catch(() => {
        listLoading.value = false
      })
  } else {
    ElMessageBox.confirm('请先登录!', {
      confirmButtonText: '去登录',
      cancelButtonText: '取消',
      autofocus: false,
      type: 'warning'
    })
      .then(() => {
        router.push('/login')
      })
      .catch(() => {})
  }
}
//错题本
const wrongQuestionVisble = ref(false)
const selectExercisesType = (type) => {
@@ -2085,12 +2132,37 @@
  searchText.value = ''
  if (type == 'exercises') {
    getExercisesList()
  } else if(type == 'additional') {
    getAdditionalList()
  } else if(type == 'wrong'){
    openExaminationDialog(true,{},'errorQuestion')
    questionList.value = []
  }else{
    openExaminationDialog(true,{},'collectQuestion')
    questionList.value = []
  }
}
// 题列表点击
const clickQuestion = (type:string,data:any) => {
  switch (type) {
    case 'exercises':
      JumpPosition(data)
      break;
    case 'additional':
      openExaminationDialog(true,data,'option')
      break;
    default:
      break;
  }
}
const openExaminationDialog = (isSHow:boolean,data:any,type:string) => {
  if(examinationRef.value) {
    examinationRef.value.handleExaminationDialog(isSHow)
    examinationData.type = type
    examinationData.info = data
  }
}
// 选中菜单
const activeMenu = ref('目录')