import { h } from 'vue' import { ElTag } from 'element-plus' import ArtButtonTable from '@/components/core/forms/art-button-table/index.vue' import { getPurchaseItemStatusMeta } from './purchaseItemPage.helpers.js' function renderStatus(row) { const statusMeta = getPurchaseItemStatusMeta(row.statusBool ?? row.status) return h( ElTag, { type: statusMeta.type, effect: 'light' }, () => statusMeta.text ) } export function createPurchaseItemTableColumns({ handleView } = {}) { return [ { type: 'selection', width: 48, align: 'center' }, { type: 'globalIndex', label: '序号', width: 72, align: 'center' }, { prop: 'purchaseId', label: '主单标识', width: 110, align: 'right' }, { prop: 'platItemId', label: 'ERP行号', minWidth: 120, showOverflowTooltip: true }, { prop: 'matnrCode', label: '物料编码', minWidth: 150, showOverflowTooltip: true }, { prop: 'matnrName', label: '物料名称', minWidth: 200, showOverflowTooltip: true }, { prop: 'unit', label: '单位', width: 90, align: 'center' }, { prop: 'anfme', label: '数量', width: 100, align: 'right' }, { prop: 'qty', label: '已收数量', width: 100, align: 'right' }, { prop: 'nromQty', label: '标准包装', width: 100, align: 'right' }, { prop: 'asnQty', label: 'ASN单据数量', width: 110, align: 'right' }, { prop: 'printQty', label: '条码打印数量', width: 120, align: 'right' }, { prop: 'splrName', label: '供应商名称', minWidth: 160, showOverflowTooltip: true }, { prop: 'splrCode', label: '供应商编码', minWidth: 150, showOverflowTooltip: true }, { prop: 'splrBatch', label: '供应商批次', minWidth: 150, showOverflowTooltip: true }, { prop: 'status', label: '状态', width: 92, align: 'center', formatter: renderStatus }, { prop: 'memo', label: '备注', minWidth: 180, showOverflowTooltip: true }, { prop: 'createByText', label: '创建人', minWidth: 120, showOverflowTooltip: true }, { prop: 'createTimeText', label: '创建时间', minWidth: 180, showOverflowTooltip: true }, { prop: 'updateByText', label: '修改人', minWidth: 120, showOverflowTooltip: true }, { prop: 'updateTimeText', label: '修改时间', minWidth: 180, showOverflowTooltip: true }, { prop: 'action', label: '操作', width: 96, fixed: 'right', align: 'center', formatter: (row) => h(ArtButtonTable, { icon: 'ri:eye-line', onClick: () => handleView?.(row) }) } ] } export { ArtButtonTable }