17 lines
915 B
TypeScript
17 lines
915 B
TypeScript
import { useRouter } from 'vue-router'
|
|
import { showExportTaskCreatedDialog } from '@/shared/components/exportTaskCreatedDialog'
|
|
import { createPlatformExportTask, type CreatePlatformExportTaskRequest, type KnownExportTaskType } from './api/platformExportTasks'
|
|
|
|
export function useExportTask() {
|
|
const router = useRouter()
|
|
return async (exportType: KnownExportTaskType, taskName: string, query: object) => {
|
|
const parameters = Object.fromEntries(Object.entries(query).filter(([key, value]) =>
|
|
key !== 'page' && key !== 'size' && value !== undefined && value !== null && value !== '',
|
|
)) as CreatePlatformExportTaskRequest['parameters']
|
|
const task = await createPlatformExportTask({ exportType, taskName, format: 'XLSX', parameters })
|
|
if (await showExportTaskCreatedDialog({ taskName, taskNo: task.taskNo, dense: true })) {
|
|
await router.push({ name: 'download-center' })
|
|
}
|
|
}
|
|
}
|