1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- <script setup lang="ts">
- import { store } from "@/store/store";
- import { getAnswersUrlApi } from "@/api/offlineExam";
- import OfflineExamList from "./OfflineExamList.vue";
- import { onMounted } from "vue";
- import { downloadByUrl } from "@/utils/download";
- logger({
- cnl: ["local", "server"],
- pgn: "离线考试",
- act: "首次渲染",
- });
- // 获取答题纸链接
- let answerCardUrl: string = $ref("");
- async function getAnswersUrl() {
- const res = await getAnswersUrlApi(store.user.rootOrgId);
- answerCardUrl = res.data;
- }
- // 下载答题纸
- let loading = $ref(false);
- function toDownloadPaper() {
- logger({
- cnl: ["local", "server"],
- pgn: "离线考试",
- act: "下载答题卡",
- });
- downloadByUrl(answerCardUrl);
- loading = true;
- setTimeout(() => {
- loading = false;
- }, 10 * 1000);
- }
- onMounted(() => {
- void getAnswersUrl();
- });
- </script>
- <template>
- <div v-if="answerCardUrl" class="off-exam-card">
- <span>答题纸模板:</span>
- <n-button
- type="success"
- size="small"
- :disabled="loading"
- @click="toDownloadPaper"
- >下载</n-button
- >
- </div>
- <OfflineExamList />
- </template>
- <style scoped>
- .off-exam-card {
- height: 30px;
- margin-bottom: 30px;
- text-align: right;
- }
- </style>
|