zhou zhou
4 小时以前 10958d1143d59916185e73da79669c5f66a8e849
rsf-admin/src/page/orders/config/orderItemColumns.jsx
@@ -4,8 +4,33 @@
    NumberField,
    DateField,
    ReferenceField,
    useRecordContext
} from 'react-admin';
import { Tooltip } from '@mui/material';
import { get } from 'lodash';
import request from '@/utils/request';
const TruncatedTextField = ({ source, maxLength = 20, ...props }) => {
    const record = useRecordContext(props);
    const value = get(record, source);
    if (!value) return null;
    if (value.length <= maxLength) {
        return <span>{value}</span>;
    }
    return (
        <Tooltip title={value}>
            <span>{value.substring(0, maxLength)}...</span>
        </Tooltip>
    );
};
export const getInOrderItemFullBaseColumns = () => [
    <TextField source="poCode" label="table.field.asnOrder.poCode" key="poCode" />,
    <TextField source="wkType$" label="table.field.asnOrder.wkType" key="wkType$" />
];
/**
 * 获取出库订单明细的基础列配置
@@ -13,19 +38,19 @@
 */
export const getOutOrderItemBaseColumns = () => [
    <NumberField source="id" key="id" />, // id
    <TextField source="orderCode" label="table.field.asnOrderItem.orderCode" key="orderCode" />, // 订单号
    <TextField source="platWorkCode" label="table.field.asnOrderItem.platWorkCode" key="platWorkCode" />, //计划跟踪号
    <TextField source="splrCode" label="table.field.asnOrderItem.splrCode" key="splrCode" />, //供应商编码
    <TextField source="splrName" label="table.field.asnOrderItem.splrName" key="splrName" />, //供应商名称
    <TextField source="platItemId" label="table.field.asnOrderItem.platItemId" key="platItemId" />, //行号
    <TextField source="matnrCode" label="table.field.asnOrderItem.matnrCode" key="matnrCode" />, //物料编码
    <TextField source="maktx" label="table.field.asnOrderItem.maktx" key="maktx" />, //物料名称
    <TextField source="splrBatch" label="table.field.asnOrderItem.splrBatch" key="splrBatch" />, //批次
    <TextField source="spec" label="table.field.asnOrderItem.spec" key="spec" />, //规格
    <TextField source="unit" label="table.field.asnOrderItem.unit" key="unit" />, //单位
    <NumberField source="anfme" label="table.field.asnOrderItem.anfme" key="anfme" />, //应收数量
    <NumberField source="qty" label="table.field.asnOrderItem.qty" key="qty" />, //实收数量
    <TextField source="sourceWareHouseId" label="table.field.asnOrderItem.sourceWareHouseId" key="sourceWareHouseId" />, //调出仓
    <TextField source="orderCode" label="table.field.outStockItem.orderCode" key="orderCode" />, // 订单号
    <TextField source="platWorkCode" label="table.field.outStockItem.platWorkCode" key="platWorkCode" />, //计划跟踪号
    <TextField source="splrCode" label="table.field.outStockItem.splrCode" key="splrCode" />, //供应商编码
    <TextField source="splrName" label="table.field.outStockItem.splrName" key="splrName" />, //供应商名称
    <TextField source="platItemId" label="table.field.outStockItem.platItemId" key="platItemId" />, //行号
    <TextField source="matnrCode" label="table.field.outStockItem.matnrCode" key="matnrCode" />, //物料编码
    <TruncatedTextField source="maktx" label="table.field.outStockItem.maktx" key="maktx" maxLength={20} />, //物料名称
    <TextField source="splrBatch" label="table.field.outStockItem.splrBatch" key="splrBatch" />, //批次
    <TextField source="spec" label="table.field.outStockItem.spec" key="spec" />, //规格
    <TextField source="purUnit" label="table.field.outStockItem.purUnit" key="purUnit" />, //单位
    <NumberField source="anfme" label="table.field.outStockItem.anfme" key="anfme" />, //应收数量
    <NumberField source="qty" label="table.field.outStockItem.qty" key="qty" />, //实收数量
    <TextField source="sourceWarehouseId" label="table.field.outStockItem.sourceWarehouseId" key="sourceWarehouseId" />, //调出仓
];
/**
@@ -40,40 +65,26 @@
    <TextField source="splrName" label="table.field.asnOrderItem.splrName" key="splrName" />, //供应商名称
    <TextField source="platItemId" label="table.field.asnOrderItem.platItemId" key="platItemId" />, //行号
    <TextField source="matnrCode" label="table.field.asnOrderItem.matnrCode" key="matnrCode" />, //物料编码
    <TextField source="maktx" label="table.field.asnOrderItem.maktx" key="maktx" />, //物料名称
    <TruncatedTextField source="maktx" label="table.field.asnOrderItem.maktx" key="maktx" maxLength={20} />, //物料名称
    <TextField source="splrBatch" label="table.field.asnOrderItem.splrBatch" key="splrBatch" />, //批次
    <TextField source="spec" label="table.field.asnOrderItem.spec" key="spec" />, //规格
     <TextField source="purUnit" label="table.field.asnOrderItem.unit" key="purUnit" />, //单位
    <TextField source="purUnit" label="table.field.asnOrderItem.unit" key="purUnit" />, //单位
    <NumberField source="anfme" label="table.field.asnOrderItem.anfme" key="anfme" />, //应收数量
    <NumberField source="qty" label="table.field.asnOrderItem.qty" key="qty" />, //实收数量   
    <TextField source="targetWarehouseId" label="table.field.asnOrderItem.targetWarehouseId" key="targetWarehouseId" />, //建议目标仓
];
/**
 * 获取动态扩展字段列
 * @param {Array} fieldsData - 动态字段数据
 * @returns {Array} 动态字段列数组
 */
