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