1
4 天以前 df08ca13ad69fd3908bfcd5f39f05f6c4ffb668a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
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}
        />
    ));
};
 
/**
 * 获取订单明细的尾部列配置(时间和操作人信息)
 * @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 };
    }
};