From 8ad7614fd797123b0d19d9323c3f9a4552702c29 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期三, 16 七月 2025 10:37:38 +0800
Subject: [PATCH] 代码优化
---
rsf-admin/src/page/orders/outStock/OutOrderCreate.jsx | 185 +++++++++++++++++++++++++++++-----------------
1 files changed, 117 insertions(+), 68 deletions(-)
diff --git a/rsf-admin/src/page/orders/outStock/OutOrderCreate.jsx b/rsf-admin/src/page/orders/outStock/OutOrderCreate.jsx
index 037fb01..40fba47 100644
--- a/rsf-admin/src/page/orders/outStock/OutOrderCreate.jsx
+++ b/rsf-admin/src/page/orders/outStock/OutOrderCreate.jsx
@@ -5,7 +5,13 @@
TextInput,
NumberInput,
BooleanInput,
+ TextField,
+ WrapperField,
+ NumberField,
DateInput,
+ TopToolbar,
+ SelectColumnsButton,
+ DatagridConfigurable,
SaveButton,
SelectInput,
ReferenceInput,
@@ -17,6 +23,12 @@
useNotify,
Form,
useCreateController,
+ useGetList,
+ useList,
+ ListContextProvider,
+ useListContext,
+ Button,
+ useRecordContext,
} from 'react-admin';
import {
Dialog,
@@ -28,15 +40,37 @@
Box,
} from '@mui/material';
import DialogCloseButton from "../../components/DialogCloseButton";
+import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
+import { styled } from '@mui/material/styles';
import StatusSelectInput from "../../components/StatusSelectInput";
+import OutOrderItemList from "./OutOrderItemList";
import MemoInput from "../../components/MemoInput";
+import AddIcon from '@mui/icons-material/Add';
+import SelectMatnrModal from "./SelectMatnrModal";
+
+const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
+ '& .css-1vooibu-MuiSvgIcon-root': {
+ height: '.9em'
+ },
+ '& .RaDatagrid-row': {
+ cursor: 'auto'
+ },
+ '& .column-name': {
+ },
+ '& .opt': {
+ width: 200
+ },
+}));
+
const OutOrderCreate = (props) => {
- const { open, setOpen } = props;
+ const { open, setOpen, record } = props;
const dicts = JSON.parse(localStorage.getItem('sys_dicts'))?.filter(dict => (dict.dictTypeCode == 'sys_order_type')) || [];
const business = JSON.parse(localStorage.getItem('sys_dicts'))?.filter(dict => (dict.dictTypeCode == 'sys_business_type')) || [];
const translate = useTranslate();
const notify = useNotify();
+ const [drawerVal, setDrawerVal] = useState(false);
+ const [matCreate, setMatCreate] = useState(false);
const handleClose = (event, reason) => {
if (reason !== "backdropClick") {
@@ -53,6 +87,9 @@
notify(error.message || 'common.response.fail', { type: 'error', messageArgs: { _: error.message } });
};
+ const { data, total, isPending, error, refetch, meta } = useGetList('/wave/locs/preview', { filter: { waveId: record?.id } });
+ const listContext = useList({ data, isPending });
+
return (
<>
<CreateBase
@@ -68,7 +105,7 @@
aria-labelledby="form-dialog-title"
fullWidth
disableRestoreFocus
- maxWidth="md" // 'xs' | 'sm' | 'md' | 'lg' | 'xl'
+ maxWidth="xl" // 'xs' | 'sm' | 'md' | 'lg' | 'xl'
>
<Form
resource="outStock"
@@ -86,18 +123,19 @@
</Box>
</DialogTitle>
<DialogContent sx={{ mt: 2 }}>
- <Grid container rowSpacing={2} columnSpacing={2}>
- <Grid item xs={12} display="flex" gap={1}>
- <TextInput
- label="table.field.asnOrder.poCode"
- source="poCode"
- parse={v => v}
- />
- <NumberInput
- label="table.field.asnOrder.poId"
- source="poId"
- />
- <AutocompleteInput
+ <>
+ <Grid container>
+ <Grid item xs={12} display="flex" gap={1}>
+ <TextInput
+ label="table.field.asnOrder.poCode"
+ source="poCode"
+ parse={v => v}
+ />
+ <NumberInput
+ label="table.field.asnOrder.poId"
+ source="poId"
+ />
+ {/* <AutocompleteInput
choices={dicts}
optionText="label"
label="table.field.asnOrder.type"
@@ -105,63 +143,59 @@
optionValue="value"
validate={required()}
parse={v => v}
- />
+ /> */}
+ <AutocompleteInput
+ choices={business}
+ optionText="label"
+ label="table.field.asnOrder.wkType"
+ source="wkType"
+ optionValue="value"
+ validate={required()}
+ parse={v => v}
+ />
+ <NumberInput
+ label="table.field.asnOrder.anfme"
+ source="anfme"
+ validate={required()}
+ />
+ </Grid>
+ <Grid item xs={12} display="flex" gap={1}>
+ <NumberInput
+ label="table.field.asnOrder.qty"
+ source="qty"
+ />
+ <TextInput
+ label="table.field.asnOrder.logisNo"
+ source="logisNo"
+ parse={v => v}
+ />
+ <DateInput
+ label="table.field.asnOrder.arrTime"
+ source="arrTime"
+ />
+ <SelectInput
+ label="table.field.asnOrder.rleStatus"
+ source="rleStatus"
+ choices={[
+ { id: 0, name: ' 姝e父' },
+ { id: 1, name: ' 宸查噴鏀�' },
+ ]}
+ />
+ </Grid>
</Grid>
- <Grid item xs={12} display="flex" gap={1}>
- <AutocompleteInput
- choices={business}
- optionText="label"
- label="table.field.asnOrder.wkType"
- source="wkType"
- optionValue="value"
- validate={required()}
- parse={v => v}
- />
- <NumberInput
- label="table.field.asnOrder.anfme"
- source="anfme"
- validate={required()}
- />
- <NumberInput
- label="table.field.asnOrder.qty"
- source="qty"
- />
- </Grid>
- <Grid item xs={12} display="flex" gap={1}>
- <TextInput
- label="table.field.asnOrder.logisNo"
- source="logisNo"
- parse={v => v}
- />
- <DateInput
- label="table.field.asnOrder.arrTime"
- source="arrTime"
- />
- <SelectInput
- label="table.field.asnOrder.rleStatus"
- source="rleStatus"
- choices={[
- { id: 0, name: ' 姝e父' },
- { id: 1, name: ' 宸查噴鏀�' },
- ]}
- />
- </Grid>
- <Grid item xs={4} display="flex" gap={1}>
- <StatusSelectInput />
- </Grid>
- <Grid item xs={12} display="flex" gap={1}>
- <Stack direction="column" spacing={1} width={'100%'}>
- <MemoInput />
- </Stack>
- </Grid>
- </Grid>
+ <SelectMatnrModal open={matCreate} setOpen={setMatCreate} />
+ <DialogActions sx={{ position: 'sticky', bottom: 0, backgroundColor: 'background.paper', zIndex: 1000 }}>
+ <Toolbar sx={{ width: '100%', justifyContent: 'end' }} >
+ <AddOutOrderButton setMatCreate={setMatCreate} />
+ <SaveButton />
+ </Toolbar>
+ </DialogActions>
+ <Box>
+
+ </Box>
+ </>
</DialogContent>
- <DialogActions sx={{ position: 'sticky', bottom: 0, backgroundColor: 'background.paper', zIndex: 1000 }}>
- <Toolbar sx={{ width: '100%', justifyContent: 'space-between' }} >
- <SaveButton />
- </Toolbar>
- </DialogActions>
</Form>
</Dialog>
</CreateBase>
@@ -170,3 +204,18 @@
}
export default OutOrderCreate;
+
+
+const AddOutOrderButton = (setMatCreate) => {
+ const record = useRecordContext();
+ const addMats = (event) => {
+ event.stopPropagation();
+ setMatCreate(true)
+ }
+
+ return (
+ <Button label={"common.action.newAddMats"} onClick={addMats} variant="contained" sx={{ padding: '0.6em', marginRight: '1em' }}>
+ <AddIcon />
+ </Button>
+ );
+}
--
Gitblit v1.9.1