diff --git a/src/api/generator.ts b/src/api/generator.ts index 31e19a2b..a40d218b 100644 --- a/src/api/generator.ts +++ b/src/api/generator.ts @@ -38,6 +38,26 @@ class GeneratorAPI { method: "get", }); } + /** + * 下载 ZIP 文件 + * @param url + * @param fileName + */ + static downloadZip(tableName: string, fileName?: string) { + return request({ + url: `${GENERATOR_BASE_URL}/${tableName}/downloadZip`, + method: "get", + responseType: "blob", + }).then((res) => { + const blob = new Blob([res.data], { type: "application/zip" }); + const a = document.createElement("a"); + const url = window.URL.createObjectURL(blob); + a.href = url; + a.download = fileName || "下载文件.zip"; + a.click(); + window.URL.revokeObjectURL(url); + }); + } } export default GeneratorAPI; diff --git a/src/views/generator/index.vue b/src/views/generator/index.vue index 9987514a..b611ef3e 100644 --- a/src/views/generator/index.vue +++ b/src/views/generator/index.vue @@ -465,6 +465,14 @@ function handleNextClick() { if (active.value++ >= 2) { active.value = 2; } + if (active.value === 2) { + const tableName = formData.value.tableName; + if (!tableName) { + ElMessage.error("表名不能为空"); + return; + } + GeneratorAPI.downloadZip(tableName, "youlai-admin-code.zip"); + } } }