import { h } from 'vue' import { ElTag } from 'element-plus' import ArtButtonTable from '@/components/core/forms/art-button-table/index.vue' export function createExportTaskTableColumns({ handleDownload } = {}) { return [ { type: 'globalIndex', label: '序号', width: 72, align: 'center' }, { prop: 'taskCode', label: '任务编号', minWidth: 200, showOverflowTooltip: true }, { prop: 'resourceKeyText', label: '导出资源', minWidth: 120, showOverflowTooltip: true }, { prop: 'reportTitle', label: '报表标题', minWidth: 180, showOverflowTooltip: true }, { prop: 'rowCount', label: '数据量', width: 100, align: 'right' }, { prop: 'fileName', label: '导出文件', minWidth: 240, showOverflowTooltip: true }, { prop: 'statusText', label: '状态', width: 110, align: 'center', formatter: (row) => h( ElTag, { type: row?.statusType || 'info', effect: 'light' }, () => row?.statusText || '--' ) }, { prop: 'errorMsg', label: '错误信息', minWidth: 220, showOverflowTooltip: true }, { prop: 'createTimeText', label: '创建时间', minWidth: 170, showOverflowTooltip: true }, { prop: 'updateTimeText', label: '更新时间', minWidth: 170, showOverflowTooltip: true }, { prop: 'expireTimeText', label: '过期时间', minWidth: 170, showOverflowTooltip: true }, { prop: 'operation', label: '操作', width: 92, align: 'center', fixed: 'right', formatter: (row) => row?.canDownload ? h(ArtButtonTable, { icon: 'ri:download-2-line', iconClass: 'bg-info/12 text-info', onClick: () => handleDownload?.(row) }) : '--' } ] }