export const getExtendFieldColumns = (fieldsData) => {
    return fieldsData.map(el => (
        <TextField
            key={el.fields}
            source={`extendFields.[${el.fields}]`}
            label={el.fieldsAlise}
            sortable={false}
        />
    ));
};
/**
 * 获取订单明细的尾部列配置(时间和操作人信息)
 * @returns {Array} 尾部列数组
 */
export const getLastColumns = () => [
     <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false} key="updateBy">
    <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false} key="updateBy">
        <TextField source="nickname" />
    </ReferenceField>,
    <DateField source="updateTime" label="common.field.updateTime" showTime key="updateTime" />,
    <DateField source="updateTime" label="common.field.updateTime" showTime key="updateTime" />,
    <ReferenceField source="createBy" label="common.field.createBy" reference="user" link={false} sortable={false} key="createBy">
        <TextField source="nickname" />
    </ReferenceField>,
@@ -82,26 +93,30 @@
/**
 * 组合入库订单明细所有列配置
 * @param {Array} extendFieldsData - 动态扩展字段数据
 * @returns {Array} 完整的列配置数组
 */
export const buildInOrderItemColumns = (extendFieldsData = []) => {
export const buildInOrderItemColumns = () => {
    return [
        ...getInOrderItemBaseColumns(),
        ...getExtendFieldColumns(extendFieldsData),
        ...getLastColumns()
    ];
};
export const buildInOrderItemFullColumns = () => {
    return [
        ...getInOrderItemFullBaseColumns(),
        ...getInOrderItemBaseColumns(),
        ...getLastColumns()
    ];
};
/**
 * 组合出库订单明细所有列配置
 * @param {Array} extendFieldsData - 动态扩展字段数据
 * @returns {Array} 完整的列配置数组
 */
export const buildOutOrderItemColumns = (extendFieldsData = []) => {
export const buildOutOrderItemColumns = () => {
    return [
        ...getOutOrderItemBaseColumns(),
        ...getExtendFieldColumns(extendFieldsData),
        ...getLastColumns()
    ];
};
@@ -112,12 +127,7 @@
 */
export const fetchInOrderItemColumns = async () => {
    try {
        const { data: { code, data, msg } } = await request.get("/fields/enable/list");
        if (code == 200) {
            return { success: true, columns: buildInOrderItemColumns(data) };
        } else {
            return { success: false, msg };
        }
        return { success: true, columns: buildInOrderItemColumns() };
    } catch (error) {
        return { success: false, msg: error.message };
    }
@@ -129,12 +139,15 @@
 */
export const fetchOutOrderItemColumns = async () => {
    try {
        const { data: { code, data, msg } } = await request.get("/fields/enable/list");
        if (code == 200) {
            return { success: true, columns: buildOutOrderItemColumns(data) };
        } else {
            return { success: false, msg };
        }
        return { success: true, columns: buildOutOrderItemColumns() };
    } catch (error) {
        return { success: false, msg: error.message };
    }
};
export const fetchInOrderItemFullColumns = async () => {
    try {
        return { success: true, columns: buildInOrderItemFullColumns() };
    } catch (error) {
        return { success: false, msg: error.message };
    }