import { h } from 'vue' import { ElTag } from 'element-plus' import { $t } from '@/locales' import ArtButtonTable from '@/components/core/forms/art-button-table/index.vue' export function createTaskLogTableColumns({ handleView } = {}) { return [ { type: 'selection', width: 48, align: 'center' }, { type: 'globalIndex', label: $t('table.index'), width: 72, align: 'center' }, { prop: 'taskCode', label: $t('pages.manager.taskLog.table.taskCode'), minWidth: 170, showOverflowTooltip: true }, { prop: 'taskStatusText', label: $t('pages.manager.taskLog.table.taskStatus'), minWidth: 120, showOverflowTooltip: true }, { prop: 'taskTypeText', label: $t('pages.manager.taskLog.table.taskType'), minWidth: 120, showOverflowTooltip: true }, { prop: 'orgLoc', label: $t('pages.manager.taskLog.table.orgLoc'), minWidth: 130, showOverflowTooltip: true }, { prop: 'orgSite', label: $t('pages.manager.taskLog.table.orgSite'), minWidth: 130, showOverflowTooltip: true }, { prop: 'targLoc', label: $t('pages.manager.taskLog.table.targLoc'), minWidth: 130, showOverflowTooltip: true }, { prop: 'targSite', label: $t('pages.manager.taskLog.table.targSite'), minWidth: 130, showOverflowTooltip: true }, { prop: 'barcode', label: $t('pages.manager.taskLog.table.barcode'), minWidth: 150, showOverflowTooltip: true }, { prop: 'robotCode', label: $t('pages.manager.taskLog.table.robotCode'), minWidth: 140, showOverflowTooltip: true }, { prop: 'startTimeText', label: $t('pages.manager.taskLog.table.startTime'), minWidth: 170, showOverflowTooltip: true }, { prop: 'endTimeText', label: $t('pages.manager.taskLog.table.endTime'), minWidth: 170, showOverflowTooltip: true }, { prop: 'status', label: $t('table.status'), width: 100, align: 'center', formatter: (row) => h( ElTag, { type: row?.statusType || 'info', effect: 'light' }, () => row?.statusText || '--' ) }, { prop: 'updateTimeText', label: $t('table.updateTime'), minWidth: 170, showOverflowTooltip: true }, { prop: 'operation', label: $t('table.operation'), width: 92, align: 'center', fixed: 'right', formatter: (row) => h(ArtButtonTable, { icon: 'ri:eye-line', onClick: () => handleView?.(row) }) } ] }