zhou zhou
13 小时以前 a49845f424ae5b1e43e391837a55c43ce07ea62d
rsf-design/src/views/basic-info/loc/locTable.columns.js
@@ -3,6 +3,39 @@
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,
@@ -23,117 +56,21 @@
  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: '操作',