import { h } from 'vue' import { ElTag } from 'element-plus' import { $t } from '@/locales' import ArtButtonMore from '@/components/core/forms/art-button-more/index.vue' export function createWaveItemTableColumns({ handleActionClick, t }) { const translate = typeof t === 'function' ? t : $t return [ { type: 'selection', width: 48, align: 'center' }, { type: 'globalIndex', label: translate('table.index'), width: 72, align: 'center' }, { prop: 'waveCode', label: translate('pages.orders.waveItem.table.waveCode'), minWidth: 170, showOverflowTooltip: true }, { prop: 'orderCode', label: translate('pages.orders.waveItem.table.orderCode'), minWidth: 170, showOverflowTooltip: true }, { prop: 'matnrCode', label: translate('pages.orders.waveItem.table.matnrCode'), minWidth: 150, showOverflowTooltip: true }, { prop: 'maktx', label: translate('pages.orders.waveItem.table.maktx'), minWidth: 220, showOverflowTooltip: true }, { prop: 'batch', label: translate('pages.orders.waveItem.table.batch'), minWidth: 130, showOverflowTooltip: true }, { prop: 'splrBatch', label: translate('pages.orders.waveItem.table.splrBatch'), minWidth: 150, showOverflowTooltip: true }, { prop: 'unit', label: translate('pages.orders.waveItem.table.unit'), width: 90 }, { prop: 'anfme', label: translate('pages.orders.waveItem.table.anfme'), width: 110, align: 'right' }, { prop: 'workQty', label: translate('pages.orders.waveItem.table.workQty'), width: 110, align: 'right' }, { prop: 'stockQty', label: translate('pages.orders.waveItem.table.stockQty'), width: 110, align: 'right' }, { prop: 'fieldsIndex', label: translate('pages.orders.waveItem.table.fieldsIndex'), minWidth: 160, showOverflowTooltip: true }, { prop: 'exceStatusText', label: translate('pages.orders.waveItem.table.exceStatus'), width: 120, formatter: (row) => h( ElTag, { type: row.exceStatusTagType || 'info', effect: 'light' }, () => row.exceStatusText ) }, { prop: 'updateTimeText', label: translate('pages.orders.waveItem.table.updateTime'), minWidth: 170, showOverflowTooltip: true }, { prop: 'operation', label: translate('table.operation'), width: 120, align: 'center', fixed: 'right', formatter: (row) => h(ArtButtonMore, { list: [ { key: 'view', label: translate('pages.orders.waveItem.actions.view'), icon: 'ri:eye-line' } ], onClick: (item) => handleActionClick(item, row) }) } ] } export function createWaveItemDetailColumns() { const translate = $t return [ { type: 'globalIndex', label: translate('table.index'), width: 72, align: 'center' }, { prop: 'waveCode', label: translate('pages.orders.waveItem.table.waveCode'), minWidth: 170, showOverflowTooltip: true }, { prop: 'orderCode', label: translate('pages.orders.waveItem.table.orderCode'), minWidth: 170, showOverflowTooltip: true }, { prop: 'matnrCode', label: translate('pages.orders.waveItem.table.matnrCode'), minWidth: 150, showOverflowTooltip: true }, { prop: 'maktx', label: translate('pages.orders.waveItem.table.maktx'), minWidth: 220, showOverflowTooltip: true }, { prop: 'batch', label: translate('pages.orders.waveItem.table.batch'), minWidth: 130, showOverflowTooltip: true }, { prop: 'splrBatch', label: translate('pages.orders.waveItem.table.splrBatch'), minWidth: 150, showOverflowTooltip: true }, { prop: 'unit', label: translate('pages.orders.waveItem.table.unit'), width: 90 }, { prop: 'anfme', label: translate('pages.orders.waveItem.table.anfme'), width: 110, align: 'right' }, { prop: 'workQty', label: translate('pages.orders.waveItem.table.workQty'), width: 110, align: 'right' }, { prop: 'stockQty', label: translate('pages.orders.waveItem.table.stockQty'), width: 110, align: 'right' }, { prop: 'stockLocsText', label: translate('pages.orders.waveItem.table.stockLocs'), minWidth: 220, showOverflowTooltip: true } ] }