[测评系统]--前端(用户答题页面)
阳洁
2023-05-10 93f30ecb74eea1c7ed460d45bc01df2ef14d69a3
src/views/exam/paper/finish.vue
@@ -6,7 +6,15 @@
      <el-main class="align-center">
        <H1 v-if="content!==null && content.trim()!==''">{{content}}</H1>
        <H1 v-else>{{$t('finishMsg')}}</H1>
        <el-button type="danger" :disabled="downDisable" @click="downReport" round>{{$t('down')}}</el-button>
        <!-- 新增下载报告提示语 -->
        <H1 v-if ="downDisable">{{$t('finishPersonalityDownInfo')}}</H1>
        <el-button type="danger" v-if ="downDisable" @click="downReport" round>{{$t('down')}}</el-button>
        <!-- 新增预览提示语 -->
<!--        <H1 v-if ="viewDisable">{{$t('finishViewReportInfo')}}</H1>-->
<!--        <el-button type="danger" v-if ="viewDisable" @click="viewReport" round>{{$t('view')}}</el-button>-->
        <!--  -->
        <H1 v-if ="type == 'CIAQ'">{{$t('finishViewReportInfo')}}</H1>
        <el-button type="danger" v-if ="type == 'CIAQ' && isMobile()" @click="viewReportH5" round>{{$t('view')}}</el-button>
      </el-main>
    </el-container>
  </div>
@@ -14,27 +22,44 @@
<script>
import examPaperApi from '@/api/examPaper'
import {mapState} from "vuex";
export default {
  data () {
    return {
      name: this.$route.query.name,
      content: this.$route.query.content,
      downDisable: true,
      downUrl: ''
      tokenId: this.$route.query.tokenId,
      type: this.$route.query.type,
      downDisable: false,
      viewDisable: false,
      downUrl: '',
      viewUrl: ''
    }
  },
  created () {
    let _this = this
    examPaperApi.selectTesterReport(_this.memberToken).then(re => {
    // 查询报告文件名
    examPaperApi.selectTesterReport(_this.tokenId).then(re => {
      if (re.code === 0) {
        _this.downDisable = false
        _this.downUrl = re.msg
        _this.downDisable = true
        // 设置下载路径
        _this.downUrl = '/api/exam/paper/download?fileName=' + re.msg + '&delete=false'
        console.log(re)
      } else {
        console.log(re)
      }
    })
    // CIAQ PDF预览Url
    // examPaperApi.selectTesterReportUrl(_this.tokenId).then(re => {
    //   if (re.code === 0) {
    //     _this.viewDisable = true
    //     // 设置预览路径
    //     _this.viewUrl = re.msg
    //     console.log(re)
    //   } else {
    //     console.log(re)
    //   }
    // })
  },
  mounted () {
@@ -42,13 +67,27 @@
  beforeDestroy () {
  },
  methods: {
    // 下载报告
    downReport: function () {
      let _this = this
      examPaperApi.down(_this.downUrl)
      window.open(_this.downUrl)
    },
    // 预览报告
    viewReport: function () {
      let _this = this
      _this.$router.push({ path: '/report/view', query: { fileUrl: _this.viewUrl } })
    },
    // 预览报告(H5)
    viewReportH5: function () {
      let _this = this
      _this.$router.push({ path: '/report/h5', query: { tokenId: _this.tokenId } })
    },
    isMobile () {
      let flag = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)
      return flag
    }
  },
  computed: {
    ...mapState('user', { memberToken: state => state.memberToken })
  }
}
</script>