import React from "react";
|
import {
|
TextField,
|
NumberField,
|
DateField,
|
ReferenceField,
|
} from 'react-admin';
|
import request from '@/utils/request';
|
|
/**
|
* 获取出库订单明细的基础列配置
|
* @returns {Array} 基础列数组
|
*/
|
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" />, //规格
|
<NumberField source="anfme" label="table.field.asnOrderItem.anfme" key="anfme" />, //应收数量
|
<NumberField source="qty" label="table.field.asnOrderItem.qty" key="qty" />, //实收数量
|
<TextField source="stockUnit" label="table.field.asnOrderItem.stockUnit" key="stockUnit" />, //单位
|
];
|
|
/**
|
* 获取入库订单明细的基础列配置
|
* @returns {Array} 基础列数组
|
*/
|
export const getInOrderItemBaseColumns = () => [
|
<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" />, //规格
|
<NumberField source="anfme" label="table.field.asnOrderItem.anfme" key="anfme" />, //应收数量
|
<NumberField source="qty" label="table.field.asnOrderItem.qty" key="qty" />, //实收数量
|
<TextField source="stockUnit" label="table.field.asnOrderItem.stockUnit" key="stockUnit" />, //单位
|
];
|
|
/**
|
* 获取动态扩展字段列
|
* @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 = () => [
|
<DateField source="updateTime" label="common.field.updateTime" showTime key="updateTime" />,
|
<ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false} key="updateBy">
|
<TextField source="nickname" />
|
</ReferenceField>,
|
<ReferenceField source="createBy" label="common.field.createBy" reference="user" link={false} sortable={false} key="createBy">
|
<TextField source="nickname" />
|
</ReferenceField>,
|
<DateField source="createTime" label="common.field.createTime" showTime key="createTime" />,
|
];
|
|
/**
|
* 组合入库订单明细所有列配置
|
* @param {Array} extendFieldsData - 动态扩展字段数据
|
* @returns {Array} 完整的列配置数组
|
*/
|
export const buildInOrderItemColumns = (extendFieldsData = []) => {
|
return [
|
...getInOrderItemBaseColumns(),
|
...getExtendFieldColumns(extendFieldsData),
|
...getLastColumns()
|
];
|
};
|
|
/**
|
* 组合出库订单明细所有列配置
|
* @param {Array} extendFieldsData - 动态扩展字段数据
|
* @returns {Array} 完整的列配置数组
|
*/
|
export const buildOutOrderItemColumns = (extendFieldsData = []) => {
|
return [
|
...getOutOrderItemBaseColumns(),
|
...getExtendFieldColumns(extendFieldsData),
|
...getLastColumns()
|
];
|
};
|
|
/**
|
* 获取动态字段并构建完整列配置
|
* @returns {Promise<{success: boolean, columns?: Array, msg?: string}>}
|
*/
|
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 };
|
}
|
} catch (error) {
|
return { success: false, msg: error.message };
|
}
|
};
|
|
/**
|
* 获取动态字段并构建完整列配置
|
* @returns {Promise<{success: boolean, columns?: Array, msg?: string}>}
|
*/
|
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 };
|
}
|
} catch (error) {
|
return { success: false, msg: error.message };
|
}
|
};
|