33 分钟以前 5367b3b4d92588c4e76728e6bd4ad6aae0cbb967
src/views/wls/materialstock/data.ts
@@ -8,7 +8,6 @@
import { DICT_TYPE } from '@vben/constants';
import { MdItemSelect } from '#/views/mes/md/item/components';
import { MdVendorSelect } from '#/views/mes/md/vendor/components';
import {
  WmWarehouseAreaSelect,
@@ -84,6 +83,7 @@
    newFrozen: boolean,
    row: MesWmMaterialStockApi.MaterialStock,
  ) => Promise<boolean | undefined>,
  onMove?: (row: MesWmMaterialStockApi.MaterialStock) => void,
): VxeTableGridOptions<MesWmMaterialStockApi.MaterialStock>['columns'] {
  const { hasAccessByCodes } = useAccess();
  return [
@@ -106,6 +106,41 @@
      field: 'quantity',
      title: '在库数量',
      width: 100,
    },
    {
      field: 'frozenQuantity',
      title: '冻结数量',
      width: 100,
      formatter: ({ cellValue }: { cellValue: number }) =>
        (cellValue || 0).toFixed(2),
    },
    {
      field: 'reservedQuantity',
      title: '占用量',
      width: 100,
      formatter: ({ cellValue }: { cellValue: number }) =>
        (cellValue || 0).toFixed(2),
    },
    {
      field: 'inTransitQuantity',
      title: '在途量',
      width: 100,
      formatter: ({ cellValue }: { cellValue: number }) =>
        (cellValue || 0).toFixed(2),
    },
    {
      field: 'availableQuantity',
      title: '可用量',
      width: 100,
      cellRender: {
        name: 'CellText',
        props: {
          class: ({ row }: { row: MesWmMaterialStockApi.MaterialStock }) =>
            (row.availableQuantity || 0) < 0 ? 'text-red-500 font-bold' : '',
          formatter: ({ row }: { row: MesWmMaterialStockApi.MaterialStock }) =>
            ((row.availableQuantity || 0) as number).toFixed(2),
        },
      },
    },
    {
      field: 'unitMeasureName',
@@ -155,6 +190,16 @@
        },
      },
    },
    ...(onMove
      ? [
          {
            title: '操作',
            width: 80,
            fixed: 'right' as const,
            slots: { default: 'actions' } as const,
          },
        ]
      : []),
  ];
}
@@ -162,19 +207,21 @@
export function useSelectGridFormSchema(): VbenFormSchema[] {
  return [
    {
      fieldName: 'itemId',
      fieldName: 'itemName',
      label: '物料',
      component: markRaw(MdItemSelect),
      component: 'Input',
      componentProps: {
        placeholder: '请选择物料',
        allowClear: true,
        placeholder: '请输入物料名称',
      },
    },
    {
      fieldName: 'vendorId',
      fieldName: 'vendorName',
      label: '供应商',
      component: markRaw(MdVendorSelect),
      component: 'Input',
      componentProps: {
        placeholder: '请选择供应商',
        allowClear: true,
        placeholder: '请输入供应商名称',
      },
    },
    {
@@ -288,6 +335,41 @@
      width: 100,
    },
    {
      field: 'frozenQuantity',
      title: '冻结数量',
      width: 100,
      formatter: ({ cellValue }: { cellValue: number }) =>
        (cellValue || 0).toFixed(2),
    },
    {
      field: 'reservedQuantity',
      title: '占用量',
      width: 100,
      formatter: ({ cellValue }: { cellValue: number }) =>
        (cellValue || 0).toFixed(2),
    },
    {
      field: 'inTransitQuantity',
      title: '在途量',
      width: 100,
      formatter: ({ cellValue }: { cellValue: number }) =>
        (cellValue || 0).toFixed(2),
    },
    {
      field: 'availableQuantity',
      title: '可用量',
      width: 100,
      cellRender: {
        name: 'CellText',
        props: {
          class: ({ row }: { row: MesWmMaterialStockApi.MaterialStock }) =>
            (row.availableQuantity || 0) < 0 ? 'text-red-500 font-bold' : '',
          formatter: ({ row }: { row: MesWmMaterialStockApi.MaterialStock }) =>
            ((row.availableQuantity || 0) as number).toFixed(2),
        },
      },
    },
    {
      field: 'receiptTime',
      title: '入库日期',
      width: 180,