| | |
| | | import ArtButtonMore from '@/components/core/forms/art-button-more/index.vue' |
| | | import { getLocStatusMeta, getLocUseStatusMeta } from './locPage.helpers' |
| | | |
| | | function createTextColumn(prop, label, minWidth, formatter) { |
| | | return { |
| | | prop, |
| | | label, |
| | | minWidth, |
| | | showOverflowTooltip: true, |
| | | formatter: formatter || ((row) => row[prop] || '--') |
| | | } |
| | | } |
| | | |
| | | function createNumberColumn(prop, label, width) { |
| | | return { |
| | | prop, |
| | | label, |
| | | width, |
| | | align: 'center', |
| | | formatter: (row) => row[prop] ?? '--' |
| | | } |
| | | } |
| | | |
| | | function createTagColumn(prop, label, width, resolveMeta) { |
| | | return { |
| | | prop, |
| | | label, |
| | | width, |
| | | align: 'center', |
| | | formatter: (row) => { |
| | | const statusMeta = resolveMeta(row) |
| | | return h(ElTag, { type: statusMeta.type, effect: 'light' }, () => statusMeta.text) |
| | | } |
| | | } |
| | | } |
| | | |
| | | export function createLocTableColumns({ |
| | | handleView, |
| | | handleEdit, |
| | |
| | | return [ |
| | | { type: 'selection', width: 48, align: 'center' }, |
| | | { type: 'globalIndex', label: '序号', width: 72, align: 'center' }, |
| | | { |
| | | prop: 'code', |
| | | label: '库位号', |
| | | minWidth: 160, |
| | | showOverflowTooltip: true, |
| | | formatter: (row) => row.code || '--' |
| | | }, |
| | | { |
| | | prop: 'warehouseName', |
| | | label: '仓库', |
| | | minWidth: 150, |
| | | showOverflowTooltip: true, |
| | | formatter: (row) => row.warehouseName || row.warehouseId$ || '--' |
| | | }, |
| | | { |
| | | prop: 'areaName', |
| | | label: '库区', |
| | | minWidth: 150, |
| | | showOverflowTooltip: true, |
| | | formatter: (row) => row.areaName || row.areaId$ || '--' |
| | | }, |
| | | { |
| | | prop: 'typeIdsText', |
| | | label: '库位类型', |
| | | minWidth: 180, |
| | | showOverflowTooltip: true, |
| | | formatter: (row) => row.typeIdsText || '--' |
| | | }, |
| | | { |
| | | prop: 'row', |
| | | label: '排', |
| | | width: 80, |
| | | align: 'center', |
| | | formatter: (row) => row.row ?? '--' |
| | | }, |
| | | { |
| | | prop: 'col', |
| | | label: '列', |
| | | width: 80, |
| | | align: 'center', |
| | | formatter: (row) => row.col ?? '--' |
| | | }, |
| | | { |
| | | prop: 'lev', |
| | | label: '层', |
| | | width: 80, |
| | | align: 'center', |
| | | formatter: (row) => row.lev ?? '--' |
| | | }, |
| | | { |
| | | prop: 'channel', |
| | | label: '巷道', |
| | | width: 90, |
| | | align: 'center', |
| | | formatter: (row) => row.channel ?? '--' |
| | | }, |
| | | { |
| | | prop: 'useStatus', |
| | | label: '使用状态', |
| | | width: 110, |
| | | align: 'center', |
| | | formatter: (row) => { |
| | | const statusMeta = getLocUseStatusMeta(row.useStatus) |
| | | return h(ElTag, { type: statusMeta.type, effect: 'light' }, () => statusMeta.text) |
| | | } |
| | | }, |
| | | { |
| | | prop: 'flagLogicText', |
| | | label: '虚拟库位', |
| | | width: 110, |
| | | align: 'center', |
| | | formatter: (row) => row.flagLogicText || '--' |
| | | }, |
| | | { |
| | | prop: 'flagLabelMangeText', |
| | | label: '标签管理', |
| | | width: 110, |
| | | align: 'center', |
| | | formatter: (row) => row.flagLabelMangeText || '--' |
| | | }, |
| | | { |
| | | prop: 'barcode', |
| | | label: '容器编码', |
| | | minWidth: 150, |
| | | showOverflowTooltip: true, |
| | | formatter: (row) => row.barcode || '--' |
| | | }, |
| | | { |
| | | prop: 'status', |
| | | label: '状态', |
| | | width: 100, |
| | | align: 'center', |
| | | formatter: (row) => { |
| | | const statusMeta = getLocStatusMeta(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 || row.updateTime$ || '--' |
| | | }, |
| | | { |
| | | prop: 'memo', |
| | | label: '备注', |
| | | minWidth: 180, |
| | | showOverflowTooltip: true, |
| | | formatter: (row) => row.memo || '--' |
| | | }, |
| | | createTextColumn('code', '库位号', 160), |
| | | createTextColumn('warehouseName', '仓库', 150, (row) => row.warehouseName || row.warehouseId$ || '--'), |
| | | createTextColumn('areaName', '库区', 150, (row) => row.areaName || row.areaId$ || '--'), |
| | | createTextColumn('typeIdsText', '库位类型', 180), |
| | | createNumberColumn('row', '排', 80), |
| | | createNumberColumn('col', '列', 80), |
| | | createNumberColumn('lev', '层', 80), |
| | | createNumberColumn('channel', '巷道', 90), |
| | | createTagColumn('useStatus', '使用状态', 110, (row) => getLocUseStatusMeta(row.useStatus)), |
| | | createTextColumn('flagLogicText', '虚拟库位', 110), |
| | | createTextColumn('flagLabelMangeText', '标签管理', 110), |
| | | createTextColumn('barcode', '容器编码', 150), |
| | | createTagColumn('status', '状态', 100, (row) => getLocStatusMeta(row.statusBool ?? row.status)), |
| | | createTextColumn('updateTimeText', '更新时间', 170, (row) => row.updateTimeText || row.updateTime$ || '--'), |
| | | createTextColumn('memo', '备注', 180), |
| | | { |
| | | prop: 'operation', |
| | | label: '操作', |