From 598dcd07b2404f52cf0414bc627d9d6a7c94e256 Mon Sep 17 00:00:00 2001 From: limengnan <420004014@qq.com> Date: Tue, 24 Jun 2025 11:55:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=89=8D=E7=AB=AFsrc/views/v?= =?UTF-8?q?isualized=E7=9B=AE=E5=BD=95=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../visualized/data/dataset/ExportExcel.vue | 156 +- .../data/dataset/auth-tree/FilterFiled.vue | 14 +- .../visualized/data/dataset/form/AddSql.vue | 145 +- .../data/dataset/form/CalcFieldEdit.vue | 16 +- .../data/dataset/form/CodeMirror.vue | 9 +- .../data/dataset/form/CreatDsGroup.vue | 4 + .../data/dataset/form/DatasetUnion.vue | 27 +- .../data/dataset/form/UnionEdit.vue | 17 +- .../data/dataset/form/UnionItemEdit.vue | 7 +- .../visualized/data/dataset/form/index.vue | 129 +- .../views/visualized/data/dataset/index.vue | 29 +- .../data/datasource/BaseInfoContent.vue | 17 +- .../data/datasource/BaseInfoItem.vue | 2 +- .../visualized/data/datasource/ExcelInfo.vue | 5 +- .../data/datasource/ExcelInfoBase.vue | 54 + .../visualized/data/datasource/FinishPage.vue | 2 +- .../datasource/form/ApiHttpRequestDraw.vue | 137 +- .../data/datasource/form/ApiKeyValue.vue | 2 +- .../data/datasource/form/CreatDsGroup.vue | 2 +- .../data/datasource/form/EditorDetail.vue | 142 +- .../data/datasource/form/ExcelDetail.vue | 198 ++- .../datasource/form/ExcelRemoteDetail.vue | 1452 +++++++++++++++++ .../visualized/data/datasource/form/index.vue | 188 ++- .../visualized/data/datasource/form/option.ts | 8 +- .../visualized/data/datasource/index.vue | 128 +- 25 files changed, 2335 insertions(+), 555 deletions(-) create mode 100644 core/core-frontend/src/views/visualized/data/datasource/ExcelInfoBase.vue create mode 100644 core/core-frontend/src/views/visualized/data/datasource/form/ExcelRemoteDetail.vue diff --git a/core/core-frontend/src/views/visualized/data/dataset/ExportExcel.vue b/core/core-frontend/src/views/visualized/data/dataset/ExportExcel.vue index 013c755..dec8d88 100644 --- a/core/core-frontend/src/views/visualized/data/dataset/ExportExcel.vue +++ b/core/core-frontend/src/views/visualized/data/dataset/ExportExcel.vue @@ -3,7 +3,7 @@ import dvPreviewDownload from '@/assets/svg/icon_download_outlined.svg' import deDelete from '@/assets/svg/de-delete.svg' import icon_fileExcel_colorful from '@/assets/svg/icon_file-excel_colorful.svg' import icon_refresh_outlined from '@/assets/svg/icon_refresh_outlined.svg' -import { ref, h, onUnmounted, computed } from 'vue' +import { ref, h, onUnmounted, computed, reactive } from 'vue' import { EmptyBackground } from '@/components/empty-background' import { ElButton, ElMessage, ElMessageBox, ElTabPane, ElTabs } from 'element-plus-secondary' import { RefreshLeft } from '@element-plus/icons-vue' @@ -12,7 +12,9 @@ import { exportRetry, exportDelete, exportDeleteAll, - exportDeletePost + exportDeletePost, + exportTasksRecords, + generateDownloadUri } from '@/api/dataset' import { useI18n } from '@/hooks/web/useI18n' import { useEmitt } from '@/hooks/web/useEmitt' @@ -22,6 +24,13 @@ import { useLinkStoreWithOut } from '@/store/modules/link' import { useAppStoreWithOut } from '@/store/modules/app' const { t } = useI18n() +const state = reactive({ + paginationConfig: { + currentPage: 1, + pageSize: 10, + total: 0 + } +}) const tableData = ref([]) const drawerLoading = ref(false) const drawer = ref(false) @@ -59,7 +68,6 @@ const handleClose = () => { } const { wsCache } = useCache() const openType = wsCache.get('open-backend') === '1' ? '_self' : '_blank' -const xpack = wsCache.get('xpack-model-distributed') const desktop = wsCache.get('app.desktop') onUnmounted(() => { @@ -77,46 +85,29 @@ const handleClick = tab => { description.value = t('data_export.no_task') } drawerLoading.value = true - exportTasks(activeName.value) - .then(res => { - tabList.value.forEach(item => { - if (item.name === 'ALL') { - item.label = t('data_set.all') + '(' + res.data.length + ')' - } - if (item.name === 'IN_PROGRESS') { - item.label = - t('data_set.exporting') + - '(' + - res.data.filter(task => task.exportStatus === 'IN_PROGRESS').length + - ')' - } - if (item.name === 'SUCCESS') { - item.label = - t('data_set.success') + - '(' + - res.data.filter(task => task.exportStatus === 'SUCCESS').length + - ')' - } - if (item.name === 'FAILED') { - item.label = - t('data_set.fail') + - '(' + - res.data.filter(task => task.exportStatus === 'FAILED').length + - ')' - } - if (item.name === 'PENDING') { - item.label = - t('data_set.waiting') + - '(' + - res.data.filter(task => task.exportStatus === 'PENDING').length + - ')' - } - }) - if (activeName.value === 'ALL') { - tableData.value = res.data - } else { - tableData.value = res.data.filter(task => task.exportStatus === activeName.value) + exportTasksRecords().then(res => { + tabList.value.forEach(item => { + if (item.name === 'ALL') { + item.label = t('data_set.all') + '(' + res.data.ALL + ')' } + if (item.name === 'IN_PROGRESS') { + item.label = t('data_set.exporting') + '(' + res.data.IN_PROGRESS + ')' + } + if (item.name === 'SUCCESS') { + item.label = t('data_set.success') + '(' + res.data.SUCCESS + ')' + } + if (item.name === 'FAILED') { + item.label = t('data_set.fail') + '(' + res.data.FAILED + ')' + } + if (item.name === 'PENDING') { + item.label = t('data_set.waiting') + '(' + res.data.PENDING + ')' + } + }) + }) + exportTasks(state.paginationConfig.currentPage, state.paginationConfig.pageSize, activeName.value) + .then(res => { + state.paginationConfig.total = res.data.total + tableData.value = res.data.records }) .finally(() => { drawerLoading.value = false @@ -131,45 +122,32 @@ const init = params => { handleClick() timer = setInterval(() => { if (activeName.value === 'IN_PROGRESS') { - exportTasks(activeName.value).then(res => { + exportTasksRecords().then(res => { tabList.value.forEach(item => { if (item.name === 'ALL') { - item.label = t('data_set.all') + '(' + res.data.length + ')' + item.label = t('data_set.all') + '(' + res.data.ALL + ')' } if (item.name === 'IN_PROGRESS') { - item.label = - t('data_set.exporting') + - '(' + - res.data.filter(task => task.exportStatus === 'IN_PROGRESS').length + - ')' + item.label = t('data_set.exporting') + '(' + res.data.IN_PROGRESS + ')' } if (item.name === 'SUCCESS') { - item.label = - t('data_set.success') + - '(' + - res.data.filter(task => task.exportStatus === 'SUCCESS').length + - ')' + item.label = t('data_set.success') + '(' + res.data.SUCCESS + ')' } if (item.name === 'FAILED') { - item.label = - t('data_set.fail') + - '(' + - res.data.filter(task => task.exportStatus === 'FAILED').length + - ')' + item.label = t('data_set.fail') + '(' + res.data.FAILED + ')' } if (item.name === 'PENDING') { - item.label = - t('data_set.waiting') + - '(' + - res.data.filter(task => task.exportStatus === 'PENDING').length + - ')' + item.label = t('data_set.waiting') + '(' + res.data.PENDING + ')' } }) - if (activeName.value === 'ALL') { - tableData.value = res.data - } else { - tableData.value = res.data.filter(task => task.exportStatus === activeName.value) - } + }) + exportTasks( + state.paginationConfig.currentPage, + state.paginationConfig.pageSize, + activeName.value + ).then(res => { + state.paginationConfig.total = res.data.total + tableData.value = res.data.records }) } }, 5000) @@ -242,12 +220,16 @@ const callbackExportSuc = () => { const downLoadAll = () => { if (multipleSelection.value.length === 0) { tableData.value.forEach(item => { - window.open(PATH_URL + '/exportCenter/download/' + item.id) + generateDownloadUri(item.id).then(() => { + window.open(PATH_URL + '/exportCenter/download/' + item.id) + }) }) return } multipleSelection.value.map(ele => { - window.open(PATH_URL + '/exportCenter/download/' + ele.id) + generateDownloadUri(ele.id).then(() => { + window.open(PATH_URL + '/exportCenter/download/' + ele.id) + }) }) } const showMsg = item => { @@ -262,8 +244,11 @@ const timestampFormatDate = value => { return new Date(value).toLocaleString() } import { PATH_URL } from '@/config/axios/service' +import GridTable from '../../../../components/grid-table/src/GridTable.vue' const downloadClick = item => { - window.open(PATH_URL + '/exportCenter/download/' + item.id, openType) + generateDownloadUri(item.id).then(() => { + window.open(PATH_URL + '/exportCenter/download/' + item.id, openType) + }) } const retry = item => { @@ -294,6 +279,19 @@ const handleSelectionChange = val => { multipleSelection.value = val } +const pageChange = index => { + if (typeof index !== 'number') { + return + } + state.paginationConfig.currentPage = index + handleClick() +} +const sizeChange = size => { + state.paginationConfig.currentPage = 1 + state.paginationConfig.pageSize = size + handleClick() +} + const delAll = () => { if (multipleSelection.value.length === 0) { ElMessageBox.confirm(t('data_export.sure_del_all'), { @@ -344,7 +342,7 @@ defineExpose({