import { h } from 'vue' import { ElTag } from 'element-plus' import ArtButtonTable from '@/components/core/forms/art-button-table/index.vue' import { $t } from '@/locales' export function createTransferItemTableColumns({ handleView, t = $t } = {}) { return [ { type: 'selection', width: 48, align: 'center' }, { type: 'globalIndex', label: t('table.index'), width: 72, align: 'center' }, { prop: 'transferId', label: t('pages.orders.transferItem.table.transferId'), width: 110, align: 'right', formatter: (row) => row.transferId ?? '--' }, { prop: 'transferCode', label: t('pages.orders.transferItem.table.transferCode'), minWidth: 170, showOverflowTooltip: true, formatter: (row) => row.transferCode || '--' }, { prop: 'matnrCode', label: t('table.materialCode'), minWidth: 150, showOverflowTooltip: true, formatter: (row) => row.matnrCode || '--' }, { prop: 'maktx', label: t('table.materialName'), minWidth: 220, showOverflowTooltip: true, formatter: (row) => row.maktx || '--' }, { prop: 'spec', label: t('pages.orders.transferItem.table.spec'), minWidth: 150, showOverflowTooltip: true, formatter: (row) => row.spec || '--' }, { prop: 'model', label: t('pages.orders.transferItem.table.model'), minWidth: 140, showOverflowTooltip: true, formatter: (row) => row.model || '--' }, { prop: 'batch', label: t('table.batch'), minWidth: 140, showOverflowTooltip: true, formatter: (row) => row.batch || '--' }, { prop: 'unit', label: t('table.unit'), width: 90, align: 'center', formatter: (row) => row.unit || '--' }, { prop: 'anfme', label: t('table.quantity'), width: 100, align: 'right', formatter: (row) => row.anfme ?? '--' }, { prop: 'workQty', label: t('pages.orders.transferItem.table.workQty'), width: 110, align: 'right', formatter: (row) => row.workQty ?? '--' }, { prop: 'qty', label: t('pages.orders.transferItem.table.qty'), width: 120, align: 'right', formatter: (row) => row.qty ?? '--' }, { prop: 'splrCode', label: t('pages.orders.transferItem.table.supplierCode'), minWidth: 150, showOverflowTooltip: true, formatter: (row) => row.splrCode || '--' }, { prop: 'splrName', label: t('pages.orders.transferItem.table.supplierName'), minWidth: 180, showOverflowTooltip: true, formatter: (row) => row.splrName || '--' }, { prop: 'fieldsIndex', label: t('pages.orders.transferItem.table.fieldsIndex'), minWidth: 130, showOverflowTooltip: true, formatter: (row) => row.fieldsIndex || '--' }, { prop: 'platItemId', label: t('pages.orders.transferItem.table.platItemId'), minWidth: 130, showOverflowTooltip: true, formatter: (row) => row.platItemId || '--' }, { prop: 'platOrderCode', label: t('pages.orders.transferItem.table.platOrderCode'), minWidth: 160, showOverflowTooltip: true, formatter: (row) => row.platOrderCode || '--' }, { prop: 'platWorkCode', label: t('pages.orders.transferItem.table.platWorkCode'), minWidth: 160, showOverflowTooltip: true, formatter: (row) => row.platWorkCode || '--' }, { prop: 'projectCode', label: t('pages.orders.transferItem.table.projectCode'), minWidth: 140, showOverflowTooltip: true, formatter: (row) => row.projectCode || '--' }, { prop: 'status', label: t('table.status'), width: 96, align: 'center', formatter: (row) => h(ElTag, { type: row.statusType || 'info', effect: 'light' }, () => row.statusText || '--') }, { prop: 'updateTimeText', label: t('table.updateTime'), minWidth: 170, showOverflowTooltip: true, formatter: (row) => row.updateTimeText || '--' }, { prop: 'operation', label: t('table.operation'), width: 96, fixed: 'right', align: 'center', formatter: (row) => h(ArtButtonTable, { type: 'view', onClick: () => handleView?.(row) }) } ] }