import { h } from 'vue' import { ElTag } from 'element-plus' import ArtButtonTable from '@/components/core/forms/art-button-table/index.vue' import { getWaitPakinItemStatusMeta } from './waitPakinItemPage.helpers' export function createWaitPakinItemTableColumns({ handleView } = {}) { return [ { type: 'selection', width: 48, align: 'center' }, { type: 'globalIndex', label: '序号', width: 72, align: 'center' }, { prop: 'pakinId', label: '组托单ID', width: 110, align: 'right', formatter: (row) => row.pakinId || '--' }, { prop: 'asnCode', label: 'ASN单号', minWidth: 160, showOverflowTooltip: true, formatter: (row) => row.asnCode || '--' }, { prop: 'asnItemId', label: 'ASN明细ID', width: 120, align: 'right', formatter: (row) => row.asnItemId || '--' }, { prop: 'matnrCode', label: '物料编码', minWidth: 150, showOverflowTooltip: true, formatter: (row) => row.matnrCode || '--' }, { prop: 'maktx', label: '物料名称', minWidth: 220, showOverflowTooltip: true, formatter: (row) => row.maktx || '--' }, { prop: 'trackCode', label: '跟踪码', minWidth: 150, showOverflowTooltip: true, formatter: (row) => row.trackCode || '--' }, { prop: 'typeText', label: '订单类型', minWidth: 120, showOverflowTooltip: true, formatter: (row) => row.typeText || '--' }, { prop: 'wkTypeText', label: '业务类型', minWidth: 120, showOverflowTooltip: true, formatter: (row) => row.wkTypeText || '--' }, { prop: 'anfme', label: '数量', width: 100, align: 'right', formatter: (row) => row.anfme ?? '--' }, { prop: 'workQty', label: '执行中数量', width: 120, align: 'right', formatter: (row) => row.workQty ?? '--' }, { prop: 'qty', label: '已完成数量', width: 120, align: 'right', formatter: (row) => row.qty ?? '--' }, { prop: 'unit', label: '单位', width: 90, align: 'center', formatter: (row) => row.unit || '--' }, { prop: 'batch', label: '批次号', minWidth: 140, showOverflowTooltip: true, formatter: (row) => row.batch || '--' }, { prop: 'isptResultText', label: '质检结果', minWidth: 110, showOverflowTooltip: true, formatter: (row) => row.isptResultText || '--' }, { prop: 'extendFieldsText', label: '扩展字段', minWidth: 220, showOverflowTooltip: true, formatter: (row) => row.extendFieldsText || '--' }, { prop: 'status', label: '状态', width: 96, align: 'center', formatter: (row) => { const statusMeta = getWaitPakinItemStatusMeta(row.statusBool ?? row.status) return h(ElTag, { type: statusMeta.type, effect: 'light' }, () => statusMeta.text) } }, { prop: 'updateTimeText', label: '更新时间', minWidth: 170, showOverflowTooltip: true, formatter: (row) => row.updateTimeText || '--' }, { prop: 'operation', label: '操作', width: 96, fixed: 'right', align: 'center', formatter: (row) => h(ArtButtonTable, { type: 'view', onClick: () => handleView?.(row) }) } ] }