From 787a959c1b50ddfcf03797e46d28fdd06085bd41 Mon Sep 17 00:00:00 2001 From: dataeaseShu Date: Mon, 20 May 2024 12:06:30 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=95=B0=E6=8D=AE=E9=9B=86):=20=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=AF=BC=E5=87=BA=E4=B8=AD=E5=BF=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/core-frontend/src/api/dataset.ts | 36 ++ .../src/layout/components/Header.vue | 16 +- core/core-frontend/src/locales/zh-CN.ts | 31 + core/core-frontend/src/style/index.less | 88 ++- .../visualized/data/dataset/ExportExcel.vue | 539 ++++++++++++++++++ 5 files changed, 705 insertions(+), 5 deletions(-) create mode 100644 core/core-frontend/src/views/visualized/data/dataset/ExportExcel.vue diff --git a/core/core-frontend/src/api/dataset.ts b/core/core-frontend/src/api/dataset.ts index b491de7f14..aeb29a85d0 100644 --- a/core/core-frontend/src/api/dataset.ts +++ b/core/core-frontend/src/api/dataset.ts @@ -247,3 +247,39 @@ export const getFunction = async (): Promise => { return res?.data }) } + +export const exportTasks = async (type): Promise => { + return request.post({ url: '/exportCenter/exportTasks/' + type, data: {} }).then(res => { + return res?.data + }) +} + +export const exportRetry = async (id): Promise => { + return request.post({ url: '/exportCenter/retry/' + id, data: {} }).then(res => { + return res?.data + }) +} + +export const downloadFile = async (id): Promise => { + return request.get({ url: 'exportCenter/download/' + id, responseType: 'blob' }).then(res => { + return res?.data + }) +} + +export const exportDelete = async (id): Promise => { + return request.get({ url: '/exportCenter/delete/' + id }).then(res => { + return res?.data + }) +} + +export const exportDeleteAll = async (type, data): Promise => { + return request.post({ url: '/exportCenter/deleteAll/' + type, data }).then(res => { + return res?.data + }) +} + +export const exportDeletePost = async (data): Promise => { + return request.post({ url: '/exportCenter/delete', data }).then(res => { + return res?.data + }) +} diff --git a/core/core-frontend/src/layout/components/Header.vue b/core/core-frontend/src/layout/components/Header.vue index fa30c44ff5..90493dcac7 100644 --- a/core/core-frontend/src/layout/components/Header.vue +++ b/core/core-frontend/src/layout/components/Header.vue @@ -4,6 +4,7 @@ import { usePermissionStore } from '@/store/modules/permission' import { isExternal } from '@/utils/validate' import { formatRoute } from '@/router/establish' import HeaderMenuItem from './HeaderMenuItem.vue' +import { useEmitt } from '@/hooks/web/useEmitt' import { Icon } from '@/components/icon-custom' import { ElHeader, ElMenu } from 'element-plus-secondary' import SystemCfg from './SystemCfg.vue' @@ -15,8 +16,8 @@ import { isDesktop } from '@/utils/ModelUtil' import { XpackComponent } from '@/components/plugin' import { useAppearanceStoreWithOut } from '@/store/modules/appearance' import AiComponent from '@/layout/components/AiComponent.vue' -import { useEmitt } from '@/hooks/web/useEmitt' import { findBaseParams } from '@/api/aiComponent' +import ExportExcel from '@/views/visualized/data/dataset/ExportExcel.vue' import AiTips from '@/layout/components/AiTips.vue' const appearanceStore = useAppearanceStoreWithOut() const { push } = useRouter() @@ -40,7 +41,10 @@ const activeIndex = computed(() => { return route.path }) const permissionStore = usePermissionStore() - +const ExportExcelRef = ref() +const downloadClick = () => { + ExportExcelRef.value.init() +} const routers: any[] = formatRoute(permissionStore.getRoutersNotHidden as AppCustomRouteRecordRaw[]) const showSystem = ref(false) const showToolbox = ref(false) @@ -85,6 +89,10 @@ onMounted(() => { initShowSystem() initShowToolbox() initAiBase() + useEmitt({ + name: 'data-export-center', + callback: downloadClick + }) }) @@ -112,6 +120,9 @@ onMounted(() => { + + + @@ -121,6 +132,7 @@ onMounted(() => {
+