From a2fe95b85d01f9382b1b43ed41fb24b84573d406 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期二, 20 一月 2026 12:57:48 +0800
Subject: [PATCH] #前端页面

---
 rsf-admin/src/page/orders/config/orderItemColumns.jsx       |  138 +++++++++++++++++++++++++++
 rsf-admin/src/i18n/zh.js                                    |    6 
 rsf-admin/src/page/orders/outStockItem/OutStockItemList.jsx |   49 +--------
 rsf-admin/src/page/orders/asnOrderItem/AsnOrderItemList.jsx |   49 +--------
 4 files changed, 151 insertions(+), 91 deletions(-)

diff --git a/rsf-admin/src/i18n/zh.js b/rsf-admin/src/i18n/zh.js
index 0256cf5..15cc0c9 100644
--- a/rsf-admin/src/i18n/zh.js
+++ b/rsf-admin/src/i18n/zh.js
@@ -720,7 +720,7 @@
                 orderCode: "鍗曞彿",
                 matnrId: "鐗╂枡鏍囪瘑",
                 platOrderCode: '瀹㈡埛鍗曞彿',
-                platWorkCode: '宸ュ崟鍙�',
+                platWorkCode: '璁″垝璺熻釜鍙�',
                 projectCode: '椤圭洰鍙�',
                 maktx: "鐗╂枡鍚嶇О",
                 spec: "瑙勬牸",
@@ -778,7 +778,7 @@
                 model: "鍨嬪彿",
                 fieldsIndex: "瀛楁绱㈠紩",
                 platOrderCode: "瀹㈠崟鍙�",
-                platWorkCode: "宸ュ崟鍙�",
+                platWorkCode: "璁″垝璺熻釜鍙�",
                 projectCode: "椤圭洰鍗曞彿",
             },
 
@@ -815,7 +815,7 @@
                 platItemId: '琛屽彿',
                 matnrId: "鐗╂枡鏍囪瘑",
                 platOrderCode: '瀹㈡埛鍗曞彿',
-                platWorkCode: '宸ュ崟鍙�',
+                platWorkCode: '璁″垝璺熻釜鍙�',
                 projectCode: '椤圭洰鍙�',
                 maktx: "鐗╂枡鍚嶇О",
                 spec: "瑙勬牸",
diff --git a/rsf-admin/src/page/orders/asnOrderItem/AsnOrderItemList.jsx b/rsf-admin/src/page/orders/asnOrderItem/AsnOrderItemList.jsx
index 33c9949..d8719bf 100644
--- a/rsf-admin/src/page/orders/asnOrderItem/AsnOrderItemList.jsx
+++ b/rsf-admin/src/page/orders/asnOrderItem/AsnOrderItemList.jsx
@@ -39,8 +39,8 @@
 import { styled } from '@mui/material/styles';
 import PageDrawer from "../../components/PageDrawer";
 
-import request from '@/utils/request';
 import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
+import { fetchInOrderItemColumns } from '../config/orderItemColumns';
 
 const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
     '& .css-1vooibu-MuiSvgIcon-root': {
@@ -147,50 +147,11 @@
     }, []);
 
     const getDynamicFields = async () => {
-        const { data: { code, data, msg }, } = await request.get("/fields/enable/list");
-        if (code == 200) {
-            const arr = [
-                <NumberField source="id" />,
-                <NumberField source="orderId" label="table.field.asnOrderItem.orderId" />,
-                <TextField source="orderCode" label="table.field.asnOrderItem.orderCode" />,
-                // <TextField source="poDetlId" label="table.field.asnOrderItem.poDetlId" />,
-                // <TextField source="poDetlCode" label="table.field.asnOrderItem.poDetlCode" />,
-                <TextField source="platItemId" label="table.field.asnOrderItem.platItemId" />,
-                <TextField source="matnrId" label="table.field.asnOrderItem.matnrId" />,
-                <TextField source="matnrCode" label="table.field.asnOrderItem.matnrCode" />,
-                <TextField source="maktx" label="table.field.asnOrderItem.maktx" />,
-                <TextField source="splrBatch" label="table.field.asnOrderItem.splrBatch" />,
-                <TextField source="platOrderCode" label="table.field.asnOrderItem.platOrderCode" />,
-                <TextField source="platWorkCode" label="table.field.asnOrderItem.platWorkCode" />,
-                <TextField source="projectCode" label="table.field.asnOrderItem.projectCode" />,
-                <TextField source="spec" label="table.field.asnOrderItem.spec" />,
-                <TextField source="model" label="table.field.asnOrderItem.model" />,
-                <NumberField source="anfme" label="table.field.asnOrderItem.anfme" />,
-                <NumberField source="qty" label="table.field.asnOrderItem.qty" />,
-                <TextField source="stockUnit" label="table.field.asnOrderItem.stockUnit" />,
-                <NumberField source="purQty" label="table.field.asnOrderItem.purQty" />,
-                <TextField source="purUnit" label="table.field.asnOrderItem.purUnit" />,
-                <TextField source="splrCode" label="table.field.asnOrderItem.splrCode" />,
-                <TextField source="splrName" label="table.field.asnOrderItem.splrName" />,
-                <TextField source="isptResult$" label="table.field.asnOrderItem.isptResult" />,
-                <TextField source="qrcode" label="table.field.asnOrderItem.qrcode" />,
-                <TextField source="trackCode" label="table.field.asnOrderItem.barcode" />,
-                <TextField source="packName" label="table.field.asnOrderItem.packName" />,
-            ]
-            const fields = data.map(el => <TextField key={el.fields} source={`extendFields.[${el.fields}]`} label={el.fieldsAlise} />)
-            const lastArr = [
-                <DateField source="updateTime" label="common.field.updateTime" showTime />,
-                <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}>
-                    <TextField source="nickname" />
-                </ReferenceField>,
-                <ReferenceField source="createBy" label="common.field.createBy" reference="user" link={false} sortable={false}>
-                    <TextField source="nickname" />
-                </ReferenceField>,
-                <DateField source="createTime" label="common.field.createTime" showTime />,
-            ]
-            setColumns([...arr, ...fields, ...lastArr]);
+        const result = await fetchInOrderItemColumns();
+        if (result.success) {
+            setColumns(result.columns);
         } else {
-            notify(msg);
+            notify(result.msg);
         }
     }
 
