From bb7dd1f513149ecd2887895c807861fdd06a43f6 Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期三, 11 二月 2026 15:29:27 +0800
Subject: [PATCH] 展示库存明细
---
rsf-admin/src/page/orders/outStock/OutOrderModal.jsx | 59 ++++++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 46 insertions(+), 13 deletions(-)
diff --git a/rsf-admin/src/page/orders/outStock/OutOrderModal.jsx b/rsf-admin/src/page/orders/outStock/OutOrderModal.jsx
index a12c340..67594a4 100644
--- a/rsf-admin/src/page/orders/outStock/OutOrderModal.jsx
+++ b/rsf-admin/src/page/orders/outStock/OutOrderModal.jsx
@@ -1,5 +1,5 @@
import { Dialog, DialogActions, DialogContent, DialogTitle, Box, LinearProgress } from "@mui/material";
-import React, { useState, useRef, useEffect, useMemo } from "react";
+import React, { useState, useRef, useEffect, useMemo, useCallback } from "react";
import {
List,
DatagridConfigurable,
@@ -94,31 +94,64 @@
]
const OutOrderModal = (props) => {
- const { open, setOpen, preview, setPreview, record } = props;
+ const { open, setOpen, preview, setPreview, record, initialFormData, saveFormData } = props;
const [drawerVal, setDrawerVal] = useState(false);
- const [params, setParams] = useState({});
+ const [params, setParams] = useState(() => initialFormData?.params ?? {});
const [select, setSelect] = useState([]);
const translate = useTranslate();
const refresh = useRefresh();
+
+ useEffect(() => {
+ if (open && initialFormData?.params) {
+ setParams(initialFormData.params);
+ }
+ }, [open, initialFormData?.params]);
+
const handleClose = (event, reason) => {
if (reason !== "backdropClick") {
setOpen(false);
}
};
+ useEffect(() => {
+ if (open && params && Object.keys(params).length > 0 && saveFormData) {
+ saveFormData({ params, formValues: params });
+ }
+ }, [open, params, saveFormData]);
+
+ const handleFormValuesChange = useCallback((formValues) => {
+ if (saveFormData) {
+ saveFormData({ params: formValues, formValues });
+ }
+ }, [saveFormData]);
+
const CustomFilter = () => {
- const { filterValues, setFilters, refetch } = useListContext();
- const [formValues, setFormValues] = useState(filterValues);
+ const { filterValues } = useListContext();
+ const initialFormValues = initialFormData?.formValues ?? initialFormData?.params ?? params ?? filterValues;
+ const [formValues, setFormValues] = useState(initialFormValues || {});
+ const initializedRef = useRef(false);
+ useEffect(() => {
+ if (open && (initialFormData?.formValues || initialFormData?.params) && !initializedRef.current) {
+ const init = initialFormData?.formValues ?? initialFormData?.params ?? {};
+ setFormValues(init);
+ initializedRef.current = true;
+ }
+ if (!open) initializedRef.current = false;
+ }, [open, initialFormData?.formValues, initialFormData?.params]);
+
const handleChange = (event) => {
if (event.target == undefined || event.target == null) { return }
- setFormValues(formValues => ({
+ const next = {
...formValues,
[event.target.name]: event.target.value,
- }));
+ };
+ setFormValues(next);
+ handleFormValuesChange(next);
};
const handleSubmit = (event) => {
- setParams(formValues)
+ setParams(formValues);
+ if (saveFormData) saveFormData({ params: formValues, formValues });
};
return (
@@ -129,14 +162,14 @@
source="condition"
label="common.action.search"
resettable
- defaultValue={params?.condition}
+ value={formValues?.condition ?? ''}
onChange={handleChange} />
</Stack>
<Stack>
<TextInput
source="deliveryCode"
label="table.field.deliveryItem.deliveryCode"
- defaultValue={params?.deliveryCode}
+ value={formValues?.deliveryCode ?? ''}
onChange={handleChange}
resettable
/>
@@ -145,7 +178,7 @@
<TextInput
source="maktx"
label="table.field.deliveryItem.matnrName"
- defaultValue={params?.maktx}
+ value={formValues?.maktx ?? ''}
onChange={handleChange}
resettable
/>
@@ -154,7 +187,7 @@
<TextInput
source="matnrCode"
label="table.field.deliveryItem.matnrCode"
- defaultValue={params?.matnrCode}
+ value={formValues?.matnrCode ?? ''}
resettable
onChange={handleChange} />
</Stack>
@@ -162,7 +195,7 @@
<TextInput
source="splrName"
label="table.field.deliveryItem.splrName"
- defaultValue={params?.splrName}
+ value={formValues?.splrName ?? ''}
resettable
onChange={handleChange} />
</Stack>
--
Gitblit v1.9.1