From 9910c1479a8405381a9951be5398f0c09c688628 Mon Sep 17 00:00:00 2001 From: yuxin-pc Date: Mon, 9 Jun 2025 10:38:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=8C=85=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oscm/board/src/js/api/dataPackageApi.js | 37 ++++ oscm/board/src/js/index.js | 6 +- oscm/board/src/main.js | 4 +- oscm/board/src/modules/Index.vue | 1 + .../src/modules/dataPackage/DataPackage.vue | 180 ++++++++++++++++++ oscm/board/src/modules/log/LogList.vue | 3 +- oscm/server/pom.xml | 4 + .../controller/DataPackageController.java | 66 +++++++ .../oscm/dao/DataPackageLogRepository.java | 7 + .../jsc/oscm/dao/DataPackageRepository.java | 7 + .../java/com/jsc/oscm/entity/DataPackage.java | 28 +++ .../com/jsc/oscm/entity/DataPackageLog.java | 34 ++++ .../jsc/oscm/service/DataPackageService.java | 53 ++++++ 13 files changed, 426 insertions(+), 4 deletions(-) create mode 100644 oscm/board/src/js/api/dataPackageApi.js create mode 100644 oscm/board/src/modules/dataPackage/DataPackage.vue create mode 100644 oscm/server/src/main/java/com/jsc/oscm/controller/DataPackageController.java create mode 100644 oscm/server/src/main/java/com/jsc/oscm/dao/DataPackageLogRepository.java create mode 100644 oscm/server/src/main/java/com/jsc/oscm/dao/DataPackageRepository.java create mode 100644 oscm/server/src/main/java/com/jsc/oscm/entity/DataPackage.java create mode 100644 oscm/server/src/main/java/com/jsc/oscm/entity/DataPackageLog.java create mode 100644 oscm/server/src/main/java/com/jsc/oscm/service/DataPackageService.java diff --git a/oscm/board/src/js/api/dataPackageApi.js b/oscm/board/src/js/api/dataPackageApi.js new file mode 100644 index 0000000..2f8371a --- /dev/null +++ b/oscm/board/src/js/api/dataPackageApi.js @@ -0,0 +1,37 @@ +import axios from 'axios'; + +export default { + getPackageList(page, size) { + return axios.get('/api/data-package/list', { + params: {page, size} + }); + }, + + getLogList(page, size) { + return axios.get('/api/data-package/log/list', { + params: {page, size} + }); + }, + + downloadPackage(id) { + // 1. 先调用后端记录日志 + axios.get(`/api/data-package/download/${id}`) + .then(response => { + // 2. 获取文件URL后直接触发下载 + const fileUrl = response.data; + console.log("开始下载:", fileUrl); + + // 方法1:直接跳转(最简单) + window.location.href = fileUrl; + + // 方法2:创建隐藏的iframe(避免页面跳转) + // const iframe = document.createElement('iframe'); + // iframe.style.display = 'none'; + // iframe.src = fileUrl; + // document.body.appendChild(iframe); + }) + .catch(error => { + this.$message.error("下载失败: " + error.message); + }); + } +}; \ No newline at end of file diff --git a/oscm/board/src/js/index.js b/oscm/board/src/js/index.js index f841f21..c6fcb03 100644 --- a/oscm/board/src/js/index.js +++ b/oscm/board/src/js/index.js @@ -12,7 +12,8 @@ import settings from './modules/settings' import wordBank from './modules/wordBank' import sensitiveTarget from "./modules/targetSensitive" import metaDict from "./modules/metaDict" -import apiRules from "@/js/modules/apiRules"; +import apiRules from "@/js/modules/apiRules" +import DataPackage from "../modules/dataPackage/DataPackage"; Vue.use(Vuex) @@ -32,7 +33,8 @@ export default new Vuex.Store({ wordBank, sensitiveTarget, metaDict, - apiRules + apiRules, + DataPackage }, strict: debug }) \ No newline at end of file diff --git a/oscm/board/src/main.js b/oscm/board/src/main.js index 6cf3342..56a23ca 100644 --- a/oscm/board/src/main.js +++ b/oscm/board/src/main.js @@ -6,6 +6,7 @@ import OverView from './modules/overview/Homepage' import LogManage from './modules/log/LogList' import ServerManage from './modules/server/ServerList' import ProjectManage from './modules/project/ProjectList' +import DataPackage from "./modules/dataPackage/DataPackage"; // import TaskManage from './modules/task/MainFrame' import CommonTaskTab from "@/modules/task/CommonTaskList"; import SingleWebsiteTaskTab from "@/modules/task/SingleWebsiteTaskList"; @@ -66,7 +67,8 @@ const routes = [ // {path: 'settings', component: SystemSettings, meta: {keepAlive: true}}, {path: 'settings/metaData', component: MetaDataTab, meta: {keepAlive: true}}, {path: 'settings/metaDict', component: MetaDictTab, meta: {keepAlive: true}}, - {path: 'settings/wordBank', component: WordBankTab, meta: {keepAlive: true}} + {path: 'settings/wordBank', component: WordBankTab, meta: {keepAlive: true}}, + {path: 'data-package', component: DataPackage, meta: {keepAlive: true}} ] }, {path: '/oscm/login', component: login} diff --git a/oscm/board/src/modules/Index.vue b/oscm/board/src/modules/Index.vue index be9834e..cb8d01b 100644 --- a/oscm/board/src/modules/Index.vue +++ b/oscm/board/src/modules/Index.vue @@ -54,6 +54,7 @@ 系统管理 运行日志 + 数据包操作 词库管理 元数据表格 元数据字典 diff --git a/oscm/board/src/modules/dataPackage/DataPackage.vue b/oscm/board/src/modules/dataPackage/DataPackage.vue new file mode 100644 index 0000000..a3d1acc --- /dev/null +++ b/oscm/board/src/modules/dataPackage/DataPackage.vue @@ -0,0 +1,180 @@ + + + + \ No newline at end of file diff --git a/oscm/board/src/modules/log/LogList.vue b/oscm/board/src/modules/log/LogList.vue index 30b1c65..6fba1d2 100644 --- a/oscm/board/src/modules/log/LogList.vue +++ b/oscm/board/src/modules/log/LogList.vue @@ -69,7 +69,7 @@