From fc77d77afc320843c3fdd691e0a8b2578b6077e7 Mon Sep 17 00:00:00 2001 From: "YOHO\\20373" <2037305722@qq.com> Date: Tue, 27 May 2025 16:02:55 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BF=AE=E6=94=B9=E3=80=91=E7=94=9F?= =?UTF-8?q?=E6=88=90=E7=AC=94=E8=AF=95=E8=AF=95=E5=8D=B7=E6=8C=89=E9=92=AE?= =?UTF-8?q?=20=E5=8A=A0=E8=BD=BD=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/system/paper/index.ts | 15 ++++- .../exam/components/steps/step2/index.vue | 57 ++++++++++++------- .../sprint/components/steps/step2/index.vue | 56 +++++++++++------- .../trans/components/steps/step2/index.vue | 54 +++++++++++------- 4 files changed, 117 insertions(+), 65 deletions(-) diff --git a/src/api/system/paper/index.ts b/src/api/system/paper/index.ts index de1c103..9577aa1 100644 --- a/src/api/system/paper/index.ts +++ b/src/api/system/paper/index.ts @@ -104,7 +104,9 @@ export async function openDown(ids) { const url = window.URL.createObjectURL(blob); const link = document.createElement('a'); link.href = url; - link.setAttribute('download', '试卷.docx'); + // 使用示例 + const filename = `${getNowTimeString()}.zip`; + link.setAttribute('download', filename); document.body.appendChild(link); link.click(); link.remove(); @@ -115,4 +117,13 @@ export async function openDown(ids) { } } - +function getNowTimeString() { + const now = new Date(); + const Y = now.getFullYear(); + const M = String(now.getMonth() + 1).padStart(2, '0'); + const D = String(now.getDate()).padStart(2, '0'); + const h = String(now.getHours()).padStart(2, '0'); + const m = String(now.getMinutes()).padStart(2, '0'); + const s = String(now.getSeconds()).padStart(2, '0'); + return `${Y}${M}${D}${h}${m}${s}`; +} diff --git a/src/views/task/exam/components/steps/step2/index.vue b/src/views/task/exam/components/steps/step2/index.vue index d6a9aa2..031308e 100644 --- a/src/views/task/exam/components/steps/step2/index.vue +++ b/src/views/task/exam/components/steps/step2/index.vue @@ -56,13 +56,16 @@ > 抽卷调整 - - 生成笔试试卷 - + + + 生成笔试试卷 + - + @@ -259,7 +262,9 @@ const reload = () => { getList(); }; - +const handleSelectionChange = (rows) => { + selections.value = rows; +} // 搜索操作 const handleQuery = () => { queryParams.pageNo = 1; @@ -288,22 +293,30 @@ const openSet = () => { }; /** 表格选中数据 */ const selections = ref([]); +const downloadLoading = ref(false) + const openDown = async () => { - - try { + try { const rows = selections.value; - if (!rows.length) { - message.error('请至少选择一条数据'); - return; + if (!rows.length) { + message.error('请至少选择一条数据'); + return; + } + + downloadLoading.value = true; + message.info('正在生成试卷中,请稍后...'); + + selectedRows.value = rows.map((d: any) => d.paperId); + await PaperApi.openDown(selectedRows.value); + + message.success(t('下载成功')); + await getList(); + } catch (error) { + console.error(error); + message.error('下载失败'); + } finally { + downloadLoading.value = false; } - - selectedRows.value = rows.map((d: any) => d.paperId); // 保存选中的行数据 - await PaperApi.openDown(selectedRows.value) - message.success(t('common.delSuccess')) - // 刷新列表 - await getList() - } catch {} - }; // 打开编辑弹窗 const openEdit = (type: string, row?: object) => { diff --git a/src/views/task/sprint/components/steps/step2/index.vue b/src/views/task/sprint/components/steps/step2/index.vue index bc72501..acb95bd 100644 --- a/src/views/task/sprint/components/steps/step2/index.vue +++ b/src/views/task/sprint/components/steps/step2/index.vue @@ -56,13 +56,16 @@ > 抽卷调整 - - 生成笔试试卷 - + + + 生成笔试试卷 + - + @@ -260,6 +263,9 @@ const reload = () => { }; +const handleSelectionChange = (rows) => { + selections.value = rows; +} // 搜索操作 const handleQuery = () => { queryParams.pageNo = 1; @@ -288,22 +294,30 @@ const openSet = () => { }; /** 表格选中数据 */ const selections = ref([]); +const downloadLoading = ref(false) + const openDown = async () => { - - try { + try { const rows = selections.value; - if (!rows.length) { - message.error('请至少选择一条数据'); - return; + if (!rows.length) { + message.error('请至少选择一条数据'); + return; + } + + downloadLoading.value = true; + message.info('正在生成试卷中,请稍后...'); + + selectedRows.value = rows.map((d: any) => d.paperId); + await PaperApi.openDown(selectedRows.value); + + message.success(t('下载成功')); + await getList(); + } catch (error) { + console.error(error); + message.error('下载失败'); + } finally { + downloadLoading.value = false; } - - selectedRows.value = rows.map((d: any) => d.paperId); // 保存选中的行数据 - await PaperApi.openDown(selectedRows.value) - message.success(t('common.delSuccess')) - // 刷新列表 - await getList() - } catch {} - }; // 打开编辑弹窗 const openEdit = (type: string, row?: object) => { diff --git a/src/views/task/trans/components/steps/step2/index.vue b/src/views/task/trans/components/steps/step2/index.vue index 233ced0..3b1986a 100644 --- a/src/views/task/trans/components/steps/step2/index.vue +++ b/src/views/task/trans/components/steps/step2/index.vue @@ -56,13 +56,17 @@ > 抽卷调整 - - 生成笔试试卷 - + + + 生成笔试试卷 + +