diff --git a/rsf-admin/src/page/orders/config/orderItemColumns.jsx b/rsf-admin/src/page/orders/config/orderItemColumns.jsx
new file mode 100644
index 0000000..aa939e1
--- /dev/null
+++ b/rsf-admin/src/page/orders/config/orderItemColumns.jsx
@@ -0,0 +1,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 };
+    }
+};
diff --git a/rsf-admin/src/page/orders/outStockItem/OutStockItemList.jsx b/rsf-admin/src/page/orders/outStockItem/OutStockItemList.jsx
index c2fced5..3fa70ae 100644
--- a/rsf-admin/src/page/orders/outStockItem/OutStockItemList.jsx
+++ b/rsf-admin/src/page/orders/outStockItem/OutStockItemList.jsx
@@ -39,8 +39,8 @@
 import { styled } from '@mui/material/styles';
 import PageDrawer from "../../components/PageDrawer";
 
-import request from '@/utils/request';
 import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
+import { fetchOutOrderItemColumns } from '../config/orderItemColumns';
 
 const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
     '& .css-1vooibu-MuiSvgIcon-root': {
@@ -147,50 +147,11 @@
     }, []);
 
     const getDynamicFields = async () => {
-        const { data: { code, data, msg }, } = await request.get("/fields/enable/list");
-        if (code == 200) {
-            const arr = [
-                <NumberField source="id" />,
-                <NumberField source="orderId" label="table.field.asnOrderItem.orderId" />,
-                <TextField source="orderCode" label="table.field.asnOrderItem.orderCode" />,
-                // <TextField source="poDetlId" label="table.field.asnOrderItem.poDetlId" />,
-                // <TextField source="poDetlCode" label="table.field.asnOrderItem.poDetlCode" />,
-                <TextField source="platItemId" label="table.field.asnOrderItem.platItemId" />,
-                <TextField source="matnrId" label="table.field.asnOrderItem.matnrId" />,
-                <TextField source="matnrCode" label="table.field.asnOrderItem.matnrCode" />,
-                <TextField source="maktx" label="table.field.asnOrderItem.maktx" />,
-                <TextField source="splrBatch" label="table.field.asnOrderItem.splrBatch" />,
-                <TextField source="platOrderCode" label="table.field.asnOrderItem.platOrderCode" />,
-                <TextField source="platWorkCode" label="table.field.asnOrderItem.platWorkCode" />,
-                <TextField source="projectCode" label="table.field.asnOrderItem.projectCode" />,
-                <TextField source="spec" label="table.field.asnOrderItem.spec" />,
-                <TextField source="model" label="table.field.asnOrderItem.model" />,
-                <NumberField source="anfme" label="table.field.asnOrderItem.anfme" />,
-                <NumberField source="qty" label="table.field.asnOrderItem.qty" />,
-                <TextField source="stockUnit" label="table.field.asnOrderItem.stockUnit" />,
-                <NumberField source="purQty" label="table.field.asnOrderItem.purQty" />,
-                <TextField source="purUnit" label="table.field.asnOrderItem.purUnit" />,
-                <TextField source="splrCode" label="table.field.asnOrderItem.splrCode" />,
-                <TextField source="splrName" label="table.field.asnOrderItem.splrName" />,
-                <TextField source="isptResult$" label="table.field.asnOrderItem.isptResult" />,
-                <TextField source="qrcode" label="table.field.asnOrderItem.qrcode" />,
-                <TextField source="trackCode" label="table.field.asnOrderItem.barcode" />,
-                <TextField source="packName" label="table.field.asnOrderItem.packName" />,
-            ]
-            const fields = data.map(el => <TextField key={el.fields} source={`extendFields.[${el.fields}]`} label={el.fieldsAlise} />)
-            const lastArr = [
-                <DateField source="updateTime" label="common.field.updateTime" showTime />,
-                <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}>
-                    <TextField source="nickname" />
-                </ReferenceField>,
-                <ReferenceField source="createBy" label="common.field.createBy" reference="user" link={false} sortable={false}>
-                    <TextField source="nickname" />
-                </ReferenceField>,
-                <DateField source="createTime" label="common.field.createTime" showTime />,
-            ]
-            setColumns([...arr, ...fields, ...lastArr]);
+        const result = await fetchOutOrderItemColumns();
+        if (result.success) {
+            setColumns(result.columns);
         } else {
-            notify(msg);
+            notify(result.msg);
         }
     }
 

--
Gitblit v1.9.1